InterpStateComponent.hpp
1 #pragma once
2 #include <Process/Execution/ProcessComponent.hpp>
3 
4 #include <ossia/dataflow/node_process.hpp>
5 #include <ossia/network/value/destination.hpp>
6 #include <ossia/network/value/value.hpp>
7 
8 #include <InterpState/InterpStateProcess.hpp>
9 
10 #include <memory>
11 namespace ossia
12 {
13 class curve_abstract;
14 }
15 
16 namespace Device
17 {
18 class DeviceList;
19 }
20 
21 namespace InterpState
22 {
23 class ExecComponent final
25  InterpState::ProcessModel, ossia::node_process>
26 {
27  COMPONENT_METADATA("66327ccc-1478-4bef-9ce7-3c9765bd76a7")
28 public:
30  InterpState::ProcessModel& element, const Execution::Context& ctx,
31  QObject* parent);
32 
33  ~ExecComponent() override;
34 
35 private:
36  void recompute();
37 
38  std::shared_ptr<ossia::curve_abstract>
39  on_curveChanged(ossia::val_type, const std::optional<ossia::destination>&);
40 
41  template <typename T>
42  std::shared_ptr<ossia::curve_abstract>
43  on_curveChanged_impl(const std::optional<ossia::destination>&);
44 };
46 }
47 
48 SCORE_CONCRETE_COMPONENT_FACTORY(
Definition: Process/Execution/ProcessComponent.hpp:119
Definition: Process/Execution/ProcessComponent.hpp:102
Definition: InterpStateComponent.hpp:26
Manipulation of Devices from Qt.
Definition: AddressSettings.cpp:14
Definition: ExecutionContext.hpp:75
Definition: Process/Execution/ProcessComponent.hpp:89