OSSIA
Open Scenario System for Interactive Application
node_attributes.hpp File Reference

Detailed Description

This file defines default types and accessors for common extended attributes.

The attributes are defined as accessors to the extended attributes container.

The implementation of the functions is at the end of node.cpp

Go to the source code of this file.

Classes

struct  ossia::net::instance_bounds
 How many instances a node can have. More...
 

Namespaces

 ossia
 

Macros

#define OSSIA_ATTRIBUTE(Type, Name)
 
#define OSSIA_PARAM_ATTRIBUTE(Type, Name)
 
#define OSSIA_ATTRIBUTE_2(Type, Name, Text, Get, Set)
 

Typedefs

using ossia::net::tags = std::vector< std::string >
 Tags applied to a node: {"model", "interesting", ...}.
 
using ossia::net::description = std::string
 Human-readable description of a node.
 
using ossia::net::priority = float
 When a node must be sent before other.
 
using ossia::net::refresh_rate = int32_t
 How often a node is refreshed.
 
using ossia::net::recall_safe = bool
 Should the value be untouched on preset loading.
 
using ossia::net::value_step_size = double
 Granularity of the space.
 
using ossia::net::default_value = ossia::value
 The value on which a node should revert by default.
 
using ossia::net::critical = bool
 Means that the node is very important, e.g. a "play" message.
 
using ossia::net::disabled = bool
 A disabled node.
 
using ossia::net::zombie = bool
 Means that the node is not present on the "host" device.
 
using ossia::net::hidden = bool
 Means that the node should not be advertised by default.
 
using ossia::net::muted = bool
 Means that the node should not send / receives network messages.
 
using ossia::net::app_name = std::string
 Device attribute : the name of the software managed by this device.
 
using ossia::net::app_version = std::string
 Device attribute : the version of the software managed by this device.
 
using ossia::net::app_creator = std::string
 Device attribute : the creator of the software managed by this device.
 

Functions

OSSIA_EXPORT std::string_view ossia::net::text_instance_bounds ()
 
