fix mute all audio via controls
This commit is contained in:
@@ -26,7 +26,7 @@ export interface OutputDevice {
|
|||||||
export const setPipEnabled$ = new Subject<boolean>();
|
export const setPipEnabled$ = new Subject<boolean>();
|
||||||
export const setAvailableOutputDevices$ = new Subject<OutputDevice[]>();
|
export const setAvailableOutputDevices$ = new Subject<OutputDevice[]>();
|
||||||
export const setOutputDevice$ = new Subject<string>();
|
export const setOutputDevice$ = new Subject<string>();
|
||||||
export const setOutputEnabled$ = new Subject<boolean>();
|
export const setOutputDisabled$ = new Subject<boolean>();
|
||||||
|
|
||||||
window.controls = {
|
window.controls = {
|
||||||
canEnterPip(): boolean {
|
canEnterPip(): boolean {
|
||||||
@@ -51,8 +51,8 @@ window.controls = {
|
|||||||
setOutputDevice$.next(id);
|
setOutputDevice$.next(id);
|
||||||
},
|
},
|
||||||
setOutputEnabled(enabled: boolean): void {
|
setOutputEnabled(enabled: boolean): void {
|
||||||
if (!setOutputEnabled$.observed)
|
if (!setOutputDisabled$.observed)
|
||||||
throw new Error("Output controls are disabled");
|
throw new Error("Output controls are disabled");
|
||||||
setOutputEnabled$.next(enabled);
|
setOutputDisabled$.next(!enabled);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import {
|
|||||||
type MatrixRTCSession,
|
type MatrixRTCSession,
|
||||||
} from "matrix-js-sdk/lib/matrixrtc";
|
} from "matrix-js-sdk/lib/matrixrtc";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { useObservableEagerState } from "observable-hooks";
|
import { useObservable, useObservableEagerState } from "observable-hooks";
|
||||||
import { startWith } from "rxjs";
|
import { startWith } from "rxjs";
|
||||||
|
|
||||||
import type { IWidgetApiRequest } from "matrix-widget-api";
|
import type { IWidgetApiRequest } from "matrix-widget-api";
|
||||||
@@ -70,7 +70,7 @@ import {
|
|||||||
useSetting,
|
useSetting,
|
||||||
} from "../settings/settings";
|
} from "../settings/settings";
|
||||||
import { useTypedEventEmitter } from "../useEvents";
|
import { useTypedEventEmitter } from "../useEvents";
|
||||||
import { setOutputEnabled$ } from "../controls.ts";
|
import { setOutputDisabled$ } from "../controls.ts";
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
@@ -108,7 +108,7 @@ export const GroupCallView: FC<Props> = ({
|
|||||||
null,
|
null,
|
||||||
);
|
);
|
||||||
const muteAllAudioControlled = useObservableEagerState(
|
const muteAllAudioControlled = useObservableEagerState(
|
||||||
setOutputEnabled$.pipe(startWith(false)),
|
useObservable(() => setOutputDisabled$.pipe(startWith(false))),
|
||||||
);
|
);
|
||||||
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
||||||
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ import { ReactionsReader } from "../reactions/ReactionsReader";
|
|||||||
import { ConnectionLostError } from "../utils/errors.ts";
|
import { ConnectionLostError } from "../utils/errors.ts";
|
||||||
import { useTypedEventEmitter } from "../useEvents.ts";
|
import { useTypedEventEmitter } from "../useEvents.ts";
|
||||||
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
|
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
|
||||||
import { setOutputEnabled$ } from "../controls.ts";
|
import { setOutputDisabled$ } from "../controls.ts";
|
||||||
|
|
||||||
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
|
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
|
||||||
|
|
||||||
@@ -224,7 +224,7 @@ export const InCallView: FC<InCallViewProps> = ({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const muteAllAudioControlled = useObservableEagerState(
|
const muteAllAudioControlled = useObservableEagerState(
|
||||||
setOutputEnabled$.pipe(startWith(false)),
|
useObservable(() => setOutputDisabled$.pipe(startWith(false))),
|
||||||
);
|
);
|
||||||
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
||||||
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
||||||
|
|||||||
Reference in New Issue
Block a user