3#include <ossia/detail/hash_map.hpp>
4#include <ossia/detail/variant.hpp>
5#include <ossia/network/base/protocol.hpp>
6#include <ossia/network/common/complex_type.hpp>
7#include <ossia/network/common/device_parameter.hpp>
8#include <ossia/network/domain/domain.hpp>
9#include <ossia/network/oscquery/oscquery_server.hpp>
11#include <concurrentqueue.h>
15typedef void* mpr_graph;
16typedef void* mpr_device;
17typedef void* mpr_signal;
18typedef void* mpr_link;
20typedef void* mpr_slot;
21typedef void* mpr_network;
22typedef void* mpr_database;
23typedef void* mpr_queue;
24typedef int mpr_signal_group;
32 libmapper_server_protocol();
33 libmapper_server_protocol(
const libmapper_server_protocol&) =
delete;
34 libmapper_server_protocol(libmapper_server_protocol&&) =
delete;
35 libmapper_server_protocol& operator=(
const libmapper_server_protocol&) =
delete;
36 libmapper_server_protocol& operator=(libmapper_server_protocol&&) =
delete;
37 ~libmapper_server_protocol()
override;
50 template <
typename OssiaType,
typename LibmapperType>
51 void create_1d_parameter(
const parameter_base& p);
52 template <std::
size_t N>
53 void create_array_parameter(
const parameter_base& p);
54 void create_vector_parameter(
const parameter_base& p);
55 friend struct libmapper_create_param;
56 friend struct libmapper_apply_control;
70 mpr_device m_mapper_dev{};
72 ossia::hash_map<const ossia::net::parameter_base*, mpr_signal> m_inputMap;
73 ossia::hash_map<const ossia::net::parameter_base*, mpr_signal> m_outputMap;
76 std::atomic_bool m_running{};
84 moodycamel::ConcurrentQueue<Message> m_sendQueue;
94 using ControlMessage = ossia::variant<CreateSignal, RemoveSignal>;
95 moodycamel::ConcurrentQueue<ControlMessage> m_ctlQueue;
97 std::atomic_int m_editSemaphore{};
103 explicit libmapper_client_protocol(std::string device);
104 libmapper_client_protocol(
const libmapper_client_protocol&) =
delete;
105 libmapper_client_protocol(libmapper_client_protocol&&) =
delete;
106 libmapper_client_protocol& operator=(
const libmapper_client_protocol&) =
delete;
107 libmapper_client_protocol& operator=(libmapper_client_protocol&&) =
delete;
108 ~libmapper_client_protocol()
override;
119 void stop()
override;
126 std::string m_mapper_dev_name;
129 mpr_device m_mapper_dev{};
131 ossia::hash_map<const ossia::net::parameter_base*, mpr_signal> m_inputMap;
132 ossia::hash_map<const ossia::net::parameter_base*, mpr_signal> m_outputMap;
Root of a device tree.
Definition ossia/network/base/device.hpp:58
The node_base class.
Definition node.hpp:48
The parameter_base class.
Definition ossia/network/base/parameter.hpp:48
The protocol_base class.
Definition protocol.hpp:40
The value class.
Definition value.hpp:173
Full information about a parameter.
Definition parameter_data.hpp:61