UNPKG

matrix-react-sdk

Version:
63 lines (50 loc) 6.94 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("../../../voice/VoiceRecording"); var _replaceableComponent = require("../../../utils/replaceableComponent"); var _arrays = require("../../../utils/arrays"); var _numbers = require("../../../utils/numbers"); var _Waveform = _interopRequireDefault(require("./Waveform")); var _dec, _class, _temp; let LiveRecordingWaveform = ( /** * A waveform which shows the waveform of a live recording */ _dec = (0, _replaceableComponent.replaceableComponent)("views.voice_messages.LiveRecordingWaveform"), _dec(_class = (_temp = class LiveRecordingWaveform extends _react.default.PureComponent /*:: <IProps, IState>*/ { constructor(props) { super(props); (0, _defineProperty2.default)(this, "onRecordingUpdate", (update /*: IRecordingUpdate*/ ) => { // The waveform and the downsample target are pretty close, so we should be fine to // do this, despite the docs on arrayFastResample. const bars = (0, _arrays.arrayFastResample)(Array.from(update.waveform), _VoiceRecording.RECORDING_PLAYBACK_SAMPLES); this.setState({ // The incoming data is between zero and one, but typically even screaming into a // microphone won't send you over 0.6, so we artificially adjust the gain for the // waveform. This results in a slightly more cinematic/animated waveform for the // user. heights: bars.map(b => (0, _numbers.percentageOf)(b, 0, 0.50)) }); }); this.state = { heights: (0, _arrays.arraySeed)(0, _VoiceRecording.RECORDING_PLAYBACK_SAMPLES) }; this.props.recorder.liveData.onUpdate(this.onRecordingUpdate); } render() { return /*#__PURE__*/_react.default.createElement(_Waveform.default, { relHeights: this.state.heights }); } }, _temp)) || _class); exports.default = LiveRecordingWaveform; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3ZvaWNlX21lc3NhZ2VzL0xpdmVSZWNvcmRpbmdXYXZlZm9ybS50c3giXSwibmFtZXMiOlsiTGl2ZVJlY29yZGluZ1dhdmVmb3JtIiwiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInVwZGF0ZSIsImJhcnMiLCJBcnJheSIsImZyb20iLCJ3YXZlZm9ybSIsIlJFQ09SRElOR19QTEFZQkFDS19TQU1QTEVTIiwic2V0U3RhdGUiLCJoZWlnaHRzIiwibWFwIiwiYiIsInN0YXRlIiwicmVjb3JkZXIiLCJsaXZlRGF0YSIsIm9uVXBkYXRlIiwib25SZWNvcmRpbmdVcGRhdGUiLCJyZW5kZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBZ0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0lBY3FCQSxxQjtBQUpyQjtBQUNBO0FBQ0E7T0FDQyxnREFBcUIsNENBQXJCLEMseUJBQUQsTUFDcUJBLHFCQURyQixTQUNtREMsZUFBTUM7QUFEekQ7QUFDdUY7QUFDNUVDLEVBQUFBLFdBQVAsQ0FBbUJDLEtBQW5CLEVBQTBCO0FBQ3RCLFVBQU1BLEtBQU47QUFEc0IsNkRBT0UsQ0FBQ0M7QUFBRDtBQUFBLFNBQThCO0FBQ3REO0FBQ0E7QUFDQSxZQUFNQyxJQUFJLEdBQUcsK0JBQWtCQyxLQUFLLENBQUNDLElBQU4sQ0FBV0gsTUFBTSxDQUFDSSxRQUFsQixDQUFsQixFQUErQ0MsMENBQS9DLENBQWI7QUFDQSxXQUFLQyxRQUFMLENBQWM7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBQyxRQUFBQSxPQUFPLEVBQUVOLElBQUksQ0FBQ08sR0FBTCxDQUFTQyxDQUFDLElBQUksMkJBQWFBLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsSUFBbkIsQ0FBZDtBQUxDLE9BQWQ7QUFPSCxLQWxCeUI7QUFHdEIsU0FBS0MsS0FBTCxHQUFhO0FBQUNILE1BQUFBLE9BQU8sRUFBRSx1QkFBVSxDQUFWLEVBQWFGLDBDQUFiO0FBQVYsS0FBYjtBQUNBLFNBQUtOLEtBQUwsQ0FBV1ksUUFBWCxDQUFvQkMsUUFBcEIsQ0FBNkJDLFFBQTdCLENBQXNDLEtBQUtDLGlCQUEzQztBQUNIOztBQWVNQyxFQUFBQSxNQUFQLEdBQWdCO0FBQ1osd0JBQU8sNkJBQUMsaUJBQUQ7QUFBVSxNQUFBLFVBQVUsRUFBRSxLQUFLTCxLQUFMLENBQVdIO0FBQWpDLE1BQVA7QUFDSDs7QUF2QmtGLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge0lSZWNvcmRpbmdVcGRhdGUsIFJFQ09SRElOR19QTEFZQkFDS19TQU1QTEVTLCBWb2ljZVJlY29yZGluZ30gZnJvbSBcIi4uLy4uLy4uL3ZvaWNlL1ZvaWNlUmVjb3JkaW5nXCI7XG5pbXBvcnQge3JlcGxhY2VhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVwbGFjZWFibGVDb21wb25lbnRcIjtcbmltcG9ydCB7YXJyYXlGYXN0UmVzYW1wbGUsIGFycmF5U2VlZH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2FycmF5c1wiO1xuaW1wb3J0IHtwZXJjZW50YWdlT2Z9IGZyb20gXCIuLi8uLi8uLi91dGlscy9udW1iZXJzXCI7XG5pbXBvcnQgV2F2ZWZvcm0gZnJvbSBcIi4vV2F2ZWZvcm1cIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgcmVjb3JkZXI6IFZvaWNlUmVjb3JkaW5nO1xufVxuXG5pbnRlcmZhY2UgSVN0YXRlIHtcbiAgICBoZWlnaHRzOiBudW1iZXJbXTtcbn1cblxuLyoqXG4gKiBBIHdhdmVmb3JtIHdoaWNoIHNob3dzIHRoZSB3YXZlZm9ybSBvZiBhIGxpdmUgcmVjb3JkaW5nXG4gKi9cbkByZXBsYWNlYWJsZUNvbXBvbmVudChcInZpZXdzLnZvaWNlX21lc3NhZ2VzLkxpdmVSZWNvcmRpbmdXYXZlZm9ybVwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl2ZVJlY29yZGluZ1dhdmVmb3JtIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJUHJvcHMsIElTdGF0ZT4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtoZWlnaHRzOiBhcnJheVNlZWQoMCwgUkVDT1JESU5HX1BMQVlCQUNLX1NBTVBMRVMpfTtcbiAgICAgICAgdGhpcy5wcm9wcy5yZWNvcmRlci5saXZlRGF0YS5vblVwZGF0ZSh0aGlzLm9uUmVjb3JkaW5nVXBkYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUmVjb3JkaW5nVXBkYXRlID0gKHVwZGF0ZTogSVJlY29yZGluZ1VwZGF0ZSkgPT4ge1xuICAgICAgICAvLyBUaGUgd2F2ZWZvcm0gYW5kIHRoZSBkb3duc2FtcGxlIHRhcmdldCBhcmUgcHJldHR5IGNsb3NlLCBzbyB3ZSBzaG91bGQgYmUgZmluZSB0b1xuICAgICAgICAvLyBkbyB0aGlzLCBkZXNwaXRlIHRoZSBkb2NzIG9uIGFycmF5RmFzdFJlc2FtcGxlLlxuICAgICAgICBjb25zdCBiYXJzID0gYXJyYXlGYXN0UmVzYW1wbGUoQXJyYXkuZnJvbSh1cGRhdGUud2F2ZWZvcm0pLCBSRUNPUkRJTkdfUExBWUJBQ0tfU0FNUExFUyk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgLy8gVGhlIGluY29taW5nIGRhdGEgaXMgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIGJ1dCB0eXBpY2FsbHkgZXZlbiBzY3JlYW1pbmcgaW50byBhXG4gICAgICAgICAgICAvLyBtaWNyb3Bob25lIHdvbid0IHNlbmQgeW91IG92ZXIgMC42LCBzbyB3ZSBhcnRpZmljaWFsbHkgYWRqdXN0IHRoZSBnYWluIGZvciB0aGVcbiAgICAgICAgICAgIC8vIHdhdmVmb3JtLiBUaGlzIHJlc3VsdHMgaW4gYSBzbGlnaHRseSBtb3JlIGNpbmVtYXRpYy9hbmltYXRlZCB3YXZlZm9ybSBmb3IgdGhlXG4gICAgICAgICAgICAvLyB1c2VyLlxuICAgICAgICAgICAgaGVpZ2h0czogYmFycy5tYXAoYiA9PiBwZXJjZW50YWdlT2YoYiwgMCwgMC41MCkpLFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIDxXYXZlZm9ybSByZWxIZWlnaHRzPXt0aGlzLnN0YXRlLmhlaWdodHN9IC8+O1xuICAgIH1cbn1cbiJdfQ==