|
LMMS
|
Classes | |
| struct | _LV2_Atom_Forge_Frame |
| struct | LV2_Atom_Forge |
| struct | LV2_Atom_Forge_Frame |
Macros | |
| #define | LV2_ATOM_FORGE_DEPRECATED |
Typedefs | |
| typedef void * | LV2_Atom_Forge_Sink_Handle |
| typedef intptr_t | LV2_Atom_Forge_Ref |
| typedef LV2_Atom_Forge_Ref(* | LV2_Atom_Forge_Sink) (LV2_Atom_Forge_Sink_Handle handle, const void *buf, uint32_t size) |
| typedef LV2_Atom *(* | LV2_Atom_Forge_Deref_Func) (LV2_Atom_Forge_Sink_Handle handle, LV2_Atom_Forge_Ref ref) |
| typedef struct _LV2_Atom_Forge_Frame | LV2_Atom_Forge_Frame |
| typedef intptr_t | LV2_Atom_Forge_Ref |
| typedef LV2_Atom_Forge_Ref(* | LV2_Atom_Forge_Sink) (LV2_Atom_Forge_Sink_Handle handle, const void *buf, uint32_t size) |
| typedef LV2_Atom *(* | LV2_Atom_Forge_Deref_Func) (LV2_Atom_Forge_Sink_Handle handle, LV2_Atom_Forge_Ref ref) |
| typedef struct LV2_Atom_Forge_Frame | LV2_Atom_Forge_Frame |
Functions | |
| static void | lv2_atom_forge_init (LV2_Atom_Forge *forge, const LV2_URID_Map *map) |
| static LV2_Atom * | lv2_atom_forge_deref (LV2_Atom_Forge *forge, LV2_Atom_Forge_Ref ref) |
| static void | lv2_atom_forge_init (LV2_Atom_Forge *forge, LV2_URID_Map *map) |
Variables | |
| LV2_DISABLE_DEPRECATION_WARNINGS typedef void * | LV2_Atom_Forge_Sink_Handle |
Output Configuration | |
| static void | lv2_atom_forge_set_buffer (LV2_Atom_Forge *forge, uint8_t *buf, size_t size) |
| static void | lv2_atom_forge_set_sink (LV2_Atom_Forge *forge, LV2_Atom_Forge_Sink sink, LV2_Atom_Forge_Deref_Func deref, LV2_Atom_Forge_Sink_Handle handle) |
Object Stack | |
| static LV2_Atom_Forge_Ref | lv2_atom_forge_push (LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame, LV2_Atom_Forge_Ref ref) |
| static void | lv2_atom_forge_pop (LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame) |
| static bool | lv2_atom_forge_top_is (LV2_Atom_Forge *forge, uint32_t type) |
| static bool | lv2_atom_forge_is_object_type (const LV2_Atom_Forge *forge, uint32_t type) |
| static bool | lv2_atom_forge_is_blank (const LV2_Atom_Forge *forge, uint32_t type, const LV2_Atom_Object_Body *body) |
Low Level Output | |
| static LV2_Atom_Forge_Ref | lv2_atom_forge_raw (LV2_Atom_Forge *forge, const void *data, uint32_t size) |
| static void | lv2_atom_forge_pad (LV2_Atom_Forge *forge, uint32_t written) |
| static LV2_Atom_Forge_Ref | lv2_atom_forge_write (LV2_Atom_Forge *forge, const void *data, uint32_t size) |
| static LV2_Atom_Forge_Ref | lv2_atom_forge_string_body (LV2_Atom_Forge *forge, const char *str, uint32_t len) |
An API for constructing LV2 atoms.
| #define LV2_ATOM_FORGE_DEPRECATED |
| typedef LV2_Atom *(* LV2_Atom_Forge_Deref_Func) (LV2_Atom_Forge_Sink_Handle handle, LV2_Atom_Forge_Ref ref) |
Function for resolving a reference. See lv2_atom_forge_set_sink().
| typedef LV2_Atom *(* LV2_Atom_Forge_Deref_Func) (LV2_Atom_Forge_Sink_Handle handle, LV2_Atom_Forge_Ref ref) |
Function for resolving a reference. See lv2_atom_forge_set_sink().
| typedef struct _LV2_Atom_Forge_Frame LV2_Atom_Forge_Frame |
A stack frame used for keeping track of nested Atom containers.
| typedef struct LV2_Atom_Forge_Frame LV2_Atom_Forge_Frame |
A stack frame used for keeping track of nested Atom containers.
| typedef intptr_t LV2_Atom_Forge_Ref |
A reference to a chunk of written output.
| typedef intptr_t LV2_Atom_Forge_Ref |
A reference to a chunk of written output.
| typedef LV2_Atom_Forge_Ref(* LV2_Atom_Forge_Sink) (LV2_Atom_Forge_Sink_Handle handle, const void *buf, uint32_t size) |
Sink function for writing output. See lv2_atom_forge_set_sink().
| typedef LV2_Atom_Forge_Ref(* LV2_Atom_Forge_Sink) (LV2_Atom_Forge_Sink_Handle handle, const void *buf, uint32_t size) |
Sink function for writing output. See lv2_atom_forge_set_sink().
| typedef void* LV2_Atom_Forge_Sink_Handle |
Handle for LV2_Atom_Forge_Sink.
|
inlinestatic |
Write an atom:Atom header.
|
inlinestatic |
|
inlinestatic |
The same as lv2_atom_forge_object(), but for object:Blank.
This function is deprecated and should not be used in new code. Use lv2_atom_forge_object() directly instead.
|
inlinestatic |
Write an atom:Bool.
|
inlinestatic |
Access the Atom pointed to by a reference.
|
inlinestatic |
Write an atom:Double.
|
inlinestatic |
Write an atom:Float.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Write an atom:Int.
|
inlinestatic |
Return true iff type is an atom:Object with a blank ID.
|
inlinestatic |
Return true iff type is an atom:Object.
|
inlinestatic |
Write a property key in an Object, to be followed by the value.
See lv2_atom_forge_object() documentation for an example.
|
inlinestatic |
Write an atom:Literal.
|
inlinestatic |
Write an atom:Long.
|
inlinestatic |
Write the header of an atom:Object.
The passed frame will be initialised to represent this object. To complete the object, write a sequence of properties, then pop the frame with lv2_atom_forge_pop().
For example:
|
inlinestatic |
Pad output accordingly so next write is 64-bit aligned.
|
inlinestatic |
Write an atom:Path. Note that path need not be NULL terminated.
|
inlinestatic |
Pop a stack frame. This must be called when a container is finished.
|
inlinestatic |
Write a primitive (fixed-size) atom.
|
inlinestatic |
Write the header for a property body in an object, with context.
If you do not need the context, which is almost certainly the case, use the simpler lv2_atom_forge_key() instead.
|
inlinestatic |
Push a stack frame. This is done automatically by container functions (which take a stack frame pointer), but may be called by the user to push the top level container when writing to an existing Atom.
|
inlinestatic |
Write raw output. This is used internally, but is also useful for writing atom types not explicitly supported by the forge API. Note the caller is responsible for ensuring the output is approriately padded.
|
inlinestatic |
The same as lv2_atom_forge_object(), but for object:Resource.
This function is deprecated and should not be used in new code. Use lv2_atom_forge_object() directly instead.
|
inlinestatic |
Write the header for a Sequence.
|
inlinestatic |
Set the output buffer where Forge will write atoms.
|
inlinestatic |
Set the sink function where Forge will write output.
The return value of forge functions is an LV2_Atom_Forge_Ref which is an integer type safe to use as a pointer but is otherwise opaque. The sink function must return a ref that can be dereferenced to access as least sizeof(LV2_Atom) bytes of the written data, so sizes can be updated. For ringbuffers, this should be possible as long as the size of the buffer is a multiple of sizeof(LV2_Atom), since atoms are always aligned.
Note that 0 is an invalid reference, so if you are using a buffer offset be sure to offset it such that 0 is never a valid reference. You will get confusing errors otherwise.
|
inlinestatic |
Write an atom:String. Note that str need not be NULL terminated.
|
inlinestatic |
Write a null-terminated string body.
|
inlinestatic |
Return true iff the top of the stack has the given type.
|
inlinestatic |
Write the header of an atom:Tuple.
The passed frame will be initialised to represent this tuple. To complete the tuple, write a sequence of atoms, then pop the frame with lv2_atom_forge_pop().
For example:
|
inlinestatic |
Write an atom compatible with atom:String. Used internally.
|
inlinestatic |
Write an atom:URI. Note that uri need not be NULL terminated. This does not map the URI, but writes the complete URI string. To write a mapped URI, use lv2_atom_forge_urid().
|
inlinestatic |
Write an atom:URID.
|
inlinestatic |
Write a complete atom:Vector.
|
inlinestatic |
Start an atom:Vector.
|
inlinestatic |
Write raw output, padding to 64-bits as necessary.
Handle for LV2_Atom_Forge_Sink.