# LV2 Command Extension # Copyright (C) 2010 David Robillard # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. @prefix cmd: . @prefix lv2: . @prefix rdf: . @prefix rdfs: . @prefix xsd: . @prefix doap: . @prefix foaf: . a lv2:Specification ; doap:name "LV2 Command" ; doap:maintainer [ a foaf:Person ; foaf:name "David Robillard" ; foaf:homepage ; rdfs:seeAlso ] ; rdfs:comment """ This extension defines special port types used for controlling and inspecting a plugin instance by sending messages/commands and receiving responses to them. It also allows plugins to send status updates to the host. The port types in this extension only define an abstract notion of plugin control, not actual data types and/or message semantics. They must be used with some other port data type (e.g. event) to define the actual data format of port buffers. As a result, this extension can be used in conjunction with any extension that defines a port type suitable for controlling plugins. """ . cmd:CommandPort a rdfs:Class ; rdfs:label "Command Port" ; rdfs:subClassOf lv2:Port ; rdfs:comment """ An input port used to control a plugin instance. A plugin has at most 1 CommandPort. A CommandPort is always an lv2:InputPort. Hosts or UIs send messages to the command port in order to control a plugin instance in any way. This is an abstract port class, the actual format and semantics of the port buffer (and messages) are defined by some other port type. """ . cmd:StatusPort a rdfs:Class ; rdfs:label "Command Port" ; rdfs:subClassOf lv2:Port ; rdfs:comment """ An output port used to notify the host about changes to a plugin instance and responses to commands. A plugin has at most 1 StatusPort. A StatusPort is always an lv2:OutputPort. Any response to a command sent to the CommandPort of the plugin will appear in the StatusPort output. The plugin may also emit other messages (i.e. the contents of a StatusPort are not necessarily responses to commands). This is an abstract port class, the actual format and semantics of the port buffer (and messages) are defined by some other port type. """ .