|
LMMS
|
#include <stdint.h>#include <stdio.h>#include <string.h>#include <stdarg.h>#include <stdbool.h>#include <ctype.h>#include <assert.h>#include <rtosc/rtosc.h>Go to the source code of this file.
Macros | |
| #define | mfabs(val) |
| #define | cmp_3way(val1, val2) |
| #define | mfabs(val) |
| #define | POS ((size_t)(((const char *)lengths) - buffer)) |
Functions | |
| const char * | rtosc_argument_string (const char *msg) |
| unsigned | rtosc_narguments (const char *msg) |
| static int | has_reserved (char type) |
| static unsigned | nreserved (const char *args) |
| char | rtosc_type (const char *msg, unsigned nargument) |
| static unsigned | arg_start (const char *msg_) |
| static unsigned | arg_size (const uint8_t *arg_mem, char type) |
| static unsigned | arg_off (const char *msg, unsigned idx) |
| size_t | rtosc_message (char *buffer, size_t len, const char *address, const char *arguments,...) |
| static size_t | vsosc_null (const char *address, const char *arguments, const rtosc_arg_t *args) |
| int | rtosc_arg_vals_eq (rtosc_arg_val_t *lhs, rtosc_arg_val_t *rhs, size_t lsize, size_t rsize, const rtosc_cmp_options *opt) |
| int | rtosc_arg_vals_cmp (rtosc_arg_val_t *lhs, rtosc_arg_val_t *rhs, size_t lsize, size_t rsize, const rtosc_cmp_options *opt) |
| void | rtosc_v2args (rtosc_arg_t *args, size_t nargs, const char *arg_str, rtosc_va_list_t *ap) |
| void | rtosc_2args (rtosc_arg_t *args, size_t nargs, const char *arg_str,...) |
| void | rtosc_v2argvals (rtosc_arg_val_t *args, size_t nargs, const char *arg_str, va_list ap) |
| void | rtosc_2argvals (rtosc_arg_val_t *args, size_t nargs, const char *arg_str,...) |
| size_t | rtosc_vmessage (char *buffer, size_t len, const char *address, const char *arguments, va_list ap) |
| size_t | rtosc_amessage (char *buffer, size_t len, const char *address, const char *arguments, const rtosc_arg_t *args) |
| static rtosc_arg_t | extract_arg (const uint8_t *arg_pos, char type) |
| static const char * | advance_past_dummy_args (const char *args) |
| rtosc_arg_itr_t | rtosc_itr_begin (const char *msg) |
| rtosc_arg_val_t | rtosc_itr_next (rtosc_arg_itr_t *itr) |
| int | rtosc_itr_end (rtosc_arg_itr_t itr) |
| rtosc_arg_t | rtosc_argument (const char *msg, unsigned idx) |
| static unsigned char | deref (unsigned pos, ring_t *ring) |
| static size_t | bundle_ring_length (ring_t *ring) |
| size_t | rtosc_message_ring_length (ring_t *ring) |
| size_t | rtosc_message_length (const char *msg, size_t len) |
| bool | rtosc_valid_message_p (const char *msg, size_t len) |
| static uint64_t | extract_uint64 (const uint8_t *arg_pos) |
| static uint32_t | extract_uint32 (const uint8_t *arg_pos) |
| static void | emplace_uint64 (uint8_t *buffer, uint64_t d) |
| static void | emplace_uint32 (uint8_t *buffer, uint32_t d) |
| size_t | rtosc_bundle (char *buffer, size_t len, uint64_t tt, int elms,...) |
| size_t | rtosc_bundle_elements (const char *buffer, size_t len) |
| const char * | rtosc_bundle_fetch (const char *buffer, unsigned elm) |
| size_t | rtosc_bundle_size (const char *buffer, unsigned elm) |
| int | rtosc_bundle_p (const char *msg) |
| uint64_t | rtosc_bundle_timetag (const char *msg) |
Variables | |
| static const rtosc_cmp_options | default_cmp_options = { 0.0 } |
| #define cmp_3way | ( | val1, | |
| val2 ) |
| #define POS ((size_t)(((const char *)lengths) - buffer)) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| void rtosc_2args | ( | rtosc_arg_t * | args, |
| size_t | nargs, | ||
| const char * | arg_str, | ||
| ... ) |
| void rtosc_2argvals | ( | rtosc_arg_val_t * | args, |
| size_t | nargs, | ||
| const char * | arg_str, | ||
| ... ) |
Pack parameters into pre-allocated rtosc_arg_val-t array
| size_t rtosc_amessage | ( | char * | buffer, |
| size_t | len, | ||
| const char * | address, | ||
| const char * | arguments, | ||
| const rtosc_arg_t * | args ) |
| int rtosc_arg_vals_cmp | ( | rtosc_arg_val_t * | lhs, |
| rtosc_arg_val_t * | rhs, | ||
| size_t | lsize, | ||
| size_t | rsize, | ||
| const rtosc_cmp_options * | opt ) |
Compare two arrays of rtosc_arg_val_t. Whether an argument value is less or greater than another is computed
| opt | Comparison options or NULL for default options |
| int rtosc_arg_vals_eq | ( | rtosc_arg_val_t * | lhs, |
| rtosc_arg_val_t * | rhs, | ||
| size_t | lsize, | ||
| size_t | rsize, | ||
| const rtosc_cmp_options * | opt ) |
Check if two arrays of rtosc_arg_val_t are equal
| opt | Comparison options or NULL for default options |
| rtosc_arg_t rtosc_argument | ( | const char * | msg, |
| unsigned | i ) |
Blob data may be safely written to
| OSC | message |
| size_t rtosc_bundle | ( | char * | buffer, |
| size_t | len, | ||
| uint64_t | tt, | ||
| int | elms, | ||
| ... ) |
Generate a bundle from sub-messages
| buffer | Destination buffer |
| len | Length of buffer |
| tt | OSC time tag |
| elms | Number of sub messages |
| ... | Messages |
| size_t rtosc_bundle_elements | ( | const char * | msg, |
| size_t | len ) |
Find the elements in a bundle
| msg | OSC bundle |
| len | Upper bound on the length of the bundle |
| size_t rtosc_bundle_size | ( | const char * | msg, |
| unsigned | i ) |
| uint64_t rtosc_bundle_timetag | ( | const char * | msg | ) |
| rtosc_arg_itr_t rtosc_itr_begin | ( | const char * | msg | ) |
| int rtosc_itr_end | ( | rtosc_arg_itr_t | itr | ) |
Determines if the iterator is at the end of the argument list
| itr | OSC message iterator |
| rtosc_arg_val_t rtosc_itr_next | ( | rtosc_arg_itr_t * | itr | ) |
Gets the next argument in a message
| itr | OSC message iterator |
| size_t rtosc_message | ( | char * | buffer, |
| size_t | len, | ||
| const char * | address, | ||
| const char * | arguments, | ||
| ... ) |
Write OSC message to fixed length buffer
On error, buffer will be zeroed. When buffer is NULL, the function returns the size of the buffer required to store the message
| buffer | Memory to write to |
| len | Length of buffer |
| address | OSC pattern to send message to |
| arguments | String consisting of the types of the following arguments |
| ... | OSC arguments to pass forward |
| size_t rtosc_message_length | ( | const char * | msg, |
| size_t | len ) |
| msg | OSC message |
| len | Message length upper bound |
| size_t rtosc_message_ring_length | ( | ring_t * | ring | ) |
Finds the length of the next message inside a ringbuffer structure.
| ring | The addresses and lengths of the split buffer, in a compatible format to jack's ringbuffer |
| unsigned rtosc_narguments | ( | const char * | msg | ) |
Returns the number of arguments found in a given message
| msg | well formed OSC message |
| char rtosc_type | ( | const char * | msg, |
| unsigned | i ) |
| void rtosc_v2args | ( | rtosc_arg_t * | args, |
| size_t | nargs, | ||
| const char * | arg_str, | ||
| rtosc_va_list_t * | ap ) |
Pack arguments into pre-allocated rtosc_arg_t array
| args | Pre-allocated array; size must be greater or equal nargs |
| nargs | Size of elements to pack |
| arg_str | Rtosc string specifying the arguments' types |
| ap | The parameters that shall be packed |
| void rtosc_v2argvals | ( | rtosc_arg_val_t * | args, |
| size_t | nargs, | ||
| const char * | arg_str, | ||
| va_list | ap ) |
Pack parameters into pre-allocated rtosc_arg_val-t array
| bool rtosc_valid_message_p | ( | const char * | msg, |
| size_t | len ) |
Validate if an arbitrary byte sequence is an OSC message.
| msg | pointer to memory buffer |
| len | length of buffer |
| size_t rtosc_vmessage | ( | char * | buffer, |
| size_t | len, | ||
| const char * | address, | ||
| const char * | arguments, | ||
| va_list | va ) |
|
static |
|
static |