Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
audio_lane.h
1// SPDX-FileCopyrightText: © 2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include <QObject>
7#include <qqmlintegration.h>
8
9#include "track_lane.h"
10
11namespace zrythm::structure::tracks
12{
13class AudioLane final
14 : public QObject,
15 public TrackLaneImpl<arrangement::AudioRegion>
16{
17 Q_OBJECT
18 QML_ELEMENT
19 DEFINE_TRACK_LANE_QML_PROPERTIES (AudioLane, arrangement::AudioRegion)
20
21public:
22 using AudioRegion = arrangement::AudioRegion;
23 using RegionT = AudioRegion;
24
25public:
30 structure::arrangement::ArrangerObjectRegistry &registry,
31 dsp::FileAudioSourceRegistry &file_audio_source_registry,
33
34 friend void init_from (
35 AudioLane &obj,
36 const AudioLane &other,
37 utils::ObjectCloneType clone_type);
38
39private:
40 friend void to_json (nlohmann::json &j, const AudioLane &lane)
41 {
42 to_json (j, static_cast<const TrackLaneImpl &> (lane));
43 }
44 friend void from_json (const nlohmann::json &j, AudioLane &lane)
45 {
46 from_json (j, static_cast<TrackLaneImpl &> (lane));
47 }
48};
49}
A region for playing back audio samples.
AudioLane(structure::arrangement::ArrangerObjectRegistry &registry, dsp::FileAudioSourceRegistry &file_audio_source_registry, LanedTrackImpl< AudioLane > *track)
Interface for a track that has lanes.
Definition laned_track.h:89
A TrackLane belongs to a Track (can have many TrackLanes in a Track) and contains Regions.
Definition track_lane.h:129
TrackLaneImpl(structure::arrangement::ArrangerObjectRegistry &registry, dsp::FileAudioSourceRegistry &file_audio_source_registry, LanedTrackT *track, QObject &derived)
Definition track_lane.h:154