UNPKG

matrix-react-sdk

Version:
56 lines (53 loc) 7.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _VoiceRecording = require("../../../audio/VoiceRecording"); var _arrays = require("../../../utils/arrays"); var _Waveform = _interopRequireDefault(require("./Waveform")); var _MarkedExecution = require("../../../utils/MarkedExecution"); /* 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. */ /** * A waveform which shows the waveform of a live recording */ class LiveRecordingWaveform extends _react.default.PureComponent { constructor(props) { super(props); (0, _defineProperty2.default)(this, "waveform", []); (0, _defineProperty2.default)(this, "scheduledUpdate", new _MarkedExecution.MarkedExecution(() => this.updateWaveform(), () => requestAnimationFrame(() => this.scheduledUpdate.trigger()))); this.state = { waveform: (0, _arrays.arraySeed)(0, _VoiceRecording.RECORDING_PLAYBACK_SAMPLES) }; } componentDidMount() { this.props.recorder.liveData.onUpdate(update => { // The incoming data is between zero and one, so we don't need to clamp/rescale it. this.waveform = (0, _arrays.arrayFastResample)(Array.from(update.waveform), _VoiceRecording.RECORDING_PLAYBACK_SAMPLES); this.scheduledUpdate.mark(); }); } updateWaveform() { this.setState({ waveform: this.waveform }); } render() { return /*#__PURE__*/_react.default.createElement(_Waveform.default, { relHeights: this.state.waveform }); } } exports.default = LiveRecordingWaveform; (0, _defineProperty2.default)(LiveRecordingWaveform, "defaultProps", { progress: 1 }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Wb2ljZVJlY29yZGluZyIsIl9hcnJheXMiLCJfV2F2ZWZvcm0iLCJfTWFya2VkRXhlY3V0aW9uIiwiTGl2ZVJlY29yZGluZ1dhdmVmb3JtIiwiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiTWFya2VkRXhlY3V0aW9uIiwidXBkYXRlV2F2ZWZvcm0iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJzY2hlZHVsZWRVcGRhdGUiLCJ0cmlnZ2VyIiwic3RhdGUiLCJ3YXZlZm9ybSIsImFycmF5U2VlZCIsIlJFQ09SRElOR19QTEFZQkFDS19TQU1QTEVTIiwiY29tcG9uZW50RGlkTW91bnQiLCJyZWNvcmRlciIsImxpdmVEYXRhIiwib25VcGRhdGUiLCJ1cGRhdGUiLCJhcnJheUZhc3RSZXNhbXBsZSIsIkFycmF5IiwiZnJvbSIsIm1hcmsiLCJzZXRTdGF0ZSIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJyZWxIZWlnaHRzIiwiZXhwb3J0cyIsInByb2dyZXNzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3MvYXVkaW9fbWVzc2FnZXMvTGl2ZVJlY29yZGluZ1dhdmVmb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IElSZWNvcmRpbmdVcGRhdGUsIFJFQ09SRElOR19QTEFZQkFDS19TQU1QTEVTIH0gZnJvbSBcIi4uLy4uLy4uL2F1ZGlvL1ZvaWNlUmVjb3JkaW5nXCI7XG5pbXBvcnQgeyBhcnJheUZhc3RSZXNhbXBsZSwgYXJyYXlTZWVkIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2FycmF5c1wiO1xuaW1wb3J0IFdhdmVmb3JtIGZyb20gXCIuL1dhdmVmb3JtXCI7XG5pbXBvcnQgeyBNYXJrZWRFeGVjdXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvTWFya2VkRXhlY3V0aW9uXCI7XG5pbXBvcnQgeyBWb2ljZU1lc3NhZ2VSZWNvcmRpbmcgfSBmcm9tIFwiLi4vLi4vLi4vYXVkaW8vVm9pY2VNZXNzYWdlUmVjb3JkaW5nXCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIHJlY29yZGVyOiBWb2ljZU1lc3NhZ2VSZWNvcmRpbmc7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIHdhdmVmb3JtOiBudW1iZXJbXTtcbn1cblxuLyoqXG4gKiBBIHdhdmVmb3JtIHdoaWNoIHNob3dzIHRoZSB3YXZlZm9ybSBvZiBhIGxpdmUgcmVjb3JkaW5nXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpdmVSZWNvcmRpbmdXYXZlZm9ybSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBwdWJsaWMgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgcHJvZ3Jlc3M6IDEsXG4gICAgfTtcblxuICAgIHByaXZhdGUgd2F2ZWZvcm06IG51bWJlcltdID0gW107XG4gICAgcHJpdmF0ZSBzY2hlZHVsZWRVcGRhdGU6IE1hcmtlZEV4ZWN1dGlvbiA9IG5ldyBNYXJrZWRFeGVjdXRpb24oXG4gICAgICAgICgpID0+IHRoaXMudXBkYXRlV2F2ZWZvcm0oKSxcbiAgICAgICAgKCkgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMuc2NoZWR1bGVkVXBkYXRlLnRyaWdnZXIoKSksXG4gICAgKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogSVByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHdhdmVmb3JtOiBhcnJheVNlZWQoMCwgUkVDT1JESU5HX1BMQVlCQUNLX1NBTVBMRVMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wcy5yZWNvcmRlci5saXZlRGF0YS5vblVwZGF0ZSgodXBkYXRlOiBJUmVjb3JkaW5nVXBkYXRlKSA9PiB7XG4gICAgICAgICAgICAvLyBUaGUgaW5jb21pbmcgZGF0YSBpcyBiZXR3ZWVuIHplcm8gYW5kIG9uZSwgc28gd2UgZG9uJ3QgbmVlZCB0byBjbGFtcC9yZXNjYWxlIGl0LlxuICAgICAgICAgICAgdGhpcy53YXZlZm9ybSA9IGFycmF5RmFzdFJlc2FtcGxlKEFycmF5LmZyb20odXBkYXRlLndhdmVmb3JtKSwgUkVDT1JESU5HX1BMQVlCQUNLX1NBTVBMRVMpO1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWRVcGRhdGUubWFyaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVdhdmVmb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgd2F2ZWZvcm06IHRoaXMud2F2ZWZvcm0gfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICByZXR1cm4gPFdhdmVmb3JtIHJlbEhlaWdodHM9e3RoaXMuc3RhdGUud2F2ZWZvcm19IC8+O1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBa0JBO0FBQ0E7QUFDQTtBQUNlLE1BQU1LLHFCQUFxQixTQUFTQyxjQUFLLENBQUNDLGFBQWEsQ0FBaUI7RUFXNUVDLFdBQVdBLENBQUNDLEtBQWEsRUFBRTtJQUM5QixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUFDLElBQUFDLGdCQUFBLENBQUFDLE9BQUEsb0JBUFksRUFBRTtJQUFBLElBQUFELGdCQUFBLENBQUFDLE9BQUEsMkJBQ1ksSUFBSUMsZ0NBQWUsQ0FDMUQsTUFBTSxJQUFJLENBQUNDLGNBQWMsQ0FBQyxDQUFDLEVBQzNCLE1BQU1DLHFCQUFxQixDQUFDLE1BQU0sSUFBSSxDQUFDQyxlQUFlLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQ3BFLENBQUM7SUFJRyxJQUFJLENBQUNDLEtBQUssR0FBRztNQUNUQyxRQUFRLEVBQUUsSUFBQUMsaUJBQVMsRUFBQyxDQUFDLEVBQUVDLDBDQUEwQjtJQUNyRCxDQUFDO0VBQ0w7RUFFT0MsaUJBQWlCQSxDQUFBLEVBQVM7SUFDN0IsSUFBSSxDQUFDWixLQUFLLENBQUNhLFFBQVEsQ0FBQ0MsUUFBUSxDQUFDQyxRQUFRLENBQUVDLE1BQXdCLElBQUs7TUFDaEU7TUFDQSxJQUFJLENBQUNQLFFBQVEsR0FBRyxJQUFBUSx5QkFBaUIsRUFBQ0MsS0FBSyxDQUFDQyxJQUFJLENBQUNILE1BQU0sQ0FBQ1AsUUFBUSxDQUFDLEVBQUVFLDBDQUEwQixDQUFDO01BQzFGLElBQUksQ0FBQ0wsZUFBZSxDQUFDYyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUM7RUFDTjtFQUVRaEIsY0FBY0EsQ0FBQSxFQUFTO0lBQzNCLElBQUksQ0FBQ2lCLFFBQVEsQ0FBQztNQUFFWixRQUFRLEVBQUUsSUFBSSxDQUFDQTtJQUFTLENBQUMsQ0FBQztFQUM5QztFQUVPYSxNQUFNQSxDQUFBLEVBQW9CO0lBQzdCLG9CQUFPakMsTUFBQSxDQUFBYSxPQUFBLENBQUFxQixhQUFBLENBQUM3QixTQUFBLENBQUFRLE9BQVE7TUFBQ3NCLFVBQVUsRUFBRSxJQUFJLENBQUNoQixLQUFLLENBQUNDO0lBQVMsQ0FBRSxDQUFDO0VBQ3hEO0FBQ0o7QUFBQ2dCLE9BQUEsQ0FBQXZCLE9BQUEsR0FBQU4scUJBQUE7QUFBQSxJQUFBSyxnQkFBQSxDQUFBQyxPQUFBLEVBakNvQk4scUJBQXFCLGtCQUNUO0VBQ3pCOEIsUUFBUSxFQUFFO0FBQ2QsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==