OSSIA_EXPORT std::optional< instance_bounds > ossia::net::get_instance_bounds (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_instance_bounds (extended_attributes &n, std::optional< instance_bounds >)
 
OSSIA_EXPORT void ossia::net::set_instance_bounds (ossia::net::node_base &n, std::optional< instance_bounds >)
 
OSSIA_EXPORT std::string_view ossia::net::text_tags ()
 
OSSIA_EXPORT std::optional< tags > ossia::net::get_tags (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_tags (extended_attributes &n, std::optional< tags > v)
 
OSSIA_EXPORT void ossia::net::set_tags (ossia::net::node_base &n, std::optional< tags > v)
 
OSSIA_EXPORT std::string_view ossia::net::text_description ()
 
OSSIA_EXPORT std::optional< description > ossia::net::get_description (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_description (extended_attributes &n, std::optional< description > v)
 
void ossia::net::set_description (extended_attributes &n, const char *arg)
 
OSSIA_EXPORT void ossia::net::set_description (ossia::net::node_base &n, std::optional< description > v)
 
void ossia::net::set_description (ossia::net::node_base &n, const char *arg)
 
OSSIA_EXPORT std::string_view ossia::net::text_priority ()
 
OSSIA_EXPORT std::optional< priority > ossia::net::get_priority (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_priority (extended_attributes &n, std::optional< priority > v)
 
OSSIA_EXPORT void ossia::net::set_priority (ossia::net::node_base &n, std::optional< priority > v)
 
OSSIA_EXPORT std::string_view ossia::net::text_refresh_rate ()
 
OSSIA_EXPORT std::optional< refresh_rate > ossia::net::get_refresh_rate (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_refresh_rate (extended_attributes &n, std::optional< refresh_rate > v)
 
OSSIA_EXPORT void ossia::net::set_refresh_rate (ossia::net::node_base &n, std::optional< refresh_rate > v)
 
OSSIA_EXPORT std::string_view ossia::net::text_value_step_size ()
 
OSSIA_EXPORT std::optional< value_step_size > ossia::net::get_value_step_size (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_value_step_size (extended_attributes &n, std::optional< value_step_size > v)
 
OSSIA_EXPORT void ossia::net::set_value_step_size (ossia::net::node_base &n, std::optional< value_step_size > v)
 
OSSIA_EXPORT std::string_view ossia::net::text_zombie ()
 
OSSIA_EXPORT zombie ossia::net::get_zombie (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_zombie (extended_attributes &n, zombie v)
 
OSSIA_EXPORT void ossia::net::set_zombie (ossia::net::node_base &n, zombie v)
 
OSSIA_EXPORT std::string_view ossia::net::text_hidden ()
 
OSSIA_EXPORT hidden ossia::net::get_hidden (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_hidden (extended_attributes &n, hidden v)
 
OSSIA_EXPORT void ossia::net::set_hidden (ossia::net::node_base &n, hidden v)
 
OSSIA_EXPORT std::string_view ossia::net::text_recall_safe ()
 
OSSIA_EXPORT recall_safe ossia::net::get_recall_safe (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_recall_safe (extended_attributes &n, recall_safe v)
 
OSSIA_EXPORT void ossia::net::set_recall_safe (ossia::net::node_base &n, recall_safe v)
 
std::string_view ossia::net::text_extended_type ()
 
std::optional< extended_type > ossia::net::get_extended_type (const ossia::net::node_base &n)
 
std::optional< extended_type > ossia::net::get_extended_type (const ossia::net::parameter_base &n)
 
std::optional< extended_type > ossia::net::get_extended_type (const ossia::extended_attributes &n)
 
void ossia::net::set_extended_type (extended_attributes &n, std::optional< extended_type > i)
 
void ossia::net::set_extended_type (ossia::net::node_base &n, std::optional< extended_type > i)
 
OSSIA_EXPORT std::string_view ossia::net::text_app_name ()
 
OSSIA_EXPORT std::optional< app_name > ossia::net::get_app_name (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_app_name (extended_attributes &n, std::optional< app_name > v)
 
OSSIA_EXPORT void ossia::net::set_app_name (ossia::net::node_base &n, std::optional< app_name > v)
 
void ossia::net::set_app_name (extended_attributes &n, const char *arg)
 
void ossia::net::set_app_name (ossia::net::node_base &n, const char *arg)
 
OSSIA_EXPORT std::string_view ossia::net::text_app_version ()
 
OSSIA_EXPORT std::optional< app_version > ossia::net::get_app_version (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_app_version (extended_attributes &n, std::optional< app_version > v)
 
OSSIA_EXPORT void ossia::net::set_app_version (ossia::net::node_base &n, std::optional< app_version > v)
 
void ossia::net::set_app_version (extended_attributes &n, const char *arg)
 
void ossia::net::set_app_version (ossia::net::node_base &n, const char *arg)
 
OSSIA_EXPORT std::string_view ossia::net::text_app_creator ()
 
OSSIA_EXPORT std::optional< app_creator > ossia::net::get_app_creator (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_app_creator (extended_attributes &n, std::optional< app_creator > v)
 
OSSIA_EXPORT void ossia::net::set_app_creator (ossia::net::node_base &n, std::optional< app_creator > v)
 
void ossia::net::set_app_creator (extended_attributes &n, const char *arg)
 
void ossia::net::set_app_creator (ossia::net::node_base &n, const char *arg)
 
OSSIA_EXPORT std::string_view ossia::net::text_default_value ()
 
OSSIA_EXPORT std::optional< ossia::valueossia::net::get_default_value (const extended_attributes &n)
 
OSSIA_EXPORT void ossia::net::set_default_value (extended_attributes &n, const ossia::value &v)
 
OSSIA_EXPORT void ossia::net::set_default_value (extended_attributes &n, ossia::value &&v)
 
void ossia::net::set_default_value (extended_attributes &n, int arg)
 
void ossia::net::set_default_value (extended_attributes &n, long arg)
 
void ossia::net::set_default_value (extended_attributes &n, bool arg)
 
void ossia::net::set_default_value (extended_attributes &n, char arg)
 
void ossia::net::set_default_value (extended_attributes &n, float arg)
 
void ossia::net::set_default_value (extended_attributes &n, double arg)
 
void ossia::net::set_default_value (extended_attributes &n, const char *arg)
 
OSSIA_EXPORT void ossia::net::set_default_value (extended_attributes &n, std::nullopt_t v)
 
OSSIA_EXPORT void ossia::net::set_default_value (ossia::net::node_base &n, const ossia::value &v)
 
OSSIA_EXPORT void ossia::net::set_default_value (ossia::net::node_base &n, ossia::value &&v)
 
void ossia::net::set_default_value (ossia::net::node_base &n, int arg)
 
void ossia::net::set_default_value (ossia::net::node_base &n, long arg)
 
void ossia::net::set_default_value (ossia::net::node_base &n, bool arg)
 
void ossia::net::set_default_value (ossia::net::node_base &n, char arg)
 
void ossia::net::set_default_value (ossia::net::node_base &n, float arg)
 
void ossia::net::set_default_value (ossia::net::node_base &n, double arg)
 
void ossia::net::set_default_value (ossia::net::node_base &n, const char *arg)
 
OSSIA_EXPORT void ossia::net::set_default_value (ossia::net::node_base &n, std::nullopt_t v)
 
std::string_view ossia::net::text_value ()
 
value ossia::net::clone_value (const ossia::net::node_base &n)
 
void ossia::net::set_value (ossia::net::node_base &n, value v)
 
void ossia::net::set_value (ossia::net::parameter_data &n, value v)
 
std::string_view ossia::net::text_value_type ()
 
std::optional< val_type > ossia::net::get_value_type (const ossia::net::node_base &n)
 
void ossia::net::set_value_type (ossia::net::node_base &n, val_type v)
 
std::string_view ossia::net::text_domain ()
 
domain ossia::net::get_domain (const ossia::net::node_base &n)
 
void ossia::net::set_domain (ossia::net::node_base &n, const domain &v)
 
void ossia::net::set_domain (ossia::net::parameter_data &n, const domain &v)
 
std::string_view ossia::net::text_access_mode ()
 
std::optional< access_mode > ossia::net::get_access_mode (const ossia::net::node_base &n)
 
void ossia::net::set_access_mode (ossia::net::node_base &n, access_mode v)
 
void ossia::net::set_access_mode (ossia::net::parameter_data &n, access_mode v)
 
std::string_view ossia::net::text_bounding_mode ()
 
std::optional< bounding_mode > ossia::net::get_bounding_mode (const ossia::net::node_base &n)
 
void ossia::net::set_bounding_mode (ossia::net::node_base &n, bounding_mode v)
 
void ossia::net::set_bounding_mode (ossia::net::parameter_data &n, bounding_mode v)
 
std::string_view ossia::net::text_repetition_filter ()
 
repetition_filter ossia::net::get_repetition_filter (const ossia::net::node_base &n)
 
void ossia::net::set_repetition_filter (ossia::net::node_base &n, repetition_filter v)
 
OSSIA_EXPORT void ossia::net::set_repetition_filter (ossia::net::parameter_data &n, repetition_filter v)
 
std::string_view ossia::net::text_unit ()
 
unit_t ossia::net::get_unit (const ossia::net::node_base &n)
 
void ossia::net::set_unit (ossia::net::node_base &n, unit_t v)
 
OSSIA_EXPORT void ossia::net::set_unit (ossia::net::parameter_data &n, unit_t v)
 
std::string_view ossia::net::text_muted ()
 
muted ossia::net::get_muted (const ossia::net::node_base &n)
 
void ossia::net::set_muted (ossia::net::node_base &n, muted v)
 
void ossia::net::set_muted (ossia::net::parameter_data &n, muted v)
 
std::string_view ossia::net::text_disabled ()
 
disabled ossia::net::get_disabled (const ossia::net::node_base &n)
 
void ossia::net::set_disabled (ossia::net::node_base &n, disabled v)
 
void ossia::net::set_disabled (ossia::net::parameter_data &n, disabled v)
 
std::string_view ossia::net::text_critical ()
 
critical ossia::net::get_critical (const ossia::net::node_base &n)
 
void ossia::net::set_critical (ossia::net::node_base &n, critical v)
 
void ossia::net::set_critical (ossia::net::parameter_data &n, critical v)
 
template<typename T , typename U >
OSSIA_ATTRIBUTE_2(ossia::value, value, ossia::net::text_value, ossia::net::clone_value, ossia::net::push_value) template<> struct is_parameter_attribute< value_attribute > bool ossia::net::compare_optional (const T &t, const U &u)
 
bool ossia::net::compare_optional (const ossia::value &t, const ossia::value &u)
 
template<typename U >
bool ossia::net::compare_optional (const ossia::domain &t, const U &u)
 
template<typename U >
bool ossia::net::compare_optional (const ossia::unit_t &t, const U &u)
 
bool ossia::net::compare_optional (bool t, bool u)
 
bool ossia::net::compare_optional (ossia::repetition_filter t, ossia::repetition_filter u)
 
bool ossia::net::valid (const ossia::value &v)
 
template<typename T >
bool ossia::net::valid (const T &v)
 

Macro Definition Documentation

◆ OSSIA_ATTRIBUTE

#define OSSIA_ATTRIBUTE (   Type,
  Name 
)
Value:
struct OSSIA_EXPORT Name##_attribute \
{ \
using type = Type; \
static auto text() \
{ \
return ossia::net::text_##Name(); \
} \
template <typename... Args> \
static auto getter(Args&&... args) \
{ \
return ossia::net::get_##Name(std::forward<Args>(args)...); \
} \
template <typename... Args> \
static auto setter(Args&&... args) \
{ \
return ossia::net::set_##Name(std::forward<Args>(args)...); \
} \
};

◆ OSSIA_PARAM_ATTRIBUTE

#define OSSIA_PARAM_ATTRIBUTE (   Type,
  Name 
)
Value:
OSSIA_ATTRIBUTE(Type, Name) \
template <> \
struct is_parameter_attribute<Name##_attribute> : public std::true_type \
{ \
};

◆ OSSIA_ATTRIBUTE_2

#define OSSIA_ATTRIBUTE_2 (   Type,
  Name,
  Text,
  Get,
  Set 
)
Value:
struct OSSIA_EXPORT Name##_attribute \
{ \
using type = Type; \
static auto text() \
{ \
return Text(); \
} \
template <typename... Args> \
static auto getter(Args&&... args) \
{ \
return Get(std::forward<Args>(args)...); \
} \
template <typename... Args> \
static auto setter(Args&&... args) \
{ \
return Set(std::forward<Args>(args)...); \
} \
};
@ Set
Definition: ossia-cpp98.hpp:68
@ Get
Definition: ossia-cpp98.hpp:67