2#include <Process/ExecutionComponent.hpp>
3#include <Process/ExecutionContext.hpp>
4#include <Process/ExecutionTransaction.hpp>
5#include <Process/Process.hpp>
6#include <Process/ProcessComponent.hpp>
8#include <score/model/ComponentFactory.hpp>
9#include <score/plugins/ModelFactory.hpp>
11#include <ossia/dataflow/graph_node.hpp>
12#include <ossia/editor/scenario/time_process.hpp>
16#include <score_lib_process_export.h>
21#if __cpp_lib_concepts >= 202002L
47 ,
public std::enable_shared_from_this<ProcessComponent>
50 ABSTRACT_COMPONENT_METADATA(
54 static constexpr bool is_unique =
true;
61 virtual void lazy_init();
65 virtual void cleanup();
68 process().setExecuting(
false);
69 process().stopExecution();
72 const std::shared_ptr<ossia::time_process>& OSSIAProcessPtr()
74 return m_ossia_process;
76 ossia::time_process& OSSIAProcess()
const {
return *m_ossia_process; }
78 std::shared_ptr<ossia::graph_node> node;
82 const ossia::node_ptr& old_node,
const ossia::node_ptr& new_node,
84 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, nodeChanged, old_node, new_node, commands)
92 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, portsReplaced, commands)
95 std::shared_ptr<ossia::time_process> m_ossia_process;
98template <typename Process_T, typename OSSIA_Process_T>
105 OSSIA_Process_T& OSSIAProcess()
const
107 return static_cast<OSSIA_Process_T&
>(ProcessComponent::OSSIAProcess());
113 Process::ProcessModel, Execution::Context, Execution::ProcessComponentFactory>
118 virtual std::shared_ptr<ProcessComponent>
122template <
typename ProcessComponent_T>
123#if __cpp_lib_concepts >= 202002L
124requires std::constructible_from<
130 ProcessComponent_T, ProcessComponentFactory>
133 using model_type =
typename ProcessComponent_T::model_type;
134 std::shared_ptr<ProcessComponent> make(
136 QObject* parent)
const final override
140#if defined(SCORE_DEBUG)
142 auto comp = std::shared_ptr<ProcessComponent_T>(
145 auto comp = std::make_shared<ProcessComponent_T>(
146 static_cast<model_type&
>(proc), ctx, parent);
151 catch(
const std::runtime_error& e)
153 qDebug() <<
"Error during plug-in creation: " << e.what();
165 Process::ProcessModel, Execution::Context, Execution::ProcessComponentFactory>
172W_REGISTER_ARGTYPE(ossia::node_ptr)
173Q_DECLARE_METATYPE(std::shared_ptr<Execution::ProcessComponent>)
174W_REGISTER_ARGTYPE(std::shared_ptr<Execution::ProcessComponent>)
175W_REGISTER_ARGTYPE(
const std::shared_ptr<Execution::ProcessComponent>&)
Definition Process/Execution/ProcessComponent.hpp:37
Definition Process/Execution/ProcessComponent.hpp:131
Definition Process/Execution/ProcessComponent.hpp:114
Definition Process/Execution/ProcessComponent.hpp:166
Definition Process/Execution/ProcessComponent.hpp:48
Definition Process/ProcessComponent.hpp:34
Definition Process/ProcessComponent.hpp:10
The Process class.
Definition score-lib-process/Process/Process.hpp:75
Definition ComponentFactory.hpp:29
Definition ModelFactory.hpp:8
Definition ComponentFactory.hpp:48
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
Definition ExecutionContext.hpp:196
Definition Process/Execution/ProcessComponent.hpp:101
Definition ExecutionTransaction.hpp:21