2#include <ossia/detail/config.hpp>
6#include <ossia/detail/optional.hpp>
7#include <ossia/detail/std_fwd.hpp>
8#include <ossia/network/base/value_callback.hpp>
9#include <ossia/network/common/parameter_properties.hpp>
10#include <ossia/network/dataspace/dataspace_fwd.hpp>
11#include <ossia/network/domain/domain_fwd.hpp>
14#include <nano_signal_slot.hpp>
20OSSIA_STD_BEGIN_NAMESPACE
23OSSIA_STD_END_NAMESPACE
36struct full_parameter_data;
59 using callback_index = callback_container<value_callback>::iterator;
85 virtual std::future<void> pull_value_async();
98 virtual void request_value();
116 set_value_quiet(std::move(v));
128 std::vector<ossia::value>
value(
const std::vector<ossia::destination_index>&)
const;
137 return set_value(std::move(v));
140 std::optional<ossia::value> get_default_value() const noexcept;
141 void set_default_value(const
ossia::
value& v);
143 virtual
val_type get_value_type() const noexcept = 0;
144 virtual parameter_base& set_value_type(
val_type) = 0;
146 virtual
access_mode get_access() const noexcept = 0;
147 virtual parameter_base& set_access(
access_mode) = 0;
149 virtual const
domain& get_domain() const noexcept = 0;
150 virtual parameter_base& set_domain(const
domain&) = 0;
157 virtual
bool filter_value(const
ossia::
value& val) const noexcept
159 return m_disabled || m_muted;
166 bool get_disabled() const noexcept;
170 bool get_muted() const noexcept;
173 bool get_critical() const noexcept;
188struct OSSIA_EXPORT parameter_alphabetical_sort
195inline bool operator==(
const parameter_base& lhs,
const parameter_base& rhs)
199inline bool operator!=(
const parameter_base& lhs,
const parameter_base& rhs)
The callback_container class.
Definition callback_container.hpp:46
The node_base class.
Definition node.hpp:48
The parameter_base class.
Definition ossia/network/base/parameter.hpp:48
virtual ossia::value value() const =0
Clone the current value without any network request.
virtual ossia::value set_value_quiet(const ossia::value &v)
Reimplement to provide a way that does not call the observers.
Definition ossia/network/base/parameter.hpp:134
virtual parameter_base & push_value()=0
const ossia::unit_t & get_unit() const noexcept
by default there is no filter
Definition ossia/network/base/parameter.hpp:162
virtual parameter_base & push_value(const ossia::value &)=0
Sets the value locally, and sends it to the network.
virtual void pull_value()=0
Value getters ///.
The protocol_base class.
Definition protocol.hpp:40
The value class.
Definition value.hpp:173
val_type
Enum to represent the types that a value can take.
Definition parameter_properties.hpp:16
repetition_filter
If enabled, sending twice the same value will only send it once by network.
Definition parameter_properties.hpp:70
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::small_vector< int32_t, 2 > destination_index
Definition destination_index.hpp:40
parameter_type
Possible types of parameters / ports.
Definition parameter_properties.hpp:34
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
Definition dataspace.hpp:24