diff options
Diffstat (limited to 'lv2/ui')
-rw-r--r-- | lv2/ui/manifest.ttl | 9 | ||||
-rw-r--r-- | lv2/ui/meson.build | 40 | ||||
-rw-r--r-- | lv2/ui/ui.h | 543 | ||||
-rw-r--r-- | lv2/ui/ui.meta.ttl | 639 | ||||
-rw-r--r-- | lv2/ui/ui.ttl | 250 |
5 files changed, 0 insertions, 1481 deletions
diff --git a/lv2/ui/manifest.ttl b/lv2/ui/manifest.ttl deleted file mode 100644 index d3b12b5..0000000 --- a/lv2/ui/manifest.ttl +++ /dev/null @@ -1,9 +0,0 @@ -@prefix lv2: <http://lv2plug.in/ns/lv2core#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . - -<http://lv2plug.in/ns/extensions/ui> - a lv2:Specification ; - lv2:minorVersion 2 ; - lv2:microVersion 24 ; - rdfs:seeAlso <ui.ttl> . - diff --git a/lv2/ui/meson.build b/lv2/ui/meson.build deleted file mode 100644 index 3eb4223..0000000 --- a/lv2/ui/meson.build +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2022 David Robillard <d@drobilla.net> -# SPDX-License-Identifier: CC0-1.0 OR ISC - -name = 'ui' -path = 'ns' / 'extensions' / 'ui' - -ui_data = files( - 'ui.meta.ttl', - 'ui.ttl', - 'manifest.ttl', -) - -headers = files( - 'ui.h', -) - -# Install specification bundle -install_data(ui_data, install_dir: lv2dir / name + '.lv2') -install_headers(headers, subdir: 'lv2' / name) -if get_option('old_headers') - install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path) -endif - -# Build documentation -if build_docs - lv2_ui_docs = custom_target( - name + '.html', - command: lv2specgen_command_prefix + [ - '--docdir=../../html', - '--style-uri=../../aux/style.css', - '@INPUT@', - '@OUTPUT@', - ], - depends: doc_deps, - input: files('ui.ttl'), - install: true, - install_dir: lv2_docdir / 'ns' / 'extensions', - output: name + '.html', - ) -endif diff --git a/lv2/ui/ui.h b/lv2/ui/ui.h deleted file mode 100644 index fb41d90..0000000 --- a/lv2/ui/ui.h +++ /dev/null @@ -1,543 +0,0 @@ -/* - LV2 UI Extension - Copyright 2009-2016 David Robillard <d@drobilla.net> - Copyright 2006-2011 Lars Luthman <lars.luthman@gmail.com> - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#ifndef LV2_UI_H -#define LV2_UI_H - -/** - @defgroup ui User Interfaces - @ingroup lv2 - - User interfaces of any type for plugins. - - See <http://lv2plug.in/ns/extensions/ui> for details. - - @{ -*/ - -#include "lv2/core/lv2.h" -#include "lv2/urid/urid.h" - -#include <stdbool.h> -#include <stdint.h> - -// clang-format off - -#define LV2_UI_URI "http://lv2plug.in/ns/extensions/ui" ///< http://lv2plug.in/ns/extensions/ui -#define LV2_UI_PREFIX LV2_UI_URI "#" ///< http://lv2plug.in/ns/extensions/ui# - -#define LV2_UI__CocoaUI LV2_UI_PREFIX "CocoaUI" ///< http://lv2plug.in/ns/extensions/ui#CocoaUI -#define LV2_UI__Gtk3UI LV2_UI_PREFIX "Gtk3UI" ///< http://lv2plug.in/ns/extensions/ui#Gtk3UI -#define LV2_UI__GtkUI LV2_UI_PREFIX "GtkUI" ///< http://lv2plug.in/ns/extensions/ui#GtkUI -#define LV2_UI__PortNotification LV2_UI_PREFIX "PortNotification" ///< http://lv2plug.in/ns/extensions/ui#PortNotification -#define LV2_UI__PortProtocol LV2_UI_PREFIX "PortProtocol" ///< http://lv2plug.in/ns/extensions/ui#PortProtocol -#define LV2_UI__Qt4UI LV2_UI_PREFIX "Qt4UI" ///< http://lv2plug.in/ns/extensions/ui#Qt4UI -#define LV2_UI__Qt5UI LV2_UI_PREFIX "Qt5UI" ///< http://lv2plug.in/ns/extensions/ui#Qt5UI -#define LV2_UI__UI LV2_UI_PREFIX "UI" ///< http://lv2plug.in/ns/extensions/ui#UI -#define LV2_UI__WindowsUI LV2_UI_PREFIX "WindowsUI" ///< http://lv2plug.in/ns/extensions/ui#WindowsUI -#define LV2_UI__X11UI LV2_UI_PREFIX "X11UI" ///< http://lv2plug.in/ns/extensions/ui#X11UI -#define LV2_UI__binary LV2_UI_PREFIX "binary" ///< http://lv2plug.in/ns/extensions/ui#binary -#define LV2_UI__fixedSize LV2_UI_PREFIX "fixedSize" ///< http://lv2plug.in/ns/extensions/ui#fixedSize -#define LV2_UI__idleInterface LV2_UI_PREFIX "idleInterface" ///< http://lv2plug.in/ns/extensions/ui#idleInterface -#define LV2_UI__noUserResize LV2_UI_PREFIX "noUserResize" ///< http://lv2plug.in/ns/extensions/ui#noUserResize -#define LV2_UI__notifyType LV2_UI_PREFIX "notifyType" ///< http://lv2plug.in/ns/extensions/ui#notifyType -#define LV2_UI__parent LV2_UI_PREFIX "parent" ///< http://lv2plug.in/ns/extensions/ui#parent -#define LV2_UI__plugin LV2_UI_PREFIX "plugin" ///< http://lv2plug.in/ns/extensions/ui#plugin -#define LV2_UI__portIndex LV2_UI_PREFIX "portIndex" ///< http://lv2plug.in/ns/extensions/ui#portIndex -#define LV2_UI__portMap LV2_UI_PREFIX "portMap" ///< http://lv2plug.in/ns/extensions/ui#portMap -#define LV2_UI__portNotification LV2_UI_PREFIX "portNotification" ///< http://lv2plug.in/ns/extensions/ui#portNotification -#define LV2_UI__portSubscribe LV2_UI_PREFIX "portSubscribe" ///< http://lv2plug.in/ns/extensions/ui#portSubscribe -#define LV2_UI__protocol LV2_UI_PREFIX "protocol" ///< http://lv2plug.in/ns/extensions/ui#protocol -#define LV2_UI__requestValue LV2_UI_PREFIX "requestValue" ///< http://lv2plug.in/ns/extensions/ui#requestValue -#define LV2_UI__floatProtocol LV2_UI_PREFIX "floatProtocol" ///< http://lv2plug.in/ns/extensions/ui#floatProtocol -#define LV2_UI__peakProtocol LV2_UI_PREFIX "peakProtocol" ///< http://lv2plug.in/ns/extensions/ui#peakProtocol -#define LV2_UI__resize LV2_UI_PREFIX "resize" ///< http://lv2plug.in/ns/extensions/ui#resize -#define LV2_UI__showInterface LV2_UI_PREFIX "showInterface" ///< http://lv2plug.in/ns/extensions/ui#showInterface -#define LV2_UI__touch LV2_UI_PREFIX "touch" ///< http://lv2plug.in/ns/extensions/ui#touch -#define LV2_UI__ui LV2_UI_PREFIX "ui" ///< http://lv2plug.in/ns/extensions/ui#ui -#define LV2_UI__updateRate LV2_UI_PREFIX "updateRate" ///< http://lv2plug.in/ns/extensions/ui#updateRate -#define LV2_UI__windowTitle LV2_UI_PREFIX "windowTitle" ///< http://lv2plug.in/ns/extensions/ui#windowTitle -#define LV2_UI__scaleFactor LV2_UI_PREFIX "scaleFactor" ///< http://lv2plug.in/ns/extensions/ui#scaleFactor -#define LV2_UI__foregroundColor LV2_UI_PREFIX "foregroundColor" ///< http://lv2plug.in/ns/extensions/ui#foregroundColor -#define LV2_UI__backgroundColor LV2_UI_PREFIX "backgroundColor" ///< http://lv2plug.in/ns/extensions/ui#backgroundColor - -// clang-format on - -/** - The index returned by LV2UI_Port_Map::port_index() for unknown ports. -*/ -#define LV2UI_INVALID_PORT_INDEX ((uint32_t)-1) - -#ifdef __cplusplus -extern "C" { -#endif - -/** - 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_Widget; - -/** - A pointer to UI instance internals. - - The host may compare this to NULL, but otherwise MUST NOT interpret it. -*/ -typedef void* LV2UI_Handle; - -/** - A pointer to a controller provided by the host. - - The UI may compare this to NULL, but otherwise MUST NOT interpret it. -*/ -typedef void* LV2UI_Controller; - -/** - A pointer to opaque data for a feature. -*/ -typedef void* LV2UI_Feature_Handle; - -/** - A host-provided function that sends data to a plugin's input ports. - - @param controller The opaque controller pointer passed to - LV2UI_Descriptor::instantiate(). - - @param port_index Index of the port to update. - - @param buffer Buffer containing `buffer_size` bytes of data. - - @param buffer_size Size of `buffer` in bytes. - - @param port_protocol Either 0 or the URID for a ui:PortProtocol. If 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 protocol not supported by the - host, but the host MUST gracefully ignore any protocol it does not - understand. -*/ -typedef void (*LV2UI_Write_Function)(LV2UI_Controller controller, - uint32_t port_index, - uint32_t buffer_size, - uint32_t port_protocol, - const void* buffer); - -/** - A plugin UI. - - A pointer to an object of this type is returned by the lv2ui_descriptor() - function. -*/ -typedef struct LV2UI_Descriptor { - /** - The URI for this UI (not for the plugin it controls). - */ - const char* URI; - - /** - Create a new UI and return a handle to it. This function works - similarly to LV2_Descriptor::instantiate(). - - @param descriptor The descriptor for the UI to instantiate. - - @param plugin_uri The URI of the plugin that this UI will control. - - @param bundle_path The path to the bundle containing this UI, including - the trailing directory separator. - - @param write_function A function that the UI can use to send data to the - plugin's input ports. - - @param controller A handle for the UI instance to be passed as the - first parameter of UI methods. - - @param widget (output) widget pointer. The UI points this at its main - widget, which has the type defined by the UI type in the data file. - - @param features An array of LV2_Feature pointers. The host must pass - all feature URIs that it and the UI supports and any additional data, as - in LV2_Descriptor::instantiate(). Note that UI features and plugin - features are not necessarily the same. - - */ - 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); - - /** - Destroy the UI. The host must not try to access the widget after - calling this function. - */ - void (*cleanup)(LV2UI_Handle ui); - - /** - Tell the UI that something interesting has happened at a plugin port. - - What is "interesting" and how it is written to `buffer` is defined by - `format`, which has the same meaning as in LV2UI_Write_Function(). - Format 0 is a special case for lv2:ControlPort, where this function - should be called when the port value changes (but not necessarily for - every change), `buffer_size` must be sizeof(float), and `buffer` - points to a single IEEE-754 float. - - By default, the host should only call this function for lv2:ControlPort - inputs. However, the UI can request updates for other ports statically - with ui:portNotification or dynamically with ui:portSubscribe. - - The UI MUST NOT retain any reference to `buffer` after this function - returns, it is only valid for the duration of the call. - - This member may be NULL if the UI is not interested in any port events. - */ - void (*port_event)(LV2UI_Handle ui, - uint32_t port_index, - uint32_t buffer_size, - uint32_t format, - const void* buffer); - - /** - Return a data structure associated with an extension URI, typically an - interface struct with additional function pointers - - This member may be set to NULL if the UI is not interested in supporting - any extensions. This is similar to LV2_Descriptor::extension_data(). - - */ - const void* (*extension_data)(const char* uri); -} LV2UI_Descriptor; - -/** - Feature/interface for resizable UIs (LV2_UI__resize). - - This structure is used in two ways: as a feature passed by the host via - LV2UI_Descriptor::instantiate(), or as an interface provided by a UI via - LV2UI_Descriptor::extension_data()). -*/ -typedef struct { - /** - Pointer to opaque data which must be passed to ui_resize(). - */ - LV2UI_Feature_Handle handle; - - /** - Request/advertise a size change. - - When provided by the host, the UI may call this function to inform the - host about the size of the UI. - - When provided by the UI, the host may call this function to notify the - UI that it should change its size accordingly. In this case, the host - must pass the LV2UI_Handle to provide access to the UI instance. - - @return 0 on success. - */ - int (*ui_resize)(LV2UI_Feature_Handle handle, int width, int height); -} LV2UI_Resize; - -/** - Feature to map port symbols to UIs. - - This can be used by the UI to get the index for a port with the given - symbol. This makes it possible to implement and distribute a UI separately - from the plugin (since symbol, unlike index, is a stable port identifier). -*/ -typedef struct { - /** - Pointer to opaque data which must be passed to port_index(). - */ - LV2UI_Feature_Handle handle; - - /** - Get the index for the port with the given `symbol`. - - @return The index of the port, or LV2UI_INVALID_PORT_INDEX if no such - port is found. - */ - uint32_t (*port_index)(LV2UI_Feature_Handle handle, const char* symbol); -} LV2UI_Port_Map; - -/** - Feature to subscribe to port updates (LV2_UI__portSubscribe). -*/ -typedef struct { - /** - Pointer to opaque data which must be passed to subscribe() and - unsubscribe(). - */ - LV2UI_Feature_Handle handle; - - /** - Subscribe to updates for a port. - - This means that the host will call the UI's port_event() function when - the port value changes (as defined by protocol). - - Calling this function with the same `port_index` and `port_protocol` - as an already active subscription has no effect. - - @param handle The handle field of this struct. - @param port_index The index of the port. - @param port_protocol The URID of the ui:PortProtocol. - @param features Features for this subscription. - @return 0 on success. - */ - uint32_t (*subscribe)(LV2UI_Feature_Handle handle, - uint32_t port_index, - uint32_t port_protocol, - const LV2_Feature* const* features); - - /** - Unsubscribe from updates for a port. - - This means that the host will cease calling calling port_event() when - the port value changes. - - Calling this function with a `port_index` and `port_protocol` that - does not refer to an active port subscription has no effect. - - @param handle The handle field of this struct. - @param port_index The index of the port. - @param port_protocol The URID of the ui:PortProtocol. - @param features Features for this subscription. - @return 0 on success. - */ - uint32_t (*unsubscribe)(LV2UI_Feature_Handle handle, - uint32_t port_index, - uint32_t port_protocol, - const LV2_Feature* const* features); -} LV2UI_Port_Subscribe; - -/** - A feature to notify the host that the user has grabbed a UI control. -*/ -typedef struct { - /** - Pointer to opaque data which must be passed to touch(). - */ - LV2UI_Feature_Handle handle; - - /** - Notify the host that a control has been grabbed or released. - - The host should cease automating the port or otherwise manipulating the - port value until the control has been ungrabbed. - - @param handle The handle field of this struct. - @param port_index The index of the port associated with the control. - @param grabbed If true, the control has been grabbed, otherwise the - control has been released. - */ - void (*touch)(LV2UI_Feature_Handle handle, uint32_t port_index, bool grabbed); -} LV2UI_Touch; - -/** - A status code for LV2UI_Request_Value::request(). -*/ -typedef enum { - /** - Completed successfully. - - The host will set the parameter later if the user chooses a new value. - */ - LV2UI_REQUEST_VALUE_SUCCESS, - - /** - Parameter already being requested. - - The host is already requesting a parameter from the user (for example, a - dialog is visible), or the UI is otherwise busy and can not make this - request. - */ - LV2UI_REQUEST_VALUE_BUSY, - - /** - Unknown parameter. - - The host is not aware of this parameter, and is not able to set a new - value for it. - */ - LV2UI_REQUEST_VALUE_ERR_UNKNOWN, - - /** - Unsupported parameter. - - The host knows about this parameter, but does not support requesting a - new value for it from the user. This is likely because the host does - not have UI support for choosing a value with the appropriate type. - */ - LV2UI_REQUEST_VALUE_ERR_UNSUPPORTED -} LV2UI_Request_Value_Status; - -/** - A feature to request a new parameter value from the host. -*/ -typedef struct { - /** - Pointer to opaque data which must be passed to request(). - */ - LV2UI_Feature_Handle handle; - - /** - Request a value for a parameter from the host. - - This is mainly used by UIs to request values for complex parameters that - don't change often, such as file paths, but it may be used to request - any parameter value. - - This function returns immediately, and the return value indicates - whether the host can fulfil the request. The host may notify the - plugin about the new parameter value, for example when a file is - selected by the user, via the usual mechanism. Typically, the host will - send a message to the plugin that sets the new parameter value, and the - plugin will notify the UI via a message as usual for any other parameter - change. - - To provide an appropriate UI, the host can determine details about the - parameter from the plugin data as usual. The additional parameters of - this function provide support for more advanced use cases, but in the - simple common case, the plugin will simply pass the key of the desired - parameter and zero for everything else. - - @param handle The handle field of this struct. - - @param key The URID of the parameter. - - @param type The optional type of the value to request. This can be used - to request a specific value type for parameters that support several. - If non-zero, it must be the URID of an instance of rdfs:Class or - rdfs:Datatype. - - @param features Additional features for this request, or NULL. - - @return A status code which is 0 on success. - */ - LV2UI_Request_Value_Status (*request)(LV2UI_Feature_Handle handle, - LV2_URID key, - LV2_URID type, - const LV2_Feature* const* features); - -} LV2UI_Request_Value; - -/** - UI Idle Interface (LV2_UI__idleInterface) - - UIs can provide this interface to have an idle() callback called by the host - rapidly to update the UI. -*/ -typedef struct { - /** - Run a single iteration of the UI's idle loop. - - This will be called rapidly in the UI thread at a rate appropriate - for a toolkit main loop. There are no precise timing guarantees, but - the host should attempt to call idle() at a high enough rate for smooth - animation, at least 30Hz. - - @return non-zero if the UI has been closed, in which case the host - should stop calling idle(), and can either completely destroy the UI, or - re-show it and resume calling idle(). - */ - int (*idle)(LV2UI_Handle ui); -} LV2UI_Idle_Interface; - -/** - UI Show Interface (LV2_UI__showInterface) - - UIs can provide this interface to show and hide a window, which allows them - to function in hosts unable to embed their widget. This allows any UI to - provide a fallback for embedding that works in any host. - - If used: - - The host MUST use LV2UI_Idle_Interface to drive the UI. - - The UI MUST return non-zero from LV2UI_Idle_Interface::idle() when it has - been closed. - - If idle() returns non-zero, the host MUST call hide() and stop calling - idle(). It MAY later call show() then resume calling idle(). -*/ -typedef struct { - /** - Show a window for this UI. - - The window title MAY have been passed by the host to - LV2UI_Descriptor::instantiate() as an LV2_Options_Option with key - LV2_UI__windowTitle. - - @return 0 on success, or anything else to stop being called. - */ - int (*show)(LV2UI_Handle ui); - - /** - Hide the window for this UI. - - @return 0 on success, or anything else to stop being called. - */ - int (*hide)(LV2UI_Handle ui); -} LV2UI_Show_Interface; - -/** - Peak data for a slice of time, the update format for ui:peakProtocol. -*/ -typedef struct { - /** - The start of the measurement period. This is just a running counter - that is only meaningful in comparison to previous values and must not be - interpreted as an absolute time. - */ - uint32_t period_start; - - /** - The size of the measurement period, in the same units as period_start. - */ - uint32_t period_size; - - /** - The peak value for the measurement period. This should be the maximal - value for abs(sample) over all the samples in the period. - */ - float peak; -} LV2UI_Peak_Data; - -/** - Prototype for UI accessor function. - - This is the entry point to a UI library, which works in the same way as - lv2_descriptor() but for UIs rather than plugins. -*/ -LV2_SYMBOL_EXPORT -const LV2UI_Descriptor* -lv2ui_descriptor(uint32_t index); - -/** - The type of the lv2ui_descriptor() function. -*/ -typedef const LV2UI_Descriptor* (*LV2UI_DescriptorFunction)(uint32_t index); - -#ifdef __cplusplus -} -#endif - -/** - @} -*/ - -#endif /* LV2_UI_H */ diff --git a/lv2/ui/ui.meta.ttl b/lv2/ui/ui.meta.ttl deleted file mode 100644 index 95336bf..0000000 --- a/lv2/ui/ui.meta.ttl +++ /dev/null @@ -1,639 +0,0 @@ -@prefix dcs: <http://ontologi.es/doap-changeset#> . -@prefix doap: <http://usefulinc.com/ns/doap#> . -@prefix foaf: <http://xmlns.com/foaf/0.1/> . -@prefix lv2: <http://lv2plug.in/ns/lv2core#> . -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix ui: <http://lv2plug.in/ns/extensions/ui#> . - -<http://lv2plug.in/ns/extensions/ui> - a doap:Project ; - doap:license <http://opensource.org/licenses/isc> ; - doap:name "LV2 UI" ; - doap:shortdesc "User interfaces for LV2 plugins." ; - doap:created "2006-00-00" ; - doap:developer <http://lv2plug.in/ns/meta#larsl> ; - doap:maintainer <http://drobilla.net/drobilla#me> ; - doap:release [ - doap:revision "2.24" ; - doap:created "2022-05-26" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Fix spelling errors." - ] , [ - rdfs:label "Deprecate ui:resize." - ] - ] - ] , [ - doap:revision "2.22" ; - doap:created "2020-04-26" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Add ui:requestValue feature." - ] , [ - rdfs:label "Add ui:scaleFactor, ui:foregroundColor, and ui:backgroundColor properties." - ] , [ - rdfs:label "Deprecate ui:binary." - ] - ] - ] , [ - doap:revision "2.20" ; - doap:created "2015-07-25" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Improve documentation." - ] , [ - rdfs:label "Add missing property labels." - ] - ] - ] , [ - doap:revision "2.18" ; - doap:created "2014-08-08" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Add show interface so UIs can gracefully degrade to separate windows if hosts can not use their widget directly." - ] , [ - rdfs:label "Fix identifier typos in documentation." - ] - ] - ] , [ - doap:revision "2.16" ; - doap:created "2014-01-04" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.8.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Fix LV2_UI_INVALID_PORT_INDEX identifier in documentation." - ] - ] - ] , [ - doap:revision "2.14" ; - doap:created "2013-03-18" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.6.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Add idle interface so native UIs and foreign toolkits can drive their event loops." - ] , [ - rdfs:label "Add ui:updateRate property." - ] - ] - ] , [ - doap:revision "2.12" ; - doap:created "2012-12-01" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Fix incorrect linker flag in ui:makeSONameResident documentation." - ] - ] - ] , [ - doap:revision "2.10" ; - doap:created "2012-10-14" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Add types for WindowsUI, CocoaUI, and Gtk3UI." - ] , [ - rdfs:label "Use consistent label style." - ] , [ - rdfs:label "Add missing LV2_SYMBOL_EXPORT declaration for lv2ui_descriptor prototype." - ] - ] - ] , [ - doap:revision "2.8" ; - doap:created "2012-04-17" ; - doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Add ui:parent and ui:resize." - ] , [ - rdfs:label "Add support for referring to ports by symbol." - ] , [ - rdfs:label "Add ui:portMap for accessing ports by symbol, allowing for UIs to be distributed separately from plugins." - ] , [ - rdfs:label "Add port protocols and a dynamic notification subscription mechanism, for more flexible communication, and audio port metering without control port kludges." - ] , [ - rdfs:label "Add touch feature to notify the host that the user has grabbed a control." - ] , [ - rdfs:label "Merge with unified LV2 package." - ] - ] - ] , [ - doap:revision "2.4" ; - doap:created "2011-11-21" ; - doap:file-release <http://lv2plug.in/spec/lv2-ui-2.4.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Deprecate ui:makeSONameResident." - ] , [ - rdfs:label "Add Qt4 and X11 widget types." - ] , [ - rdfs:label "Install header to URI-based system path." - ] , [ - rdfs:label "Add pkg-config file." - ] , [ - rdfs:label "Make ui.ttl a valid OWL 2 DL ontology." - ] - ] - ] , [ - doap:revision "2.2" ; - doap:created "2011-05-26" ; - doap:file-release <http://lv2plug.in/spec/lv2-ui-2.2.tar.bz2> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Add build system (for installation)." - ] , [ - rdfs:label "Convert documentation to HTML and use lv2:documentation." - ] , [ - rdfs:label "Use lv2:Specification to be discovered as an extension." - ] - ] - ] , [ - doap:revision "2.0" ; - doap:created "2010-10-06" ; - doap:file-release <http://lv2plug.in/spec/lv2-ui-2.0.tar.gz> ; - dcs:blame <http://drobilla.net/drobilla#me> ; - dcs:changeset [ - dcs:item [ - rdfs:label "Initial release." - ] - ] - ] ; - lv2:documentation """ - -This extension makes it possible to create user interfaces for LV2 plugins. - -UIs are implemented as an LV2UI_Descriptor loaded via lv2ui_descriptor() in a -shared library, and are distributed in bundles just like plugins. - -UIs are associated with plugins in data: - - :::turtle - @prefix ui: <http://lv2plug.in/ns/extensions/ui#> . - - <http://my.plugin> ui:ui <http://my.pluginui> . - <http://my.pluginui> a ui:X11UI ; - lv2:binary <myui.so> . - -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. - -While it is possible to have the plugin UI and the plugin in the same shared -object file, it is a good idea to keep them separate so that hosts can avoid -loading the UI code if they do not need it. A UI MUST specify its class in the -RDF data (`ui:X11UI` in the above example). The class defines what type the UI -is, for example what graphics toolkit it uses. Any type of UI class can be -defined separately from this extension. - -It is possible to have multiple UIs for the same plugin, or to have the UI for -a plugin in a different bundle from the actual plugin. This allows plugin UIs -to be written independently. - -Note that the process that loads the shared object file containing the UI code -and the process that loads the shared object file containing the actual plugin -implementation are not necessarily the same process (and not even necessarily -on the same machine). This means that plugin and UI code MUST NOT use -singletons and global variables and expect them to refer to the same objects in -the UI and the actual plugin. The function callback interface defined in this -header is the only method of communication between UIs and plugin instances -(extensions may define more, though this is discouraged unless absolutely -necessary since the significant benefits of network transparency and -serialisability are lost). - -UI functionality may be extended via features, much like plugins: - - :::turtle - <http://my.pluginui> lv2:requiredFeature <http://my.feature> . - <http://my.pluginui> lv2:optionalFeature <http://my.feature> . - -The rules for a UI with a required or optional feature are identical to those -of lv2:Plugin instances: if a UI declares a feature as required, the host is -NOT allowed to load it unless it supports that feature; and if it does support -a feature, it MUST pass an appropriate LV2_Feature struct to the UI's -instantiate() method. This extension defines several standard features for -common functionality. - -UIs written to this specification do not need to be thread-safe. All functions -may only be called in the <q>UI thread</q>. There is only one UI thread (for -toolkits, the one the UI main loop runs in). There is no requirement that a -<q>UI</q> actually be a graphical widget. - -Note that UIs are completely separate from plugins. From the plugin's -perspective, control from a UI is indistinguishable from any other control, as -it all occurs via ports. - -"""^^lv2:Markdown . - -ui:GtkUI - lv2:documentation """ - -The host must guarantee that the Gtk+ 2 library has been initialised and the -Glib main loop is running before the UI is instantiated. Note that this UI -type is not suitable for binary distribution since multiple versions of Gtk can -not be used in the same process. - -"""^^lv2:Markdown . - -ui:Gtk3UI - lv2:documentation """ - -The host must guarantee that the Gtk+ 3 library has been initialised and the -Glib main loop is running before the UI is instantiated. Note that this UI -type is not suitable for binary distribution since multiple versions of Gtk can -not be used in the same process. - -"""^^lv2:Markdown . - -ui:Qt4UI - lv2:documentation """ - -The host must guarantee that the Qt4 library has been initialised and the Qt4 -main loop is running before the UI is instantiated. Note that this UI type is -not suitable for binary distribution since multiple versions of Qt can not be -used in the same process. - -"""^^lv2:Markdown . - -ui:Qt5UI - lv2:documentation """ - -The host must guarantee that the Qt5 library has been initialised and the Qt5 -main loop is running before the UI is instantiated. Note that this UI type is -not suitable for binary distribution since multiple versions of Qt can not be -used in the same process. - -"""^^lv2:Markdown . - -ui:X11UI - lv2:documentation """ - -Note that the LV2UI_Widget for this type of UI is not a pointer, but should be -interpreted directly as an X11 `Window` ID. This is the native UI type on most -POSIX systems. - -"""^^lv2:Markdown . - -ui:WindowsUI - lv2:documentation """ - -Note that the LV2UI_Widget for this type of UI is not a pointer, but should be -interpreted directly as a `HWND`. This is the native UI type on Microsoft -Windows. - -"""^^lv2:Markdown . - -ui:CocoaUI - lv2:documentation """ - -This is the native UI type on Mac OS X. - -"""^^lv2:Markdown . - -ui:binary - lv2:documentation """ - -This property is redundant and deprecated: new UIs should use lv2:binary -instead, however hosts must still support ui:binary. - -"""^^lv2:Markdown . - -ui:makeSONameResident - lv2:documentation """ - -This feature was intended to support UIs that link against toolkit libraries -which may not be unloaded during the lifetime of the host. This is better -achieved by using the appropriate flags when linking the UI, for example `gcc --Wl,-z,nodelete`. - -"""^^lv2:Markdown . - -ui:noUserResize - lv2:documentation """ - -If a UI has this feature, it indicates that it does not make sense to let the -user resize the main widget, and the host should prevent that. This feature -may not make sense for all UI types. The data pointer for this feature should -always be set to NULL. - -"""^^lv2:Markdown . - -ui:fixedSize - lv2:documentation """ - -If a UI has this feature, it indicates the same thing as ui:noUserResize, and -additionally that the UI will not resize itself on its own. That is, the UI -will always remain the same size. This feature may not make sense for all UI -types. The data pointer for this feature should always be set to NULL. - -"""^^lv2:Markdown . - -ui:scaleFactor - lv2:documentation """ - -HiDPI (High Dots Per Inch) displays have a high resolution on a relatively -small form factor. Many systems use a scale factor to compensate for this, so -for example, a scale factor of 2 means things are drawn twice as large as -normal. - -Hosts can pass this as an option to UIs to communicate this information, so -that the UI can draw at an appropriate scale. - -"""^^lv2:Markdown . - -ui:backgroundColor - lv2:documentation """ - -The background color of the host's UI. The host can pass this as an option so -that UIs can integrate nicely with the host window around it. - -Hosts should pass this as an option to UIs with an integer RGBA32 color value. -If the value is a 32-bit integer, it is guaranteed to be in RGBA32 format, but -the UI must check the value type and not assume this, to allow for other types -of color in the future. - -"""^^lv2:Markdown . - -ui:foregroundColor - lv2:documentation """ - -The foreground color of the host's UI. The host can pass this as an option so -that UIs can integrate nicely with the host window around it. - -Hosts should pass this as an option to UIs with an integer RGBA32 color value. -If the value is a 32-bit integer, it is guaranteed to be in RGBA32 format, but -the UI must check the value type and not assume this, to allow for other types -of color in the future. - -"""^^lv2:Markdown . - -ui:parent - lv2:documentation """ - -This feature can be used to pass a parent that the UI should be a child of. -The format of data pointer of this feature is determined by the UI type, and is -generally the same type as the LV2UI_Widget that the UI would return. For -example, for a ui:X11UI, the parent should be a `Window`. This is particularly -useful for embedding, where the parent often must be known at construction time -for embedding to work correctly. - -UIs should not _require_ this feature unless it is necessary for them to work -at all, but hosts should provide it whenever possible. - -"""^^lv2:Markdown . - -ui:PortNotification - lv2:documentation """ - -This describes which ports the host must send notifications to the UI about. -The port must be specific either by index, using the ui:portIndex property, or -symbol, using the lv2:symbol property. Since port indices are not guaranteed -to be stable, using the symbol is recommended, and the inde MUST NOT be used -except by UIs that are shipped in the same bundle as the corresponding plugin. - -"""^^lv2:Markdown . - -ui:portNotification - lv2:documentation """ - -Specifies that a UI should receive notifications about changes to a particular -port's value via LV2UI_Descriptor::port_event(). - -For example: - - :::turtle - eg:ui - a ui:X11UI ; - ui:portNotification [ - ui:plugin eg:plugin ; - lv2:symbol "gain" ; - ui:protocol ui:floatProtocol - ] . - -"""^^lv2:Markdown . - -ui:notifyType - lv2:documentation """ - -Specifies a particular type that the UI should be notified of. - -This is useful for message-based ports where several types of data can be -present, but only some are interesting to the UI. For example, if UI control -is multiplexed in the same port as MIDI, this property can be used to ensure -that only the relevant events are forwarded to the UI, and not potentially high -frequency MIDI data. - -"""^^lv2:Markdown . - -ui:resize - lv2:documentation """ - -This feature corresponds to the LV2UI_Resize struct, which should be passed -with the URI LV2_UI__resize. This struct may also be provided by the UI as -extension data using the same URI, in which case it is used by the host to -request that the UI change its size. - -"""^^lv2:Markdown . - -ui:portMap - lv2:documentation """ - -This makes it possible to implement and distribute UIs separately from the -plugin binaries they control. - -This feature corresponds to the LV2UI_Port_Index struct, which should be passed -with the URI LV2_UI__portIndex. - -"""^^lv2:Markdown . - -ui:portSubscribe - lv2:documentation """ - -This makes it possible for a UI to explicitly request a particular style of -update from a port at run-time, in a more flexible and powerful way than -listing subscriptions statically allows. - -This feature corresponds to the LV2UI_Port_Subscribe struct, which should be -passed with the URI LV2_UI__portSubscribe. - -"""^^lv2:Markdown . - -ui:touch - lv2:documentation """ - -This is useful for automation, so the host can allow the user to take control -of a port, even if that port would otherwise be automated (much like grabbing a -physical motorised fader). - -It can also be used for MIDI learn or in any other situation where the host -needs to do something with a particular control and it would be convenient for -the user to select it directly from the plugin UI. - -This feature corresponds to the LV2UI_Touch struct, which should be passed with -the URI LV2_UI__touch. - -"""^^lv2:Markdown . - -ui:requestValue - lv2:documentation """ - -This allows a plugin UI to request a new parameter value using the host's UI, -for example by showing a dialog or integrating with the host's built-in content -browser. This should only be used for complex parameter types where the plugin -UI is not capable of showing the expected native platform or host interface to -choose a value, such as file path parameters. - -This feature corresponds to the LV2UI_Request_Value struct, which should be -passed with the URI LV2_UI__requestValue. - -"""^^lv2:Markdown . - -ui:idleInterface - lv2:documentation """ - -To support this feature, the UI should list it as a lv2:optionalFeature or -lv2:requiredFeature in its data, and also as lv2:extensionData. When the UI's -extension_data() is called with this URI (LV2_UI__idleInterface), it should -return a pointer to an LV2UI_Idle_Interface. - -To indicate support, the host should pass a feature to instantiate() with this -URI, with NULL for data. - -"""^^lv2:Markdown . - -ui:showInterface - lv2:documentation """ - -This allows UIs to gracefully degrade to separate windows when the host is -unable to embed the UI widget for whatever reason. When the UI's -extension_data() is called with this URI (LV2_UI__showInterface), it should -return a pointer to an LV2UI_Show_Interface. - -"""^^lv2:Markdown . - -ui:PortProtocol - lv2:documentation """ - -A PortProtocol MUST define: - -Port Type -: Which plugin port types the buffer type is valid for. - -Feature Data -: What data (if any) should be passed in the LV2_Feature. - -A PortProtocol for an output port MUST define: - -Update Frequency -: When the host should call port_event(). - -Update Format -: The format of the data in the buffer passed to port_event(). - -Options -: The format of the options passed to subscribe() and unsubscribe(). - -A PortProtocol for an input port MUST define: - -Write Format -: The format of the data in the buffer passed to write_port(). - -Write Effect -: What happens when the UI calls write_port(). - -For an example, see ui:floatProtocol or ui:peakProtocol. - -PortProtocol is a subclass of lv2:Feature, so UIs use lv2:optionalFeature and -lv2:requiredFeature to specify which PortProtocols they want to use. - -"""^^lv2:Markdown . - -ui:floatProtocol - lv2:documentation """ - -A protocol for transferring single floating point values. The rules for this -protocol are: - -Port Type -: lv2:ControlPort - -Feature Data -: None. - -Update Frequency -: The host SHOULD call port_event() as soon as possible when the port value has - changed, but there are no timing guarantees. - -Update Format -: A single <code>float</code>. - -Options -: None. - -Write Format -: A single <code>float</code>. - -Write Effect -: The host SHOULD set the port to the received value as soon as possible, but - there is no guarantee that run() actually sees this value. - -"""^^lv2:Markdown . - -ui:peakProtocol - lv2:documentation """ - -This port protocol defines a way for the host to send continuous peak -measurements of the audio signal at a certain port to the UI. The intended use -is visualisation, for example an animated meter widget that shows the level of -the audio input or output. - -A contiguous sequence of audio samples for which a peak value has been computed -is called a _measurement period_. - -The rules for this protocol are: - -Port Type -: lv2:AudioPort - -Feature Data -: None. - -Update Frequency -: The host SHOULD call port_event() at regular intervals. The measurement - periods used for calls to port_event() for the same port SHOULD be - contiguous (i.e. the measurement period for one call should begin right - after the end of the measurement period for the previous call ends) unless - the UI has removed and re-added the port subscription between those calls. - However, UIs MUST NOT depend on either the regularity of the calls or the - contiguity of the measurement periods; hosts may change the call rate or - skip calls for performance or other reasons. Measurement periods for - different calls to port_event() for the same port MUST NOT overlap. - -Update Format -: A single LV2UI_Peak_Data object. - -Options -: None. - -Write Format -: None. - -Write Effect -: None. - -"""^^lv2:Markdown . - diff --git a/lv2/ui/ui.ttl b/lv2/ui/ui.ttl deleted file mode 100644 index b355764..0000000 --- a/lv2/ui/ui.ttl +++ /dev/null @@ -1,250 +0,0 @@ -@prefix lv2: <http://lv2plug.in/ns/lv2core#> . -@prefix opts: <http://lv2plug.in/ns/ext/options#> . -@prefix owl: <http://www.w3.org/2002/07/owl#> . -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix ui: <http://lv2plug.in/ns/extensions/ui#> . -@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . - -<http://lv2plug.in/ns/extensions/ui> - a owl:Ontology ; - rdfs:label "LV2 UI" ; - rdfs:comment "User interfaces for LV2 plugins." ; - rdfs:seeAlso <ui.h> , - <ui.meta.ttl> ; - owl:imports <http://lv2plug.in/ns/lv2core> , - <http://lv2plug.in/ns/ext/options> . - -ui:UI - a rdfs:Class , - owl:Class ; - rdfs:label "User Interface" ; - rdfs:comment "A UI for an LV2 plugin." . - -ui:GtkUI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:label "GTK2 UI" ; - rdfs:comment "A UI where the widget is a pointer to a Gtk+ 2.0 GtkWidget." . - -ui:Gtk3UI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:label "GTK3 UI" ; - rdfs:comment "A UI where the widget is a pointer to a Gtk+ 3.0 GtkWidget." . - -ui:Qt4UI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:label "Qt4 UI" ; - rdfs:comment "A UI where the widget is a pointer to a Qt4 QWidget." . - -ui:Qt5UI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:label "Qt5 UI" ; - rdfs:comment "A UI where the widget is a pointer to a Qt5 QWidget." . - -ui:X11UI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:label "X11 UI" ; - rdfs:comment "A UI where the widget is an X11 Window window ID." . - -ui:WindowsUI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:label "Windows UI" ; - rdfs:comment "A UI where the widget is a Windows HWND window ID." . - -ui:CocoaUI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:label "Cocoa UI" ; - rdfs:comment "A UI where the widget is a pointer to a NSView." . - -ui:ui - a rdf:Property , - owl:ObjectProperty ; - rdfs:domain lv2:Plugin ; - rdfs:range ui:UI ; - rdfs:label "user interface" ; - rdfs:comment "Relates a plugin to a UI that applies to it." . - -ui:binary - a rdf:Property , - owl:ObjectProperty ; - owl:sameAs lv2:binary ; - owl:deprecated "true"^^xsd:boolean ; - rdfs:label "binary" ; - rdfs:comment "The shared library that a UI resides in." . - -ui:makeSONameResident - a lv2:Feature ; - owl:deprecated "true"^^xsd:boolean ; - rdfs:label "make SO name resident" ; - rdfs:comment "UI binary must not be unloaded." . - -ui:noUserResize - a lv2:Feature ; - rdfs:label "no user resize" ; - rdfs:comment "Non-resizable UI." . - -ui:fixedSize - a lv2:Feature ; - rdfs:label "fixed size" ; - rdfs:comment "Non-resizable UI that will never resize itself." . - -ui:scaleFactor - a rdf:Property , - owl:DatatypeProperty , - opts:Option ; - rdfs:range xsd:float ; - rdfs:label "scale factor" ; - rdfs:comment "Scale factor for high resolution screens." . - -ui:backgroundColor - a rdf:Property , - owl:DatatypeProperty , - opts:Option ; - rdfs:label "background color" ; - rdfs:comment """The background color of the host's UI.""" . - -ui:foregroundColor - a rdf:Property , - owl:DatatypeProperty , - opts:Option ; - rdfs:label "foreground color" ; - rdfs:comment """The foreground color of the host's UI.""" . - -ui:parent - a lv2:Feature ; - rdfs:label "parent" ; - rdfs:comment "The parent for a UI." . - -ui:PortNotification - a rdfs:Class , - owl:Class ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onProperty ui:plugin ; - owl:cardinality 1 ; - rdfs:comment "A PortNotification MUST have exactly one ui:plugin." - ] ; - rdfs:label "Port Notification" ; - rdfs:comment "A description of port updates that a host must send a UI." . - -ui:portNotification - a rdf:Property , - owl:ObjectProperty ; - rdfs:domain ui:UI ; - rdfs:range ui:PortNotification ; - rdfs:label "port notification" ; - rdfs:comment "Specifies a port notification that is required by a UI." . - -ui:plugin - a rdf:Property , - owl:ObjectProperty ; - rdfs:domain ui:PortNotification ; - rdfs:range lv2:Plugin ; - rdfs:label "plugin" ; - rdfs:comment "The plugin a portNotification applies to." . - -ui:portIndex - a rdf:Property , - owl:DatatypeProperty ; - rdfs:domain ui:PortNotification ; - rdfs:range xsd:decimal ; - rdfs:label "port index" ; - rdfs:comment "The index of the port a portNotification applies to." . - -ui:notifyType - a rdf:Property , - owl:ObjectProperty ; - rdfs:domain ui:PortNotification ; - rdfs:label "notify type" ; - rdfs:comment "A particular type that the UI should be notified of." . - -ui:resize - a lv2:Feature , - lv2:ExtensionData ; - owl:deprecated "true"^^xsd:boolean ; - rdfs:label "resize" ; - rdfs:comment """A feature that provides control of, and notifications about, a UI's size.""" . - -ui:portMap - a lv2:Feature ; - rdfs:label "port map" ; - rdfs:comment "A feature for accessing the index of a port by symbol." . - -ui:portSubscribe - a lv2:Feature ; - rdfs:label "port subscribe" ; - rdfs:comment "A feature for dynamically subscribing to updates from a port." . - -ui:touch - a lv2:Feature ; - rdfs:label "touch" ; - rdfs:comment "A feature to notify that the user has grabbed a port control." . - -ui:requestValue - a lv2:Feature ; - rdfs:label "request value" ; - rdfs:comment "A feature to request a parameter value from the user via the host." . - -ui:idleInterface - a lv2:Feature , - lv2:ExtensionData ; - rdfs:label "idle interface" ; - rdfs:comment "A feature that provides a callback for the host to drive the UI." . - -ui:showInterface - a lv2:ExtensionData ; - rdfs:label "show interface" ; - rdfs:comment "An interface for showing and hiding a window for a UI." . - -ui:windowTitle - a rdf:Property , - owl:DatatypeProperty ; - rdfs:range xsd:string ; - rdfs:label "window title" ; - rdfs:comment "The title for the window shown by LV2UI_Show_Interface." . - -ui:updateRate - a rdf:Property , - owl:DatatypeProperty ; - rdfs:range xsd:float ; - rdfs:label "update rate" ; - rdfs:comment "The target rate, in Hz, to send updates to the UI." . - -ui:protocol - a rdf:Property , - owl:ObjectProperty ; - rdfs:domain ui:PortNotification ; - rdfs:range ui:PortProtocol ; - rdfs:label "protocol" ; - rdfs:comment "The protocol to be used for this notification." . - -ui:PortProtocol - a rdfs:Class ; - rdfs:subClassOf lv2:Feature ; - rdfs:label "Port Protocol" ; - rdfs:comment "A method to communicate port data between a UI and plugin." . - -ui:floatProtocol - a ui:PortProtocol ; - rdfs:label "float protocol" ; - rdfs:comment "A protocol for transferring single floating point values." . - -ui:peakProtocol - a ui:PortProtocol ; - rdfs:label "peak protocol" ; - rdfs:comment "A protocol for sending continuous peak measurements of an audio signal." . - |