2 #include <Process/Execution/ProcessComponent.hpp>
3 #include <Process/TimeValue.hpp>
5 #include <Scenario/Document/Components/IntervalComponent.hpp>
7 #include <score/model/ComponentHierarchy.hpp>
8 #include <score/model/Identifier.hpp>
10 #include <ossia-qt/time_value.hpp>
23 struct DocumentContext;
37 class IntervalComponentBase;
38 class IntervalComponent;
43 #if defined(SCORE_SERIALIZABLE_COMPONENTS)
45 struct is_component_serializable<
Execution::IntervalComponentBase>
47 using type = score::not_serializable_tag;
51 struct is_component_serializable<
Execution::IntervalComponent>
53 using type = score::not_serializable_tag;
64 ossia::time_value defaultDuration;
65 ossia::time_value minDuration;
66 ossia::time_value maxDuration;
73 COMMON_COMPONENT_METADATA(
"4d644678-1924-49bf-8c82-89841581d23f")
80 static const constexpr
bool is_unique =
true;
83 const Context& ctx, QObject* parent);
93 const std::shared_ptr<ossia::time_interval>& OSSIAInterval()
const;
96 const auto& processes()
const {
return m_processes; }
102 void executionStarted();
103 void executionStopped();
110 template <
typename... Args>
111 void added(Args&&...)
114 template <
typename Component_T,
typename Element,
typename Fun>
115 void removed(
const Element& elt,
const Component_T& comp, Fun f)
121 const Context& context()
const {
return system(); }
128 std::shared_ptr<ossia::time_interval> m_ossia_interval;
129 score::hash_map<Id<Process::ProcessModel>, std::shared_ptr<ProcessComponent>>
140 template <
typename... Args>
142 : PolymorphicComponentHierarchyManager{
154 const std::shared_ptr<ossia::time_interval>& OSSIAInterval()
const
156 return IntervalComponentBase::OSSIAInterval();
160 void cleanup(
const std::shared_ptr<IntervalComponent>&);
164 std::shared_ptr<IntervalComponent>,
166 bool executionRoot =
false);
169 void slot_callback(
bool running, ossia::time_value date);
170 W_SLOT(slot_callback);
171 void graph_slot_callback(
bool running, ossia::time_value date);
172 W_SLOT(graph_slot_callback);
Definition: IntervalExecution.hpp:72
Definition: IntervalExecution.hpp:135
Definition: Process/Execution/ProcessComponent.hpp:102
Definition: Process/Execution/ProcessComponent.hpp:154
Definition: Process/Execution/ProcessComponent.hpp:48
The Process class.
Definition: score-lib-process/Process/Process.hpp:61
Definition: Scenario/Document/Components/IntervalComponent.hpp:12
Definition: IntervalModel.hpp:50
A component that has a reference to a specific context object.
Definition: lib/score/model/Component.hpp:58
Manages polymorphic hierarchies of components.
Definition: ComponentHierarchy.hpp:165
Components used for the execution of a score.
Definition: ProcessComponent.cpp:12
Base classes and tools to implement processes and layers.
Definition: JSONVisitor.hpp:1324
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: IntervalExecution.hpp:63
Definition: lib/score/model/Component.hpp:16