12class ArrangerObjectFadeRange :
public QObject
26 ArrangerObjectFadeRange (
28 QObject * parent =
nullptr);
36 return start_offset_adapter_.get ();
40 return end_offset_adapter_.get ();
44 return fade_in_opts_adapter_.get ();
48 return fade_out_opts_adapter_.get ();
51 Q_SIGNAL
void fadePropertiesChanged ();
65 return fadeInCurveOpts ()->normalizedY (x,
false);
68 return fadeOutCurveOpts ()->normalizedY (x,
true);
72 friend void init_from (
77 obj.start_offset_adapter_->setTicks (other.start_offset_adapter_->ticks ());
78 obj.end_offset_adapter_->setTicks (other.end_offset_adapter_->ticks ());
79 obj.fade_in_opts_ = other.fade_in_opts_;
80 obj.fade_out_opts_ = other.fade_out_opts_;
84 static constexpr auto kFadeInOffsetKey =
"fadeInOffset"sv;
85 static constexpr auto kFadeOutOffsetKey =
"fadeOutOffset"sv;
86 static constexpr auto kFadeInOptsKey =
"fadeInOpts"sv;
87 static constexpr auto kFadeOutOptsKey =
"fadeOutOpts"sv;
88 friend auto to_json (nlohmann::json &j,
const ArrangerObjectFadeRange &
object)
90 j[kFadeInOffsetKey] =
object.start_offset_;
91 j[kFadeOutOffsetKey] =
object.end_offset_;
92 j[kFadeInOptsKey] =
object.fade_in_opts_;
93 j[kFadeOutOptsKey] =
object.fade_out_opts_;
96 from_json (
const nlohmann::json &j, ArrangerObjectFadeRange &
object)
98 j.at (kFadeInOffsetKey).get_to (
object.start_offset_);
99 j.at (kFadeOutOffsetKey).get_to (
object.end_offset_);
100 j.at (kFadeInOptsKey).get_to (
object.fade_in_opts_);
101 j.at (kFadeOutOptsKey).get_to (
object.fade_out_opts_);
104 BOOST_DESCRIBE_CLASS (
105 ArrangerObjectFadeRange,
109 (start_offset_, end_offset_, fade_in_opts_, fade_out_opts_))
114 utils::QObjectUniquePtr<dsp::AtomicPositionQmlAdapter> start_offset_adapter_;
120 utils::QObjectUniquePtr<dsp::AtomicPositionQmlAdapter> end_offset_adapter_;
124 utils::QObjectUniquePtr<dsp::CurveOptionsQmlAdapter> fade_in_opts_adapter_;
128 utils::QObjectUniquePtr<dsp::CurveOptionsQmlAdapter> fade_out_opts_adapter_;