16class RecordableTrackMixin :
public QObject
20 bool recording READ recording WRITE setRecording NOTIFY recordingChanged)
27 RecordableTrackMixin (
29 NameProvider name_provider,
30 QObject * parent =
nullptr);
31 ~RecordableTrackMixin ()
override =
default;
32 Z_DISABLE_COPY_MOVE (RecordableTrackMixin)
38 [[gnu::hot]]
bool recording ()
const
40 const auto &recording_param = get_recording_param ();
41 return recording_param.range ().is_toggled (recording_param.baseValue ());
43 void setRecording (
bool recording);
44 Q_SIGNAL
void recordingChanged (
bool recording);
54 static constexpr auto kRecordingIdKey =
"recordingId"sv;
55 static constexpr auto kRecordSetAutomaticallyKey =
"recordSetAutomatically"sv;
56 friend void to_json (nlohmann::json &j,
const RecordableTrackMixin &track)
58 j[kRecordingIdKey] = track.recording_id_;
61 friend void from_json (
const nlohmann::json &j, RecordableTrackMixin &track)
63 track.recording_id_ = { track.dependencies_.param_registry_ };
64 j.at (kRecordingIdKey).get_to (track.recording_id_);
68 friend void init_from (
69 RecordableTrackMixin &obj,
70 const RecordableTrackMixin &other,
73 obj.recording_id_ = other.recording_id_;
81 NameProvider name_provider_;
84 dsp::ProcessorParameterUuidReference recording_id_;