OSSIA
Open Scenario System for Interactive Application
dataflow_fwd.hpp
1 #pragma once
2 #include <ossia/detail/config.hpp>
3 
4 #include <ossia/detail/hash.hpp>
5 #include <ossia/detail/nullable_variant.hpp>
6 
7 #include <memory>
8 #include <utility>
9 namespace std
10 {
11 template <typename T>
12 class hash<std::pair<T*, T*>>
13 {
14 public:
15  std::size_t operator()(const std::pair<T*, T*>& p) const
16  {
17  std::size_t seed = 0;
18  ossia::hash_combine(seed, p.first);
19  ossia::hash_combine(seed, p.second);
20  return seed;
21  }
22 };
23 }
24 
25 namespace ossia
26 {
27 namespace net
28 {
29 class parameter_base;
30 class node_base;
31 }
32 namespace traversal
33 {
34 struct path;
35 }
36 using destination_t = ossia::nullable_variant<
37  ossia::net::parameter_base*, ossia::traversal::path, ossia::net::node_base*>;
38 struct execution_state;
39 class graph_node;
40 struct graph_edge;
41 using node_ptr = std::shared_ptr<graph_node>;
42 using edge_ptr = std::shared_ptr<graph_edge>;
43 struct port;
44 struct outlet;
45 struct inlet;
46 using inlet_ptr = inlet*;
47 using outlet_ptr = outlet*;
48 class graph_interface;
49 
50 struct audio_port;
51 struct midi_port;
52 struct value_port;
53 struct geometry_port;
54 
55 struct audio_delay_line;
56 struct midi_delay_line;
57 struct value_delay_line;
58 struct geometry_delay_line;
59 
60 // using data_type
61 // = ossia::nullable_variant<audio_port, midi_port, value_port, geometry_port>;
62 using delay_line_type = ossia::nullable_variant<
63  audio_delay_line, midi_delay_line, value_delay_line, geometry_delay_line>;
64 }
The node_base class.
Definition: network/base/node.hpp:48
The parameter_base class.
Definition: ossia/network/base/parameter.hpp:48
Definition: git_info.h:7
Utilities to construct classes that will perform an action for nodes matching a path.