31#include <netinet/in.h>
35#pragma comment(lib,"Ws2_32.lib")
68 virtual const char *
what()
const throw() {
return "OSC parsing error"; }
73 virtual const char *
what()
const throw() {
return "OSC buffer underflow"; }
78 virtual const char *
what()
const throw() {
return "OSC buffer overflow"; }
108 set(_ptr, _count, _size);
143 return 4 - (
count & 3);
178 if (
pos + bytes >
data.length())
189 data.resize(wpos + bytes);
203 return 4 - (
data.length() & 3);
220template<
class Buffer,
class TypeBuffer = null_buffer,
bool Throw = true>
243 memset(dest, 0, bytes);
294template<
class Buffer,
class TypeBuffer>
295inline osc_stream<Buffer, TypeBuffer> &
304template<
class Buffer,
class TypeBuffer>
313template<
class Buffer,
class TypeBuffer>
314inline osc_stream<Buffer, TypeBuffer> &
322template<
class Buffer,
class TypeBuffer>
323inline osc_stream<Buffer, TypeBuffer> &
328 val2.i = htonl(val2.i);
334template<
class Buffer,
class TypeBuffer>
340 val2.i = htonl(val2.i);
345template<
class Buffer,
class TypeBuffer>
346inline osc_stream<Buffer, TypeBuffer> &
347operator <<(osc_stream<Buffer, TypeBuffer> &
s,
const std::string &str)
349 s.write(&str[0], str.length());
355template<
class Buffer,
class TypeBuffer>
369 if (!five[1] || !five[2] || !five[3])
375template<
class Buffer,
class TypeBuffer,
class DestBuffer>
376inline osc_stream<Buffer, TypeBuffer> &
388 buf.write(tmp, part);
391 s.read(&nlen, 4 - (len & 3));
395template<
class Buffer,
class TypeBuffer,
class SrcBuffer>
396inline osc_stream<Buffer, TypeBuffer> &
415template<
class Buffer,
class TypeBuffer>
416inline osc_stream<Buffer, TypeBuffer> &
422template<
class Buffer,
class TypeBuffer>
423inline osc_stream<Buffer, TypeBuffer> &
429template<
class Buffer,
class TypeBuffer>
430inline osc_stream<Buffer, TypeBuffer> &
431operator <<(osc_stream<Buffer, TypeBuffer> &
s, raw_buffer &str)
436template<
class Buffer,
class TypeBuffer>
487template<
class OscStream>
494template<
class OscStream,
class DumpStream>
502 int pos = buffer.buffer.tell();
503 stream <<
"address: " << address <<
", type tag: " << type_tag << std::endl;
504 for (
unsigned int i = 0;
i < type_tag.size();
i++)
506 stream <<
"Argument " <<
i <<
" is ";
534 stream <<
"blob (" <<
val.data.length() <<
" bytes)";
539 stream <<
"unknown - cannot parse more arguments" << std::endl;
547 buffer.buffer.seek(pos);
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
unsigned v[N_MAX]
Definition inflate.c:1584
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
int val
Definition jpeglib.h:956
int int32_t
Definition mid.cpp:97
unsigned int uint32_t
Definition mid.cpp:100
unsigned char uint8_t
Definition mid.cpp:98
osc_stream< Buffer, TypeBuffer > & write_buffer_to_osc_stream(osc_stream< Buffer, TypeBuffer > &s, SrcBuffer &buf)
Definition osctl.h:397
osc_stream< Buffer, TypeBuffer > & read_buffer_from_osc_stream(osc_stream< Buffer, TypeBuffer > &s, DestBuffer &buf)
Definition osctl.h:377
osc_stream< Buffer, TypeBuffer > & operator<<(osc_stream< Buffer, TypeBuffer > &s, uint32_t val)
Definition osctl.h:296
osc_stream< string_buffer, string_buffer > osc_typed_strstream
Definition osctl.h:271
const char * osc_type_name(osc_type type)
Definition osctl.cpp:3
osc_stream< Buffer, TypeBuffer > & operator>>(osc_stream< Buffer, TypeBuffer > &s, uint32_t &val)
Definition osctl.h:306
osc_stream< string_buffer > osc_strstream
Definition osctl.h:270
osc_type
Definition osctl.h:42
@ osc_inf
Definition osctl.h:59
@ osc_i32
Definition osctl.h:43
@ osc_ts
Definition osctl.h:50
@ osc_nil
Definition osctl.h:58
@ osc_end_array
Definition osctl.h:61
@ osc_i64
Definition osctl.h:49
@ osc_true
Definition osctl.h:56
@ osc_false
Definition osctl.h:57
@ osc_f32
Definition osctl.h:44
@ osc_string_alt
Definition osctl.h:52
@ osc_f64
Definition osctl.h:51
@ osc_string
Definition osctl.h:45
@ osc_rgba
Definition osctl.h:54
@ osc_char
Definition osctl.h:53
@ osc_blob
Definition osctl.h:46
@ osc_start_array
Definition osctl.h:60
@ osc_midi
Definition osctl.h:55
#define false
Definition ordinals.h:83
static bool read(uint8_t *dest, uint32_t bytes)
Definition osctl.h:83
static void clear()
Definition osctl.h:91
static bool write(uint8_t *dest, uint32_t bytes)
Definition osctl.h:87
virtual const char * what() const
Definition osctl.h:68
osc_inline_strstream()
Definition osctl.h:275
osc_inline_typed_strstream()
Definition osctl.h:288
DumpStream & stream
Definition osctl.h:497
osc_message_dump(DumpStream &_stream)
Definition osctl.h:498
virtual void receive_osc_message(std::string address, std::string type_tag, OscStream &buffer)
Definition osctl.h:500
virtual ~osc_message_sink()
Definition osctl.h:491
virtual void receive_osc_message(std::string address, std::string type_tag, OscStream &buffer)=0
std::string error_msg
Definition osctl.h:447
virtual ~osc_net_bad_address()
Definition osctl.h:454
std::string addr
Definition osctl.h:447
osc_net_bad_address(const char *_addr)
Definition osctl.h:448
virtual const char * what() const
Definition osctl.h:453
virtual ~osc_net_dns_exception()
Definition osctl.h:484
int net_errno
Definition osctl.h:475
osc_net_dns_exception(const char *cmd, int _errno=h_errno)
Definition osctl.h:477
std::string command
Definition osctl.h:476
std::string error_msg
Definition osctl.h:476
virtual const char * what() const
Definition osctl.h:483
virtual const char * what() const
Definition osctl.h:467
osc_net_exception(const char *cmd, int _errno=errno)
Definition osctl.h:461
virtual ~osc_net_exception()
Definition osctl.h:468
std::string command
Definition osctl.h:460
std::string error_msg
Definition osctl.h:460
int net_errno
Definition osctl.h:459
virtual const char * what() const
Definition osctl.h:73
string_buffer buf_types
Definition osctl.h:283
string_buffer buf_data
Definition osctl.h:283
void read(void *dest, uint32_t bytes)
Definition osctl.h:234
void write(const void *src, uint32_t bytes)
Definition osctl.h:247
void pad()
Definition osctl.h:229
void clear()
Definition osctl.h:257
null_buffer * type_buffer
Definition osctl.h:224
osc_stream(Buffer &_buffer)
Definition osctl.h:227
void write_type(char ch)
Definition osctl.h:263
bool error
Definition osctl.h:225
osc_stream(Buffer &_buffer, TypeBuffer &_type_buffer)
Definition osctl.h:228
string_buffer & buffer
Definition osctl.h:223
virtual const char * what() const
Definition osctl.h:78
void set(uint8_t *_ptr, uint32_t _count, uint32_t _size)
Definition osctl.h:110
void clear()
Definition osctl.h:145
int write_left()
Definition osctl.h:137
int read_left()
Definition osctl.h:133
int tell()
Definition osctl.h:150
raw_buffer(uint8_t *_ptr, uint32_t _count, uint32_t _size)
Definition osctl.h:106
int write_misalignment()
Definition osctl.h:141
bool write(const uint8_t *src, uint32_t bytes)
Definition osctl.h:125
uint32_t count
Definition osctl.h:99
uint32_t pos
Definition osctl.h:99
raw_buffer()
Definition osctl.h:101
uint32_t size
Definition osctl.h:99
void seek(int _pos)
Definition osctl.h:154
bool read(uint8_t *dest, uint32_t bytes)
Definition osctl.h:117
uint8_t * ptr
Definition osctl.h:98
std::string data
Definition osctl.h:162
bool read(uint8_t *dest, uint32_t bytes)
Definition osctl.h:176
int write_left()
Definition osctl.h:197
bool write(const uint8_t *src, uint32_t bytes)
Definition osctl.h:184
string_buffer()
Definition osctl.h:165
void clear()
Definition osctl.h:205
uint32_t pos
Definition osctl.h:163
void seek(int _pos)
Definition osctl.h:214
int read_left()
Definition osctl.h:193
string_buffer(std::string _data, int _size=1048576)
Definition osctl.h:170
uint32_t size
Definition osctl.h:163
int tell()
Definition osctl.h:210
int write_misalignment()
Definition osctl.h:201
memcpy(hh, h, RAND_HEAD_LEN)