49 ,
public Nano::Observer
53 SCORE_SERIALIZE_FRIENDS
58 std::unique_ptr<Process::AudioInlet> inlet;
59 std::unique_ptr<Process::AudioOutlet> outlet;
66 IntervalDurations duration{*
this};
89 void setStartState(const
Id<StateModel>& eventId);
91 const
Id<StateModel>& endState() const noexcept;
92 void setEndState(const
Id<StateModel>& endState);
94 const
TimeVal& date() const noexcept;
95 void setStartDate(const
TimeVal& start);
96 void translate(const
TimeVal& deltaTime);
104 double dateInFlicks() const noexcept {
return date().impl; }
106 double heightPercentage() const noexcept;
108 void startExecution();
109 void stopExecution();
113 void setHeightPercentage(
double arg);
114 void setExecutionState(IntervalExecutionState);
116 IntervalExecutionState executionState() const;
124 ViewMode viewMode() const noexcept;
125 void setViewMode(ViewMode v);
126 void viewModeChanged(ViewMode v)
127 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, viewModeChanged, v)
134 std::optional<QPointF> nodalCenter() const noexcept;
135 void setNodalCenter(QPointF center);
138 QPointF legacyNodalOffset() const noexcept;
139 double nodalScale() const noexcept;
140 void setNodalScale(
double z);
143 ZoomRatio zoom() const noexcept;
144 void setZoom(const ::ZoomRatio& zoom);
146 TimeVal midTime() const noexcept;
147 void setMidTime(const
TimeVal& value);
149 void setSmallViewVisible(
bool);
150 bool smallViewVisible() const noexcept;
152 const Rack& smallView() const noexcept {
return m_smallView; }
153 const FullRack& fullView() const noexcept {
return m_fullView; }
155 void clearSmallView();
156 void clearFullView();
157 void replaceSmallView(
const Rack& other);
158 void replaceFullView(
const FullRack& other);
161 void addSlot(Slot s);
162 void addSlot(Slot s,
int pos);
163 void removeSlot(
int pos);
169 void putLayerToFront(
int slot, std::nullopt_t);
171 void swapSlots(
int pos1,
int pos2, Slot::RackView fullview);
173 double getSlotHeight(
const SlotId& slot)
const;
174 void setSlotHeight(
const SlotId& slot,
double height);
175 double getHeight() const noexcept;
178 double getSlotHeightForProcess(const
Id<
Process::ProcessModel>& p) const;
180 const Slot* findSmallViewSlot(
int slot) const;
181 const Slot& getSmallViewSlot(
int slot) const;
182 Slot& getSmallViewSlot(
int slot);
184 const FullSlot* findFullViewSlot(
int slot) const;
185 const FullSlot& getFullViewSlot(
int slot) const;
186 FullSlot& getFullViewSlot(
int slot);
188 bool muted() const noexcept {
return m_muted; }
189 void setMuted(
bool m);
191 bool graphal() const noexcept {
return m_graphal; }
192 void setGraphal(
bool m);
194 bool executing() const noexcept {
return m_executing; }
195 void setExecuting(
bool m);
198 bool hasTimeSignature() const noexcept {
return m_hasSignature; }
199 void setHasTimeSignature(
bool b);
201 TimeVal contentDuration() const noexcept;
203 TempoProcess* tempoCurve() const noexcept;
205 void ancestorStartDateChanged();
206 void ancestorTempoChanged();
208 void addSignature(
TimeVal t, ossia::time_signature sig);
209 void removeSignature(
TimeVal t);
210 void setTimeSignatureMap(const TimeSignatureMap& map);
211 const TimeSignatureMap& timeSignatureMap() const noexcept;
213 ossia::musical_sync quantizationRate() const noexcept;
214 void setQuantizationRate(ossia::musical_sync b);
216 void setStartMarker(
TimeVal t);
217 TimeVal startMarker() const noexcept;
218 double startMarkerInFlicks() const noexcept {
return startMarker().impl; }
219 inline IntervalDurations* getDurations() noexcept {
return &duration; }
221 void hasTimeSignatureChanged(
bool arg_1)
222 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, hasTimeSignatureChanged, arg_1)
223 void timeSignaturesChanged(
const TimeSignatureMap& arg_1)
224 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, timeSignaturesChanged, arg_1)
225 void quantizationRateChanged(ossia::musical_sync arg)
226 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, quantizationRateChanged, arg)
228 void requestHeightChange(
double y)
229 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, requestHeightChange, y)
230 void heightPercentageChanged(
double arg_1)
231 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, heightPercentageChanged, arg_1)
233 void dateChanged(
const TimeVal& arg_1)
234 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, dateChanged, arg_1)
235 void startMarkerChanged(
const TimeVal& arg_1)
236 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startMarkerChanged, arg_1)
238 void focusChanged(
bool arg_1)
239 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, focusChanged, arg_1)
240 void executionStateChanged(Scenario::IntervalExecutionState arg_1)
241 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, executionStateChanged, arg_1)
243 void executionEvent(Scenario::IntervalExecutionEvent ev)
244 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, executionEvent, ev)
246 void smallViewVisibleChanged(
bool fv)
247 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, smallViewVisibleChanged, fv)
249 void rackChanged(Scenario::Slot::RackView fv)
250 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, rackChanged, fv)
252 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotAdded, arg_1)
254 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotRemoved, arg_1)
256 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotResized, arg_1)
257 void slotsSwapped(
int slot1,
int slot2, Slot::RackView fv)
258 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotsSwapped, slot1, slot2, fv)
259 void heightFinishedChanging()
260 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, heightFinishedChanging)
263 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, layerAdded, arg_1, arg_2)
265 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, layerRemoved, arg_1, arg_2)
266 void frontLayerChanged(
int arg_1, OptionalId<
Process::ProcessModel> arg_2)
267 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, frontLayerChanged, arg_1, arg_2)
269 void mutedChanged(
bool arg_1)
270 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, mutedChanged, arg_1)
271 void executingChanged(
bool arg_1)
272 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, executingChanged, arg_1)
274 void busChanged(
bool arg_1) E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, busChanged, arg_1)
276 void graphalChanged(
bool arg_1)
277 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, graphalChanged, arg_1)
279 void nodalCenterChanged(QPointF arg_1)
280 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, nodalCenterChanged, arg_1)
281 void nodalScaleChanged(
double arg_1)
282 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, nodalScaleChanged, arg_1)
284 PROPERTY(
bool, muted READ muted WRITE setMuted NOTIFY mutedChanged)
285 PROPERTY(
bool, graphal READ graphal WRITE setGraphal NOTIFY graphalChanged)
287 double, heightPercentage READ heightPercentage WRITE setHeightPercentage NOTIFY
288 heightPercentageChanged)
291 bool, timeSignature READ hasTimeSignature WRITE setHasTimeSignature NOTIFY
292 hasTimeSignatureChanged)
295 ossia::musical_sync, quantizationRate READ quantizationRate WRITE
296 setQuantizationRate NOTIFY quantizationRateChanged)
297 W_PROPERTY(IntervalDurations*, durations READ getDurations CONSTANT)
299 PROPERTY(
double, date READ dateInFlicks NOTIFY dateChanged)
301 double, startMarker READ startMarkerInFlicks NOTIFY startMarkerChanged)
304 void on_addProcess(
Process::ProcessModel&);
305 void on_removingProcess(const
Process::ProcessModel&);
306 void initConnections();
310 const
score::DocumentContext& m_context;
315 TimeSignatureMap m_signatures;
317 Id<StateModel> m_startState;
318 Id<StateModel> m_endState;
323 double m_heightPercentage{0.5};
325 double m_nodalFullViewSlotHeight{100};
326 double m_quantRate{-1.0};
328 ::ZoomRatio m_zoom{-1};
330 QPointF m_nodalOffset{};
331 std::optional<QPointF> m_nodalCenter{};
332 double m_nodalScale{1.0};
333 IntervalExecutionState m_executionState : 2;
334 ViewMode m_viewMode : 1;
335 bool m_smallViewShown : 1;
337 bool m_executing : 1;
339 bool m_hasSignature : 1;