6#include "structure/tracks/automation_tracklist.h"
7#include "structure/tracks/track.h"
8#include "structure/tracks/track_processor.h"
10#define DEFINE_PROCESSABLE_TRACK_QML_PROPERTIES(ClassType) \
13 zrythm::structure::tracks::AutomationTracklist * automationTracklist READ \
14 automationTracklist CONSTANT)
16namespace zrythm::structure::tracks
29class ProcessableTrack :
virtual public Track
36 Dependencies dependencies);
38 ~ProcessableTrack ()
override =
default;
39 Z_DISABLE_COPY_MOVE (ProcessableTrack)
43 return automation_tracklist_.get ();
47 friend void init_from (
48 ProcessableTrack &obj,
49 const ProcessableTrack &other,
53 static constexpr auto kProcessorKey =
"processor"sv;
54 static constexpr auto kAutomationTracklistKey =
"automationTracklist"sv;
55 friend void to_json (nlohmann::json &j,
const ProcessableTrack &p)
58 j[kAutomationTracklistKey] = p.automation_tracklist_;
60 friend void from_json (
const nlohmann::json &j, ProcessableTrack &p);
74using ProcessableTrackVariant = std::variant<
85using ProcessableTrackPtrVariant = to_pointer_variant<ProcessableTrackVariant>;
An audio bus track that can be processed and has channels.
An audio group track that can be folded and is a target for other tracks.
Track containing AudioRegion's.
A container that manages a list of automation tracks.
The ChordTrack class is responsible for managing the chord and scale information in the project.
A track that processes MIDI data.
A track that can host modulator plugins.
utils::QObjectUniquePtr< TrackProcessor > processor_
The TrackProcessor, used for processing.
A TrackProcessor is a standalone processor that is used as the first step when processing a track in ...
Track(Type type, PortType in_signal_type, PortType out_signal_type, BaseTrackDependencies dependencies)
Constructor to be used by subclasses.
A unique pointer for QObject objects that also works with QObject-based ownership.