6#include "utils/uuid_identifiable_object.h"
7#include "utils/variant_helpers.h"
9namespace zrythm::structure::tracks
27using TrackVariant = std::variant<
41using TrackUuid = utils::UuidIdentifiableObject<Track>::Uuid;
43template <
typename TrackT>
45 std::is_same_v<TrackT, MarkerTrack> || std::is_same_v<TrackT, InstrumentTrack>
46 || std::is_same_v<TrackT, MidiTrack> || std::is_same_v<TrackT, MasterTrack>
47 || std::is_same_v<TrackT, MidiGroupTrack>
48 || std::is_same_v<TrackT, AudioGroupTrack>
49 || std::is_same_v<TrackT, FolderTrack> || std::is_same_v<TrackT, MidiBusTrack>
50 || std::is_same_v<TrackT, AudioBusTrack> || std::is_same_v<TrackT, AudioTrack>
51 || std::is_same_v<TrackT, ChordTrack>
52 || std::is_same_v<TrackT, ModulatorTrack>;
54template <
typename TrackT>
56 std::is_same_v<TrackT, AudioGroupTrack>
57 || std::is_same_v<TrackT, MidiGroupTrack>
58 || std::is_same_v<TrackT, FolderTrack>;
60template <
typename TrackT>
62 std::is_same_v<TrackT, AudioTrack> || std::is_same_v<TrackT, ChordTrack>
63 || std::is_same_v<TrackT, InstrumentTrack>
64 || std::is_same_v<TrackT, MidiTrack>;
66template <
typename TrackT>
68 std::is_same_v<TrackT, InstrumentTrack> || std::is_same_v<TrackT, MidiTrack>
69 || std::is_same_v<TrackT, MasterTrack>
70 || std::is_same_v<TrackT, MidiGroupTrack>
71 || std::is_same_v<TrackT, AudioGroupTrack>
72 || std::is_same_v<TrackT, MidiBusTrack>
73 || std::is_same_v<TrackT, AudioBusTrack> || std::is_same_v<TrackT, AudioTrack>
74 || std::is_same_v<TrackT, ChordTrack>;
76template <
typename TrackT>
80template <
typename TrackT>
82 std::is_same_v<TrackT, InstrumentTrack> || std::is_same_v<TrackT, MidiTrack>;
84enum class ClipQuantizeOption : uint8_t
94Q_ENUM_NS (ClipQuantizeOption)
97DEFINE_UUID_HASH_SPECIALIZATION (zrythm::structure::tracks::TrackUuid);
An audio bus track that can be processed and has channels.
A track that can be folded and can be a target for other tracks.
Track containing AudioClip's.
The ChordTrack class is responsible for managing the chord and scale information in the project.
A track that can contain other tracks.
A track that processes MIDI data.
A track that can host modulator plugins.
Represents a track in the project.
typename to_pointer_variant_impl< Variant >::type to_pointer_variant
Converts a variant to a variant of pointers.