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>
20 OSSIA_STD_BEGIN_NAMESPACE
23 OSSIA_STD_END_NAMESPACE
36 struct full_parameter_data;
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;
188 inline bool operator==(
const parameter_base& lhs,
const parameter_base& rhs)
192 inline bool operator!=(
const parameter_base& lhs,
const parameter_base& rhs)
The callback_container class.
Definition: callback_container.hpp:46
The node_base class.
Definition: network/base/node.hpp:48
The parameter_base class.
Definition: ossia/network/base/parameter.hpp:48
virtual parameter_base & push_value()=0
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
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