From 9db204f703d338e7b6434fccdedb1050c9124bf6 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 17 Feb 2012 06:12:25 +0000 Subject: Add LV2_Atom_Port_Buffer. --- lv2/lv2plug.in/ns/ext/atom/atom.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'lv2/lv2plug.in/ns/ext/atom/atom.h') diff --git a/lv2/lv2plug.in/ns/ext/atom/atom.h b/lv2/lv2plug.in/ns/ext/atom/atom.h index fd0279c..66f0490 100644 --- a/lv2/lv2plug.in/ns/ext/atom/atom.h +++ b/lv2/lv2plug.in/ns/ext/atom/atom.h @@ -196,6 +196,29 @@ typedef struct { /* Contents (a series of events) follow here. */ } LV2_Atom_Sequence; +/** + The contents of an atom:AtomPort buffer. + + This contains a pointer to an Atom, which is the data to be + processed/written, as well as additional metadata. This struct may be + augmented in the future to add more metadata fields as they become + necessary. The initial version of this struct contains data, size, and + capacity. Implementations MUST check that any other fields they wish to use + are actually present by comparing the size with the offset of that field, + e.g.: + + @code + if (offsetof(LV2_Atom_Port_Buffer, field) < buf->size) { + do_stuff_with(buf->field); + } + @endcode +*/ +typedef struct { + LV2_Atom* data; /** Pointer to data. */ + uint32_t size; /** Total size of this struct. */ + uint32_t capacity; /** Available space for data body. */ +} LV2_Atom_Port_Buffer; + #ifdef __cplusplus } /* extern "C" */ #endif -- cgit v1.2.1