From eb43c8896480114b224755e824fae2e2f7485256 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 21 Nov 2011 01:36:00 +0000 Subject: Move ns to lv2/ns so repository top level can be used as an include dir directly. --- ns/extensions/ui/ui.ttl | 220 ------------------------------------------------ 1 file changed, 220 deletions(-) delete mode 100644 ns/extensions/ui/ui.ttl (limited to 'ns/extensions/ui/ui.ttl') diff --git a/ns/extensions/ui/ui.ttl b/ns/extensions/ui/ui.ttl deleted file mode 100644 index f62569a..0000000 --- a/ns/extensions/ui/ui.ttl +++ /dev/null @@ -1,220 +0,0 @@ -# LV2 UI Extension -# Copyright 2009-2011 David Robillard -# Copyright 2006-2008 Lars Luthman -# -# 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. - -@prefix doap: . -@prefix foaf: . -@prefix lv2: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix ui: . -@prefix xsd: . - - - a owl:Ontology ; - owl:imports ; - lv2:documentation """ -

This extension defines an interface that can be used in LV2 plugins and -hosts to create UIs for plugins. The UIs are similar to plugins and reside in -shared object files in an LV2 bundle. UIs are associated with a plugin in RDF -using the triples:

- -
-@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
-
-<http://my.plugin>   ui:ui     <http://my.pluginui> .
-<http://my.pluginui> a         ui:GtkUI ;
-                     ui: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 probably a good idea to keep them separate so that hosts that -don't want UIs don't have to load the UI code. A UI MUST specify its class in -the RDF data (ui:GtkUI in the above example). The class defines what type the -UI is, e.g. 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 way people -other than the plugin author can write plugin UIs independently without editing -the original plugin bundle.

- -

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 can -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).

- -

Since the LV2 specification itself allows for extensions that may add new -functionality that could be useful to control with a UI, this extension allows -for meta-extensions that can extend the interface between the UI and the -host. These extensions mirror the extensions used for plugins - there are -required and optional "features" that you declare in the RDF data for the -UI:

- -
-<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. These features may be used to specify how to pass -specific types of data between the UI and the plugin port buffers (see -LV2UI_Write_Function for details).

- -

UIs written to this specification do not need to be threadsafe - the -functions defined below may only be called in the same thread the UI main loop -is running in.

- -

Note that this UI extension is NOT a lv2:Feature. There is no way for a -plugin to know whether the host that loads it supports UIs or not, and the -plugin must always work without the UI (although it may be rather useless -unless it has been configured using the UI in a previous session). From the -plugin perspective, control from a UI is the same as control from anywhere else -(e.g. the host, the user): via ports.

- -

A UI does not have to be a graphical widget, it could just as well be a -server listening for OSC input or an interface to some sort of hardware device, -depending on the RDF class of the UI.

-""" . - -ui:UI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf lv2:Resource ; - rdfs:label "LV2 UI" ; - rdfs:comment "A UI for an LV2 plugin" . - -ui:GtkUI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:comment """ -A UI where the LV2_Widget 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 a UI of this type is instantiated.""" . - -ui:Qt4UI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:comment """ -A UI where the LV2_Widget is a pointer to a Qt4 compatible QWidget, -and the host guarantees that the Qt4 library has been initialised and the -Qt4 main loop is running before a UI of this type is instantiated.""" . - -ui:X11UI - a rdfs:Class , - owl:Class ; - rdfs:subClassOf ui:UI ; - rdfs:comment """ -A UI where the LV2_Widget is an X11 window ID. Note this is actually an -integer, i.e. the LV2_Widget is not a pointer to an X11 window ID, but should -be itself taken as an integer value.""" . - -ui:makeSONameResident - a lv2:Feature ; - owl:deprecated "true"^^xsd:boolean ; - lv2:documentation """ -

DEPRECATED

- -

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, e.g. gcc -Wl,nodelete.

-""" . - -ui:noUserResize - a lv2:Feature ; - lv2:documentation """ -

If a UI requires 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 the -LV2_Feature for this feature should always be set to NULL.

-""" . - -ui:fixedSize - a lv2:Feature ; - lv2:documentation """ -

If a UI requires this feature it indicates the same thing as -ui:noUserResize, and additionally it means that the UI will not resize -the main widget on its own - it will always remain the same size (e.g. a -pixmap based GUI). This feature may not make sense for all UI types. -The data pointer for the LV2_Feature for this feature should always be set -to NULL.

-""" . - -ui:PortNotification - a rdfs:Class , - owl:Class ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onProperty ui:plugin ; - owl:someValuesFrom lv2:Plugin ; - owl:cardinality 1 ; - rdfs:comment """ -A PortNotification MUST have exactly one ui:plugin which is a lv2:Plugin. -""" - ] , [ - a owl:Restriction ; - owl:onProperty ui:portIndex ; - owl:someValuesFrom xsd:decimal ; - owl:cardinality 1 ; - rdfs:comment """ -A PortNotification MUST have exactly one ui:portIndex which is an xsd:decimal. -""" - ] ; - rdfs:comment "Port Notification" . - -ui:portNotification - a rdf:Property , - owl:ObjectProperty ; - rdfs:domain ui:UI ; - rdfs:range ui:PortNotification ; - lv2:documentation """ -

Indicates that a UI should receive notification (via -LV2UI_Descriptor::port_event()) when a particular port's value changes.

-""" . - -ui:plugin - a rdf:Property , - owl:ObjectProperty ; - rdfs:domain ui:PortNotification ; - rdfs:range lv2: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:comment """ -The index of the port a portNotification applies to. -""" . -- cgit v1.2.1