2 #include <Process/GenericProcessFactory.hpp>
4 #include <Control/Widgets.hpp>
5 #include <Engine/Node/CommonWidgets.hpp>
6 #include <Engine/Node/Executor.hpp>
7 #include <Engine/Node/Inspector.hpp>
8 #include <Engine/Node/Layer.hpp>
9 #include <Engine/Node/Process.hpp>
11 #include <score/plugins/qt_interfaces/FactoryInterface_QtInterface.hpp>
12 #include <score/plugins/qt_interfaces/PluginRequirements_QtInterface.hpp>
14 #include <ossia/detail/concepts.hpp>
15 #include <ossia/detail/for_each.hpp>
17 #define make_uuid(text) score::uuids::string_generator::compute((text))
19 #define uuid_constexpr inline
21 #define uuid_constexpr constexpr
27 template <
typename Item>
28 concept HasItem = requires { &Item::item; } || requires { Item{}.item(0); }
29 || requires {
sizeof(
typename Item::Layer); };
31 struct Meta_base :
public ossia::safe_nodes::base_metadata
34 Process::ProcessFlags::SupportsLasting | Process::ProcessFlags::ControlSurface);
37 template <
typename Node>
40 template <
typename Node>
47 template <
typename Node>
48 using LayerFactory = ControlLayerFactory<Node>;
50 template <
typename... Nodes>
51 std::vector<score::InterfaceBase*>
54 std::vector<score::InterfaceBase*> vec;
55 if(key == Execution::ProcessComponentFactory::static_interfaceKey())
61 else if(key == Process::ProcessModelFactory::static_interfaceKey())
67 else if(key == Process::LayerFactory::static_interfaceKey())
69 ossia::for_each_tagged(boost::mp11::mp_list<Nodes...>{}, [&](
auto t) {
70 using type =
typename decltype(t)::type;
71 if constexpr(HasItem<type>)
94 constexpr
score::PluginKey key()
const final override {
return static_key(); }
101 std::vector<score::InterfaceBase*> factories(
105 return Control::instantiate_fx<T>(ctx, key);
108 std::vector<score::PluginKey> required()
const override {
return {}; }
Definition: Process/Execution/ProcessComponent.hpp:119
Definition: Process/Execution/ProcessComponent.hpp:102
Definition: score-lib-process/Process/ProcessFactory.hpp:58
Definition: GenericProcessFactory.hpp:15
The ProcessFactory class.
Definition: score-lib-process/Process/ProcessFactory.hpp:35
Definition: UuidKey.hpp:343
Definition: FactoryInterface_QtInterface.hpp:19
Definition: PluginRequirements_QtInterface.hpp:18
Represents the version of a plug-in.
Definition: Version.hpp:13
ProcessFlags
Various settings for processes.
Definition: ProcessFlags.hpp:17
Definition: SimpleApi.hpp:43
Definition: SimpleApi.hpp:81
Definition: SimpleApi.hpp:91
Used to access all the application-wide state and structures.
Definition: ApplicationContext.hpp:24