Modules | Data Structures | Macros | Typedefs
Atom

Detailed Description

A generic value container and several data types.

See http://lv2plug.in/ns/ext/atom for details.

Modules

 Forge
 
 Utilities
 

Data Structures

struct  LV2_Atom
 
struct  LV2_Atom_Int
 
struct  LV2_Atom_Long
 
struct  LV2_Atom_Float
 
struct  LV2_Atom_Double
 
struct  LV2_Atom_URID
 
struct  LV2_Atom_String
 
struct  LV2_Atom_Literal_Body
 
struct  LV2_Atom_Literal
 
struct  LV2_Atom_Tuple
 
struct  LV2_Atom_Vector_Body
 
struct  LV2_Atom_Vector
 
struct  LV2_Atom_Property_Body
 
struct  LV2_Atom_Property
 
struct  LV2_Atom_Object_Body
 
struct  LV2_Atom_Object
 
struct  LV2_Atom_Event
 
struct  LV2_Atom_Sequence_Body
 
struct  LV2_Atom_Sequence
 
union  LV2_Atom_Event.time
 

Macros

#define LV2_ATOM_URI   "http://lv2plug.in/ns/ext/atom"
 
#define LV2_ATOM_PREFIX   LV2_ATOM_URI "#"
 
#define LV2_ATOM__Atom   LV2_ATOM_PREFIX "Atom"
 
#define LV2_ATOM__AtomPort   LV2_ATOM_PREFIX "AtomPort"
 
#define LV2_ATOM__Blank   LV2_ATOM_PREFIX "Blank"
 
#define LV2_ATOM__Bool   LV2_ATOM_PREFIX "Bool"
 
#define LV2_ATOM__Chunk   LV2_ATOM_PREFIX "Chunk"
 
#define LV2_ATOM__Double   LV2_ATOM_PREFIX "Double"
 
#define LV2_ATOM__Event   LV2_ATOM_PREFIX "Event"
 
#define LV2_ATOM__Float   LV2_ATOM_PREFIX "Float"
 
#define LV2_ATOM__Int   LV2_ATOM_PREFIX "Int"
 
#define LV2_ATOM__Literal   LV2_ATOM_PREFIX "Literal"
 
#define LV2_ATOM__Long   LV2_ATOM_PREFIX "Long"
 
#define LV2_ATOM__Number   LV2_ATOM_PREFIX "Number"
 
#define LV2_ATOM__Object   LV2_ATOM_PREFIX "Object"
 
#define LV2_ATOM__Path   LV2_ATOM_PREFIX "Path"
 
#define LV2_ATOM__Property   LV2_ATOM_PREFIX "Property"
 
#define LV2_ATOM__Resource   LV2_ATOM_PREFIX "Resource"
 
#define LV2_ATOM__Sequence   LV2_ATOM_PREFIX "Sequence"
 
#define LV2_ATOM__Sound   LV2_ATOM_PREFIX "Sound"
 
#define LV2_ATOM__String   LV2_ATOM_PREFIX "String"
 
#define LV2_ATOM__Tuple   LV2_ATOM_PREFIX "Tuple"
 
#define LV2_ATOM__URI   LV2_ATOM_PREFIX "URI"
 
#define LV2_ATOM__URID   LV2_ATOM_PREFIX "URID"
 
#define LV2_ATOM__Vector   LV2_ATOM_PREFIX "Vector"
 
#define LV2_ATOM__atomTransfer   LV2_ATOM_PREFIX "atomTransfer"
 
#define LV2_ATOM__beatTime   LV2_ATOM_PREFIX "beatTime"
 
#define LV2_ATOM__bufferType   LV2_ATOM_PREFIX "bufferType"
 
#define LV2_ATOM__childType   LV2_ATOM_PREFIX "childType"
 
#define LV2_ATOM__eventTransfer   LV2_ATOM_PREFIX "eventTransfer"
 
#define LV2_ATOM__frameTime   LV2_ATOM_PREFIX "frameTime"
 
#define LV2_ATOM__supports   LV2_ATOM_PREFIX "supports"
 
#define LV2_ATOM__timeUnit   LV2_ATOM_PREFIX "timeUnit"
 
#define LV2_ATOM_REFERENCE_TYPE   0
 
#define LV2_ATOM_CONTENTS(type, atom)   ((void*)((uint8_t*)(atom) + sizeof(type)))
 
#define LV2_ATOM_CONTENTS_CONST(type, atom)    ((const void*)((const uint8_t*)(atom) + sizeof(type)))
 
#define LV2_ATOM_BODY(atom)   LV2_ATOM_CONTENTS(LV2_Atom, atom)
 
#define LV2_ATOM_BODY_CONST(atom)   LV2_ATOM_CONTENTS_CONST(LV2_Atom, atom)
 

Typedefs

typedef LV2_Atom_Int LV2_Atom_Bool
 

Data Structure Documentation

