26 constexpr ColorRgba(uint8_t r_, uint8_t g_, uint8_t b_, uint8_t a_ = 0xff)
27 :
r(r_),
g(g_),
b(b_),
a(a_) {}
30 return r == o.r &&
g == o.g &&
b == o.b &&
a == o.a;
35using Argument = std::variant<int32_t, float, std::string,
41 std::vector<Argument>
args;
49 Message&
add(std::string v) {
args.emplace_back(std::move(v));
return *
this; }
50 Message&
add(std::vector<uint8_t> v) {
args.emplace_back(std::move(v));
return *
this; }
54 int32_t
get_int(
size_t i, int32_t def = 0)
const;
56 std::string
get_string(
size_t i,
const std::string& def =
"")
const;
91 bool send_raw(
const uint8_t* data,
size_t size);
100 std::unique_ptr<Impl> impl_;
161 void stop_impl(
bool destroying);
164 std::shared_ptr<Impl> impl_;
std::string local_address() const
bool listen(uint16_t port, MessageHandler handler)
Receiver(const Receiver &)=delete
Receiver & operator=(const Receiver &)=delete
bool is_listening() const
bool listen_with_options(uint16_t port, ReceiverOptions options)
Receiver(Receiver &&)=delete
Receiver & operator=(Receiver &&)=delete
uint16_t local_port() const
bool send_raw(const uint8_t *data, size_t size)
bool connect(const std::string &host, uint16_t port)
bool send(const Bundle &bundle)
bool send(const Message &msg)
bool is_connected() const
Bounded event contracts shared by host ingress and graph-authored nodes.
Definition anticipation_eligibility.hpp:9
Message decode(const uint8_t *data, size_t size)
std::function< void(const Bundle &)> BundleHandler
Definition osc.hpp:107
constexpr std::string_view kBindLoopback
Definition osc.hpp:118
constexpr std::string_view kBindAllInterfaces
Definition osc.hpp:119
std::variant< int32_t, float, std::string, std::vector< uint8_t >, ColorRgba > Argument
Definition osc.hpp:35
std::function< void(std::string_view)> FormatErrorHandler
Definition osc.hpp:108
std::vector< uint8_t > encode(const Message &msg)
std::function< void(const Message &)> MessageHandler
Definition osc.hpp:106
OSC Bundle — contains a timetag and a list of elements.
Definition bundle.hpp:60
32-bit RGBA color — the OSC 1.0 optional 'r' type tag.
Definition osc.hpp:19
uint8_t b
Definition osc.hpp:22
bool operator==(const ColorRgba &o) const
Definition osc.hpp:29
uint8_t g
Definition osc.hpp:21
uint8_t r
Definition osc.hpp:20
constexpr ColorRgba()=default
uint8_t a
Definition osc.hpp:23
constexpr ColorRgba(uint8_t r_, uint8_t g_, uint8_t b_, uint8_t a_=0xff)
Definition osc.hpp:26
float get_float(size_t i, float def=0) const
std::string get_string(size_t i, const std::string &def="") const
int32_t get_int(size_t i, int32_t def=0) const
Message(std::string addr)
Definition osc.hpp:45
Message & add(std::vector< uint8_t > v)
Definition osc.hpp:50
Message & add(ColorRgba c)
Definition osc.hpp:51
ColorRgba get_colour(size_t i, ColorRgba def={}) const
std::string address
Definition osc.hpp:40
std::vector< Argument > args
Definition osc.hpp:41
Message & add(std::string v)
Definition osc.hpp:49
Message & add(float v)
Definition osc.hpp:48
Message & add(int32_t v)
Definition osc.hpp:47
MessageHandler on_message
Definition osc.hpp:122
FormatErrorHandler on_error
Definition osc.hpp:124
std::string bind_address
Definition osc.hpp:128
std::vector< ReceiverRoute > routes
Definition osc.hpp:125
BundleHandler on_bundle
Definition osc.hpp:123
MessageHandler handler
Definition osc.hpp:112
std::string address_pattern
Definition osc.hpp:111