40 parentObject WRITE setParentObject NOTIFY parentObjectChanged)
68 enum class
Type : std::uint8_t
94 const units::sample_t frames_start,
95 const units::sample_t frames_end,
96 bool range_start_inclusive = true,
97 bool range_end_inclusive = false)
const
100 return (range_start_inclusive
101 ? (pos_samples >= frames_start)
102 : (pos_samples > frames_start))
103 && (range_end_inclusive ? (pos_samples <= frames_end) : (pos_samples < frames_end));
110 auto type ()
const {
return type_; }
114 return position_adapter_.get ();
118 ArrangerObjectLoopRange * loopRange ()
const {
return loop_range_.get (); }
119 ArrangerObjectName * name ()
const {
return name_.get (); }
120 ArrangerObjectColor * color ()
const {
return color_.get (); }
121 ArrangerObjectMuteFunctionality * mute ()
const {
return mute_.get (); }
122 ArrangerObjectFadeRange * fadeRange ()
const {
return fade_range_.get (); }
131 Q_SIGNAL
void parentObjectChanged (QObject * parentObject);
136 auto &get_tempo_map ()
const {
return tempo_map_; }
138 virtual std::vector<ArrangerObjectListModel *> get_child_list_models ()
const
144 enum class ArrangerObjectFeatures : std::uint8_t
155 Looping = LoopingBit | Bounds,
156 Region = Looping | Name | Color | Mute,
168 const dsp::TempoMap &tempo_map,
169 ArrangerObjectFeatures features,
170 QObject * parent =
nullptr) noexcept;
172 friend
void init_from (
175 utils::ObjectCloneType clone_type);
178 static constexpr auto kPositionKey =
"position"sv;
179 static constexpr auto kBoundsKey =
"bounds"sv;
180 static constexpr auto kLoopRangeKey =
"loop_range"sv;
181 static constexpr auto kFadeRangeKey =
"fadeRange"sv;
182 static constexpr auto kNameKey =
"name"sv;
183 static constexpr auto kColorKey =
"color"sv;
184 static constexpr auto kMuteKey =
"mute"sv;
186 to_json (nlohmann::json &j, const
ArrangerObject &arranger_object);
188 from_json (const nlohmann::json &j,
ArrangerObject &arranger_object);
193 const dsp::TempoMap &tempo_map_;
202 std::unique_ptr<dsp::AtomicPosition::TimeConversionFunctions>
203 time_conversion_funcs_;
206 dsp::AtomicPosition position_;
207 utils::QObjectUniquePtr<dsp::AtomicPositionQmlAdapter> position_adapter_;
225 BOOST_DESCRIBE_CLASS (
230 (type_, position_, bounds_, loop_range_, fade_range_, mute_, color_, name_))