aboutsummaryrefslogtreecommitdiffstats
path: root/ns/ext/reference/reference.ttl
diff options
context:
space:
mode:
Diffstat (limited to 'ns/ext/reference/reference.ttl')
-rw-r--r--ns/ext/reference/reference.ttl82
1 files changed, 82 insertions, 0 deletions
diff --git a/ns/ext/reference/reference.ttl b/ns/ext/reference/reference.ttl
new file mode 100644
index 0000000..1e030ee
--- /dev/null
+++ b/ns/ext/reference/reference.ttl
@@ -0,0 +1,82 @@
+# LV2 Reference Extension
+# Copyright 2007-2011 David Robillard <d@drobilla.net>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+@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 reference: <http://lv2plug.in/ns/ext/reference#> .
+
+<http://lv2plug.in/ns/ext/reference>
+ a lv2:Specification ;
+ doap:name "LV2 Reference" ;
+ doap:shortdesc "A reference data type for using non-POD data." ;
+ doap:release [
+ doap:revision "0.1" ;
+ doap:created "2011-07-22"
+ ] ;
+ doap:maintainer [
+ a foaf:Person ;
+ foaf:name "David Robillard" ;
+ foaf:homepage <http://drobilla.net/> ;
+ rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
+ ] ;
+ lv2:documentation """
+<p>This extension defines a mechanism for working with generic/opaque
+dynamically allocated memory, called a <a href="#Blob">"Blob"</a>, which is
+(unlike an Atom) not necessarily POD. Blobs are accessed via a
+reference:Reference, which is a special case of <a
+href="http://lv2plug.in/ns/ext/ext#Atom">Atom</a> that always has <code>type =
+0</code>, is not POD, and can only be copied using host provided functions.
+This allows plugins and hosts to work with data of any type at all.</p>
+""" .
+
+reference:Reference a rdfs:Class ;
+ rdfs:subClassOf atom:Atom ;
+ rdfs:label "Reference" ;
+ lv2:documentation """
+<p>Reference to an lv2:Blob. The actual contents of a Reference are opaque and
+host specific, and must not be copied, serialized, or otherwise interpreted by
+a plugin, except via functions provided by the host in LV2_Blob_Support.</p>
+
+<p>A Reference is a special case of Atom with <code>type = 0</code>.
+"Null" is the unique Atom with <code>type = 0</code> and
+<code>size = 0</code>.</p>
+""" .
+
+reference:blobSupport a lv2:Feature ;
+ rdfs:label "Blob support" ;
+ lv2:documentation """
+<p>Support for dynamically allocated blobs. If a host supports this feature,
+it MUST pass a LV2_Feature with <code>URI</code>
+http://lv2plug.in/ns/ext/atom#blobSupport and <code>data</code> pointing to a
+LV2_Blob_Support.</p>
+""" .
+
+reference:Blob a rdfs:Class ;
+ rdfs:label "Blob" ;
+ lv2:documentation """
+<p>Base class for all dynamically allocated blobs. An LV2_Blob is an opaque
+pointer to host data. The type and data of a blob can be accessed via
+host-provided functions in LV2_Blob_Support. The type of a blob can be any URI
+that describes a data format. Blobs are always allocated by the host, and
+unlike atoms are not necessarily POD.</p>
+
+<p>Blob data MUST NOT be used in any way by an implementation that does not
+understand that blob type (unlike Atoms, meaningful type-oblivious use
+of a Blob is impossible).</p>
+""" .