aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/lv2plug.in/ns/ext/morph/morph.ttl
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/lv2plug.in/ns/ext/morph/morph.ttl')
-rw-r--r--lv2/lv2plug.in/ns/ext/morph/morph.ttl60
1 files changed, 34 insertions, 26 deletions
diff --git a/lv2/lv2plug.in/ns/ext/morph/morph.ttl b/lv2/lv2plug.in/ns/ext/morph/morph.ttl
index 09351b1..9457089 100644
--- a/lv2/lv2plug.in/ns/ext/morph/morph.ttl
+++ b/lv2/lv2plug.in/ns/ext/morph/morph.ttl
@@ -1,10 +1,11 @@
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix morph: <http://lv2plug.in/ns/ext/morph#> .
+@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 morph: <http://lv2plug.in/ns/ext/morph#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://lv2plug.in/ns/ext/morph>
@@ -15,11 +16,14 @@
lv2:documentation """
<p>This extension defines two port types: morph:MorphPort, which has a
host-configurable type, and morph:AutoMorphPort, which may automatically change
-type when a MorphPort type is changed. These ports always have a default type
-and work normally work in hosts that are unaware of this extension. Thus, this
-extension provides a backwards compatibility mechanism which allows plugins to
-use new port types but gracefully fall back to a default type in hosts that do
-not support them.</p>
+type when a MorphPort's type is changed. These ports always have a default
+type and work normally work in hosts that are unaware of this extension. Thus,
+this extension provides a backwards compatibility mechanism which allows
+plugins to use new port types but gracefully fall back to a default type in
+hosts that do not support them.</p>
+
+<p>This extension only defines port types and properties for describing morph
+ports. The actual run-time switching is done via the opts:interface API.</p>
""" .
morph:MorphPort
@@ -30,13 +34,12 @@ morph:MorphPort
lv2:documentation """
<p>Ports of this type MUST have another type which defines the default buffer
format (e.g. lv2:ControlPort) but can be dynamically changed to a different
-type in hosts that support morph:interface.</p>
+type in hosts that support opts:interface.</p>
-<p>The host may change the type of a MorphPort by calling
-LV2_Morph_Interface::morph_port(). If the plugin has any morph:AutoMorphPort
+<p>The host may change the type of a MorphPort by setting its morph:currentType
+with LV2_Options_Interface::set(). If the plugin has any morph:AutoMorphPort
ports, the host MUST check their types after changing any port type since they
-may have changed.</p>
-""" .
+may have changed.</p> """ .
morph:AutoMorphPort
a rdfs:Class ,
@@ -48,31 +51,36 @@ morph:AutoMorphPort
format (e.g. lv2:ControlPort) but may dynamically change types based on the
configured types of any morph:MorphPort ports on the same plugin instance.</p>
-<p>The type of a port may only change in response to a call to
-LV2_Morph_Interface::morph_port(), i.e. ports can only change type as a result
-of an explicit host request. Whenever any port type on the instance changes,
-the host MUST check the type of all morph:AutoMorphPort ports on the instance
-before calling run() again, since they may have changed.</p>
+<p>The type of a port may only change in response to a host call to
+LV2_Options_Interface::set(). Whenever any port type on the instance changes,
+the host MUST check the type of all morph:AutoMorphPort ports with
+LV2_Options_Interface::get() before calling run() again, since they may have
+changed. If the type of any port is zero, it means the current configuration
+is invalid and the plugin may not be run (unless that port is
+lv2:connectionOptional and connected to NULL).</p>
<p>This is mainly useful for outputs whose type depends on the type of
corresponding inputs.</p>
""" .
-morph:interface
- a lv2:ExtensionData ;
+morph:supportsType
+ a rdf:Property ,
+ owl:ObjectProperty ;
+ rdfs:domain morph:MorphPort ;
+ rdfs:label "supports type" ;
lv2:documentation """
-<p>The interface provided by the plugin to support morph ports. To support
-this extension, the plugin must return a LV2_Morph_Interface from
-LV2_Descriptor::extension_data() when it is called with this URI
-(LV2_MORPH__interface).</p>
+<p>Indicates that a port supports being switched to a certain type. A
+MorphPort MUST list each type it supports being switched to in the plugin data
+using this property.</p>
""" .
-morph:supportsType
+morph:currentType
a rdf:Property ,
+ opts:Option ,
owl:ObjectProperty ;
rdfs:domain morph:MorphPort ;
- rdfs:label "supports type" ;
+ rdfs:label "current type" ;
lv2:documentation """
-<p>Indicates that a port supports being switched to a certain type via
-morph:interface.</p>
+<p>The currently active type of the port. This is for dynamic use as an option
+and SHOULD NOT be listed in the static plugin data.</p>
""" .