![]() |
O2 1.2
Inter-process communication system for media applications
|
union of all O2 parameter types More...
#include <o2.h>
Data Fields | ||
| int32_t | i32 | |
| 32 bit signed integer. | ||
| int32_t | i | |
| an alias for i32 | ||
| int64_t | i64 | |
| 64 bit signed integer. | ||
| int64_t | h | |
| an alias for i64 | ||
| float | f | |
| 32 bit IEEE-754 float. | ||
| float | f32 | |
| an alias for f | ||
| double | d | |
| 64 bit IEEE-754 double. | ||
| double | f64 | |
| an alias for d | ||
| char | s [4] | |
| Standard C, NULL terminated string. | ||
| char | S [4] | |
| Standard C, NULL terminated, string. Used in systems which distinguish strings and symbols. | ||
| int | c | |
| Standard C, 8 bit, char, stored as int. | ||
| uint32_t | m | |
| o2_time | t | |
| TimeTag value. | ||
| o2_blob | b | |
| a blob (unstructured bytes) | ||
| int32_t | B | |
| a boolean value, either 0 or 1 | ||
| struct { | ||
| int32_t len | ||
| IMPORTANT: divide by 4 or 8 to get length in elements. More... | ||
| int32_t typ | ||
| type of vector elements | ||
| union { | ||
| int32_t * vi | ||
| vector of 32-bit signed integers | ||
| int64_t * vh | ||
| vector of 64-bit signed integers | ||
| double * vd | ||
| vector of IEEE-754 doubles | ||
| float * vf | ||
| vector of IEEE-754 floats | ||
| } | ||
| } | v | |
union of all O2 parameter types
An o2_arg_ptr is a pointer to an O2 message argument. If argument parsing is requested (by setting the parse parameter in o2_method_new), then the handler receives an array of o2_arg_ptrs. If argument parsing is not requested, you have the option of parsing the message one parameter at a time by calling o2_get_next(), which returns an o2_arg_ptr.
The o2_arg_ptr can then be dereferenced to obtain a value of the expected type. For example, you could write
to extract a parameter of type double. (This assumes that the message is properly formed and the type string indicates that this parameter is a double, or that type coercion was enabled by the coerce flag in o2_method_new().)
| int32_t len |
IMPORTANT: divide by 4 or 8 to get length in elements.
length of vector in bytes
| uint32_t m |
A 4 byte MIDI packet. MSB to LSB are port id, status, data1, data2