2#include <ossia/detail/config.hpp>
4#include <ossia/detail/hash_map.hpp>
5#include <ossia/detail/optional.hpp>
6#include <ossia/network/base/protocol.hpp>
7#include <ossia/network/phidgets/phidgets_parameter_data.hpp>
9#include <readerwriterqueue.h>
20 net::device_base* m_dev{};
21 std::function<void()> m_commandCb;
22 moodycamel::ReaderWriterQueue<std::function<void()>> m_functionQueue;
24 ossia::hash_map<PhidgetHandle, ossia::phidget_node*> m_phidgetMap;
28 ~phidget_protocol()
override;
30 bool pull(net::parameter_base&)
override;
31 std::future<void> pull_async(net::parameter_base&)
override;
32 void request(net::parameter_base&)
override;
33 bool push(
const net::parameter_base&,
const ossia::value& v)
override;
34 bool observe(net::parameter_base&,
bool)
override;
35 bool observe_quietly(net::parameter_base&,
bool)
override;
36 bool update(net::node_base& node_base)
override;
38 void set_device(net::device_base& dev)
override;
40 void set_command_callback(std::function<
void()>);
47 PhidgetManagerHandle m_hdl{};
49 void on_deviceCreated(PhidgetHandle phid);
50 void on_deviceRemoved(phidget_id sn);
The node_base class.
Definition node.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