OSSIA
Open Scenario System for Interactive Application
midi_node.hpp
1 #pragma once
3 #include <ossia/network/base/node.hpp>
4 
5 namespace ossia::net::midi
6 {
7 class midi_protocol;
8 class midi_device;
9 class OSSIA_EXPORT midi_node : public ossia::net::node_base
10 {
11 protected:
12  midi_device& m_device;
13  node_base* m_parent{};
14  std::unique_ptr<parameter_base> m_parameter;
15 
16 public:
17  using iterator = ossia::ptr_container<ossia::net::node_base>::iterator;
18  using const_iterator = ossia::ptr_container<ossia::net::node_base>::const_iterator;
19  ~midi_node() override;
20  midi_node(midi_device& aDevice, ossia::net::node_base& aParent);
21  midi_node(midi_device& aDevice);
22 
23  device_base& get_device() const final override;
24  node_base* get_parent() const final override;
25 
26  node_base& set_name(std::string) override;
27 
28  parameter_base* get_parameter() const final override;
29  parameter_base* create_parameter(val_type) final override;
30  bool remove_parameter() final override;
31 
32  std::unique_ptr<node_base> make_child(const std::string& name) override;
33  void removing_child(node_base& node_base) final override;
34 
36  midi_node* add_midi_node(std::unique_ptr<midi_node> n);
37 };
38 }
The node_base class.
Definition: network/base/node.hpp:48
val_type
Enum to represent the types that a value can take.
Definition: parameter_properties.hpp:16