Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
audio_region_waveform_canvas_item.h
1// SPDX-FileCopyrightText: © 2026 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "gui/qquick/waveform_canvas_item.h"
7
8#include <QPointer>
9#include <QtQmlIntegration/qqmlintegration.h>
10
11namespace zrythm::structure::arrangement
12{
13class AudioRegion;
14}
15
16namespace zrythm::gui::qquick
17{
18
25class AudioRegionWaveformCanvasItem : public WaveformCanvasItem
26{
27 Q_OBJECT
28 QML_NAMED_ELEMENT (AudioRegionWaveformCanvas)
29
30 Q_PROPERTY (QObject * region READ region WRITE setRegion NOTIFY regionChanged)
31
32public:
33 explicit AudioRegionWaveformCanvasItem (QQuickItem * parent = nullptr);
34
35 QObject * region () const { return region_; }
36 void setRegion (QObject * region);
37
38Q_SIGNALS:
39 void regionChanged ();
40
41private:
42 void re_serialize_buffer ();
43
44 QObject * region_ = nullptr;
45 QPointer<structure::arrangement::AudioRegion> audio_region_;
46 std::vector<QMetaObject::Connection> region_connections_;
47};
48
49} // namespace zrythm::gui::qquick
A region for playing back audio samples.