OSSIA
Open Scenario System for Interactive Application
dummy.hpp
1 #pragma once
2 #include <ossia/dataflow/graph_node.hpp>
3 #include <ossia/dataflow/port.hpp>
4 
5 namespace ossia::nodes
6 {
7 class dummy_node : public ossia::graph_node
8 {
9 public:
10  dummy_node() = default;
11 
12  void run(const token_request& t, exec_state_facade) noexcept override { }
13 };
14 
15 class dummy_audio_node : public ossia::graph_node
16 {
17 public:
18  dummy_audio_node()
19  {
20  m_inlets.push_back(new ossia::audio_inlet);
21  m_outlets.push_back(new ossia::audio_outlet);
22  }
23 
24  void run(const token_request& t, exec_state_facade) noexcept override
25  {
26  auto& i = *m_inlets[0]->target<ossia::audio_port>();
27  auto& o = *m_outlets[0]->target<ossia::audio_port>();
28  o = i;
29  }
30 };
31 
32 class dummy_midi_node : public ossia::graph_node
33 {
34 public:
35  dummy_midi_node()
36  {
37  m_inlets.push_back(new ossia::midi_inlet);
38  m_outlets.push_back(new ossia::midi_outlet);
39  }
40 
41  void run(const token_request& t, exec_state_facade) noexcept override
42  {
43  auto i = m_inlets[0]->target<ossia::midi_port>();
44  auto o = m_outlets[0]->target<ossia::midi_port>();
45  o->messages = i->messages;
46  }
47 };
48 
49 class dummy_value_node : public ossia::graph_node
50 {
51 public:
52  dummy_value_node()
53  {
54  m_inlets.push_back(new ossia::value_inlet);
55  m_outlets.push_back(new ossia::value_outlet);
56  }
57 
58  void run(const token_request& t, exec_state_facade) noexcept override
59  {
60  auto i = m_inlets[0]->target<ossia::value_port>();
61  auto o = m_outlets[0]->target<ossia::value_port>();
62  o->set_data(i->get_data());
63  }
64 };
65 
66 }