UNPKG

matrix-react-sdk

Version:
54 lines (50 loc) 6.22 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.PlaybackManager = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _Playback = require("./Playback"); var _ManagedPlayback = require("./ManagedPlayback"); var _consts = require("./consts"); /* Copyright 2024 New Vector Ltd. Copyright 2021 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. */ /** * Handles management of playback instances to ensure certain functionality, like * one playback operating at any one time. */ class PlaybackManager { constructor() { (0, _defineProperty2.default)(this, "instances", []); } static get instance() { if (!PlaybackManager.internalInstance) { PlaybackManager.internalInstance = new PlaybackManager(); } return PlaybackManager.internalInstance; } /** * Pauses all other playback instances. If no playback is provided, all playing * instances are paused. * @param playback Optional. The playback to leave untouched. */ pauseAllExcept(playback) { this.instances.filter(p => p !== playback && p.currentState === _Playback.PlaybackState.Playing).forEach(p => p.pause()); } destroyPlaybackInstance(playback) { this.instances = this.instances.filter(p => p !== playback); } createPlaybackInstance(buf, waveform = _consts.DEFAULT_WAVEFORM) { const instance = new _ManagedPlayback.ManagedPlayback(this, buf, waveform); this.instances.push(instance); return instance; } } exports.PlaybackManager = PlaybackManager; (0, _defineProperty2.default)(PlaybackManager, "internalInstance", void 0); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUGxheWJhY2siLCJyZXF1aXJlIiwiX01hbmFnZWRQbGF5YmFjayIsIl9jb25zdHMiLCJQbGF5YmFja01hbmFnZXIiLCJjb25zdHJ1Y3RvciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiaW5zdGFuY2UiLCJpbnRlcm5hbEluc3RhbmNlIiwicGF1c2VBbGxFeGNlcHQiLCJwbGF5YmFjayIsImluc3RhbmNlcyIsImZpbHRlciIsInAiLCJjdXJyZW50U3RhdGUiLCJQbGF5YmFja1N0YXRlIiwiUGxheWluZyIsImZvckVhY2giLCJwYXVzZSIsImRlc3Ryb3lQbGF5YmFja0luc3RhbmNlIiwiY3JlYXRlUGxheWJhY2tJbnN0YW5jZSIsImJ1ZiIsIndhdmVmb3JtIiwiREVGQVVMVF9XQVZFRk9STSIsIk1hbmFnZWRQbGF5YmFjayIsInB1c2giLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1ZGlvL1BsYXliYWNrTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBQbGF5YmFjaywgUGxheWJhY2tTdGF0ZSB9IGZyb20gXCIuL1BsYXliYWNrXCI7XG5pbXBvcnQgeyBNYW5hZ2VkUGxheWJhY2sgfSBmcm9tIFwiLi9NYW5hZ2VkUGxheWJhY2tcIjtcbmltcG9ydCB7IERFRkFVTFRfV0FWRUZPUk0gfSBmcm9tIFwiLi9jb25zdHNcIjtcblxuLyoqXG4gKiBIYW5kbGVzIG1hbmFnZW1lbnQgb2YgcGxheWJhY2sgaW5zdGFuY2VzIHRvIGVuc3VyZSBjZXJ0YWluIGZ1bmN0aW9uYWxpdHksIGxpa2VcbiAqIG9uZSBwbGF5YmFjayBvcGVyYXRpbmcgYXQgYW55IG9uZSB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGxheWJhY2tNYW5hZ2VyIHtcbiAgICBwcml2YXRlIHN0YXRpYyBpbnRlcm5hbEluc3RhbmNlOiBQbGF5YmFja01hbmFnZXI7XG5cbiAgICBwcml2YXRlIGluc3RhbmNlczogTWFuYWdlZFBsYXliYWNrW10gPSBbXTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IFBsYXliYWNrTWFuYWdlciB7XG4gICAgICAgIGlmICghUGxheWJhY2tNYW5hZ2VyLmludGVybmFsSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIFBsYXliYWNrTWFuYWdlci5pbnRlcm5hbEluc3RhbmNlID0gbmV3IFBsYXliYWNrTWFuYWdlcigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQbGF5YmFja01hbmFnZXIuaW50ZXJuYWxJbnN0YW5jZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXVzZXMgYWxsIG90aGVyIHBsYXliYWNrIGluc3RhbmNlcy4gSWYgbm8gcGxheWJhY2sgaXMgcHJvdmlkZWQsIGFsbCBwbGF5aW5nXG4gICAgICogaW5zdGFuY2VzIGFyZSBwYXVzZWQuXG4gICAgICogQHBhcmFtIHBsYXliYWNrIE9wdGlvbmFsLiBUaGUgcGxheWJhY2sgdG8gbGVhdmUgdW50b3VjaGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXVzZUFsbEV4Y2VwdChwbGF5YmFjaz86IFBsYXliYWNrKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VzXG4gICAgICAgICAgICAuZmlsdGVyKChwKSA9PiBwICE9PSBwbGF5YmFjayAmJiBwLmN1cnJlbnRTdGF0ZSA9PT0gUGxheWJhY2tTdGF0ZS5QbGF5aW5nKVxuICAgICAgICAgICAgLmZvckVhY2goKHApID0+IHAucGF1c2UoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3lQbGF5YmFja0luc3RhbmNlKHBsYXliYWNrOiBNYW5hZ2VkUGxheWJhY2spOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZXMgPSB0aGlzLmluc3RhbmNlcy5maWx0ZXIoKHApID0+IHAgIT09IHBsYXliYWNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlUGxheWJhY2tJbnN0YW5jZShidWY6IEFycmF5QnVmZmVyLCB3YXZlZm9ybSA9IERFRkFVTFRfV0FWRUZPUk0pOiBQbGF5YmFjayB7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IE1hbmFnZWRQbGF5YmFjayh0aGlzLCBidWYsIHdhdmVmb3JtKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZXMucHVzaChpbnN0YW5jZSk7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUcsZUFBZSxDQUFDO0VBQUFDLFlBQUE7SUFBQSxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLHFCQUdjLEVBQUU7RUFBQTtFQUV6QyxXQUFrQkMsUUFBUUEsQ0FBQSxFQUFvQjtJQUMxQyxJQUFJLENBQUNKLGVBQWUsQ0FBQ0ssZ0JBQWdCLEVBQUU7TUFDbkNMLGVBQWUsQ0FBQ0ssZ0JBQWdCLEdBQUcsSUFBSUwsZUFBZSxDQUFDLENBQUM7SUFDNUQ7SUFDQSxPQUFPQSxlQUFlLENBQUNLLGdCQUFnQjtFQUMzQzs7RUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0VBQ1dDLGNBQWNBLENBQUNDLFFBQW1CLEVBQVE7SUFDN0MsSUFBSSxDQUFDQyxTQUFTLENBQ1RDLE1BQU0sQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLEtBQUtILFFBQVEsSUFBSUcsQ0FBQyxDQUFDQyxZQUFZLEtBQUtDLHVCQUFhLENBQUNDLE9BQU8sQ0FBQyxDQUN6RUMsT0FBTyxDQUFFSixDQUFDLElBQUtBLENBQUMsQ0FBQ0ssS0FBSyxDQUFDLENBQUMsQ0FBQztFQUNsQztFQUVPQyx1QkFBdUJBLENBQUNULFFBQXlCLEVBQVE7SUFDNUQsSUFBSSxDQUFDQyxTQUFTLEdBQUcsSUFBSSxDQUFDQSxTQUFTLENBQUNDLE1BQU0sQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLEtBQUtILFFBQVEsQ0FBQztFQUNqRTtFQUVPVSxzQkFBc0JBLENBQUNDLEdBQWdCLEVBQUVDLFFBQVEsR0FBR0Msd0JBQWdCLEVBQVk7SUFDbkYsTUFBTWhCLFFBQVEsR0FBRyxJQUFJaUIsZ0NBQWUsQ0FBQyxJQUFJLEVBQUVILEdBQUcsRUFBRUMsUUFBUSxDQUFDO0lBQ3pELElBQUksQ0FBQ1gsU0FBUyxDQUFDYyxJQUFJLENBQUNsQixRQUFRLENBQUM7SUFDN0IsT0FBT0EsUUFBUTtFQUNuQjtBQUNKO0FBQUNtQixPQUFBLENBQUF2QixlQUFBLEdBQUFBLGVBQUE7QUFBQSxJQUFBRSxnQkFBQSxDQUFBQyxPQUFBLEVBaENZSCxlQUFlIiwiaWdub3JlTGlzdCI6W119