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>
23struct DocumentContext;
37class IntervalComponentBase;
38class IntervalComponent;
43#if defined(SCORE_SERIALIZABLE_COMPONENTS)
45struct is_component_serializable<
Execution::IntervalComponentBase>
47 using type = score::not_serializable_tag;
51struct 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:13
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