|
LMMS
|
Classes | |
| struct | LV2_Atom_Object_Query |
Functions | |
| static uint32_t | lv2_atom_pad_size (uint32_t size) |
| static uint32_t | lv2_atom_total_size (const LV2_Atom *atom) |
| static bool | lv2_atom_is_null (const LV2_Atom *atom) |
| static bool | lv2_atom_equals (const LV2_Atom *a, const LV2_Atom *b) |
| static void * | lv2_features_data (const LV2_Feature *const *features, const char *const uri) |
| static const char * | lv2_features_query (const LV2_Feature *const *features,...) |
Object Query | |
| static const LV2_Atom_Object_Query | LV2_ATOM_OBJECT_QUERY_END = { 0, NULL } |
| static int | lv2_atom_object_query (const LV2_Atom_Object *object, LV2_Atom_Object_Query *query) |
| static int | lv2_atom_object_body_get (uint32_t size, const LV2_Atom_Object_Body *body,...) |
| static int | lv2_atom_object_get (const LV2_Atom_Object *object,...) |
| static int | lv2_atom_object_get_typed (const LV2_Atom_Object *object,...) |
Object Query | |
| static const LV2_Atom_Object_Query | LV2_ATOM_OBJECT_QUERY_END = {0, NULL} |
Sequence Iterator | |
| static const LV2_Atom_Event * | lv2_atom_sequence_begin (const LV2_Atom_Sequence_Body *body) |
| static const LV2_Atom_Event * | lv2_atom_sequence_end (const LV2_Atom_Sequence_Body *body, uint32_t size) |
| static LV2_Atom_Event * | lv2_atom_sequence_end2 (LV2_Atom_Sequence_Body *body, uint32_t size) |
| static bool | lv2_atom_sequence_is_end (const LV2_Atom_Sequence_Body *body, uint32_t size, const LV2_Atom_Event *i) |
| static const LV2_Atom_Event * | lv2_atom_sequence_next (const LV2_Atom_Event *i) |
Sequence Utilities | |
| static void | lv2_atom_sequence_clear (LV2_Atom_Sequence *seq) |
| static LV2_Atom_Event * | lv2_atom_sequence_append_event (LV2_Atom_Sequence *seq, uint32_t capacity, const LV2_Atom_Event *event) |
Tuple Iterator | |
| static const LV2_Atom * | lv2_atom_tuple_begin (const LV2_Atom_Tuple *tup) |
| static bool | lv2_atom_tuple_is_end (const void *body, uint32_t size, const LV2_Atom *i) |
| static const LV2_Atom * | lv2_atom_tuple_next (const LV2_Atom *i) |
Object Iterator | |
| static const LV2_Atom_Property_Body * | lv2_atom_object_begin (const LV2_Atom_Object_Body *body) |
| static bool | lv2_atom_object_is_end (const LV2_Atom_Object_Body *body, uint32_t size, const LV2_Atom_Property_Body *i) |
| static const LV2_Atom_Property_Body * | lv2_atom_object_next (const LV2_Atom_Property_Body *i) |
Sequence Iterator | |
| #define | LV2_ATOM_SEQUENCE_FOREACH(seq, iter) |
| #define | LV2_ATOM_SEQUENCE_BODY_FOREACH(body, size, iter) |
| #define | LV2_ATOM_SEQUENCE_FOREACH(seq, iter) |
| #define | LV2_ATOM_SEQUENCE_BODY_FOREACH(body, size, iter) |
Tuple Iterator | |
| #define | LV2_ATOM_TUPLE_FOREACH(tuple, iter) |
| #define | LV2_ATOM_TUPLE_BODY_FOREACH(body, size, iter) |
| #define | LV2_ATOM_TUPLE_FOREACH(tuple, iter) |
| #define | LV2_ATOM_TUPLE_BODY_FOREACH(body, size, iter) |
Object Iterator | |
| #define | LV2_ATOM_OBJECT_FOREACH(obj, iter) |
| #define | LV2_ATOM_OBJECT_BODY_FOREACH(body, size, iter) |
| #define | LV2_ATOM_OBJECT_FOREACH(obj, iter) |
| #define | LV2_ATOM_OBJECT_BODY_FOREACH(body, size, iter) |
Utilities for working with atoms.
| #define LV2_ATOM_OBJECT_BODY_FOREACH | ( | body, | |
| size, | |||
| iter ) |
Like LV2_ATOM_OBJECT_FOREACH but for a headerless object body.
| #define LV2_ATOM_OBJECT_BODY_FOREACH | ( | body, | |
| size, | |||
| iter ) |
Like LV2_ATOM_OBJECT_FOREACH but for a headerless object body.
| #define LV2_ATOM_OBJECT_FOREACH | ( | obj, | |
| iter ) |
A macro for iterating over all properties of an Object.
| obj | The object to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), e.g.:
A macro for iterating over all properties of an Object.
| obj | The object to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), for example:
| #define LV2_ATOM_OBJECT_FOREACH | ( | obj, | |
| iter ) |
A macro for iterating over all properties of an Object.
| obj | The object to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), for example:
| #define LV2_ATOM_SEQUENCE_BODY_FOREACH | ( | body, | |
| size, | |||
| iter ) |
Like LV2_ATOM_SEQUENCE_FOREACH but for a headerless sequence body.
| #define LV2_ATOM_SEQUENCE_BODY_FOREACH | ( | body, | |
| size, | |||
| iter ) |
Like LV2_ATOM_SEQUENCE_FOREACH but for a headerless sequence body.
| #define LV2_ATOM_SEQUENCE_FOREACH | ( | seq, | |
| iter ) |
A macro for iterating over all events in a Sequence.
| seq | The sequence to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), e.g.:
A macro for iterating over all events in a Sequence.
| seq | The sequence to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), for example:
| #define LV2_ATOM_SEQUENCE_FOREACH | ( | seq, | |
| iter ) |
A macro for iterating over all events in a Sequence.
| seq | The sequence to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), for example:
| #define LV2_ATOM_TUPLE_BODY_FOREACH | ( | body, | |
| size, | |||
| iter ) |
Like LV2_ATOM_TUPLE_FOREACH but for a headerless tuple body.
| #define LV2_ATOM_TUPLE_BODY_FOREACH | ( | body, | |
| size, | |||
| iter ) |
Like LV2_ATOM_TUPLE_FOREACH but for a headerless tuple body.
| #define LV2_ATOM_TUPLE_FOREACH | ( | tuple, | |
| iter ) |
A macro for iterating over all properties of a Tuple.
| tuple | The tuple to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), e.g.:
A macro for iterating over all properties of a Tuple.
| tuple | The tuple to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), for example:
| #define LV2_ATOM_TUPLE_FOREACH | ( | tuple, | |
| iter ) |
A macro for iterating over all properties of a Tuple.
| tuple | The tuple to iterate over |
| iter | The name of the iterator |
This macro is used similarly to a for loop (which it expands to), for example:
|
inlinestatic |
Return a pointer to the first property in body.
|
inlinestatic |
Body only version of lv2_atom_object_get().
|
inlinestatic |
Variable argument version of lv2_atom_object_query().
This is nicer-looking in code, but a bit more error-prone since it is not type safe and the argument list must be terminated.
The arguments should be a series of uint32_t key and const LV2_Atom** value pairs, terminated by a zero key. The value pointers MUST be initialized to NULL. For example:
|
inlinestatic |
Variable argument version of lv2_atom_object_query() with types.
This is like lv2_atom_object_get(), but each entry has an additional parameter to specify the required type. Only atoms with a matching type will be selected.
The arguments should be a series of uint32_t key, const LV2_Atom**, uint32_t type triples, terminated by a zero key. The value pointers MUST be initialized to NULL. For example:
|
inlinestatic |
Return true iff i has reached the end of obj.
|
inlinestatic |
Return an iterator to the property following i.
|
inlinestatic |
Get an object's values for various keys.
The value pointer of each item in query will be set to the location of the corresponding value in object. Every value pointer in query MUST be initialised to NULL. This function reads object in a single linear sweep. By allocating query on the stack, objects can be "queried" quickly without allocating any memory. This function is realtime safe.
This function can only do "flat" queries, it is not smart enough to match variables in nested objects.
For example:
|
inlinestatic |
Append an event at the end of sequence.
| seq | Sequence to append to. |
| capacity | Total capacity of the sequence atom (e.g. as set by the host for sequence output ports). |
| Event | Event to write. |
|
inlinestatic |
Get an iterator pointing to the first event in a Sequence body.
|
inlinestatic |
Clear all events from sequence.
This simply resets the size field, the other fields are left untouched.
|
inlinestatic |
Get an iterator pointing to the end of a Sequence body.
|
inlinestatic |
Get an iterator pointing to the end of a Sequence body.
|
inlinestatic |
Return true iff i has reached the end of body.
|
inlinestatic |
Return an iterator to the element following i.
Return the total size of Atom, including the header.
|
inlinestatic |
Get an iterator pointing to the first element in tup.
Return true iff i has reached the end of body.
Return an iterator to the element following i.
|
inlinestatic |
Return the data for a feature in a features array.
If the feature is not found, NULL is returned. Note that this function is only useful for features with data, and can not detect features that are present but have NULL data.
|
inlinestatic |
Query a features array.
This function allows getting several features in one call, and detect missing required features, with the same caveat of lv2_features_data().
The arguments should be a series of const char* uri, void** data, bool required, terminated by a NULL URI. The data pointers MUST be initialized to NULL. For example:
|
static |
|
static |
Sentinel for lv2_atom_object_query().