17class AutomatableTrackMixin :
public QObject
22 bool automationVisible READ automationVisible WRITE setAutomationVisible
23 NOTIFY automationVisibleChanged)
28 AutomatableTrackMixin (
30 QObject * parent =
nullptr);
36 bool automationVisible ()
const {
return automation_visible_; }
37 void setAutomationVisible (
bool visible);
38 Q_SIGNAL
void automationVisibleChanged (
bool visible);
42 return automation_tracklist_.get ();
55 "generating automation tracks for {}...", processor.
get_node_name ());
56 for (
const auto ¶m_ref : processor.get_parameters ())
59 param_ref.template get_object_as<dsp::ProcessorParameter> ();
60 if (!param->automatable ())
64 utils::make_qobject_unique<AutomationTrack> (
65 dependencies_.tempo_map_, dependencies_.file_audio_source_registry_,
66 dependencies_.object_registry_, param_ref));
71 friend void init_from (
77 static constexpr auto kAutomationTracklistKey =
"automationTracklist"sv;
78 static constexpr auto kAutomationVisibleKey =
"automationVisible"sv;
81 j[kAutomationTracklistKey] = track.automation_tracklist_;
82 j[kAutomationVisibleKey] = track.automation_visible_;
84 friend void from_json (
const nlohmann::json &j, AutomatableTrackMixin &track)
86 track.automation_tracklist_ = utils::make_qobject_unique<
87 AutomationTracklist> (track.dependencies_, &track);
88 from_json (j.at (kAutomationTracklistKey), *track.automation_tracklist_);
89 j.at (kAutomationVisibleKey).get_to (track.automation_visible_);
93 AutomationTrackHolder::Dependencies dependencies_;
98 bool automation_visible_{};