25class WaveformCanvasRenderer :
public QCanvasPainterItemRenderer
28 WaveformCanvasRenderer () =
default;
29 Q_DISABLE_COPY_MOVE (WaveformCanvasRenderer)
31 void synchronize (QCanvasPainterItem * item)
override;
32 void paint (QCanvasPainter * painter)
override;
41 using ChannelPeaks = std::vector<Peak>;
43 void compute_peaks ();
46 QColor waveform_color_;
47 QColor outline_color_;
48 float canvas_width_ = 0.0f;
49 float canvas_height_ = 0.0f;
52 const juce::AudioSampleBuffer * audio_buffer_ =
nullptr;
55 std::vector<ChannelPeaks> peaks_;
56 int num_channels_ = 0;
59 uint64_t prev_generation_ = 0;
60 float prev_width_ = 0.0f;
61 float prev_height_ = 0.0f;