OSSIA
Open Scenario System for Interactive Application
ossia-pd/src/attribute.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 attribute : public parameter_base
11 {
12 public:
13  using is_attribute = std::true_type;
14 
15  attribute();
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 
23  void on_parameter_created_callback(const ossia::net::parameter_base& addr);
24  static void click(
25  attribute* x, t_floatarg xpos, t_floatarg ypos, t_floatarg shift, t_floatarg ctrl,
26  t_floatarg alt);
27  static t_pd_err
28  notify(attribute* x, t_symbol* s, t_symbol* msg, void* sender, void* data);
29 
30  static void destroy(attribute* x);
31  static void* create(t_symbol* name, int argc, t_atom* argv);
32 
33  static ossia::safe_set<attribute*>& quarantine();
34 
35  void on_device_deleted(const ossia::net::node_base&);
36 };
37 } // 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