This document describes "LV2 UI" (http://lv2plug.in/ns/extensions/ui), an LV2 related specification. Comments are welcome, please direct discussion to devel@lists.lv2plug.in.
See also:
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .where <http://my.plugin> is the URI of the plugin, <http://my.pluginui> is the URI of the plugin UI and <myui.so> is the relative URI to the shared object file.
<http://my.plugin> ui:ui <http://my.pluginui> . <http://my.pluginui> a ui:GtkUI ; ui:binary <myui.so> .
<http://my.pluginui> ui:requiredFeature <http://my.feature> . <http://my.pluginui> ui:optionalFeature <http://my.feature> .These predicates have the same semantics as lv2:requiredFeature and lv2:optionalFeature - if a UI is declaring a feature as required, the host is NOT allowed to load it unless it supports that feature, and if it does support a feature (required or optional) it MUST pass that feature's URI and any additional data (specified by the meta-extension that defines the feature) in a LV2_Feature struct (as defined in lv2.h) to the UI's instantiate() function.
<http://my.pluginui> ui:residentSONames "libgtkmm-2.4.so.1", "libfoo.so.0"The host MUST then make sure that the shared libraries with the given ELF SO names are not unloaded when the plugin UI is, but stay loaded during the entire lifetime of the host process. On Linux this can be accomplished by calling dlopen() on the shared library file with that SO name and never calling a matching dlclose(). However, if a plugin UI requires the @c ui:makeSONameResident feature, it MUST ALWAYS be safe for the host to just never unload the shared object containing the UI implementation, i.e. act as if the UI required the @c ui:makeResident feature instead. Thus the host only needs to find the shared library files corresponding to the given SO names if it wants to save RAM by unloading the UI shared object file when it is no longer needed. The data pointer for the LV2_Feature for this feature should always be set to NULL.
Accept: application/x-turtle you will get the description in Turtle. Also supported: application/rdf+xml, application/json, text/plain