LV2
1.0.13
|
C header for the LV2 UI extension http://lv2plug.in/ns/extensions/ui. More...
Data Structures | |
struct | LV2UI_Descriptor |
The implementation of a UI. More... | |
struct | LV2UI_Resize |
UI Resize Feature (LV2_UI__resize) More... | |
struct | LV2UI_Port_Map |
Port Map Feature (LV2_UI__portMap). More... | |
struct | LV2UI_Port_Subscribe |
Port subscription feature (LV2_UI__portSubscribe);. More... | |
struct | LV2UI_Touch |
A feature to notify the host the user has grabbed a UI control. More... | |
struct | LV2UI_Peak_Data |
Peak data for a slice of time, the update format for ui:peakProtocol. More... | |
Typedefs | |
typedef void * | LV2UI_Widget |
A pointer to some widget or other type of UI handle. | |
typedef void * | LV2UI_Handle |
A pointer to an instance of a UI. | |
typedef void * | LV2UI_Controller |
A pointer to a controller provided by the host. | |
typedef void * | LV2UI_Feature_Handle |
A pointer to opaque data for a feature. | |
typedef void(* | LV2UI_Write_Function )(LV2UI_Controller controller, uint32_t port_index, uint32_t buffer_size, uint32_t port_protocol, const void *buffer) |
The type of the host-provided function that the UI can use to send data to a plugin's input ports. | |
typedef const LV2UI_Descriptor *(* | LV2UI_DescriptorFunction )(uint32_t index) |
The type of the lv2ui_descriptor() function. | |
Functions | |
LV2_SYMBOL_EXPORT const LV2UI_Descriptor * | lv2ui_descriptor (uint32_t index) |
A plugin UI programmer must include a function called "lv2ui_descriptor" with the following function prototype within the shared object file. | |
C header for the LV2 UI extension http://lv2plug.in/ns/extensions/ui.
#define LV2_UI_URI "http://lv2plug.in/ns/extensions/ui" |
#define LV2_UI_PREFIX LV2_UI_URI "#" |
#define LV2_UI__CocoaUI LV2_UI_PREFIX "CocoaUI" |
#define LV2_UI__Gtk3UI LV2_UI_PREFIX "Gtk3UI" |
#define LV2_UI__GtkUI LV2_UI_PREFIX "GtkUI" |
#define LV2_UI__PortNotification LV2_UI_PREFIX "PortNotification" |
#define LV2_UI__Qt4UI LV2_UI_PREFIX "Qt4UI" |
#define LV2_UI__UI LV2_UI_PREFIX "UI" |
#define LV2_UI__WindowsUI LV2_UI_PREFIX "WindowsUI" |
#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" |
#define LV2_UI__parent LV2_UI_PREFIX "parent" |
#define LV2_UI__plugin LV2_UI_PREFIX "plugin" |
#define LV2_UI__portIndex LV2_UI_PREFIX "portIndex" |
#define LV2_UI__portMap LV2_UI_PREFIX "portMap" |
#define LV2_UI__portNotification LV2_UI_PREFIX "portNotification" |
#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" |
#define LV2UI_INVALID_PORT_INDEX ((uint32_t)-1) |
The index returned by LV2_UI_Port_Port::port_index() for unknown ports.
typedef void* LV2UI_Widget |
A pointer to some widget or other type of UI handle.
The actual type is defined by the type of the UI.
typedef void* LV2UI_Handle |
A pointer to an instance of a UI.
It is valid to compare this to NULL (0 for C++) but otherwise the host MUST not attempt to interpret it. The UI plugin may use it to reference internal instance data.
typedef void* LV2UI_Controller |
A pointer to a controller provided by the host.
It is valid to compare this to NULL (0 for C++) but otherwise the UI plugin MUST NOT attempt to interpret it. The host may use it to reference internal instance data.
typedef void* LV2UI_Feature_Handle |
A pointer to opaque data for a feature.
typedef void(* LV2UI_Write_Function)(LV2UI_Controller controller, uint32_t port_index, uint32_t buffer_size, uint32_t port_protocol, const void *buffer) |
The type of the host-provided function that the UI can use to send data to a plugin's input ports.
The buffer
parameter must point to a block of data, buffer_size
bytes large. The format of this data and how the host should use it is defined by the port_protocol
. This buffer is owned by the UI and is only valid for the duration of this call.
The 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, buffer
must point to a single float value, and buffer_size
must be sizeof(float).
The UI SHOULD NOT use a PortProtocol not supported by the host (i.e. one not passed by the host as a feature), but the host MUST gracefully ignore any port_protocol it does not understand.
typedef const LV2UI_Descriptor*(* LV2UI_DescriptorFunction)(uint32_t index) |
The type of the lv2ui_descriptor() function.
LV2_SYMBOL_EXPORT const LV2UI_Descriptor* lv2ui_descriptor | ( | uint32_t | index | ) |
A plugin UI programmer must include a function called "lv2ui_descriptor" with the following function prototype within the shared object file.
This function will have C-style linkage (if you are using C++ this is taken care of by the 'extern "C"' clause at the top of the file). This function is loaded from the library by the UI host and called to get a LV2UI_Descriptor for the wanted plugin.
Just like lv2_descriptor(), this function takes an index parameter. The index should only be used for enumeration and not as any sort of ID number - the host should just iterate from 0 and upwards until the function returns NULL or a descriptor with an URI matching the one the host is looking for.