2#include <Process/Execution/ProcessComponent.hpp>
4#include <Scenario/Document/Components/ScenarioComponent.hpp>
5#include <Scenario/Document/Event/EventExecution.hpp>
6#include <Scenario/Document/Graph.hpp>
7#include <Scenario/Document/Interval/IntervalExecution.hpp>
8#include <Scenario/Document/Interval/IntervalModel.hpp>
9#include <Scenario/Document/State/StateExecution.hpp>
10#include <Scenario/Document/TimeSync/TimeSyncExecution.hpp>
11#include <Scenario/Tools/dataStructures.hpp>
13#include <score/model/IdentifiedObjectMap.hpp>
14#include <score/model/Identifier.hpp>
15#include <score/tools/std/Optional.hpp>
17#include <ossia/editor/scenario/time_event.hpp>
24class ScenarioComponentBase;
26Q_DECLARE_METATYPE(std::shared_ptr<Execution::EventComponent>)
27W_REGISTER_ARGTYPE(std::shared_ptr<Execution::EventComponent>)
28Q_DECLARE_METATYPE(std::weak_ptr<Execution::ScenarioComponentBase>)
29W_REGISTER_ARGTYPE(std::weak_ptr<Execution::ScenarioComponentBase>)
30Q_DECLARE_METATYPE(ossia::time_event::status)
31W_REGISTER_ARGTYPE(ossia::time_event::status)
51class TimeSyncComponent;
60class CSPCoherencyCheckerInterface;
70class IntervalComponent;
75 COMPONENT_METADATA(
"4e4b1c1a-1a2a-4ae6-a1a1-38d0900e74e8")
82 const auto& states()
const {
return m_ossia_states; }
83 const score::hash_map<Id<Scenario::IntervalModel>, std::shared_ptr<IntervalComponent>>&
86 return m_ossia_intervals;
88 const auto& events()
const {
return m_ossia_timeevents; }
89 const auto& timeSyncs()
const {
return m_ossia_timesyncs; }
96 template <
typename Component_T,
typename Element>
97 Component_T* make(Element& elt);
99 template <
typename Component_T,
typename Element,
typename Fun>
100 void removed(
const Element& elt,
const Component_T& comp, Fun f)
115 void sig_eventCallback(
116 std::weak_ptr<ScenarioComponentBase> self, std::shared_ptr<EventComponent> arg_1,
117 ossia::time_event::status st)
118 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, sig_eventCallback, self, arg_1, st)
126 std::weak_ptr<ScenarioComponentBase> self, std::shared_ptr<EventComponent> ev,
127 ossia::time_event::status newStatus);
129 score::hash_map<Id<Scenario::IntervalModel>, std::shared_ptr<IntervalComponent>>
131 score::hash_map<Id<Scenario::StateModel>, std::shared_ptr<StateComponent>>
133 score::hash_map<Id<Scenario::TimeSyncModel>, std::shared_ptr<TimeSyncComponent>>
135 score::hash_map<Id<Scenario::EventModel>, std::shared_ptr<EventComponent>>
139 m_executingIntervals;
144 QVector<Id<Scenario::TimeSyncModel>> m_pastTn{};
159 void lazy_init()
override;
161 void cleanup()
override;
Definition EventExecution.hpp:18
Definition IntervalExecution.hpp:135
Definition Process/Execution/ProcessComponent.hpp:119
Definition Process/ScenarioExecution.hpp:73
Definition StateExecution.hpp:86
Definition TimeSyncExecution.hpp:20
Definition Scenario/Document/Components/ScenarioComponent.hpp:198
Definition CSPCoherencyCheckerInterface.hpp:9
Definition EventModel.hpp:36
Definition IntervalModel.hpp:50
The core hierarchical and temporal process of score.
Definition ScenarioModel.hpp:37
Definition StateModel.hpp:63
Definition TimeSyncModel.hpp:34
The id_base_t class.
Definition Identifier.hpp:59
Manipulation of Devices from Qt.
Definition AddressSettings.cpp:14
Components used for the execution of a score.
Definition ProcessComponent.cpp:14
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Main plug-in of score.
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:13
Definition ExecutionContext.hpp:76
Definition Process/Execution/ProcessComponent.hpp:89
Definition Process/ScenarioExecution.hpp:156
Definition dataStructures.hpp:65
Definition score-plugin-scenario/Scenario/Document/Graph.hpp:63