OSSIA
Open Scenario System for Interactive Application
ossia-pd/src/remote.hpp
1 #pragma once
2 
3 #include <ossia/detail/optional.hpp>
4 
5 #include <ossia-pd/src/parameter_base.hpp>
6 
7 namespace ossia::pd
8 {
9 
10 class remote : public parameter_base
11 {
12 public:
13  using is_view = std::true_type;
14 
15  remote();
16 
17  bool register_node(const std::vector<t_matcher>& node);
18  bool do_registration(const std::vector<t_matcher>& node);
19  bool unregister();
20 
21  ossia::net::device_base* m_dev{};
22  float m_rate_min;
23 
24  void set_unit();
25  void set_rate();
26 
27  void on_parameter_created_callback(const ossia::net::parameter_base& addr);
28  static void update_attribute(
29  remote* x, ossia::string_view attribute, const ossia::net::node_base* node);
30  static void bind(remote* x, t_symbol* address);
31  static void click(
32  remote* x, t_floatarg xpos, t_floatarg ypos, t_floatarg shift, t_floatarg ctrl,
33  t_floatarg alt);
34  static t_pd_err
35  notify(remote* x, t_symbol* s, t_symbol* msg, void* sender, void* data);
36 
37  static void destroy(remote* x);
38  static void* create(t_symbol* name, int argc, t_atom* argv);
39 
40  static ossia::safe_set<remote*>& quarantine();
41 
42  static void get_mess_cb(remote* x, t_symbol* s);
43  static void get_unit(remote* x);
44  static void get_mute(remote* x);
45  static void get_rate(remote* x);
46  static void get_enable(remote* x);
47 
48  void on_device_deleted(const ossia::net::node_base&);
49 };
50 } // namespace ossia
Root of a device tree.
Definition: ossia/network/base/device.hpp:58
The node_base class.
Definition: network/base/node.hpp:48
The parameter_base class.
Definition: ossia/network/base/parameter.hpp:48