66 structure::project::
ClipEditor * clipEditor () const;
67 structure::arrangement::Timeline * timeline () const;
68 dsp::SnapGrid * snapGridTimeline () const;
69 dsp::SnapGrid * snapGridEditor () const;
71 Q_INVOKABLE dsp::AudioInputSelection *
72 audioInputSelectionForTrack (const structure::tracks::Track * track);
74 Q_INVOKABLE dsp::MidiInputSelection *
75 midiInputSelectionForTrack (const structure::tracks::Track * track);
77 dsp::AudioInputSelection *
78 find_audio_input_selection (const structure::tracks::Track::Uuid &uuid) const;
80 dsp::MidiInputSelection *
81 find_midi_input_selection (const structure::tracks::Track::Uuid &uuid) const;
83 static constexpr auto kAudioInputSelectionsKey =
"audioInputSelections"sv;
84 static constexpr auto kMidiInputSelectionsKey =
"midiInputSelections"sv;
87 void audioInputSelectionChanged ();
88 void midiInputDeviceChanged ();
91 dsp::AudioInputSelection * get_or_create_audio_input_selection (
92 const structure::tracks::Track::Uuid &uuid);
94 dsp::MidiInputSelection * get_or_create_midi_input_selection (
95 const structure::tracks::Track::Uuid &uuid);
98 static constexpr auto kSnapGridTimelineKey =
"snapGridTimeline"sv;
99 static constexpr auto kSnapGridEditorKey =
"snapGridEditor"sv;
101 friend
void from_json (const nlohmann::json &j,
ProjectUiState &p);
105 utils::AppSettings &app_settings_;
114 utils::QObjectUniquePtr<structure::arrangement::Timeline> timeline_;
117 utils::QObjectUniquePtr<dsp::SnapGrid> snap_grid_timeline_;
120 utils::QObjectUniquePtr<dsp::SnapGrid> snap_grid_editor_;
125 structure::tracks::Track::Uuid,
126 utils::QObjectUniquePtr<dsp::AudioInputSelection>>
127 audio_input_selections_;
132 structure::tracks::Track::Uuid,
133 utils::QObjectUniquePtr<dsp::MidiInputSelection>>
134 midi_input_selections_;