OSSIA
Open Scenario System for Interactive Application
ossia-max/src/remote.hpp
1 #pragma once
2 #include <ossia/detail/optional.hpp>
3 
4 #include <ossia-max/src/parameter_base.hpp>
5 
6 namespace ossia
7 {
8 namespace max_binding
9 {
10 
11 class device_base;
12 
13 class remote : public parameter_base
14 {
15 public:
16  using is_remote = std::true_type;
17 
18  void do_registration();
19  void unregister();
20 
21  ossia::safe_set<ossia::net::device_base*> m_devices{};
22 
23  void set_unit();
24 
25  void on_parameter_created_callback(const ossia::net::parameter_base& addr);
26 
27  void on_device_created(ossia::max_binding::device_base* device);
28  void on_device_removing(ossia::max_binding::device_base* device);
29  void
30  on_node_renamed_callback(ossia::net::node_base& node, const std::string& old_name);
31  void update_unit();
32 
33  static void update_attribute(
34  remote* x, ossia::string_view attribute, const ossia::net::node_base* node);
35  static t_max_err
36  notify(remote* x, t_symbol* s, t_symbol* msg, void* sender, void* data);
37 
38  static void get_mess_cb(remote* x, t_symbol* s);
39  static void get_unit(remote* x);
40  static void get_mute(remote* x);
41 
42  static void assist(ossia::max_binding::remote*, void*, long, long, char*);
43  static void* create(t_symbol*, long, t_atom*);
44  static void destroy(ossia::max_binding::remote*);
45 };
46 
47 } // max namespace
48 } // ossia namespace
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