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);
162 void restoreSmallView(
const Rack& other);
163 void replaceFullView(
const FullRack& other);
166 void addSlot(Slot s);
167 void addSlot(Slot s,
int pos);
168 void removeSlot(
int pos);
174 void putLayerToFront(
int slot, std::nullopt_t);
176 void swapSlots(
int pos1,
int pos2, Slot::RackView fullview);
178 double getSlotHeight(
const SlotId& slot)
const;
179 void setSlotHeight(
const SlotId& slot,
double height);
180 double getHeight() const noexcept;
183 double getSlotHeightForProcess(const
Id<
Process::ProcessModel>& p) const;
185 const Slot* findSmallViewSlot(
int slot) const;
186 const Slot& getSmallViewSlot(
int slot) const;
187 Slot& getSmallViewSlot(
int slot);
189 const FullSlot* findFullViewSlot(
int slot) const;
190 const FullSlot& getFullViewSlot(
int slot) const;
191 FullSlot& getFullViewSlot(
int slot);
193 bool muted() const noexcept {
return m_muted; }
194 void setMuted(
bool m);
196 bool graphal() const noexcept {
return m_graphal; }
197 void setGraphal(
bool m);
199 bool executing() const noexcept {
return m_executing; }
200 void setExecuting(
bool m);
203 bool hasTimeSignature() const noexcept {
return m_hasSignature; }
204 void setHasTimeSignature(
bool b);
206 TimeVal contentDuration() const noexcept;
208 TempoProcess* tempoCurve() const noexcept;
210 void ancestorStartDateChanged();
211 void ancestorTempoChanged();
213 void addSignature(
TimeVal t, ossia::time_signature sig);
214 void removeSignature(
TimeVal t);
215 void setTimeSignatureMap(const TimeSignatureMap& map);
216 const TimeSignatureMap& timeSignatureMap() const noexcept;
218 ossia::musical_sync quantizationRate() const noexcept;
219 void setQuantizationRate(ossia::musical_sync b);
221 void setStartMarker(
TimeVal t);
222 TimeVal startMarker() const noexcept;
223 double startMarkerInFlicks() const noexcept {
return startMarker().impl; }
224 inline IntervalDurations* getDurations() noexcept {
return &duration; }
226 void hasTimeSignatureChanged(
bool arg_1)
227 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, hasTimeSignatureChanged, arg_1)
228 void timeSignaturesChanged(
const TimeSignatureMap& arg_1)
229 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, timeSignaturesChanged, arg_1)
230 void quantizationRateChanged(ossia::musical_sync arg)
231 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, quantizationRateChanged, arg)
233 void requestHeightChange(
double y)
234 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, requestHeightChange, y)
235 void heightPercentageChanged(
double arg_1)
236 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, heightPercentageChanged, arg_1)
238 void dateChanged(
const TimeVal& arg_1)
239 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, dateChanged, arg_1)
240 void startMarkerChanged(
const TimeVal& arg_1)
241 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, startMarkerChanged, arg_1)
243 void focusChanged(
bool arg_1)
244 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, focusChanged, arg_1)
245 void executionStateChanged(Scenario::IntervalExecutionState arg_1)
246 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, executionStateChanged, arg_1)
248 void executionEvent(Scenario::IntervalExecutionEvent ev)
249 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, executionEvent, ev)
251 void smallViewVisibleChanged(
bool fv)
252 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, smallViewVisibleChanged, fv)
254 void rackChanged(Scenario::Slot::RackView fv)
255 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, rackChanged, fv)
257 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotAdded, arg_1)
259 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotRemoved, arg_1)
261 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotResized, arg_1)
262 void slotsSwapped(
int slot1,
int slot2, Slot::RackView fv)
263 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, slotsSwapped, slot1, slot2, fv)
264 void heightFinishedChanging()
265 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, heightFinishedChanging)
268 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, layerAdded, arg_1, arg_2)
270 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, layerRemoved, arg_1, arg_2)
271 void frontLayerChanged(
int arg_1, OptionalId<
Process::ProcessModel> arg_2)
272 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, frontLayerChanged, arg_1, arg_2)
274 void mutedChanged(
bool arg_1)
275 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, mutedChanged, arg_1)
276 void executingChanged(
bool arg_1)
277 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, executingChanged, arg_1)
279 void busChanged(
bool arg_1) E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, busChanged, arg_1)
281 void graphalChanged(
bool arg_1)
282 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, graphalChanged, arg_1)
284 void nodalCenterChanged(QPointF arg_1)
285 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, nodalCenterChanged, arg_1)
286 void nodalScaleChanged(
double arg_1)
287 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, nodalScaleChanged, arg_1)
289 PROPERTY(
bool, muted READ muted WRITE setMuted NOTIFY mutedChanged)
290 PROPERTY(
bool, graphal READ graphal WRITE setGraphal NOTIFY graphalChanged)
292 double, heightPercentage READ heightPercentage WRITE setHeightPercentage NOTIFY
293 heightPercentageChanged)
296 bool, timeSignature READ hasTimeSignature WRITE setHasTimeSignature NOTIFY
297 hasTimeSignatureChanged)
300 ossia::musical_sync, quantizationRate READ quantizationRate WRITE
301 setQuantizationRate NOTIFY quantizationRateChanged)
302 W_PROPERTY(IntervalDurations*, durations READ getDurations CONSTANT)
304 PROPERTY(
double, date READ dateInFlicks NOTIFY dateChanged)
306 double, startMarker READ startMarkerInFlicks NOTIFY startMarkerChanged)
309 void on_addProcess(
Process::ProcessModel&);
310 void on_removingProcess(const
Process::ProcessModel&);
311 void initConnections();
315 const
score::DocumentContext& m_context;
320 TimeSignatureMap m_signatures;
322 Id<StateModel> m_startState;
323 Id<StateModel> m_endState;
328 double m_heightPercentage{0.5};
330 double m_nodalFullViewSlotHeight{100};
331 double m_quantRate{-1.0};
333 ::ZoomRatio m_zoom{-1};
335 QPointF m_nodalOffset{};
336 std::optional<QPointF> m_nodalCenter{};
337 double m_nodalScale{1.0};
338 IntervalExecutionState m_executionState : 2;
339 ViewMode m_viewMode : 1;
340 bool m_smallViewShown : 1;
342 bool m_executing : 1;
344 bool m_hasSignature : 1;