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_0_outbound_dynamic_policy : osc_common_outbound_dynamic_policy
17 using osc_common_outbound_dynamic_policy::operator();
21 void operator()(impulse)
const { p << int32_t(0); }
23 void operator()(
bool b)
const { p << int32_t(b); }
25 void operator()(
char c)
const { p << int32_t(c); }
28 void operator()(
const std::vector<value>& t)
const
30 for(
const auto& val : t)
36 void operator()(
const value_map_type& t)
const
38 for(
const auto& [k, v] : t)
46struct osc_1_0_outbound_stream_visitor : osc_1_0_outbound_dynamic_policy
48 using osc_1_0_outbound_dynamic_policy::operator();
49 void operator()(impulse)
const { }
51 void operator()(
const std::vector<value>& t)
const
56 static_cast<const osc_1_0_outbound_dynamic_policy&
>(*this)(t);
60struct osc_1_0_outbound_static_policy : osc_common_outbound_static_policy
62 using osc_common_outbound_static_policy::operator();
63 std::size_t operator()(
char* buffer, ossia::impulse v,
const auto&...) const noexcept
73 std::size_t operator()(
char* buffer,
bool v)
const noexcept
75 return osc_common_outbound_static_policy::operator()(buffer, int32_t{v});
78 std::size_t operator()(
char* buffer,
char v)
const noexcept
80 return osc_common_outbound_static_policy::operator()(buffer, int32_t{v});
86 using static_policy = osc_1_0_outbound_static_policy;
87 using dynamic_policy = osc_1_0_outbound_dynamic_policy;