matrix-react-sdk
Version:
SDK for matrix.org using React
49 lines (45 loc) • 6.46 kB
JavaScript
;
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==