LV2  1.0.13
Data Fields
LV2UI_Descriptor Struct Reference

The implementation of a UI. More...

Data Fields

const char * URI
 The URI for this UI (not for the plugin it controls). More...
 
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)
 Create a new UI object and return a handle to it. More...
 
void(* cleanup )(LV2UI_Handle ui)
 Destroy the UI object and the associated widget. More...
 
void(* port_event )(LV2UI_Handle ui, uint32_t port_index, uint32_t buffer_size, uint32_t format, const void *buffer)
 Tell the UI that something interesting has happened at a plugin port. More...
 
const void *(* extension_data )(const char *uri)
 Return a data structure associated with an extension URI, for example a struct containing additional function pointers. More...
 

Detailed Description

The implementation of a UI.

A pointer to an object of this type is returned by the lv2ui_descriptor() function.

Field Documentation

const char* LV2UI_Descriptor::URI

The URI for this UI (not for the plugin it controls).

LV2UI_Handle(* LV2UI_Descriptor::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)

Create a new UI object and return a handle to it.

This function works similarly to the instantiate() member in LV2_Descriptor.

Parameters
descriptorThe descriptor for the UI that you want to instantiate.
plugin_uriThe URI of the plugin that this UI will control.
bundle_pathThe path to the bundle containing the RDF data file that references this shared object file, including the trailing '/'.
write_functionA function provided by the host that the UI can use to send data to the plugin's input ports.
controllerA handle for the plugin instance that should be passed as the first parameter of write_function.
widgetA 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.
featuresAn 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.
void(* LV2UI_Descriptor::cleanup)(LV2UI_Handle ui)

Destroy the UI object and the associated widget.

The host must not try to access the widget after calling this function.

void(* LV2UI_Descriptor::port_event)(LV2UI_Handle ui, uint32_t port_index, uint32_t buffer_size, uint32_t format, const void *buffer)

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 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), buffer_size should be 4, the buffer should contain a single IEEE-754 float, and 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 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.

const void*(* LV2UI_Descriptor::extension_data)(const char *uri)

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.


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