ll-plugins

This extension is written for revision 2 of the LV2 specification and is NOT compatible with revisions 3 and later. Do not implement this extension in new plugins or hosts, and do not expect it to work in old ones. It is only available here for archaeological purposes.

This extension adds a way to write custom UIs for plugins. Each UI will consist of a shared object file containing the implementation and some data in the plugin's RDF files, much like the plugins themselves. The details are in this header file.

Additional extensions

The UI extension itself is just a generic framework for UIs - each UI needs to have a RDF type (specified by an URI) that defines how the host should handle it. Also, UIs, just like plugins, allow for required or optional Features to be listed in their RDF data that a host may choose to implement or not implement. Some Features are listed in the header linked above, but anyone can specify their own. Below are some additional extensions that are not officially part of the UI extension itself but may be useful to implement on top of it.

UI types

http://lv2plug.in/ns/extensions/ui#GtkUI

specifies an UI type where the LV2_Widget type is a pointer to a Gtk+ 2.0 compatible GtkWidget, and the host guarantees that the Gtk+ library has been initialised and the Glib main loop is running before an UI of this type is instantiated.

Features

http://lv2plug.in/ns/extensions/ui#ext_presets

specifies a Feature that adds functions to the UI and host that allow the UI to list any available presets that the host has for the plugin. Details are in this header file. Note that this extension does not say anything at all about how the host stores the presets or what the presets do, just how the host and UI can talk about them. This may be useful e.g. for a synth plugin UI that is running in a "stand alone" host that only displays a single window containing nothing but the UI widget - the UI can then present the available presets in a list box and let the user choose among them.

http://lv2plug.in/ns/extensions/ui#Events

specifies a Feature that defines how to send buffers of events between the GUI and the plugin (via the host). This is a Transfer Mechanism Feature (see lv2_ui.h). The rules are as follows: