LV2  1.0.13
Data Fields
LV2_Event Struct Reference

An LV2 event (header only). More...

Data Fields

uint32_t frames
 The frames portion of timestamp.
uint32_t subframes
 The sub-frames portion of timestamp.
uint16_t type
 The type of this event, as a number which represents some URI defining an event type.
uint16_t size
 The size of the data portion of this event in bytes, which immediately follows.

Detailed Description

An LV2 event (header only).

LV2 events are generic time-stamped containers for any type of event. The type field defines the format of a given event's contents.

This struct defines the header of an LV2 event. An LV2 event is a single chunk of POD (plain old data), usually contained in a flat buffer (see LV2_EventBuffer below). Unless a required feature says otherwise, hosts may assume a deep copy of an LV2 event can be created safely using a simple:

memcpy(ev_copy, ev, sizeof(LV2_Event) + ev->size); (or equivalent)


Field Documentation

uint32_t LV2_Event::frames

The frames portion of timestamp.

The units used here can optionally be set for a port (with the lv2ev:timeUnits property), otherwise this is audio frames, corresponding to the sample_count parameter of the LV2 run method (e.g. frame 0 is the first frame for that call to run).

uint32_t LV2_Event::subframes

The sub-frames portion of timestamp.

The units used here can optionally be set for a port (with the lv2ev:timeUnits property), otherwise this is 1/(2^32) of an audio frame.

uint16_t LV2_Event::type

The type of this event, as a number which represents some URI defining an event type.

This value MUST be some value previously returned from a call to the uri_to_id function defined in the LV2 URI map extension (see lv2_uri_map.h). There are special rules which must be followed depending on the type of an event. If the plugin recognizes an event type, the definition of that event type will describe how to interpret the event, and any required behaviour. Otherwise, if the type is 0, this event is a non-POD event and lv2_event_unref MUST be called if the event is 'dropped' (see above). Even if the plugin does not understand an event, it may pass the event through to an output by simply copying (and NOT calling lv2_event_unref). These rules are designed to allow for generic event handling plugins and large non-POD events, but with minimal hassle on simple plugins that "don't care" about these more advanced features.

uint16_t LV2_Event::size

The size of the data portion of this event in bytes, which immediately follows.

The header size (12 bytes) is not included in this value.


The documentation for this struct was generated from the following file: