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>
16 explicit device_parameter_t(net::node_base& node)
17 : net::parameter_base{node}
20 set_repetition_filter(repetition_filter::ON);
23 ~device_parameter_t() =
default;
29 m_current_value = val;
30 get_protocol().
push(*
this);
34 void pull_value()
override { get_protocol().
pull(*
this); }
41 get_protocol().
push(*
this);
52 get_protocol().
push(*
this);
60 m_current_value = ossia::convert<T>(val);
62 device_update_value();
65 return m_current_value;
72 return ossia::value_trait<T>::ossia_enum;
83 const domain& get_domain() const noexcept
override
101 virtual void device_update_value()
void send(Args &&... args)
send Trigger all callbacks
Definition callback_container.hpp:190
The parameter_base class.
Definition ossia/network/base/parameter.hpp:48
ossia::value value(ossia::destination_index) const
Returns the sub-value at the index given by destination_index.
Definition ossia/network/base/parameter.cpp:31
virtual bool pull(parameter_base &)=0
Pulls a value from the server synchronously.
virtual bool push(const parameter_base &, const ossia::value &v)=0
Send a value to the network.
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
@ CLIP
The bounds are ignored.
access_mode
Address behaviors at crossing domain boundaries time.
Definition parameter_properties.hpp:46
@ SET
The value can be retrieved.
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