◆ LV2_Atom

struct LV2_Atom

The header of an atom:Atom.

Data Fields
uint32_t size Size in bytes, not including type and size.
uint32_t type Type of this atom (mapped URI).

◆ LV2_Atom_Int

struct LV2_Atom_Int

An atom:Int or atom:Bool.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
int32_t body Integer value.

◆ LV2_Atom_Long

struct LV2_Atom_Long

An atom:Long.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
int64_t body Integer value.

◆ LV2_Atom_Float

struct LV2_Atom_Float

An atom:Float.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
float body Floating point value.

◆ LV2_Atom_Double

struct LV2_Atom_Double

An atom:Double.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
double body Floating point value.

◆ LV2_Atom_URID

struct LV2_Atom_URID

An atom:URID.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
uint32_t body URID.

◆ LV2_Atom_String

struct LV2_Atom_String

An atom:String.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.

◆ LV2_Atom_Literal_Body

struct LV2_Atom_Literal_Body

The body of an atom:Literal.

Data Fields
uint32_t datatype Datatype URID.
uint32_t lang Language URID.

◆ LV2_Atom_Literal

struct LV2_Atom_Literal

An atom:Literal.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
LV2_Atom_Literal_Body body Body.

◆ LV2_Atom_Tuple

struct LV2_Atom_Tuple

An atom:Tuple.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.

◆ LV2_Atom_Vector_Body

struct LV2_Atom_Vector_Body

The body of an atom:Vector.

Data Fields
uint32_t child_size The size of each element in the vector.
uint32_t child_type The type of each element in the vector.

◆ LV2_Atom_Vector

struct LV2_Atom_Vector

An atom:Vector.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
LV2_Atom_Vector_Body body Body.

◆ LV2_Atom_Property_Body

struct LV2_Atom_Property_Body

The body of an atom:Property (typically in an atom:Object).

Data Fields
uint32_t key Key (predicate) (mapped URI).
uint32_t context Context URID (may be, and generally is, 0).
LV2_Atom value Value atom header.

◆ LV2_Atom_Property

struct LV2_Atom_Property

An atom:Property.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
LV2_Atom_Property_Body body Body.

◆ LV2_Atom_Object_Body

struct LV2_Atom_Object_Body

The body of an atom:Object.

May be cast to LV2_Atom.

Data Fields
uint32_t id URID, or 0 for blank.
uint32_t otype Type URID (same as rdf:type, for fast dispatch).

◆ LV2_Atom_Object

struct LV2_Atom_Object

An atom:Object.

May be cast to LV2_Atom.

Data Fields
LV2_Atom atom Atom header.
LV2_Atom_Object_Body body Body.

◆ LV2_Atom_Event

struct LV2_Atom_Event

The header of an atom:Event.

Note this type is NOT an LV2_Atom.

Data Fields
union LV2_Atom_Event.time time Time stamp.

Which type is valid is determined by context.

LV2_Atom body Event body atom header.

◆ LV2_Atom_Sequence_Body

struct LV2_Atom_Sequence_Body

The body of an atom:Sequence (a sequence of events).

The unit field is either a URID that described an appropriate time stamp type, or may be 0 where a default stamp type is known. For LV2_Descriptor::run(), the default stamp type is audio frames.

The contents of a sequence is a series of LV2_Atom_Event, each aligned to 64-bits, for example:

| Event 1 (size 6)                              | Event 2
|       |       |       |       |       |       |       |       |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|FRAMES         |TYPE   |SIZE   |DATADATADATAPAD|FRAMES         |...
Data Fields
uint32_t unit URID of unit of event time stamps.
uint32_t pad Currently unused.

◆ LV2_Atom_Sequence

struct LV2_Atom_Sequence

An atom:Sequence.

Data Fields
LV2_Atom atom Atom header.
LV2_Atom_Sequence_Body body Body.

◆ LV2_Atom_Event.time

union LV2_Atom_Event.time

Time stamp.

Which type is valid is determined by context.

Data Fields
int64_t frames Time in audio frames.
double beats Time in beats.

Macro Definition Documentation

◆ LV2_ATOM_URI

#define LV2_ATOM_URI   "http://lv2plug.in/ns/ext/atom"

◆ LV2_ATOM_PREFIX

#define LV2_ATOM_PREFIX   LV2_ATOM_URI "#"

◆ LV2_ATOM__Atom

#define LV2_ATOM__Atom   LV2_ATOM_PREFIX "Atom"

◆ LV2_ATOM__AtomPort

#define LV2_ATOM__AtomPort   LV2_ATOM_PREFIX "AtomPort"

◆ LV2_ATOM__Blank

#define LV2_ATOM__Blank   LV2_ATOM_PREFIX "Blank"

◆ LV2_ATOM__Bool

#define LV2_ATOM__Bool   LV2_ATOM_PREFIX "Bool"

◆ LV2_ATOM__Chunk

