Zrythm v2.0.0-alpha.1
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::gui::qquick::WaveformCanvasItem Class Reference

Generic base for hardware-accelerated waveform rendering. More...

#include <src/gui/qquick/waveform_canvas_item.h>

Inheritance diagram for zrythm::gui::qquick::WaveformCanvasItem:
Collaboration diagram for zrythm::gui::qquick::WaveformCanvasItem:

Signals

void waveformColorChanged ()
void outlineColorChanged ()
Signals inherited from zrythm::gui::qquick::ClipCanvasItemBase
void referenceWidthChanged ()
void referenceXChanged ()
void loopPreviewChanged ()

Public Member Functions

 WaveformCanvasItem (QQuickItem *parent=nullptr)
QCanvasPainterItemRenderer * createItemRenderer () const override
QColor waveformColor () const
void setWaveformColor (const QColor &color)
QColor outlineColor () const
void setOutlineColor (const QColor &color)
const juce::AudioSampleBuffer * audioBuffer () const
uint64_t bufferGeneration () const
 Monotonically increasing counter bumped on each buffer change.
Public Member Functions inherited from zrythm::gui::qquick::ClipCanvasItemBase
 ClipCanvasItemBase (QQuickItem *parent=nullptr)
qreal referenceWidth () const
void setReferenceWidth (qreal w)
qreal referenceX () const
void setReferenceX (qreal x)
qreal effectiveReferenceWidth () const
 Returns referenceWidth if set (> 0), otherwise the actual width().
bool loopPreview () const
 When true, the renderer wraps content into the loop region even if the clip is not currently looped.
void setLoopPreview (bool preview)

Protected Member Functions

void notifyBufferChanged ()
 Bumps the generation counter and schedules a repaint.

Protected Attributes

juce::AudioSampleBuffer audio_buffer_

Properties

QColor waveformColor
QColor outlineColor
Properties inherited from zrythm::gui::qquick::ClipCanvasItemBase
qreal referenceWidth
qreal referenceX
bool loopPreview

Detailed Description

Generic base for hardware-accelerated waveform rendering.

Owns the audio buffer storage and visual properties. Subclasses provide the buffer data by calling setAudioBuffer(). Not registered to QML — use a derived class for QML usage.

Definition at line 24 of file waveform_canvas_item.h.

Member Function Documentation

◆ audioBuffer()

const juce::AudioSampleBuffer * zrythm::gui::qquick::WaveformCanvasItem::audioBuffer ( ) const
inline

Definition at line 41 of file waveform_canvas_item.h.

◆ bufferGeneration()

uint64_t zrythm::gui::qquick::WaveformCanvasItem::bufferGeneration ( ) const
inline

Monotonically increasing counter bumped on each buffer change.

The renderer compares this against its own stored value to decide whether peak recomputation is needed — pure read-only access.

Definition at line 52 of file waveform_canvas_item.h.

◆ notifyBufferChanged()

void zrythm::gui::qquick::WaveformCanvasItem::notifyBufferChanged ( )
protected

Bumps the generation counter and schedules a repaint.

Call after writing directly into audio_buffer_.

◆ outlineColor()

QColor zrythm::gui::qquick::WaveformCanvasItem::outlineColor ( ) const
inline

Definition at line 38 of file waveform_canvas_item.h.

◆ waveformColor()

QColor zrythm::gui::qquick::WaveformCanvasItem::waveformColor ( ) const
inline

Definition at line 36 of file waveform_canvas_item.h.

Field Documentation

◆ audio_buffer_

juce::AudioSampleBuffer zrythm::gui::qquick::WaveformCanvasItem::audio_buffer_
protected

Definition at line 62 of file waveform_canvas_item.h.

Property Documentation

◆ outlineColor

QColor zrythm::gui::qquick::WaveformCanvasItem::outlineColor
readwrite

Definition at line 29 of file waveform_canvas_item.h.

◆ waveformColor

QColor zrythm::gui::qquick::WaveformCanvasItem::waveformColor
readwrite

Definition at line 28 of file waveform_canvas_item.h.


The documentation for this class was generated from the following file: