OSSIA
Open Scenario System for Interactive Application
qt_object_node.hpp
1 #pragma once
2 #include <ossia/network/base/protocol.hpp>
3 #include <ossia/network/generic/generic_device.hpp>
4 #include <ossia/network/generic/generic_node.hpp>
5 #include <ossia/network/generic/generic_parameter.hpp>
6 
7 #include <ossia-qt/js_utilities.hpp>
8 
9 #include <QMetaObject>
10 #include <QMetaProperty>
11 #include <QObject>
12 #include <QtQml/QQmlProperty>
13 
14 #include <verdigris>
15 
16 namespace ossia
17 {
18 namespace qt
19 {
20 
21 class OSSIA_EXPORT qt_object_node final
22  : public QObject
23  , public ossia::net::generic_node_base
24 
25 {
26  W_OBJECT(qt_object_node)
27 public:
28  qt_object_node(QObject& obj, ossia::net::device_base& device);
29  qt_object_node(QObject& obj, ossia::net::device_base& device, node_base& aParent);
30 
31  ossia::net::parameter_base* get_parameter() const final override;
32  ossia::net::parameter_base* create_parameter(ossia::val_type type) final override;
33  bool remove_parameter() final override;
34 
35  QObject& object() const { return mObject; }
36 
37 private:
38  void init(QObject&);
39  void childEvent(QChildEvent* event) override;
40 
41  std::unique_ptr<node_base> make_child(const std::string& name) final override;
42  void removing_child(node_base&) final override;
43 
44  std::unique_ptr<ossia::net::parameter_base> mAddress;
45  QObject& mObject;
46 };
47 }
48 }
Root of a device tree.
Definition: ossia/network/base/device.hpp:58
The parameter_base class.
Definition: ossia/network/base/parameter.hpp:48
Definition: git_info.h:7
val_type
Enum to represent the types that a value can take.
Definition: parameter_properties.hpp:16