OSSIA
Open Scenario System for Interactive Application
complex_type.hpp
1 #pragma once
2 #include <ossia/detail/nullable_variant.hpp>
3 #include <ossia/detail/string_view.hpp>
4 #include <ossia/network/common/parameter_properties.hpp>
5 namespace ossia
6 {
7 struct unit_t;
8 class value;
9 using extended_type = std::string;
10 
11 namespace net
12 {
13 class node_base;
14 class parameter_base;
15 struct parameter_data;
16 }
17 
27 using complex_type
28  = ossia::nullable_variant<ossia::val_type, ossia::unit_t, ossia::extended_type>;
29 
32 OSSIA_EXPORT
33 ossia::val_type underlying_type(const complex_type& t);
34 
36 OSSIA_EXPORT
38 setup_parameter(const complex_type& t, ossia::net::node_base& node);
39 
41 OSSIA_EXPORT
43 try_setup_parameter(std::string_view t, ossia::net::node_base& node);
44 
45 OSSIA_EXPORT
46 ossia::net::parameter_base* create_parameter(
47  ossia::net::node_base& parent, std::string_view name, std::string_view type);
48 
50 OSSIA_EXPORT
51 void update_parameter_type(const complex_type& t, ossia::net::parameter_base& node);
52 
53 OSSIA_EXPORT
54 const ossia::net::parameter_data* default_parameter_for_type(std::string_view type);
55 
56 OSSIA_EXPORT
58  const ossia::value& v, const ossia::complex_type& source_t,
59  const ossia::complex_type& dest_t);
60 }
The node_base class.
Definition: network/base/node.hpp:48
The parameter_base class.
Definition: ossia/network/base/parameter.hpp:48
The value class.
Definition: value.hpp:173
Definition: git_info.h:7
val_type
Enum to represent the types that a value can take.
Definition: parameter_properties.hpp:16
net::parameter_base * setup_parameter(const complex_type &t, net::node_base &node)
Creates a parameter in a node according to a complex type.
Definition: complex_type.cpp:101
ossia::val_type underlying_type(const complex_type &t)
Definition: complex_type.cpp:40
void update_parameter_type(const complex_type &t, net::parameter_base &addr)
Change the type of a parameter according to a complex type.
Definition: complex_type.cpp:294
std::string extended_type
How a low-level type should be interpreted.
Definition: complex_type.hpp:9
OSSIA_EXPORT T convert(const ossia::value &val)
convert Convert a value to the given type.
Definition: value_conversion_impl.hpp:411
net::parameter_base * try_setup_parameter(std::string_view str, net::node_base &node)
Creates a parameter in a node according to heuristics.
Definition: complex_type.cpp:251
The data that can be found inside a parameter.
Definition: parameter_data.hpp:21