fix mute all audio via controls

This commit is contained in:
Timo
2025-05-15 20:21:43 +02:00
parent 610e792394
commit abd66f50db
3 changed files with 8 additions and 8 deletions

View File

@@ -26,7 +26,7 @@ export interface OutputDevice {
export const setPipEnabled$ = new Subject<boolean>();
export const setAvailableOutputDevices$ = new Subject<OutputDevice[]>();
export const setOutputDevice$ = new Subject<string>();
export const setOutputEnabled$ = new Subject<boolean>();
export const setOutputDisabled$ = new Subject<boolean>();
window.controls = {
canEnterPip(): boolean {
@@ -51,8 +51,8 @@ window.controls = {
setOutputDevice$.next(id);
},
setOutputEnabled(enabled: boolean): void {
if (!setOutputEnabled$.observed)
if (!setOutputDisabled$.observed)
throw new Error("Output controls are disabled");
setOutputEnabled$.next(enabled);
setOutputDisabled$.next(!enabled);
},
};

View File

@@ -24,7 +24,7 @@ import {
type MatrixRTCSession,
} from "matrix-js-sdk/lib/matrixrtc";
import { useNavigate } from "react-router-dom";
import { useObservableEagerState } from "observable-hooks";
import { useObservable, useObservableEagerState } from "observable-hooks";
import { startWith } from "rxjs";
import type { IWidgetApiRequest } from "matrix-widget-api";
@@ -70,7 +70,7 @@ import {
useSetting,
} from "../settings/settings";
import { useTypedEventEmitter } from "../useEvents";
import { setOutputEnabled$ } from "../controls.ts";
import { setOutputDisabled$ } from "../controls.ts";
declare global {
interface Window {
@@ -108,7 +108,7 @@ export const GroupCallView: FC<Props> = ({
null,
);
const muteAllAudioControlled = useObservableEagerState(
setOutputEnabled$.pipe(startWith(false)),
useObservable(() => setOutputDisabled$.pipe(startWith(false))),
);
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;

View File

@@ -104,7 +104,7 @@ import { ReactionsReader } from "../reactions/ReactionsReader";
import { ConnectionLostError } from "../utils/errors.ts";
import { useTypedEventEmitter } from "../useEvents.ts";
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
import { setOutputEnabled$ } from "../controls.ts";
import { setOutputDisabled$ } from "../controls.ts";
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
@@ -224,7 +224,7 @@ export const InCallView: FC<InCallViewProps> = ({
});
const muteAllAudioControlled = useObservableEagerState(
setOutputEnabled$.pipe(startWith(false)),
useObservable(() => setOutputDisabled$.pipe(startWith(false))),
);
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;