aboutsummaryrefslogtreecommitdiffstats
path: root/ext/message.lv2/message.ttl
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-10-17 01:08:23 +0000
committerDavid Robillard <d@drobilla.net>2010-10-17 01:08:23 +0000
commit591d09e1923164220485e843ae3161090d5dc0ec (patch)
tree1a1adcd5e0e37e28b2570fee5ac47508ca403000 /ext/message.lv2/message.ttl
parent1bde548b3c2c0ae5ce5a8f849ada96c2e8735217 (diff)
downloadlv2-591d09e1923164220485e843ae3161090d5dc0ec.tar.xz
Create new Message extension, and remove message type definition from Atom extension.
Clean up Atom extension and define more struct types in header.
Diffstat (limited to 'ext/message.lv2/message.ttl')
-rw-r--r--ext/message.lv2/message.ttl83
1 files changed, 83 insertions, 0 deletions
diff --git a/ext/message.lv2/message.ttl b/ext/message.lv2/message.ttl
new file mode 100644
index 0000000..03072f3
--- /dev/null
+++ b/ext/message.lv2/message.ttl
@@ -0,0 +1,83 @@
+# LV2 Message Extension
+# Copyright (C) 2007-2010 David Robillard <d@drobilla.net>
+#
+# 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 message: <http://lv2plug.in/ns/ext/message#> .
+@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@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/message>
+ a lv2:Specification ;
+ doap:name "LV2 Message" ;
+ doap:maintainer [
+ a foaf:Person ;
+ foaf:name "David Robillard" ;
+ foaf:homepage <http://drobilla.net/> ;
+ rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
+ ] ;
+ rdfs:comment """
+This extension defines the format for "messages" which can be used to
+dynamically control an LV2 plugin instance at runtime. Messages are useful
+for any kind of plugin control that does not fit well with control ports.
+Plugins can both receive and send messages (and thus send messages to each
+other) via any mechanism.
+
+This extension requires the host to support the <a
+href="http://lv2plug.in/ns/ext/uri-map">LV2 URI Map</a> extension, and the
+<a href="http://lv2plug.in/ns/ext/atom">LV2 Atom</a> extension.
+""" .
+
+
+message:MessageType a rdfs:Class ;
+ rdfs:label "LV2 Message Type" ;
+ rdfs:comment """
+Base class for all types of LV2 Message.
+
+A type of message, which must be a resource (i.e. have a URI). This URI
+is used as the selector component of a Message and is used by receivers
+to interpret the meaning of messages (e.g. which components are present).
+""" .
+
+message:Message a atom:AtomType ;
+ rdfs:label "Message" ;
+ rdfs:comment """
+A message is a communication from one component to another. Messages consist
+of a selector URI, and a key/value dictionary. Keys in the dictionary are
+URI mapped integers, and values are Atoms. The selector URI dictates how
+the message is to be interpreted (e.g. the selector can be used as a "verb"
+to build commands).
+
+Messages are simple to serialise in many different formats (e.g. any RDF
+serialisation including LV2 Turtle files, JSON, XML, etc) making network
+transparency and persistence simple, assuming the implementation can
+serialise Atoms.
+
+Because all messages have a standard format, plugins and hosts can store,
+communicate, or otherwise work with messages even if they do not understand
+that particular message's selector.
+
+In memory, a Message is simply a uint32_t selector (a URI mapped integer)
+followed by an atom:Blank.
+""" .