aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/options/options.ttl
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/options/options.ttl')
-rw-r--r--lv2/options/options.ttl104
1 files changed, 104 insertions, 0 deletions
diff --git a/lv2/options/options.ttl b/lv2/options/options.ttl
new file mode 100644
index 0000000..b0f752c
--- /dev/null
+++ b/lv2/options/options.ttl
@@ -0,0 +1,104 @@
+@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 xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<http://lv2plug.in/ns/ext/options>
+ a owl:Ontology ;
+ rdfs:seeAlso <options.h> ,
+ <lv2-options.doap.ttl> ;
+ lv2:documentation """
+
+<p>This extension defines a facility for <q>options</q>, which are dynamic
+properties that may be changed at run time.</p>
+
+<p>There are two facilities for passing options to an instance: opts:options
+allows passing options at instantiation time, and the opts:interface interface
+allows options to be dynamically set and retrieved after instantiation.</p>
+
+<p>Note that this extension is only for allowing hosts to configure plugins,
+and is not a <q>live</q> control mechanism. For real-time control, use
+event-based control via an atom:AtomPort with an atom:Sequence buffer.</p>
+
+<p>Instances may indicate they <q>require</q> an option with the
+opts:requiredOption property, or that they optionally <q>support</q> an option
+with the opts:supportedOption property.</p>
+""" .
+
+opts:Option
+ a rdfs:Class ;
+ rdfs:label "Option" ;
+ rdfs:subClassOf rdf:Property ;
+ lv2:documentation """
+<p>A property intended to be used as a static option for an instance.</p>
+
+<p>It is not required for a property to explicitly be an Option in order to be
+used as such. However, properties which are primarily intended for use as
+options, or are at least particularly useful as options, should be explicitly
+given this type for documentation purposes, and to assist hosts in discovering
+option definitions.</p>
+""" .
+
+opts:interface
+ a lv2:ExtensionData ;
+ lv2:documentation """
+<p>An interface (LV2_Options_Interface) for dynamically setting and getting
+options. Note this is intended for use by the host for configuring plugins
+only, and and is <em>not</em> a <q>live</q> plugin control mechanism.</p>
+
+<p>The plugin data file should describe this like so:</p>
+<pre class="turtle-code">
+@prefix opts: &lt;http://lv2plug.in/ns/ext/options#&gt; .
+
+&lt;plugin&gt;
+ a lv2:Plugin ;
+ lv2:extensionData opts:interface .
+</pre>
+""" .
+
+opts:options
+ a lv2:Feature ;
+ rdfs:label "options" ;
+ lv2:documentation """
+<p>The feature used to provide options to an instance.</p>
+
+<p>To implement this feature, hosts MUST pass an LV2_Feature to the appropriate
+instantiate method with this URI and data pointed to an array of
+LV2_Options_Option terminated by an element with both key and value set to
+zero. The instance should cast this data pointer to <code>const
+LV2_Options_Option*</code> and scan the array for any options of interest. The
+instance MUST NOT modify the options array in any way.</p>
+
+<p>Note that requiring this feature may reduce the number of compatible hosts.
+Unless some options are strictly required by the instance, this feature SHOULD
+be listed as a lv2:optionalFeature.</p>
+""" .
+
+opts:requiredOption
+ a rdf:Property ,
+ owl:ObjectProperty ;
+ rdfs:range opts:Option ;
+ rdfs:label "required option" ;
+ lv2:documentation """
+<p>An option required by the instance to function at all. The host MUST pass a
+value for the specified option via opts:options in order to create an
+instance.</p>
+
+<p>Note that use of this property may reduce the number of compatible hosts.
+Wherever possible, it is better to list options with opts:supportedOption and
+fall back to a reasonable default value if it is not provided.</p>
+""" .
+
+opts:supportedOption
+ a rdf:Property ,
+ owl:ObjectProperty ;
+ rdfs:range opts:Option ;
+ rdfs:label "supported option" ;
+ lv2:documentation """
+<p>An option supported or <q>understood</q> by the instance. The host SHOULD
+provide a value for the specified option if one is known, or provide the user
+an opportunity to specify one if one is Indicates that the instance host MUST
+pass a value for the specified option in order to instantiate the instance.</p>
+""" .