/* Copyright 2025 New Vector Ltd. SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ import { combineLatest, startWith } from "rxjs"; import { setAudioEnabled$ } from "../controls"; import { muteAllAudio as muteAllAudioSetting } from "../settings/settings"; import { globalScope } from "./ObservableScope"; import "../state/Behavior"; // Patches in the Observable.behavior method /** * This can transition into sth more complete: `GroupCallViewModel.ts` */ export const muteAllAudio$ = combineLatest( [setAudioEnabled$.pipe(startWith(true)), muteAllAudioSetting.value$], (outputEnabled, settingsMute) => !outputEnabled || settingsMute, ).behavior(globalScope);