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 friend void to_json (nlohmann::json &j,
const RecordableTrackMixin &track)
57 j[kRecordingIdKey] = track.recording_id_;
59 friend void from_json (
const nlohmann::json &j, RecordableTrackMixin &track)
61 track.recording_id_ = { track.dependencies_.param_registry_ };
62 j.at (kRecordingIdKey).get_to (track.recording_id_);
65 friend void init_from (
66 RecordableTrackMixin &obj,
67 const RecordableTrackMixin &other,
70 obj.recording_id_ = other.recording_id_;
77 NameProvider name_provider_;
80 dsp::ProcessorParameterUuidReference recording_id_;