2#include <ossia/network/osc/detail/osc_value_write_visitor.hpp>
3#include <ossia/network/sockets/writers.hpp>
5#include <ossia-qt/invoke.hpp>
6#include <ossia-qt/js_utilities.hpp>
8#include <boost/asio/io_context.hpp>
12#define run_on_qt_thread(...) \
13 ossia::qt::run_async(this, [=, this] { __VA_ARGS__; }, Qt::AutoConnection);
14#define run_on_asio_thread(...) \
15 boost::asio::dispatch(this->context(), [=, self = QPointer{this}] { __VA_ARGS__ });
19struct protocols_sender
21 void send_osc(
this auto&& self, QByteArray address, QJSValueList values)
23 using socket_type = std::remove_cvref_t<
decltype(self.socket)>;
24 using writer_type = ossia::net::socket_writer<socket_type>;
25 using send_visitor = ossia::net::osc_value_send_visitor<
34 send_visitor{p, address.toStdString(), writer_type{self.socket}});
38 auto v = ossia::qt::value_from_js(values[0]);
39 v.apply(send_visitor{p, address.toStdString(), writer_type{self.socket}});
43 std::vector<ossia::value> vec;
44 vec.reserve(values.size());
45 for(
const auto& v : values)
46 vec.push_back(
ossia::qt::value_from_js(v));
48 vvec.apply(send_visitor{p, address.toStdString(), writer_type{self.socket}});
The value class.
Definition value.hpp:173
Definition qml_device.cpp:43
Full information about a parameter.
Definition parameter_data.hpp:61