UNPKG

matrix-react-sdk

Version:
49 lines (45 loc) 6.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.doMaybeSetCurrentVoiceBroadcastPlayback = void 0; var _ = require(".."); /* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /** * When a live voice broadcast is in the room and * another voice broadcast is not currently being listened to or recorded * the live broadcast in the room is set as the current broadcast to listen to. * When there is no live broadcast in the room: clear current broadcast. * * @param {Room} room The room to check for a live voice broadcast * @param {MatrixClient} client * @param {VoiceBroadcastPlaybacksStore} voiceBroadcastPlaybacksStore * @param {VoiceBroadcastRecordingsStore} voiceBroadcastRecordingsStore */ const doMaybeSetCurrentVoiceBroadcastPlayback = async (room, client, voiceBroadcastPlaybacksStore, voiceBroadcastRecordingsStore) => { // do not disturb the current recording if (voiceBroadcastRecordingsStore.hasCurrent()) return; const currentPlayback = voiceBroadcastPlaybacksStore.getCurrent(); if (currentPlayback && currentPlayback.getState() !== _.VoiceBroadcastPlaybackState.Stopped) { // do not disturb the current playback return; } const { infoEvent } = await (0, _.hasRoomLiveVoiceBroadcast)(client, room); if (infoEvent) { // live broadcast in the room + no recording + not listening yet: set the current broadcast const voiceBroadcastPlayback = voiceBroadcastPlaybacksStore.getByInfoEvent(infoEvent, client); voiceBroadcastPlaybacksStore.setCurrent(voiceBroadcastPlayback); return; } // no broadcast; not listening: clear current voiceBroadcastPlaybacksStore.clearCurrent(); }; exports.doMaybeSetCurrentVoiceBroadcastPlayback = doMaybeSetCurrentVoiceBroadcastPlayback; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfIiwicmVxdWlyZSIsImRvTWF5YmVTZXRDdXJyZW50Vm9pY2VCcm9hZGNhc3RQbGF5YmFjayIsInJvb20iLCJjbGllbnQiLCJ2b2ljZUJyb2FkY2FzdFBsYXliYWNrc1N0b3JlIiwidm9pY2VCcm9hZGNhc3RSZWNvcmRpbmdzU3RvcmUiLCJoYXNDdXJyZW50IiwiY3VycmVudFBsYXliYWNrIiwiZ2V0Q3VycmVudCIsImdldFN0YXRlIiwiVm9pY2VCcm9hZGNhc3RQbGF5YmFja1N0YXRlIiwiU3RvcHBlZCIsImluZm9FdmVudCIsImhhc1Jvb21MaXZlVm9pY2VCcm9hZGNhc3QiLCJ2b2ljZUJyb2FkY2FzdFBsYXliYWNrIiwiZ2V0QnlJbmZvRXZlbnQiLCJzZXRDdXJyZW50IiwiY2xlYXJDdXJyZW50IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92b2ljZS1icm9hZGNhc3QvdXRpbHMvZG9NYXliZVNldEN1cnJlbnRWb2ljZUJyb2FkY2FzdFBsYXliYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IE1hdHJpeENsaWVudCwgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHtcbiAgICBoYXNSb29tTGl2ZVZvaWNlQnJvYWRjYXN0LFxuICAgIFZvaWNlQnJvYWRjYXN0UGxheWJhY2tzU3RvcmUsXG4gICAgVm9pY2VCcm9hZGNhc3RQbGF5YmFja1N0YXRlLFxuICAgIFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nc1N0b3JlLFxufSBmcm9tIFwiLi5cIjtcblxuLyoqXG4gKiBXaGVuIGEgbGl2ZSB2b2ljZSBicm9hZGNhc3QgaXMgaW4gdGhlIHJvb20gYW5kXG4gKiBhbm90aGVyIHZvaWNlIGJyb2FkY2FzdCBpcyBub3QgY3VycmVudGx5IGJlaW5nIGxpc3RlbmVkIHRvIG9yIHJlY29yZGVkXG4gKiB0aGUgbGl2ZSBicm9hZGNhc3QgaW4gdGhlIHJvb20gaXMgc2V0IGFzIHRoZSBjdXJyZW50IGJyb2FkY2FzdCB0byBsaXN0ZW4gdG8uXG4gKiBXaGVuIHRoZXJlIGlzIG5vIGxpdmUgYnJvYWRjYXN0IGluIHRoZSByb29tOiBjbGVhciBjdXJyZW50IGJyb2FkY2FzdC5cbiAqXG4gKiBAcGFyYW0ge1Jvb219IHJvb20gVGhlIHJvb20gdG8gY2hlY2sgZm9yIGEgbGl2ZSB2b2ljZSBicm9hZGNhc3RcbiAqIEBwYXJhbSB7TWF0cml4Q2xpZW50fSBjbGllbnRcbiAqIEBwYXJhbSB7Vm9pY2VCcm9hZGNhc3RQbGF5YmFja3NTdG9yZX0gdm9pY2VCcm9hZGNhc3RQbGF5YmFja3NTdG9yZVxuICogQHBhcmFtIHtWb2ljZUJyb2FkY2FzdFJlY29yZGluZ3NTdG9yZX0gdm9pY2VCcm9hZGNhc3RSZWNvcmRpbmdzU3RvcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGRvTWF5YmVTZXRDdXJyZW50Vm9pY2VCcm9hZGNhc3RQbGF5YmFjayA9IGFzeW5jIChcbiAgICByb29tOiBSb29tLFxuICAgIGNsaWVudDogTWF0cml4Q2xpZW50LFxuICAgIHZvaWNlQnJvYWRjYXN0UGxheWJhY2tzU3RvcmU6IFZvaWNlQnJvYWRjYXN0UGxheWJhY2tzU3RvcmUsXG4gICAgdm9pY2VCcm9hZGNhc3RSZWNvcmRpbmdzU3RvcmU6IFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nc1N0b3JlLFxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLy8gZG8gbm90IGRpc3R1cmIgdGhlIGN1cnJlbnQgcmVjb3JkaW5nXG4gICAgaWYgKHZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nc1N0b3JlLmhhc0N1cnJlbnQoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFBsYXliYWNrID0gdm9pY2VCcm9hZGNhc3RQbGF5YmFja3NTdG9yZS5nZXRDdXJyZW50KCk7XG5cbiAgICBpZiAoY3VycmVudFBsYXliYWNrICYmIGN1cnJlbnRQbGF5YmFjay5nZXRTdGF0ZSgpICE9PSBWb2ljZUJyb2FkY2FzdFBsYXliYWNrU3RhdGUuU3RvcHBlZCkge1xuICAgICAgICAvLyBkbyBub3QgZGlzdHVyYiB0aGUgY3VycmVudCBwbGF5YmFja1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBpbmZvRXZlbnQgfSA9IGF3YWl0IGhhc1Jvb21MaXZlVm9pY2VCcm9hZGNhc3QoY2xpZW50LCByb29tKTtcblxuICAgIGlmIChpbmZvRXZlbnQpIHtcbiAgICAgICAgLy8gbGl2ZSBicm9hZGNhc3QgaW4gdGhlIHJvb20gKyBubyByZWNvcmRpbmcgKyBub3QgbGlzdGVuaW5nIHlldDogc2V0IHRoZSBjdXJyZW50IGJyb2FkY2FzdFxuICAgICAgICBjb25zdCB2b2ljZUJyb2FkY2FzdFBsYXliYWNrID0gdm9pY2VCcm9hZGNhc3RQbGF5YmFja3NTdG9yZS5nZXRCeUluZm9FdmVudChpbmZvRXZlbnQsIGNsaWVudCk7XG4gICAgICAgIHZvaWNlQnJvYWRjYXN0UGxheWJhY2tzU3RvcmUuc2V0Q3VycmVudCh2b2ljZUJyb2FkY2FzdFBsYXliYWNrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG5vIGJyb2FkY2FzdDsgbm90IGxpc3RlbmluZzogY2xlYXIgY3VycmVudFxuICAgIHZvaWNlQnJvYWRjYXN0UGxheWJhY2tzU3RvcmUuY2xlYXJDdXJyZW50KCk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFVQSxJQUFBQSxDQUFBLEdBQUFDLE9BQUE7QUFWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUMsdUNBQXVDLEdBQUcsTUFBQUEsQ0FDbkRDLElBQVUsRUFDVkMsTUFBb0IsRUFDcEJDLDRCQUEwRCxFQUMxREMsNkJBQTRELEtBQzVDO0VBQ2hCO0VBQ0EsSUFBSUEsNkJBQTZCLENBQUNDLFVBQVUsQ0FBQyxDQUFDLEVBQUU7RUFFaEQsTUFBTUMsZUFBZSxHQUFHSCw0QkFBNEIsQ0FBQ0ksVUFBVSxDQUFDLENBQUM7RUFFakUsSUFBSUQsZUFBZSxJQUFJQSxlQUFlLENBQUNFLFFBQVEsQ0FBQyxDQUFDLEtBQUtDLDZCQUEyQixDQUFDQyxPQUFPLEVBQUU7SUFDdkY7SUFDQTtFQUNKO0VBRUEsTUFBTTtJQUFFQztFQUFVLENBQUMsR0FBRyxNQUFNLElBQUFDLDJCQUF5QixFQUFDVixNQUFNLEVBQUVELElBQUksQ0FBQztFQUVuRSxJQUFJVSxTQUFTLEVBQUU7SUFDWDtJQUNBLE1BQU1FLHNCQUFzQixHQUFHViw0QkFBNEIsQ0FBQ1csY0FBYyxDQUFDSCxTQUFTLEVBQUVULE1BQU0sQ0FBQztJQUM3RkMsNEJBQTRCLENBQUNZLFVBQVUsQ0FBQ0Ysc0JBQXNCLENBQUM7SUFDL0Q7RUFDSjs7RUFFQTtFQUNBViw0QkFBNEIsQ0FBQ2EsWUFBWSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUFDQyxPQUFBLENBQUFqQix1Q0FBQSxHQUFBQSx1Q0FBQSIsImlnbm9yZUxpc3QiOltdfQ==