110class WaveformCanvasRenderer :
public QCanvasPainterItemRenderer
113 WaveformCanvasRenderer () =
default;
114 Q_DISABLE_COPY_MOVE (WaveformCanvasRenderer)
116 void synchronize (QCanvasPainterItem * item)
override;
117 void paint (QCanvasPainter * painter)
override;
120 void compute_peaks ();
123 QColor waveform_color_;
124 QColor outline_color_;
125 float canvas_width_ = 0.0f;
126 float canvas_height_ = 0.0f;
129 qreal reference_width_ = 0;
130 qreal reference_x_ = 0;
133 bool has_loop_ =
false;
134 int64_t loop_wrap_start_ = 0;
135 int64_t loop_wrap_length_ = 0;
138 const juce::AudioSampleBuffer * audio_buffer_ =
nullptr;
141 std::vector<int64_t> pixel_frames_;
144 std::vector<std::vector<WaveformPeak>> peaks_;
145 int num_channels_ = 0;
148 uint64_t prev_generation_ = 0;
149 float prev_width_ = 0.0f;
150 float prev_height_ = 0.0f;
151 qreal prev_reference_width_ = 0;
152 qreal prev_reference_x_ = 0;