void write_osc_event(byte_vector& destination, const core::monitor::message& e) { destination.resize(4096); ::osc::OutboundPacketStream o(reinterpret_cast<char*>(destination.data()), static_cast<unsigned long>(destination.size())); o << ::osc::BeginMessage(e.path().c_str()); param_visitor<decltype(o)> param_visitor(o); BOOST_FOREACH(const auto& data, e.data()) boost::apply_visitor(param_visitor, data); o << ::osc::EndMessage; destination.resize(o.Size()); }
void write_osc_bundle_element_start(byte_vector& destination, const byte_vector& message) { destination.resize(4); int32_t* bundle_element_size = reinterpret_cast<int32_t*>(destination.data()); #ifdef OSC_HOST_LITTLE_ENDIAN *bundle_element_size = swap_byte_order(static_cast<int32_t>(message.size())); #else *bundle_element_size = static_cast<int32_t>(bundle.size()); #endif }