diff options
author | David Robillard <d@drobilla.net> | 2011-07-23 03:24:08 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-07-23 03:24:08 +0000 |
commit | 3920c3947d7c092d684ebbc92d080beef20cbfe9 (patch) | |
tree | 137ec28a844f361488b6a84708130a1cecbf76a6 /ext/atom.lv2/atom.ttl | |
parent | e417a0f26c43293b92e5086129d41b29560f8daa (diff) | |
download | lv2-3920c3947d7c092d684ebbc92d080beef20cbfe9.tar.xz |
Move reference and blob stuff from atom extension to a separate "reference" extension.
Diffstat (limited to 'ext/atom.lv2/atom.ttl')
-rw-r--r-- | ext/atom.lv2/atom.ttl | 85 |
1 files changed, 21 insertions, 64 deletions
diff --git a/ext/atom.lv2/atom.ttl b/ext/atom.lv2/atom.ttl index 25318d9..2043fbd 100644 --- a/ext/atom.lv2/atom.ttl +++ b/ext/atom.lv2/atom.ttl @@ -1,23 +1,17 @@ # LV2 Atom Extension -# Copyright (C) 2007-2011 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. +# 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#> . @@ -63,14 +57,6 @@ implementations to be polymorphic and extensible.</p> <p>Atoms (the start of the LV2_Atom header) MUST be 32-bit aligned.</p> -<p>Optionally, the host MAY implement <a href="#blobSupport">blob support</a>. -A <a href="#Blob">Blob</a> is a dynamically allocated chunk of memory -that (unlike an Atom) is not necessarily POD. Blobs are accessed via a -<a href="#Reference">Reference</a>, which is a special case of Atom 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> - <p>Atoms can be communicated in many ways. Since an Atom is the payload of an Event, an <a href="http://lv2plug.in/ns/ext/event#EventPort">EventPort</a> can be used for communicating Atoms in realtime with sub-sample time stamp @@ -100,27 +86,14 @@ extension's <a href="urn:struct:LV2_URI_Map_Feature" >LV2_URI_Map_Feature</a>::uri_to_id with <code>map = "http://lv2plug.in/ns/ext/event"</code>. If a plugin or host does not understand <code>type</code>, that atom SHOULD be gracefully ignored -(or copied if it is not a <a href="#Reference">Reference</a>).</p> - -<p>All atoms are POD by definition except references, which have -<code>type = 0</code>. An Atom MUST NOT contain a Reference. It is safe -to copy any non-reference Atom with a simple <code>memcpy</code>, even if -the implementation does not understand <code>type</code>.</p> -""" . - - -atom:Reference a rdfs:Class ; - rdfs:subClassOf atom:Atom ; - rdfs:label "Reference" ; - lv2:documentation """ -<p>Reference to a <a href="#Blob">Blob</a>. 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 -<a href="urn:struct:LV2_Blob_Support">LV2_Blob_Support</a>.</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> +(or copied if it does not have type 0).</p> + +<p>All atoms are POD by definition except references, which as a special case +have <code>type = 0</code>. An Atom MUST NOT contain a Reference. It is safe +to copy any non-reference Atom with a simple <code>memcpy</code>, even if the +implementation does not understand <code>type</code>. Though this extension reserves +the type 0 for references, actual specification of how references are used is left +to another extension.</p> """ . @@ -362,22 +335,6 @@ and <code>data</code> pointing to a <a href="urn:struct:LV2_Blob_Support" """ . -atom:Blob a rdfs:Class ; - rdfs:label "Blob" ; - lv2:documentation """ -<p>Base class for all dynamically allocated blobs. An <a -href="urn:struct:LV2_Blob" >LV2_Blob</a> ia an opaque pointer to host -data. The type and data of a blob can be accessed via host-provided -functions in <a href="urn:struct:LV2_Blob_Support">LV2_Blob_Support</a>. -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> -""" . - - atom:AtomPort a rdfs:Class ; rdfs:subClassOf lv2:Port ; rdfs:label "Atom Port" ; |