From e045aa940e98a216f7443e1c60e2192208d3f88a Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 12 Jul 2021 14:11:24 -0600 Subject: [PATCH] Be smart with readonly --- .../views/rooms/VoiceRecordComposerTile.tsx | 2 +- src/voice/Playback.ts | 15 ++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/components/views/rooms/VoiceRecordComposerTile.tsx b/src/components/views/rooms/VoiceRecordComposerTile.tsx index 701a5e99ef..709eab82a0 100644 --- a/src/components/views/rooms/VoiceRecordComposerTile.tsx +++ b/src/components/views/rooms/VoiceRecordComposerTile.tsx @@ -95,7 +95,7 @@ export default class VoiceRecordComposerTile extends React.PureComponent Math.round(v * 1024)), + waveform: this.state.recorder.getPlayback().thumbnailWaveform.map(v => Math.round(v * 1024)), }, "org.matrix.msc3245.voice": {}, // No content, this is a rendering hint }); diff --git a/src/voice/Playback.ts b/src/voice/Playback.ts index 9f46530de4..1a1ee54466 100644 --- a/src/voice/Playback.ts +++ b/src/voice/Playback.ts @@ -52,12 +52,17 @@ function makePlaybackWaveform(input: number[]): number[] { } export class Playback extends EventEmitter implements IDestroyable { + /** + * Stable waveform for representing a thumbnail of the media. Values are + * guaranteed to be between zero and one, inclusive. + */ + public readonly thumbnailWaveform: number[]; + private readonly context: AudioContext; private source: AudioBufferSourceNode; private state = PlaybackState.Decoding; private audioBuf: AudioBuffer; private resampledWaveform: number[]; - private thumbnailWaveform: number[]; private waveformObservable = new SimpleObservable(); private readonly clock: PlaybackClock; private readonly fileSize: number; @@ -95,14 +100,6 @@ export class Playback extends EventEmitter implements IDestroyable { return this.resampledWaveform; } - /** - * Stable waveform for representing a thumbnail of the media. Values are - * guaranteed to be between zero and one, inclusive. - */ - public get waveformThumbnail(): number[] { - return this.thumbnailWaveform; - } - public get waveformData(): SimpleObservable { return this.waveformObservable; }