@prefix doap: . @prefix foaf: . @prefix lv2: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix morph: . @prefix xsd: . a owl:Ontology ; rdfs:seeAlso , , <../../meta/meta.ttl> ; lv2:documentation """

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.

""" . 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_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_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_Interface from LV2_Descriptor::extension_data() when it is called with this URI (LV2_MORPH__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.

""" .