Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
timeline_object.h
1// SPDX-FileCopyrightText: © 2024-2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "structure/arrangement/arranger_object.h"
7
8namespace zrythm::structure::arrangement
9{
10
19class TimelineObject : virtual public ArrangerObject
20{
21protected:
22 TimelineObject () noexcept { }
23
24public:
25 ~TimelineObject () noexcept override = default;
26 Z_DISABLE_COPY_MOVE (TimelineObject)
27
28protected:
29 friend void init_from (
30 TimelineObject &obj,
31 const TimelineObject &other,
32 utils::ObjectCloneType clone_type);
33
34 BOOST_DESCRIBE_CLASS (TimelineObject, (ArrangerObject), (), (), ())
35};
36
37using TimelineObjectVariant = std::
38 variant<ScaleObject, MidiRegion, AudioRegion, ChordRegion, AutomationRegion, Marker>;
39using TimelineObjectPtrVariant = to_pointer_variant<TimelineObjectVariant>;
40
41}