#define LV2_ATOM__Chunk   LV2_ATOM_PREFIX "Chunk"

◆ LV2_ATOM__Double

#define LV2_ATOM__Double   LV2_ATOM_PREFIX "Double"

◆ LV2_ATOM__Event

#define LV2_ATOM__Event   LV2_ATOM_PREFIX "Event"

◆ LV2_ATOM__Float

#define LV2_ATOM__Float   LV2_ATOM_PREFIX "Float"

◆ LV2_ATOM__Int

#define LV2_ATOM__Int   LV2_ATOM_PREFIX "Int"

◆ LV2_ATOM__Literal

#define LV2_ATOM__Literal   LV2_ATOM_PREFIX "Literal"

◆ LV2_ATOM__Long

#define LV2_ATOM__Long   LV2_ATOM_PREFIX "Long"

◆ LV2_ATOM__Number

#define LV2_ATOM__Number   LV2_ATOM_PREFIX "Number"

◆ LV2_ATOM__Object

#define LV2_ATOM__Object   LV2_ATOM_PREFIX "Object"

◆ LV2_ATOM__Path

#define LV2_ATOM__Path   LV2_ATOM_PREFIX "Path"

◆ LV2_ATOM__Property

#define LV2_ATOM__Property   LV2_ATOM_PREFIX "Property"

◆ LV2_ATOM__Resource

#define LV2_ATOM__Resource   LV2_ATOM_PREFIX "Resource"

◆ LV2_ATOM__Sequence

#define LV2_ATOM__Sequence   LV2_ATOM_PREFIX "Sequence"

◆ LV2_ATOM__Sound

#define LV2_ATOM__Sound   LV2_ATOM_PREFIX "Sound"

◆ LV2_ATOM__String

#define LV2_ATOM__String   LV2_ATOM_PREFIX "String"

◆ LV2_ATOM__Tuple

#define LV2_ATOM__Tuple   LV2_ATOM_PREFIX "Tuple"

◆ LV2_ATOM__URI

#define LV2_ATOM__URI   LV2_ATOM_PREFIX "URI"

◆ LV2_ATOM__URID

#define LV2_ATOM__URID   LV2_ATOM_PREFIX "URID"

◆ LV2_ATOM__Vector

#define LV2_ATOM__Vector   LV2_ATOM_PREFIX "Vector"

◆ LV2_ATOM__atomTransfer

#define LV2_ATOM__atomTransfer   LV2_ATOM_PREFIX "atomTransfer"

◆ LV2_ATOM__beatTime

#define LV2_ATOM__beatTime   LV2_ATOM_PREFIX "beatTime"

◆ LV2_ATOM__bufferType

#define LV2_ATOM__bufferType   LV2_ATOM_PREFIX "bufferType"

◆ LV2_ATOM__childType

#define LV2_ATOM__childType   LV2_ATOM_PREFIX "childType"

◆ LV2_ATOM__eventTransfer

#define LV2_ATOM__eventTransfer   LV2_ATOM_PREFIX "eventTransfer"

◆ LV2_ATOM__frameTime

#define LV2_ATOM__frameTime   LV2_ATOM_PREFIX "frameTime"

◆ LV2_ATOM__supports

#define LV2_ATOM__supports   LV2_ATOM_PREFIX "supports"

◆ LV2_ATOM__timeUnit

#define LV2_ATOM__timeUnit   LV2_ATOM_PREFIX "timeUnit"

◆ LV2_ATOM_REFERENCE_TYPE

#define LV2_ATOM_REFERENCE_TYPE   0

The special type for a reference atom.

◆ LV2_ATOM_CONTENTS

#define LV2_ATOM_CONTENTS (   type,
  atom 
)    ((void*)((uint8_t*)(atom) + sizeof(type)))

Return a pointer to the contents of an Atom.

The "contents" of an atom is the data past the complete type-specific header.

Parameters
typeThe type of the atom, for example LV2_Atom_String.
atomA variable-sized atom.

◆ LV2_ATOM_CONTENTS_CONST

#define LV2_ATOM_CONTENTS_CONST (   type,
  atom 
)     ((const void*)((const uint8_t*)(atom) + sizeof(type)))

Const version of LV2_ATOM_CONTENTS.

◆ LV2_ATOM_BODY

#define LV2_ATOM_BODY (   atom)    LV2_ATOM_CONTENTS(LV2_Atom, atom)

Return a pointer to the body of an Atom.

The "body" of an atom is the data just past the LV2_Atom head (i.e. the same offset for all types).

◆ LV2_ATOM_BODY_CONST

#define LV2_ATOM_BODY_CONST (   atom)    LV2_ATOM_CONTENTS_CONST(LV2_Atom, atom)

Const version of LV2_ATOM_BODY.

Typedef Documentation

◆ LV2_Atom_Bool

An atom:Bool.

May be cast to LV2_Atom.