| @@ -30,8 +30,6 @@ | |||
| #define LV2_ATOM__Atom LV2_ATOM_PREFIX "Atom" | |||
| #define LV2_ATOM__AtomPort LV2_ATOM_PREFIX "AtomPort" | |||
| #define LV2_ATOM__AudioFrames LV2_ATOM_PREFIX "AudioFrames" | |||
| #define LV2_ATOM__Beats LV2_ATOM_PREFIX "Beats" | |||
| #define LV2_ATOM__Blank LV2_ATOM_PREFIX "Blank" | |||
| #define LV2_ATOM__Bool LV2_ATOM_PREFIX "Bool" | |||
| #define LV2_ATOM__Chunk LV2_ATOM_PREFIX "Chunk" | |||
| @@ -39,8 +37,8 @@ | |||
| #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__Long LV2_ATOM_PREFIX "Long" | |||
| #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" | |||
| @@ -49,11 +47,11 @@ | |||
| #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__TimeUnit LV2_ATOM_PREFIX "TimeUnit" | |||
| #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" | |||
| @@ -207,8 +205,7 @@ typedef struct { | |||
| 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 atom:AudioFrames, i.e. | |||
| LV2_Atom_Audio_Time. | |||
| 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, e.g.: | |||
| @@ -31,7 +31,7 @@ | |||
| /** | |||
| The data field of the LV2_Feature for this extension. | |||
| To support this feature the host must pass an LV2_Feature struct to the | |||
| instantiate method with URI "http://lv2plug.in/ns/ext/data-access" | |||
| and data pointed to an instance of this struct. | |||
| @@ -40,17 +40,16 @@ typedef struct { | |||
| /** | |||
| A pointer to a method the UI can call to get data (of a type specified | |||
| by some other extension) from the plugin. | |||
| This call never is never guaranteed to return anything, UIs should | |||
| degrade gracefully if direct access to the plugin data is not possible | |||
| (in which case this function will return NULL). | |||
| This is for access to large data that can only possibly work if the UI | |||
| and plugin are running in the same process. For all other things, use | |||
| the normal LV2 UI communication system. | |||
| */ | |||
| const void* (*data_access)(const char* uri); | |||
| } LV2_Extension_Data_Feature; | |||
| #endif /* LV2_DATA_ACCESS_H */ | |||
| #endif /* LV2_DATA_ACCESS_H */ | |||
| @@ -191,10 +191,10 @@ lv2_event_write(LV2_Event_Iterator* iter, | |||
| is not enough room in the buffer. */ | |||
| static inline uint8_t* | |||
| lv2_event_reserve(LV2_Event_Iterator* iter, | |||
| uint32_t frames, | |||
| uint32_t subframes, | |||
| uint16_t type, | |||
| uint16_t size) | |||
| uint32_t frames, | |||
| uint32_t subframes, | |||
| uint16_t type, | |||
| uint16_t size) | |||
| { | |||
| if (iter->buf->capacity - iter->buf->size < sizeof(LV2_Event) + size) | |||
| return NULL; | |||
| @@ -18,12 +18,12 @@ | |||
| /** | |||
| @file event.h | |||
| C API for the LV2 Event extension <http://lv2plug.in/ns/ext/event>. | |||
| This extension is a generic transport mechanism for time stamped events | |||
| of any type (e.g. MIDI, OSC, ramps, etc). Each port can transport mixed | |||
| events of any type; the type of events and timestamps are defined by a URI | |||
| which is mapped to an integer by the host for performance reasons. | |||
| This extension requires the host to support the LV2 URI Map extension. | |||
| Any host which supports this extension MUST guarantee that any call to | |||
| the LV2 URI Map uri_to_id function with the URI of this extension as the | |||
| @@ -33,7 +33,20 @@ | |||
| #ifndef LV2_EVENT_H | |||
| #define LV2_EVENT_H | |||
| #define LV2_EVENT_URI "http://lv2plug.in/ns/ext/event" | |||
| #define LV2_EVENT_URI "http://lv2plug.in/ns/ext/event" | |||
| #define LV2_EVENT_PREFIX LV2_EVENT_URI "#" | |||
| #define LV2_EVENT__Event LV2_EVENT_PREFIX "Event" | |||
| #define LV2_EVENT__EventPort LV2_EVENT_PREFIX "EventPort" | |||
| #define LV2_EVENT__FrameStamp LV2_EVENT_PREFIX "FrameStamp" | |||
| #define LV2_EVENT__TimeStamp LV2_EVENT_PREFIX "TimeStamp" | |||
| #define LV2_EVENT__generatesTimeStamp LV2_EVENT_PREFIX "generatesTimeStamp" | |||
| #define LV2_EVENT__generic LV2_EVENT_PREFIX "generic" | |||
| #define LV2_EVENT__inheritsEvent LV2_EVENT_PREFIX "inheritsEvent" | |||
| #define LV2_EVENT__inheritsTimeStamp LV2_EVENT_PREFIX "inheritsTimeStamp" | |||
| #define LV2_EVENT__supportsEvent LV2_EVENT_PREFIX "supportsEvent" | |||
| #define LV2_EVENT__supportsTimeStamp LV2_EVENT_PREFIX "supportsTimeStamp" | |||
| #define LV2_EVENT_AUDIO_STAMP 0 | |||
| #include <stdint.h> | |||
| @@ -47,19 +60,18 @@ static const uint32_t LV2_EVENT_PPQN = 3136573440U; | |||
| /** | |||
| 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) | |||
| */ | |||
| typedef struct { | |||
| /** | |||
| The frames portion of timestamp. The units used here can optionally be | |||
| set for a port (with the lv2ev:timeUnits property), otherwise this is | |||
| @@ -100,28 +112,26 @@ typedef struct { | |||
| uint16_t size; | |||
| /* size bytes of data follow here */ | |||
| } LV2_Event; | |||
| /** | |||
| A buffer of LV2 events (header only). | |||
| Like events (which this contains) an event buffer is a single chunk of POD: | |||
| the entire buffer (including contents) can be copied with a single memcpy. | |||
| The first contained event begins sizeof(LV2_EventBuffer) bytes after the | |||
| start of this struct. | |||
| After this header, the buffer contains an event header (defined by struct | |||
| LV2_Event), followed by that event's contents (padded to 64 bits), followed | |||
| by another header, etc: | |||
| | | | | | | | | |||
| | | | | | | | | | | | | | | | | | | | | | | | | | | |||
| |FRAMES |SUBFRMS|TYP|LEN|DATA..DATA..PAD|FRAMES | ... | |||
| */ | |||
| typedef struct { | |||
| /** | |||
| The contents of the event buffer. This may or may not reside in the | |||
| same block of memory as this header, plugins must not assume either. | |||
| @@ -132,7 +142,7 @@ typedef struct { | |||
| /** | |||
| The size of this event header in bytes (including everything). | |||
| This is to allow for extending this header in the future without | |||
| breaking binary compatibility. Whenever this header is copied, | |||
| it MUST be done using this field (and NOT the sizeof this struct). | |||
| @@ -153,7 +163,7 @@ typedef struct { | |||
| connect_port is called on the input port, at which time the host MUST | |||
| have set the stamp_type field to the value that will be used for all | |||
| subsequent run calls. | |||
| OUTPUTS: The plugin may set this to any value that has been returned | |||
| from uri_to_id with the URI of this extension for a 'map' argument. | |||
| When connected to a buffer with connect_port, output ports MUST set this | |||
| @@ -198,7 +208,6 @@ typedef struct { | |||
| Any initial value should be ignored by the plugin. | |||
| */ | |||
| uint32_t size; | |||
| } LV2_Event_Buffer; | |||
| @@ -210,17 +219,16 @@ typedef void* LV2_Event_Callback_Data; | |||
| /** | |||
| Non-POD events feature. | |||
| To support this feature the host must pass an LV2_Feature struct to the | |||
| plugin's instantiate method with URI "http://lv2plug.in/ns/ext/event" | |||
| and data pointed to an instance of this struct. Note this feature | |||
| is not mandatory to support the event extension. | |||
| */ | |||
| typedef struct { | |||
| /** | |||
| Opaque pointer to host data. | |||
| The plugin MUST pass this to any call to functions in this struct. | |||
| Otherwise, it must not be interpreted in any way. | |||
| */ | |||
| @@ -228,7 +236,7 @@ typedef struct { | |||
| /** | |||
| Take a reference to a non-POD event. | |||
| If a plugin receives an event with type 0, it means the event is a | |||
| pointer to some object in memory and not a flat sequence of bytes | |||
| in the buffer. When receiving a non-POD event, the plugin already | |||
| @@ -236,16 +244,16 @@ typedef struct { | |||
| passed to an output, lv2_event_ref MUST be called on that event. | |||
| If the event is only stored OR passed through, this is not necessary | |||
| (as the plugin already has 1 implicit reference). | |||
| @param event An event received at an input that will not be copied to | |||
| an output or stored in any way. | |||
| @param context The calling context. Like event types, this is a mapped | |||
| URI, see lv2_context.h. Simple plugin with just a run() method should | |||
| pass 0 here (the ID of the 'standard' LV2 run context). The host | |||
| guarantees that this function is realtime safe iff @a context is | |||
| realtime safe. | |||
| PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS. | |||
| */ | |||
| uint32_t (*lv2_event_ref)(LV2_Event_Callback_Data callback_data, | |||
| @@ -253,27 +261,26 @@ typedef struct { | |||
| /** | |||
| Drop a reference to a non-POD event. | |||
| If a plugin receives an event with type 0, it means the event is a | |||
| pointer to some object in memory and not a flat sequence of bytes | |||
| in the buffer. If the plugin does not pass the event through to | |||
| an output or store it internally somehow, it MUST call this function | |||
| on the event (more information on using non-POD events below). | |||
| @param event An event received at an input that will not be copied to an | |||
| output or stored in any way. | |||
| @param context The calling context. Like event types, this is a mapped | |||
| URI, see lv2_context.h. Simple plugin with just a run() method should | |||
| pass 0 here (the ID of the 'standard' LV2 run context). The host | |||
| guarantees that this function is realtime safe iff @a context is | |||
| realtime safe. | |||
| PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS. | |||
| */ | |||
| uint32_t (*lv2_event_unref)(LV2_Event_Callback_Data callback_data, | |||
| LV2_Event* event); | |||
| } LV2_Event_Feature; | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| LV2 Instance Access Extension | |||
| Copyright 2008-2011 David Robillard <http://drobilla.net> | |||
| Copyright 2008-2012 David Robillard <http://drobilla.net> | |||
| Permission to use, copy, modify, and/or distribute this software for any | |||
| purpose with or without fee is hereby granted, provided that the above | |||
| @@ -20,19 +20,18 @@ | |||
| #define LV2_INSTANCE_ACCESS_URI "http://lv2plug.in/ns/ext/instance-access" | |||
| /** | |||
| @file instance-access.h | |||
| C header for the LV2 Instance Access extension | |||
| <http://lv2plug.in/ns/ext/instance-access>. | |||
| This extension defines a method for (e.g.) plugin UIs to get a direct | |||
| handle to an LV2 plugin instance (LV2_Handle), if possible. | |||
| To support this feature the host must pass an LV2_Feature struct to the | |||
| UI instantiate method with URI "http://lv2plug.in/ns/ext/instance-access" | |||
| and data pointed directly to the LV2_Handle of the plugin instance. | |||
| */ | |||
| /** @file | |||
| * C header for the LV2 Instance Access extension | |||
| * <http://lv2plug.in/ns/ext/instance-access>. | |||
| * | |||
| * This extension defines a method for (e.g.) plugin UIs to get a direct | |||
| * handle to an LV2 plugin instance (LV2_Handle), if possible. | |||
| * | |||
| * To support this feature the host must pass an LV2_Feature struct to the | |||
| * UI instantiate method with URI "http://lv2plug.in/ns/ext/instance-access" | |||
| * and data pointed directly to the LV2_Handle of the plugin instance. | |||
| */ | |||
| #endif /* LV2_INSTANCE_ACCESS_H */ | |||
| #endif /* LV2_INSTANCE_ACCESS_H */ | |||
| @@ -4,7 +4,7 @@ | |||
| Based on LADSPA, Copyright 2000-2002 Richard W.E. Furse, | |||
| Paul Barton-Davis, Stefan Westerfeld. | |||
| Permission to use, copy, modify, and/or distribute this software for any | |||
| purpose with or without fee is hereby granted, provided that the above | |||
| copyright notice and this permission notice appear in all copies. | |||
| @@ -37,6 +37,7 @@ | |||
| #define LV2_CORE__AnalyserPlugin LV2_CORE_PREFIX "AnalyserPlugin" | |||
| #define LV2_CORE__AudioPort LV2_CORE_PREFIX "AudioPort" | |||
| #define LV2_CORE__BandpassPlugin LV2_CORE_PREFIX "BandpassPlugin" | |||
| #define LV2_CORE__CVPort LV2_CORE_PREFIX "CVPort" | |||
| #define LV2_CORE__ChorusPlugin LV2_CORE_PREFIX "ChorusPlugin" | |||
| #define LV2_CORE__CombPlugin LV2_CORE_PREFIX "CombPlugin" | |||
| #define LV2_CORE__CompressorPlugin LV2_CORE_PREFIX "CompressorPlugin" | |||
| @@ -92,7 +93,6 @@ | |||
| #define LV2_CORE__extensionData LV2_CORE_PREFIX "extensionData" | |||
| #define LV2_CORE__freeWheeling LV2_CORE_PREFIX "freeWheeling" | |||
| #define LV2_CORE__hardRTCapable LV2_CORE_PREFIX "hardRTCapable" | |||
| #define LV2_CORE__hasParameter LV2_CORE_PREFIX "hasParameter" | |||
| #define LV2_CORE__inPlaceBroken LV2_CORE_PREFIX "inPlaceBroken" | |||
| #define LV2_CORE__index LV2_CORE_PREFIX "index" | |||
| #define LV2_CORE__integer LV2_CORE_PREFIX "integer" | |||
| @@ -119,7 +119,7 @@ extern "C" { | |||
| /** | |||
| Plugin Instance Handle. | |||
| This is a handle for one particular instance of a plugin. It is valid to | |||
| compare to NULL (or 0 for C++) but otherwise the host MUST NOT attempt to | |||
| interpret it. | |||
| @@ -128,7 +128,7 @@ typedef void * LV2_Handle; | |||
| /** | |||
| Feature. | |||
| Features allow hosts to make additional functionality available to plugins | |||
| without requiring modification to the LV2 API. Extensions may define new | |||
| features and specify the @ref URI and @ref data to be used if necessary. | |||
| @@ -153,7 +153,7 @@ typedef struct _LV2_Feature { | |||
| /** | |||
| Plugin Descriptor. | |||
| This structure provides the core functions necessary to instantiate and use | |||
| a plugin. | |||
| */ | |||
| @@ -182,7 +182,7 @@ typedef struct _LV2_Descriptor { | |||
| binary. It MUST include the trailing directory separator (e.g. '/') so | |||
| that simply appending a filename will yield the path to that file in the | |||
| bundle. | |||
| @param features A NULL terminated array of LV2_Feature structs which | |||
| represent the features the host supports. Plugins may refuse to | |||
| instantiate if required features are not found here. However, hosts MUST | |||
| @@ -193,7 +193,7 @@ typedef struct _LV2_Descriptor { | |||
| NULL. | |||
| @return A handle for the new plugin instance, or NULL if instantiation | |||
| has failed. | |||
| has failed. | |||
| */ | |||
| LV2_Handle (*instantiate)(const struct _LV2_Descriptor * descriptor, | |||
| double sample_rate, | |||
| @@ -206,7 +206,7 @@ typedef struct _LV2_Descriptor { | |||
| Plugin writers should be aware that the host may elect to use the same | |||
| buffer for more than one port and even use the same buffer for both | |||
| input and output (see lv2:inPlaceBroken in lv2.ttl). | |||
| If the plugin has the feature lv2:hardRTCapable then there are various | |||
| things that the plugin MUST NOT do within the connect_port() function; | |||
| see lv2core.ttl for details. | |||
| @@ -240,14 +240,14 @@ typedef struct _LV2_Descriptor { | |||
| /** | |||
| Initialise a plugin instance and activate it for use. | |||
| This is separated from instantiate() to aid real-time support and so | |||
| that hosts can reinitialise a plugin instance by calling deactivate() | |||
| and then activate(). In this case the plugin instance MUST reset all | |||
| state information dependent on the history of the plugin instance except | |||
| for any data locations provided by connect_port(). If there is nothing | |||
| for activate() to do then this field may be NULL. | |||
| When present, hosts MUST call this function once before run() is called | |||
| for the first time. This call SHOULD be made as close to the run() call | |||
| as possible and indicates to real-time plugins that they are now live, | |||
| @@ -267,17 +267,17 @@ typedef struct _LV2_Descriptor { | |||
| Note that if an activate() function exists then it must be called before | |||
| run(). If deactivate() is called for a plugin instance then run() may | |||
| not be called until activate() has been called again. | |||
| If the plugin has the feature lv2:hardRTCapable then there are various | |||
| things that the plugin MUST NOT do within the run() function (see | |||
| lv2core.ttl for details). | |||
| As a special case, when @c sample_count == 0, the plugin should update | |||
| As a special case, when @p sample_count == 0, the plugin should update | |||
| any output ports that represent a single instant in time (e.g. control | |||
| ports, but not audio ports). This is particularly useful for latent | |||
| plugins, which should update their latency output port so hosts can | |||
| pre-roll plugins to compute latency. Plugins MUST NOT crash when | |||
| @c sample_count == 0. | |||
| @p sample_count == 0. | |||
| @param instance Instance to be run. | |||
| @@ -309,11 +309,11 @@ typedef struct _LV2_Descriptor { | |||
| /** | |||
| Clean up a plugin instance (counterpart to instantiate()). | |||
| Once an instance of a plugin has been finished with it must be deleted | |||
| using this function. The instance handle passed ceases to be valid after | |||
| this call. | |||
| If activate() was called for a plugin instance then a corresponding call | |||
| to deactivate() MUST be made before cleanup() is called. Hosts MUST NOT | |||
| call cleanup() unless instantiate() was previously called. | |||
| @@ -325,12 +325,12 @@ typedef struct _LV2_Descriptor { | |||
| A typical use of this facility is to return a struct containing function | |||
| pointers to extend the LV2_Descriptor API. | |||
| The actual type and meaning of the returned object MUST be specified | |||
| precisely by the extension. This function MUST return NULL for any | |||
| unsupported URI. If a plugin does not support any extension data, this | |||
| field may be NULL. | |||
| The host is never responsible for freeing the returned value. | |||
| */ | |||
| const void * (*extension_data)(const char * uri); | |||
| @@ -354,7 +354,7 @@ typedef struct _LV2_Descriptor { | |||
| available during discovery, and it relies on non-portable shared library | |||
| constructors/destructors. However, this API is still supported and plugins | |||
| are not required to migrate. | |||
| Plugins are discovered by hosts using RDF data (not by loading libraries). | |||
| See http://lv2plug.in for details on the discovery process, though most | |||
| hosts should use an existing library to implement this functionality. | |||
| @@ -368,9 +368,9 @@ typedef struct _LV2_Descriptor { | |||
| function to find the LV2_Descriptor for the desired plugin. Plugins are | |||
| accessed by index using values from 0 upwards. This function MUST return | |||
| NULL for out of range indices, so the host can enumerate plugins by | |||
| increasing @c index until NULL is returned. | |||
| increasing @p index until NULL is returned. | |||
| Note that @c index has no meaning, hosts MUST NOT depend on it remaining | |||
| Note that @p index has no meaning, hosts MUST NOT depend on it remaining | |||
| consistent between loads of the plugin library. | |||
| */ | |||
| LV2_SYMBOL_EXPORT | |||
| @@ -22,46 +22,47 @@ | |||
| #ifndef LV2_MIDI_H | |||
| #define LV2_MIDI_H | |||
| #define LV2_MIDI_URI "http://lv2plug.in/ns/ext/midi" | |||
| #define LV2_MIDI_URI "http://lv2plug.in/ns/ext/midi" | |||
| #define LV2_MIDI_PREFIX LV2_MIDI_URI "#" | |||
| #define LV2_MIDI__ActiveSense LV2_MIDI_URI "#ActiveSense" | |||
| #define LV2_MIDI__Aftertouch LV2_MIDI_URI "#Aftertouch" | |||
| #define LV2_MIDI__Bender LV2_MIDI_URI "#Bender" | |||
| #define LV2_MIDI__ChannelPressure LV2_MIDI_URI "#ChannelPressure" | |||
| #define LV2_MIDI__Chunk LV2_MIDI_URI "#Chunk" | |||
| #define LV2_MIDI__Clock LV2_MIDI_URI "#Clock" | |||
| #define LV2_MIDI__Continue LV2_MIDI_URI "#Continue" | |||
| #define LV2_MIDI__Controller LV2_MIDI_URI "#Controller" | |||
| #define LV2_MIDI__MidiEvent LV2_MIDI_URI "#MidiEvent" | |||
| #define LV2_MIDI__NoteOff LV2_MIDI_URI "#NoteOff" | |||
| #define LV2_MIDI__NoteOn LV2_MIDI_URI "#NoteOn" | |||
| #define LV2_MIDI__ProgramChange LV2_MIDI_URI "#ProgramChange" | |||
| #define LV2_MIDI__QuarterFrame LV2_MIDI_URI "#QuarterFrame" | |||
| #define LV2_MIDI__Reset LV2_MIDI_URI "#Reset" | |||
| #define LV2_MIDI__SongPosition LV2_MIDI_URI "#SongPosition" | |||
| #define LV2_MIDI__SongSelect LV2_MIDI_URI "#SongSelect" | |||
| #define LV2_MIDI__Start LV2_MIDI_URI "#Start" | |||
| #define LV2_MIDI__Stop LV2_MIDI_URI "#Stop" | |||
| #define LV2_MIDI__SystemCommon LV2_MIDI_URI "#SystemCommon" | |||
| #define LV2_MIDI__SystemExclusive LV2_MIDI_URI "#SystemExclusive" | |||
| #define LV2_MIDI__SystemMessage LV2_MIDI_URI "#SystemMessage" | |||
| #define LV2_MIDI__SystemRealtime LV2_MIDI_URI "#SystemRealtime" | |||
| #define LV2_MIDI__Tick LV2_MIDI_URI "#Tick" | |||
| #define LV2_MIDI__TuneRequest LV2_MIDI_URI "#TuneRequest" | |||
| #define LV2_MIDI__VoiceMessage LV2_MIDI_URI "#VoiceMessage" | |||
| #define LV2_MIDI__benderValue LV2_MIDI_URI "#benderValue" | |||
| #define LV2_MIDI__byteNumber LV2_MIDI_URI "#byteNumber" | |||
| #define LV2_MIDI__chunk LV2_MIDI_URI "#chunk" | |||
| #define LV2_MIDI__controllerNumber LV2_MIDI_URI "#controllerNumber" | |||
| #define LV2_MIDI__controllerValue LV2_MIDI_URI "#controllerValue" | |||
| #define LV2_MIDI__noteNumber LV2_MIDI_URI "#noteNumber" | |||
| #define LV2_MIDI__pressure LV2_MIDI_URI "#pressure" | |||
| #define LV2_MIDI__programNumber LV2_MIDI_URI "#programNumber" | |||
| #define LV2_MIDI__property LV2_MIDI_URI "#property" | |||
| #define LV2_MIDI__songNumber LV2_MIDI_URI "#songNumber" | |||
| #define LV2_MIDI__songPosition LV2_MIDI_URI "#songPosition" | |||
| #define LV2_MIDI__status LV2_MIDI_URI "#status" | |||
| #define LV2_MIDI__statusMask LV2_MIDI_URI "#statusMask" | |||
| #define LV2_MIDI__velocity LV2_MIDI_URI "#velocity" | |||
| #define LV2_MIDI__ActiveSense LV2_MIDI_PREFIX "ActiveSense" | |||
| #define LV2_MIDI__Aftertouch LV2_MIDI_PREFIX "Aftertouch" | |||
| #define LV2_MIDI__Bender LV2_MIDI_PREFIX "Bender" | |||
| #define LV2_MIDI__ChannelPressure LV2_MIDI_PREFIX "ChannelPressure" | |||
| #define LV2_MIDI__Chunk LV2_MIDI_PREFIX "Chunk" | |||
| #define LV2_MIDI__Clock LV2_MIDI_PREFIX "Clock" | |||
| #define LV2_MIDI__Continue LV2_MIDI_PREFIX "Continue" | |||
| #define LV2_MIDI__Controller LV2_MIDI_PREFIX "Controller" | |||
| #define LV2_MIDI__MidiEvent LV2_MIDI_PREFIX "MidiEvent" | |||
| #define LV2_MIDI__NoteOff LV2_MIDI_PREFIX "NoteOff" | |||
| #define LV2_MIDI__NoteOn LV2_MIDI_PREFIX "NoteOn" | |||
| #define LV2_MIDI__ProgramChange LV2_MIDI_PREFIX "ProgramChange" | |||
| #define LV2_MIDI__QuarterFrame LV2_MIDI_PREFIX "QuarterFrame" | |||
| #define LV2_MIDI__Reset LV2_MIDI_PREFIX "Reset" | |||
| #define LV2_MIDI__SongPosition LV2_MIDI_PREFIX "SongPosition" | |||
| #define LV2_MIDI__SongSelect LV2_MIDI_PREFIX "SongSelect" | |||
| #define LV2_MIDI__Start LV2_MIDI_PREFIX "Start" | |||
| #define LV2_MIDI__Stop LV2_MIDI_PREFIX "Stop" | |||
| #define LV2_MIDI__SystemCommon LV2_MIDI_PREFIX "SystemCommon" | |||
| #define LV2_MIDI__SystemExclusive LV2_MIDI_PREFIX "SystemExclusive" | |||
| #define LV2_MIDI__SystemMessage LV2_MIDI_PREFIX "SystemMessage" | |||
| #define LV2_MIDI__SystemRealtime LV2_MIDI_PREFIX "SystemRealtime" | |||
| #define LV2_MIDI__Tick LV2_MIDI_PREFIX "Tick" | |||
| #define LV2_MIDI__TuneRequest LV2_MIDI_PREFIX "TuneRequest" | |||
| #define LV2_MIDI__VoiceMessage LV2_MIDI_PREFIX "VoiceMessage" | |||
| #define LV2_MIDI__benderValue LV2_MIDI_PREFIX "benderValue" | |||
| #define LV2_MIDI__byteNumber LV2_MIDI_PREFIX "byteNumber" | |||
| #define LV2_MIDI__chunk LV2_MIDI_PREFIX "chunk" | |||
| #define LV2_MIDI__controllerNumber LV2_MIDI_PREFIX "controllerNumber" | |||
| #define LV2_MIDI__controllerValue LV2_MIDI_PREFIX "controllerValue" | |||
| #define LV2_MIDI__noteNumber LV2_MIDI_PREFIX "noteNumber" | |||
| #define LV2_MIDI__pressure LV2_MIDI_PREFIX "pressure" | |||
| #define LV2_MIDI__programNumber LV2_MIDI_PREFIX "programNumber" | |||
| #define LV2_MIDI__property LV2_MIDI_PREFIX "property" | |||
| #define LV2_MIDI__songNumber LV2_MIDI_PREFIX "songNumber" | |||
| #define LV2_MIDI__songPosition LV2_MIDI_PREFIX "songPosition" | |||
| #define LV2_MIDI__status LV2_MIDI_PREFIX "status" | |||
| #define LV2_MIDI__statusMask LV2_MIDI_PREFIX "statusMask" | |||
| #define LV2_MIDI__velocity LV2_MIDI_PREFIX "velocity" | |||
| #endif /* LV2_MIDI_H */ | |||
| @@ -54,7 +54,6 @@ typedef void* LV2_State_Make_Path_Handle; | |||
| (de-)serialise the value data, or whether it is even possible to do so. | |||
| */ | |||
| typedef enum { | |||
| /** | |||
| Plain Old Data. | |||
| @@ -90,7 +89,6 @@ typedef enum { | |||
| and portability. | |||
| */ | |||
| LV2_STATE_IS_NATIVE = 1 << 2 | |||
| } LV2_State_Flags; | |||
| /** A status code for state functions. */ | |||
| @@ -188,7 +186,6 @@ typedef const void* (*LV2_State_Retrieve_Function)( | |||
| with meaningful types to avoid such problems in the future. | |||
| */ | |||
| typedef struct _LV2_State_Interface { | |||
| /** | |||
| Save plugin state using a host-provided @p store callback. | |||
| @@ -261,14 +258,12 @@ typedef struct _LV2_State_Interface { | |||
| LV2_State_Handle handle, | |||
| uint32_t flags, | |||
| const LV2_Feature *const * features); | |||
| } LV2_State_Interface; | |||
| /** | |||
| Feature data for state:mapPath (LV2_STATE__mapPath). | |||
| */ | |||
| typedef struct { | |||
| /** | |||
| Opaque host data. | |||
| */ | |||
| @@ -311,14 +306,12 @@ typedef struct { | |||
| */ | |||
| char* (*absolute_path)(LV2_State_Map_Path_Handle handle, | |||
| const char* abstract_path); | |||
| } LV2_State_Map_Path; | |||
| /** | |||
| Feature data for state:makePath (@ref LV2_STATE__makePath). | |||
| */ | |||
| typedef struct { | |||
| /** | |||
| Opaque host data. | |||
| */ | |||
| @@ -349,7 +342,6 @@ typedef struct { | |||
| */ | |||
| char* (*path)(LV2_State_Make_Path_Handle handle, | |||
| const char* path); | |||
| } LV2_State_Make_Path; | |||
| #ifdef __cplusplus | |||
| @@ -36,6 +36,7 @@ | |||
| #define LV2_UI__Qt4UI LV2_UI_PREFIX "Qt4UI" | |||
| #define LV2_UI__UI LV2_UI_PREFIX "UI" | |||
| #define LV2_UI__X11UI LV2_UI_PREFIX "X11UI" | |||
| #define LV2_UI__binary LV2_UI_PREFIX "binary" | |||
| #define LV2_UI__fixedSize LV2_UI_PREFIX "fixedSize" | |||
| #define LV2_UI__noUserResize LV2_UI_PREFIX "noUserResize" | |||
| #define LV2_UI__notifyType LV2_UI_PREFIX "notifyType" | |||
| @@ -47,6 +48,7 @@ | |||
| #define LV2_UI__portSubscribe LV2_UI_PREFIX "portSubscribe" | |||
| #define LV2_UI__resize LV2_UI_PREFIX "resize" | |||
| #define LV2_UI__touch LV2_UI_PREFIX "touch" | |||
| #define LV2_UI__ui LV2_UI_PREFIX "ui" | |||
| /** | |||
| The index returned by LV2_UI_Port_Port::port_index() for unknown ports. | |||
| @@ -93,12 +95,12 @@ typedef void* LV2UI_Feature_Handle; | |||
| The type of the host-provided function that the UI can use to | |||
| send data to a plugin's input ports. | |||
| The @c buffer parameter must point to a block of data, @c buffer_size bytes | |||
| The @p buffer parameter must point to a block of data, @c buffer_size bytes | |||
| large. The format of this data and how the host should use it is defined by | |||
| the @c port_protocol. This buffer is owned by the UI and is only valid for | |||
| the @p port_protocol. This buffer is owned by the UI and is only valid for | |||
| the duration of this call. | |||
| The @c port_protocol parameter should either be 0 or the URID for a | |||
| The @p port_protocol parameter should either be 0 or the URID for a | |||
| ui:PortProtocol. If it is 0, the protocol is implicitly ui:floatProtocol, | |||
| the port must be an lv2:ControlPort input, @c buffer must point to a single | |||
| float value, and @c buffer_size must be sizeof(float). | |||
| @@ -120,114 +122,94 @@ typedef void (*LV2UI_Write_Function)(LV2UI_Controller controller, | |||
| function. | |||
| */ | |||
| typedef struct _LV2UI_Descriptor { | |||
| /** | |||
| The URI for this UI (not for the plugin it controls). | |||
| */ | |||
| const char* URI; | |||
| /** | |||
| Create a new UI object and return a handle to it. This function works | |||
| similarly to the instantiate() member in LV2_Descriptor. | |||
| @param descriptor The descriptor for the UI that you want to instantiate. | |||
| @param plugin_uri The URI of the plugin that this UI will control. | |||
| @param bundle_path The path to the bundle containing the RDF data file | |||
| that references this shared object file, including the trailing '/'. | |||
| @param write_function A function provided by the host that the UI can use | |||
| to send data to the plugin's input ports. | |||
| @param controller A handle for the plugin instance that should be passed | |||
| as the first parameter of @c write_function. | |||
| @param widget A pointer to an LV2UI_Widget. The UI will write a widget | |||
| pointer to this location (what type of widget depends on the RDF class of | |||
| the UI) that will be the main UI widget. | |||
| @param features An array of LV2_Feature pointers. The host must pass all | |||
| feature URIs that it and the UI supports and any additional data, just | |||
| like in the LV2 plugin instantiate() function. Note that UI features and | |||
| plugin features are NOT necessarily the same, they just share the same | |||
| data structure - this will probably not be the same array as the one the | |||
| plugin host passes to a plugin. | |||
| */ | |||
| LV2UI_Handle (*instantiate)(const struct _LV2UI_Descriptor* descriptor, | |||
| const char* plugin_uri, | |||
| const char* bundle_path, | |||
| LV2UI_Write_Function write_function, | |||
| LV2UI_Controller controller, | |||
| LV2UI_Widget* widget, | |||
| const LV2_Feature* const* features); | |||
| /** | |||
| Destroy the UI object and the associated widget. The host must not try | |||
| to access the widget after calling this function. | |||
| */ | |||
| void (*cleanup)(LV2UI_Handle ui); | |||
| /** | |||
| Tell the UI that something interesting has happened at a plugin port. | |||
| What is interesting and how it is written to the buffer passed to this | |||
| function is defined by the @c format parameter, which has the same meaning | |||
| as in LV2UI_Write_Function. The only exception is ports of the class | |||
| lv2:ControlPort, for which this function should be called when the port | |||
| value changes (it does not have to be called for every single change if | |||
| the host's UI thread has problems keeping up with the thread the plugin is | |||
| running in), @c buffer_size should be 4, the buffer should contain a | |||
| single IEEE-754 float, and @c format should be 0. | |||
| By default, the host should only call this function for input ports of the | |||
| lv2:ControlPort class. However, the default setting can be modified by | |||
| using the following URIs in the UI's RDF data: | |||
| <pre> | |||
| uiext:portNotification | |||
| uiext:noPortNotification | |||
| uiext:plugin | |||
| uiext:portIndex | |||
| </pre> | |||
| For example, if you want the UI with uri | |||
| <code><http://my.pluginui></code> for the plugin with URI | |||
| <code><http://my.plugin></code> to get notified when the value of the | |||
| output control port with index 4 changes, you would use the following | |||
| in the RDF for your UI: | |||
| <pre> | |||
| <http://my.pluginui> uiext:portNotification [ uiext:plugin <http://my.plugin> ; | |||
| uiext:portIndex 4 ] . | |||
| </pre> | |||
| and similarly with <code>uiext:noPortNotification</code> if you wanted | |||
| to prevent notifications for a port for which it would be on by default | |||
| otherwise. The UI is not allowed to request notifications for ports of | |||
| types for which no transfer mechanism is specified, if it does it should | |||
| be considered broken and the host should not load it. | |||
| The @c buffer is only valid during the time of this function call, so if | |||
| the UI wants to keep it for later use it has to copy the contents to an | |||
| internal buffer. | |||
| This member may be set to NULL if the UI is not interested in any | |||
| port events. | |||
| */ | |||
| void (*port_event)(LV2UI_Handle ui, | |||
| uint32_t port_index, | |||
| uint32_t buffer_size, | |||
| uint32_t format, | |||
| const void* buffer); | |||
| /** | |||
| Return a data structure associated with an extension URI, for example | |||
| a struct containing additional function pointers. | |||
| Avoid returning function pointers directly since standard C/C++ has no | |||
| valid way of casting a void* to a function pointer. This member may be set | |||
| to NULL if the UI is not interested in supporting any extensions. This is | |||
| similar to the extension_data() member in LV2_Descriptor. | |||
| */ | |||
| const void* (*extension_data)(const char* uri); | |||
| /** | |||
| The URI for this UI (not for the plugin it controls). | |||
| */ | |||
| const char* URI; | |||
| /** | |||
| Create a new UI object and return a handle to it. This function works | |||
| similarly to the instantiate() member in LV2_Descriptor. | |||
| @param descriptor The descriptor for the UI that you want to instantiate. | |||
| @param plugin_uri The URI of the plugin that this UI will control. | |||
| @param bundle_path The path to the bundle containing the RDF data file | |||
| that references this shared object file, including the trailing '/'. | |||
| @param write_function A function provided by the host that the UI can use | |||
| to send data to the plugin's input ports. | |||
| @param controller A handle for the plugin instance that should be passed | |||
| as the first parameter of @p write_function. | |||
| @param widget A pointer to an LV2UI_Widget. The UI will write a widget | |||
| pointer to this location (what type of widget depends on the RDF class of | |||
| the UI) that will be the main UI widget. | |||
| @param features An array of LV2_Feature pointers. The host must pass all | |||
| feature URIs that it and the UI supports and any additional data, just | |||
| like in the LV2 plugin instantiate() function. Note that UI features and | |||
| plugin features are NOT necessarily the same, they just share the same | |||
| data structure - this will probably not be the same array as the one the | |||
| plugin host passes to a plugin. | |||
| */ | |||
| LV2UI_Handle (*instantiate)(const struct _LV2UI_Descriptor* descriptor, | |||
| const char* plugin_uri, | |||
| const char* bundle_path, | |||
| LV2UI_Write_Function write_function, | |||
| LV2UI_Controller controller, | |||
| LV2UI_Widget* widget, | |||
| const LV2_Feature* const* features); | |||
| /** | |||
| Destroy the UI object and the associated widget. The host must not try | |||
| to access the widget after calling this function. | |||
| */ | |||
| void (*cleanup)(LV2UI_Handle ui); | |||
| /** | |||
| Tell the UI that something interesting has happened at a plugin port. | |||
| What is interesting and how it is written to the buffer passed to this | |||
| function is defined by the @p format parameter, which has the same | |||
| meaning as in LV2UI_Write_Function. The only exception is ports of the | |||
| class lv2:ControlPort, for which this function should be called when the | |||
| port value changes (it does not have to be called for every single change | |||
| if the host's UI thread has problems keeping up with the thread the | |||
| plugin is running in), @p buffer_size should be 4, the buffer should | |||
| contain a single IEEE-754 float, and @p format should be 0. | |||
| By default, the host should only call this function for input ports of | |||
| the lv2:ControlPort class. However, this can be modified by using | |||
| ui:portNotification in the UI data, or the ui:portSubscribe feature. | |||
| The @p buffer is only valid during the time of this function call, so if | |||
| the UI wants to keep it for later use it has to copy the contents to an | |||
| internal buffer. | |||
| This member may be set to NULL if the UI is not interested in any | |||
| port events. | |||
| */ | |||
| void (*port_event)(LV2UI_Handle ui, | |||
| uint32_t port_index, | |||
| uint32_t buffer_size, | |||
| uint32_t format, | |||
| const void* buffer); | |||
| /** | |||
| Return a data structure associated with an extension URI, for example | |||
| a struct containing additional function pointers. | |||
| Avoid returning function pointers directly since standard C/C++ has no | |||
| valid way of casting a void* to a function pointer. This member may be set | |||
| to NULL if the UI is not interested in supporting any extensions. This is | |||
| similar to the extension_data() member in LV2_Descriptor. | |||
| */ | |||
| const void* (*extension_data)(const char* uri); | |||
| } LV2UI_Descriptor; | |||
| /** | |||
| @@ -295,18 +277,19 @@ typedef struct _LV2UI_Port_Subscribe { | |||
| This means that the host will call the UI's port_event() function when | |||
| the port value changes (as defined by protocol). | |||
| Calling this function with the same @c port_index and @c port_protocol | |||
| Calling this function with the same @p port_index and @p port_protocol | |||
| as an already active subscription has no effect. | |||
| @param handle The handle field of this struct. | |||
| @param port_index The index of the port. | |||
| @param port_protocol The URID of the ui:PortProtocol. | |||
| @param data Extra data as defined by the port protocol, or NULL. | |||
| @param features Features for this subscription. | |||
| @return 0 on success. | |||
| */ | |||
| void (*subscribe)(LV2UI_Feature_Handle handle, | |||
| uint32_t port_index, | |||
| uint32_t port_protocol, | |||
| const void* options); | |||
| uint32_t (*subscribe)(LV2UI_Feature_Handle handle, | |||
| uint32_t port_index, | |||
| uint32_t port_protocol, | |||
| const LV2_Feature* const* features); | |||
| /** | |||
| Unsubscribe from updates for a port. | |||
| @@ -314,18 +297,19 @@ typedef struct _LV2UI_Port_Subscribe { | |||
| This means that the host will cease calling calling port_event() when | |||
| the port value changes. | |||
| Calling this function with a @c port_index and @c port_protocol that | |||
| Calling this function with a @p port_index and @p port_protocol that | |||
| does not refer to an active port subscription has no effect. | |||
| @param handle The handle field of this struct. | |||
| @param port_index The index of the port. | |||
| @param port_protocol The URID of the ui:PortProtocol. | |||
| @param data Extra data as defined by the port protocol, or NULL. | |||
| @param features Features for this subscription. | |||
| @return 0 on success. | |||
| */ | |||
| void (*unsubscribe)(LV2UI_Feature_Handle handle, | |||
| uint32_t port_index, | |||
| uint32_t port_protocol, | |||
| const void* options); | |||
| uint32_t (*unsubscribe)(LV2UI_Feature_Handle handle, | |||
| uint32_t port_index, | |||
| uint32_t port_protocol, | |||
| const LV2_Feature* const* features); | |||
| } LV2UI_Port_Subscribe; | |||
| /** | |||
| @@ -17,7 +17,7 @@ | |||
| /** | |||
| @file | |||
| C header for the LV2 URI Map extension <http://lv2plug.in/ns/ext/uri-map>. | |||
| This extension defines a simple mechanism for plugins to map URIs to | |||
| integers, usually for performance reasons (e.g. processing events typed by | |||
| URIs in real time). The expected use case is for plugins to map URIs to | |||
| @@ -41,16 +41,15 @@ typedef void* LV2_URI_Map_Callback_Data; | |||
| /** | |||
| URI Map Feature. | |||
| To support this feature the host must pass an LV2_Feature struct to the | |||
| plugin's instantiate method with URI "http://lv2plug.in/ns/ext/uri-map" | |||
| and data pointed to an instance of this struct. | |||
| */ | |||
| typedef struct { | |||
| /** | |||
| Opaque pointer to host data. | |||
| The plugin MUST pass this to any call to functions in this struct. | |||
| Otherwise, it must not be interpreted in any way. | |||
| */ | |||
| @@ -58,7 +57,7 @@ typedef struct { | |||
| /** | |||
| Get the numeric ID of a URI from the host. | |||
| @param callback_data Must be the callback_data member of this struct. | |||
| @param map The 'context' of this URI. Certain extensions may define a | |||
| URI that must be passed here with certain restrictions on the return | |||
| @@ -67,14 +66,14 @@ typedef struct { | |||
| unless there is a specific need to do so, e.g. to restrict the range of | |||
| the returned value. | |||
| @param uri The URI to be mapped to an integer ID. | |||
| This function is referentially transparent; any number of calls with the | |||
| same arguments is guaranteed to return the same value over the life of a | |||
| plugin instance (though the same URI may return different values with a | |||
| different map parameter). However, this function is not necessarily very | |||
| fast: plugins SHOULD cache any IDs they might need in performance | |||
| critical situations. | |||
| The return value 0 is reserved and indicates that an ID for that URI | |||
| could not be created for whatever reason. Extensions MAY define more | |||
| precisely what this means in a certain context, but in general plugins | |||
| @@ -86,7 +85,6 @@ typedef struct { | |||
| uint32_t (*uri_to_id)(LV2_URI_Map_Callback_Data callback_data, | |||
| const char* map, | |||
| const char* uri); | |||
| } LV2_URI_Map_Feature; | |||
| #endif /* LV2_URI_MAP_H */ | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| Copyright 2008-2012 David Robillard <http://drobilla.net> | |||
| Copyright 2011 Gabriel M. Beddingfield <gabrbedd@gmail.com> | |||
| Copyright 2008-2011 David Robillard <http://drobilla.net> | |||
| Permission to use, copy, modify, and/or distribute this software for any | |||
| purpose with or without fee is hereby granted, provided that the above | |||
| @@ -16,7 +16,7 @@ | |||
| */ | |||
| /** | |||
| @file | |||
| @file urid.h | |||
| C header for the LV2 URID extension <http://lv2plug.in/ns/ext/urid> | |||
| */ | |||
| @@ -51,9 +51,9 @@ typedef void* LV2_URID_Unmap_Handle; | |||
| typedef uint32_t LV2_URID; | |||
| /** | |||
| URI Map (http://lv2plug.in/ns/ext/urid#map). | |||
| URID Map Feature (LV2_URID__map) | |||
| */ | |||
| typedef struct { | |||
| typedef struct _LV2_URID_Map { | |||
| /** | |||
| Opaque pointer to host data. | |||
| @@ -88,9 +88,9 @@ typedef struct { | |||
| } LV2_URID_Map; | |||
| /** | |||
| URI Unmap (http://lv2plug.in/ns/ext/urid#unmap). | |||
| URI Unmap Feature (LV2_URID__unmap) | |||
| */ | |||
| typedef struct { | |||
| typedef struct _LV2_URID_Unmap { | |||
| /** | |||
| Opaque pointer to host data. | |||
| @@ -102,11 +102,11 @@ typedef struct { | |||
| /** | |||
| Get the URI for a previously mapped numeric ID. | |||
| Returns NULL if @c urid is not yet mapped. Otherwise, the corresponding | |||
| Returns NULL if @p urid is not yet mapped. Otherwise, the corresponding | |||
| URI is returned in a canonical form. This MAY not be the exact same | |||
| string that was originally passed to LV2_URID_Map::map(), but it MUST be | |||
| an identical URI according to the URI syntax specification (RFC3986). A | |||
| non-NULL return for a given @c urid will always be the same for the life | |||
| non-NULL return for a given @p urid will always be the same for the life | |||
| of the plugin. Plugins that intend to perform string comparison on | |||
| unmapped URIs SHOULD first canonicalise URI strings with a call to | |||
| map_uri() followed by a call to unmap_uri(). | |||
| @@ -28,10 +28,12 @@ | |||
| #include "lv2/event.h" | |||
| #include "lv2/event-helpers.h" | |||
| #include "lv2/instance-access.h" | |||
| #include "lv2/midi.h" | |||
| #include "lv2/state.h" | |||
| #include "lv2/time.h" | |||
| #include "lv2/ui.h" | |||
| #include "lv2/uri-map.h" | |||
| #include "lv2/urid.h" | |||
| #include "lv2/ui.h" | |||
| #include "lv2/lv2-miditype.h" | |||
| #include "lv2/lv2-midifunctions.h" | |||