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