LV2
1.0.13
|
The implementation of a UI. More...
Data Fields | |
const char * | URI |
The URI for this UI (not for the plugin it controls). | |
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. | |
void(* | cleanup )(LV2UI_Handle ui) |
Destroy the UI object and the associated widget. | |
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. | |
const void *(* | extension_data )(const char *uri) |
Return a data structure associated with an extension URI, for example a struct containing additional function pointers. | |
The implementation of a UI.
A pointer to an object of this type is returned by the lv2ui_descriptor() function.
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.
descriptor | The descriptor for the UI that you want to instantiate. |
plugin_uri | The URI of the plugin that this UI will control. |
bundle_path | The path to the bundle containing the RDF data file that references this shared object file, including the trailing '/'. |
write_function | A function provided by the host that the UI can use to send data to the plugin's input ports. |
controller | A handle for the plugin instance that should be passed as the first parameter of write_function . |
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. |
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. |
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.