3#include <ossia/network/base/node.hpp>
4#include <ossia/network/base/protocol.hpp>
5#include <ossia/network/common/complex_type.hpp>
6#include <ossia/network/domain/domain.hpp>
7#include <ossia/network/oscquery/oscquery_server.hpp>
8#include <ossia/network/value/value.hpp>
21 virtual ~device_parameter();
26 void device_value_change_event(
const ossia::value& value);
28 void pull_value()
override;
39 ossia::net::parameter_base& set_value_type(
ossia::val_type)
override {
return *
this; }
42 ossia::net::parameter_base& set_access(
ossia::access_mode)
override {
return *
this; }
45 ossia::net::parameter_base& set_domain(const
ossia::domain&)
override {
return *
this; }
48 ossia::net::parameter_base& set_bounding(
ossia::bounding_mode)
override
53 template <
class ParamType = device_parameter,
class... T>
54 static ParamType* create_device_parameter(
58 static_assert(std::is_base_of<device_parameter, ParamType>::value);
60 auto& param_node = ossia::net::create_node(root_node, path);
61 auto param = std::make_unique<ParamType>(param_node, std::forward<T>(ctor_args)...);
63 ParamType* ret = param.get();
65 param->set_value(initial_value);
66 param_node.set_parameter(std::move(param));
72 virtual void device_update_value()
The node_base class.
Definition node.hpp:48
The parameter_base class.
Definition ossia/network/base/parameter.hpp:48
The value class.
Definition value.hpp:173
val_type
Enum to represent the types that a value can take.
Definition parameter_properties.hpp:16
bounding_mode
Address behaviors at crossing domain boundaries.
Definition parameter_properties.hpp:56
access_mode
Address behaviors at crossing domain boundaries time.
Definition parameter_properties.hpp:46
OSSIA_EXPORT void push_value(const ossia::destination &addr, const ossia::value_with_unit &)
Send a value to a given destination.
Definition ossia/network/base/parameter.cpp:151
domain A domain of values
Definition domain_base.hpp:23