From 3c83ae6ed27e0486a1d5520f1674ee38ba6767c5 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 31 May 2012 01:13:58 +0000 Subject: Add morph extension. --- lv2/lv2plug.in/ns/ext/morph/morph.ttl | 82 +++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 lv2/lv2plug.in/ns/ext/morph/morph.ttl (limited to 'lv2/lv2plug.in/ns/ext/morph/morph.ttl') diff --git a/lv2/lv2plug.in/ns/ext/morph/morph.ttl b/lv2/lv2plug.in/ns/ext/morph/morph.ttl new file mode 100644 index 0000000..39e1ced --- /dev/null +++ b/lv2/lv2plug.in/ns/ext/morph/morph.ttl @@ -0,0 +1,82 @@ +@prefix dcs: . +@prefix doap: . +@prefix foaf: . +@prefix lv2: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix morph: . +@prefix xsd: . + + + a lv2:Specification , + lv2:Feature ; + rdfs:seeAlso , + <../../meta/meta.ttl> ; + doap:name "LV2 Morph Port Extension" ; + doap:shortdesc "Ports that can dynamically change type." ; + doap:created "2012-05-22" ; + doap:developer ; + lv2:documentation """ +

This extension defines two port types: morph:MorphPort, which has a +host-configurable type, and morph:AutoMorphPort, which may change type based on +the type of other ports. 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.

+""" . + +morph:MorphPort + a rdfs:Class , + owl:Class ; + rdfs:subClassOf lv2:Port ; + rdfs:label "Morph Port" ; + lv2:documentation """ +

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.

+ +

The host may change the type of a MorphPort by calling +LV2_Morph_Port_Interface::morph_port(). If the plugin has any +morph:AutoMorphPort ports, the host MUST check their types after changing any +port type since they may have changed.

+""" . + +morph:AutoMorphPort + a rdfs:Class , + owl:Class ; + rdfs:subClassOf lv2:Port ; + rdfs:label "Auto Morph Port" ; + lv2:documentation """ +

Ports of this type MUST have another type which defines the default buffer +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.

+ +

The type of a port may only change in response to a call to +LV2_Morph_Port_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.

+ +

This is mainly useful for outputs whose type depends on the type of +corresponding inputs.

+""" . + +morph:interface + a lv2:ExtensionData ; + lv2:documentation """ +

The interface provided by the plugin to support morph ports. To support +this extension, the plugin must return a LV2_Morph_Port_Interface from +LV2_Descriptor::extension_data() when it is called with this URI +(LV2_STATE__interface).

""" . + +morph:supportsType + a rdf:Property , + owl:ObjectProperty ; + rdfs:domain morph:MorphPort ; + rdfs:label "supports type" ; + lv2:documentation """ +

Indicates that a port supports being switched to a certain type via +morph:interface.

+""" . -- cgit v1.2.1