2 #include "BaseScenarioComponent.hpp"
4 #include <Process/Dataflow/Port.hpp>
5 #include <Process/ExecutionAction.hpp>
6 #include <Process/ExecutionContext.hpp>
7 #include <Process/ExecutionSetup.hpp>
9 #include <score/plugins/documentdelegate/plugin/DocumentPlugin.hpp>
10 #include <score/tools/Metadata.hpp>
12 #include <ossia/dataflow/bench_map.hpp>
13 #include <ossia/dataflow/dataflow_fwd.hpp>
14 #include <ossia/network/generic/generic_device.hpp>
15 #include <ossia/network/local/local.hpp>
20 inline QDataStream& operator<<(QDataStream& i,
const ossia::bench_map& sel)
25 inline QDataStream& operator>>(QDataStream& i, ossia::bench_map& sel)
38 class DeviceInterface;
67 ExecutionCommandQueue m_execQueue{1024};
68 EditionCommandQueue m_editionQueue{1024};
69 GCCommandQueue m_gcQueue{1024};
70 std::atomic_bool m_created{};
72 std::shared_ptr<ossia::graph_interface> execGraph;
73 std::shared_ptr<ossia::execution_state> execState;
74 std::shared_ptr<ossia::bench_map> bench;
86 void on_documentClosing()
override;
87 const std::shared_ptr<BaseScenarioElement>& baseScenario() const noexcept;
89 void playStartState();
92 bool isPlaying() const;
94 const std::shared_ptr<
ContextData>& contextData() const noexcept {
return m_ctxData; }
95 const Context& context() const noexcept {
return m_ctxData->context; }
96 const ExecutionController& executionController() const noexcept;
97 std::shared_ptr<ossia::audio_protocol> audioProto();
99 void runAllCommands() const;
101 void registerAction(ExecutionAction& act);
102 const std::vector<ExecutionAction*>& actions() const noexcept {
return m_actions; }
106 QPointer<Dataflow::AudioDevice> audio_device{};
107 QPointer<Device::DeviceInterface> local_device{};
110 void finished() E_SIGNAL(SCORE_PLUGIN_ENGINE_EXPORT, finished)
112 void slot_bench(ossia::bench_map, int64_t ns);
115 void on_deviceAdded(
Device::DeviceInterface* device);
117 void timerEvent(QTimerEvent* event) override;
118 void registerDevice(ossia::net::device_base*);
119 void unregisterDevice(ossia::net::device_base*);
121 void initExecState();
124 std::shared_ptr<ContextData> m_ctxData;
125 std::shared_ptr<BaseScenarioElement> m_base;
126 std::vector<ExecutionAction*> m_actions;
Definition: plugins/score-plugin-engine/Execution/DocumentPlugin.hpp:60
Definition: ExecutionController.hpp:31
Definition: ExecutorModel.hpp:64
Definition: IntervalModel.hpp:50
Extend a document with custom data and systems.
Definition: DocumentPluginBase.hpp:24
Manipulation of Devices from Qt.
Definition: AddressSettings.cpp:14
Components used for the execution of a score.
Definition: ProcessComponent.cpp:12
Main plug-in of score.
Definition: score-plugin-dataflow/Dataflow/PortItem.hpp:14
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Definition: ExecutionContext.hpp:76
Definition: plugins/score-plugin-engine/Execution/DocumentPlugin.hpp:64
Definition: plugins/score-plugin-engine/Execution/DocumentPlugin.hpp:56
Definition: ExecutionSetup.hpp:38
Definition: DocumentContext.hpp:18