From 3920c3947d7c092d684ebbc92d080beef20cbfe9 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 23 Jul 2011 03:24:08 +0000 Subject: Move reference and blob stuff from atom extension to a separate "reference" extension. --- ext/reference.lv2/reference.ttl | 84 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 ext/reference.lv2/reference.ttl (limited to 'ext/reference.lv2/reference.ttl') diff --git a/ext/reference.lv2/reference.ttl b/ext/reference.lv2/reference.ttl new file mode 100644 index 0000000..8c8281f --- /dev/null +++ b/ext/reference.lv2/reference.ttl @@ -0,0 +1,84 @@ +# LV2 Reference Extension +# Copyright 2007-2011 David Robillard +# +# 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: . +@prefix doap: . +@prefix foaf: . +@prefix lv2: . +@prefix rdf: . +@prefix rdfs: . +@prefix reference: . + + + a lv2:Specification ; + doap:name "LV2 Reference" ; + doap:release [ + doap:revision "0.1" ; + doap:created "2011-07-22" + ] ; + doap:maintainer [ + a foaf:Person ; + foaf:name "David Robillard" ; + foaf:homepage ; + rdfs:seeAlso + ] ; + lv2:documentation """ +

This extension defines a mechanism for working with generic/opaque +dynamically allocated memory, called a "Blob", which is +(unlike an Atom) not necessarily POD. Blobs are accessed via a Reference, which is a special case of Atom that always +has type = 0, 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.

+""" . + +reference:Reference a rdfs:Class ; + rdfs:subClassOf atom:Atom ; + rdfs:label "Reference" ; + lv2:documentation """ +

Reference to a 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.

+ +

A Reference is a special case of Atom with type = 0. +"Null" is the unique Atom with type = 0 and +size = 0.

+""" . + +reference:blobSupport a lv2:Feature ; + rdfs:label "Blob support" ; + lv2:documentation """ +Support for dynamically allocated blobs. If a host supports this feature, it +MUST pass a LV2_Feature with +URI http://lv2plug.in/ns/ext/atom#blobSupport +and data pointing to a LV2_Blob_Support. +""" . + +reference:Blob a rdfs:Class ; + rdfs:label "Blob" ; + lv2:documentation """ +

Base class for all dynamically allocated blobs. An LV2_Blob ia 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.

+ +

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).

+""" . -- cgit v1.2.1