25class WaveformCanvasRenderer :
public QCanvasPainterItemRenderer
28 WaveformCanvasRenderer () =
default;
29 ~WaveformCanvasRenderer ()
override =
default;
31 void initializeResources (QCanvasPainter * painter)
override;
32 void synchronize (QCanvasPainterItem * item)
override;
33 void paint (QCanvasPainter * painter)
override;
42 using ChannelPeaks = std::vector<Peak>;
44 void compute_peaks ();
47 QColor waveform_color_;
48 QColor outline_color_;
49 float canvas_width_ = 0.0f;
50 float canvas_height_ = 0.0f;
53 const juce::AudioSampleBuffer * audio_buffer_ =
nullptr;
56 std::vector<ChannelPeaks> peaks_;
57 int num_channels_ = 0;
60 uint64_t prev_generation_ = 0;
61 float prev_width_ = 0.0f;
62 float prev_height_ = 0.0f;