diff options
author | David Robillard <d@drobilla.net> | 2011-11-21 01:36:00 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-11-21 01:36:00 +0000 |
commit | eb43c8896480114b224755e824fae2e2f7485256 (patch) | |
tree | 26e91bd8dc6421d2296a33991e90f7dcb546b079 /ns/extensions/ui/ui.ttl | |
parent | df79255ccef7fb5d091e9d4e52f3c46545b53282 (diff) | |
download | lv2-eb43c8896480114b224755e824fae2e2f7485256.tar.xz |
Move ns to lv2/ns so repository top level can be used as an include dir directly.
Diffstat (limited to 'ns/extensions/ui/ui.ttl')
-rw-r--r-- | ns/extensions/ui/ui.ttl | 220 |
1 files changed, 0 insertions, 220 deletions
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 <d@drobilla.net> -# Copyright 2006-2008 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. - -@prefix doap: <http://usefulinc.com/ns/doap#> . -@prefix foaf: <http://xmlns.com/foaf/0.1/> . -@prefix lv2: <http://lv2plug.in/ns/lv2core#> . -@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 ; - owl:imports <http://lv2plug.in/ns/lv2core> ; - lv2:documentation """ -<p>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:</p> - -<pre class="turtle-code"> -@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> . -</pre> - -<p>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.</p> - -<p>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.</p> - -<p>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.</p> - -<p>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 -<strong>not</strong> 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).</p> - -<p>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:</p> - -<pre class="turtle-code"> -<http://my.pluginui> lv2:requiredFeature <http://my.feature> . -<http://my.pluginui> lv2:optionalFeature <http://my.feature> . -</pre> - -<p>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).</p> - -<p>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.</p> - -<p>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.</p> - -<p>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.</p> -""" . - -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 """ -<p>DEPRECATED</p> - -<p>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. <code>gcc -Wl,nodelete</code>.</p> -""" . - -ui:noUserResize - a lv2:Feature ; - lv2:documentation """ -<p>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.</p> -""" . - -ui:fixedSize - a lv2:Feature ; - lv2:documentation """ -<p>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.</p> -""" . - -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 """ -<p>Indicates that a UI should receive notification (via -LV2UI_Descriptor::port_event()) when a particular port's value changes.</p> -""" . - -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. -""" . |