12class ArrangerObjectFadeRange :
public QObject
29 ArrangerObjectFadeRange (
31 QObject * parent =
nullptr);
39 return start_offset_adapter_.get ();
43 return end_offset_adapter_.get ();
47 return fade_in_opts_adapter_.get ();
51 return fade_out_opts_adapter_.get ();
54 Q_SIGNAL
void fadePropertiesChanged ();
68 return fadeInCurveOpts ()->normalizedY (x,
false);
71 return fadeOutCurveOpts ()->normalizedY (x,
true);
75 friend void init_from (
80 obj.start_offset_adapter_->setTicks (other.start_offset_adapter_->ticks ());
81 obj.end_offset_adapter_->setTicks (other.end_offset_adapter_->ticks ());
82 obj.fade_in_opts_ = other.fade_in_opts_;
83 obj.fade_out_opts_ = other.fade_out_opts_;
87 static constexpr auto kFadeInOffsetKey =
"fadeInOffset"sv;
88 static constexpr auto kFadeOutOffsetKey =
"fadeOutOffset"sv;
89 static constexpr auto kFadeInOptsKey =
"fadeInOpts"sv;
90 static constexpr auto kFadeOutOptsKey =
"fadeOutOpts"sv;
91 friend auto to_json (nlohmann::json &j,
const ArrangerObjectFadeRange &
object)
93 j[kFadeInOffsetKey] =
object.start_offset_;
94 j[kFadeOutOffsetKey] =
object.end_offset_;
95 j[kFadeInOptsKey] =
object.fade_in_opts_;
96 j[kFadeOutOptsKey] =
object.fade_out_opts_;
99 from_json (
const nlohmann::json &j, ArrangerObjectFadeRange &
object)
101 j.at (kFadeInOffsetKey).get_to (
object.start_offset_);
102 j.at (kFadeOutOffsetKey).get_to (
object.end_offset_);
103 j.at (kFadeInOptsKey).get_to (
object.fade_in_opts_);
104 j.at (kFadeOutOptsKey).get_to (
object.fade_out_opts_);
107 BOOST_DESCRIBE_CLASS (
108 ArrangerObjectFadeRange,
112 (start_offset_, end_offset_, fade_in_opts_, fade_out_opts_))
116 dsp::AtomicPosition start_offset_;
117 utils::QObjectUniquePtr<dsp::AtomicPositionQmlAdapter> start_offset_adapter_;
122 dsp::AtomicPosition end_offset_;
123 utils::QObjectUniquePtr<dsp::AtomicPositionQmlAdapter> end_offset_adapter_;
126 dsp::CurveOptions fade_in_opts_;
127 utils::QObjectUniquePtr<dsp::CurveOptionsQmlAdapter> fade_in_opts_adapter_;
130 dsp::CurveOptions fade_out_opts_;
131 utils::QObjectUniquePtr<dsp::CurveOptionsQmlAdapter> fade_out_opts_adapter_;