37 parentObject WRITE setParentObject NOTIFY parentObjectChanged)
65 enum class
Type : std::uint8_t
90 const units::sample_t frames_start,
91 const units::sample_t frames_end,
92 bool range_start_inclusive = true,
93 bool range_end_inclusive = false)
const
96 return (range_start_inclusive
97 ? (pos_samples >= frames_start)
98 : (pos_samples > frames_start))
99 && (range_end_inclusive ? (pos_samples <= frames_end) : (pos_samples < frames_end));
106 auto type ()
const {
return type_; }
110 return position_adapter_.get ();
114 ArrangerObjectLoopRange * loopRange ()
const {
return loop_range_.get (); }
115 ArrangerObjectName * name ()
const {
return name_.get (); }
116 ArrangerObjectColor * color ()
const {
return color_.get (); }
117 ArrangerObjectMuteFunctionality * mute ()
const {
return mute_.get (); }
118 ArrangerObjectFadeRange * fadeRange ()
const {
return fade_range_.get (); }
127 Q_SIGNAL
void parentObjectChanged (QObject * parentObject);
132 auto &get_tempo_map ()
const {
return tempo_map_; }
135 enum class ArrangerObjectFeatures : std::uint8_t
146 Looping = LoopingBit | Bounds,
147 Region = Looping | Name | Color | Mute,
159 const dsp::TempoMap &tempo_map,
160 ArrangerObjectFeatures features,
161 QObject * parent =
nullptr) noexcept;
163 friend
void init_from (
166 utils::ObjectCloneType clone_type);
169 static constexpr auto kPositionKey =
"position"sv;
170 static constexpr auto kBoundsKey =
"bounds"sv;
171 static constexpr auto kLoopRangeKey =
"loop_range"sv;
172 static constexpr auto kFadeRangeKey =
"fadeRange"sv;
173 static constexpr auto kNameKey =
"name"sv;
174 static constexpr auto kColorKey =
"color"sv;
175 static constexpr auto kMuteKey =
"mute"sv;
177 to_json (nlohmann::json &j, const
ArrangerObject &arranger_object);
179 from_json (const nlohmann::json &j,
ArrangerObject &arranger_object);
184 const dsp::TempoMap &tempo_map_;
193 std::unique_ptr<dsp::AtomicPosition::TimeConversionFunctions>
194 time_conversion_funcs_;
197 dsp::AtomicPosition position_;
198 utils::QObjectUniquePtr<dsp::AtomicPositionQmlAdapter> position_adapter_;
216 BOOST_DESCRIBE_CLASS (
221 (type_, position_, bounds_, loop_range_, fade_range_, mute_, color_, name_))