2#include <ossia/network/osc/detail/osc_common_policy.hpp>
3#include <ossia/network/osc/detail/osc_utils.hpp>
4#include <ossia/network/value/value.hpp>
6#include <boost/endian/conversion.hpp>
8#include <oscpack/osc/OscOutboundPacketStream.h>
9#include <oscpack/osc/OscTypes.h>
15struct osc_1_1_outbound_array_policy : osc_common_outbound_dynamic_policy
17 using osc_common_outbound_dynamic_policy::operator();
18 void operator()(impulse)
const { p << oscpack::Infinitum(); }
20 void operator()(
bool b)
const { p << b; }
22 void operator()(
char c)
const { p << int32_t(c); }
25 void operator()(
const std::vector<value>& t)
const
27 for(
const auto& val : t)
33 void operator()(
const value_map_type& t)
const { }
36struct osc_1_1_outbound_value_policy : osc_common_outbound_static_policy
38 using osc_common_outbound_static_policy::operator();
39 std::size_t operator()(
45 buffer[1] = oscpack::INFINITUM_TYPE_TAG;
47 buffer[1] = oscpack::NIL_TYPE_TAG;
56 std::size_t operator()(
char* buffer, ossia::impulse v)
const noexcept
67 std::size_t operator()(
char* buffer,
bool v)
const noexcept
70 buffer[1] = v ? oscpack::TRUE_TYPE_TAG : oscpack::FALSE_TYPE_TAG;
77 std::size_t operator()(
char* buffer,
char v)
const noexcept
79 return osc_common_outbound_static_policy::operator()(buffer, int32_t{v});
85 using static_policy = osc_1_1_outbound_value_policy;
86 using dynamic_policy = osc_1_1_outbound_array_policy;
std::string extended_type
How a low-level type should be interpreted.
Definition complex_type.hpp:9