2 #include <ossia/detail/config.hpp>
3 #if defined(OSSIA_PROTOCOL_ARTNET)
4 #include <ossia/detail/flat_map.hpp>
5 #include <ossia/network/common/device_parameter.hpp>
6 #include <ossia/protocols/artnet/artnet_protocol.hpp>
13 template <std::
size_t I>
14 struct artnet_visitor;
16 class OSSIA_EXPORT dmx_parameter :
public device_parameter
20 net::node_base& node, dmx_buffer& buffer,
const unsigned int channel,
int min = 0,
21 int max = 255, int8_t bytes = 1);
25 uint32_t channel() const noexcept {
return m_channel; }
27 void set_dmx_value(
const uint8_t* start,
const uint8_t* buffer_end);
30 void device_update_value()
override;
33 const uint32_t m_channel{};
35 template <std::
size_t I>
36 friend struct artnet_in_visitor;
37 template <std::
size_t I>
38 friend struct artnet_out_visitor;
41 class OSSIA_EXPORT dmx_enum_parameter :
public device_parameter
45 net::node_base& node, dmx_parameter& p,
46 std::vector<std::pair<std::string, uint8_t>> values);
47 ~dmx_enum_parameter();
50 void device_update_value()
override;
52 dmx_parameter& m_param;
54 ossia::flat_map<std::string, uint8_t> m_map;
56 friend struct artnet_enum_visitor;
constexpr OSSIA_INLINE auto min(const T a, const U b) noexcept -> typename std::conditional<(sizeof(T) > sizeof(U)), T, U >::type
min function tailored for values
Definition: math.hpp:125
constexpr OSSIA_INLINE auto max(const T a, const U b) noexcept -> typename std::conditional<(sizeof(T) > sizeof(U)), T, U >::type
max function tailored for values
Definition: math.hpp:96