aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/ns
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-02-08 04:56:24 +0000
committerDavid Robillard <d@drobilla.net>2012-02-08 04:56:24 +0000
commited78bbe5ba12be1f9bcc736f14c51da6b4f639f3 (patch)
tree653a2dfe33f3923da45a38fc04ed2106f93528f3 /lv2/ns
parentb617875c6f3ad439d25ae166da79df839ebfdc71 (diff)
downloadlv2-ed78bbe5ba12be1f9bcc736f14c51da6b4f639f3.tar.xz
Rearrange tree so top level can be used as an include path for standard style LV2 includes.
Diffstat (limited to 'lv2/ns')
-rw-r--r--lv2/ns/ext/atom/atom-helpers.h310
-rw-r--r--lv2/ns/ext/atom/atom-test.c304
-rw-r--r--lv2/ns/ext/atom/atom.h203
-rw-r--r--lv2/ns/ext/atom/atom.ttl462
l---------lv2/ns/ext/atom/ext.pc.in1
-rw-r--r--lv2/ns/ext/atom/forge.h445
-rw-r--r--lv2/ns/ext/atom/manifest.ttl9
l---------lv2/ns/ext/atom/waf1
l---------lv2/ns/ext/atom/wscript1
-rw-r--r--lv2/ns/ext/contexts/contexts.h82
-rw-r--r--lv2/ns/ext/contexts/contexts.ttl134
l---------lv2/ns/ext/contexts/ext.pc.in1
-rw-r--r--lv2/ns/ext/contexts/manifest.ttl9
-rw-r--r--lv2/ns/ext/contexts/test.c67
l---------lv2/ns/ext/contexts/waf1
l---------lv2/ns/ext/contexts/wscript1
-rw-r--r--lv2/ns/ext/cv-port/cv-port.ttl77
l---------lv2/ns/ext/cv-port/ext.pc.in1
-rw-r--r--lv2/ns/ext/cv-port/manifest.ttl9
l---------lv2/ns/ext/cv-port/waf1
l---------lv2/ns/ext/cv-port/wscript1
-rw-r--r--lv2/ns/ext/data-access/data-access.h56
-rw-r--r--lv2/ns/ext/data-access/data-access.ttl82
l---------lv2/ns/ext/data-access/ext.pc.in1
-rw-r--r--lv2/ns/ext/data-access/manifest.ttl9
l---------lv2/ns/ext/data-access/waf1
l---------lv2/ns/ext/data-access/wscript1
-rw-r--r--lv2/ns/ext/dynmanifest/dynmanifest.h144
-rw-r--r--lv2/ns/ext/dynmanifest/dynmanifest.ttl107
l---------lv2/ns/ext/dynmanifest/ext.pc.in1
-rw-r--r--lv2/ns/ext/dynmanifest/lv2-dynmanifest.doap.ttl43
-rw-r--r--lv2/ns/ext/dynmanifest/manifest.ttl9
l---------lv2/ns/ext/dynmanifest/waf1
l---------lv2/ns/ext/dynmanifest/wscript1
-rw-r--r--lv2/ns/ext/event/event-helpers.h246
-rw-r--r--lv2/ns/ext/event/event.h281
-rw-r--r--lv2/ns/ext/event/event.ttl224
l---------lv2/ns/ext/event/ext.pc.in1
-rw-r--r--lv2/ns/ext/event/manifest.ttl9
l---------lv2/ns/ext/event/waf1
l---------lv2/ns/ext/event/wscript1
l---------lv2/ns/ext/host-info/ext.pc.in1
-rw-r--r--lv2/ns/ext/host-info/host-info.ttl117
-rw-r--r--lv2/ns/ext/host-info/manifest.ttl9
l---------lv2/ns/ext/host-info/waf1
l---------lv2/ns/ext/host-info/wscript1
l---------lv2/ns/ext/instance-access/ext.pc.in1
-rw-r--r--lv2/ns/ext/instance-access/instance-access.h38
-rw-r--r--lv2/ns/ext/instance-access/instance-access.ttl80
-rw-r--r--lv2/ns/ext/instance-access/manifest.ttl9
l---------lv2/ns/ext/instance-access/waf1
l---------lv2/ns/ext/instance-access/wscript1
l---------lv2/ns/ext/log/ext.pc.in1
-rw-r--r--lv2/ns/ext/log/log.h91
-rw-r--r--lv2/ns/ext/log/log.ttl74
-rw-r--r--lv2/ns/ext/log/manifest.ttl9
l---------lv2/ns/ext/log/waf1
l---------lv2/ns/ext/log/wscript1
l---------lv2/ns/ext/midi/ext.pc.in1
-rw-r--r--lv2/ns/ext/midi/manifest.ttl9
-rw-r--r--lv2/ns/ext/midi/midi.ttl115
l---------lv2/ns/ext/midi/waf1
l---------lv2/ns/ext/midi/wscript1
l---------lv2/ns/ext/osc/ext.pc.in1
-rw-r--r--lv2/ns/ext/osc/lv2_osc.c238
-rw-r--r--lv2/ns/ext/osc/lv2_osc_print.c66
-rw-r--r--lv2/ns/ext/osc/lv2_osc_test.c55
-rw-r--r--lv2/ns/ext/osc/manifest.ttl9
-rw-r--r--lv2/ns/ext/osc/osc-print.h42
-rw-r--r--lv2/ns/ext/osc/osc.h119
-rw-r--r--lv2/ns/ext/osc/osc.ttl39
l---------lv2/ns/ext/osc/waf1
l---------lv2/ns/ext/osc/wscript1
l---------lv2/ns/ext/parameter/ext.pc.in1
-rw-r--r--lv2/ns/ext/parameter/manifest.ttl9
-rw-r--r--lv2/ns/ext/parameter/parameter.ttl111
l---------lv2/ns/ext/parameter/waf1
l---------lv2/ns/ext/parameter/wscript1
l---------lv2/ns/ext/port-groups/ext.pc.in1
-rw-r--r--lv2/ns/ext/port-groups/manifest.ttl9
-rw-r--r--lv2/ns/ext/port-groups/port-groups.ttl490
l---------lv2/ns/ext/port-groups/waf1
l---------lv2/ns/ext/port-groups/wscript1
l---------lv2/ns/ext/port-props/ext.pc.in1
-rw-r--r--lv2/ns/ext/port-props/manifest.ttl8
-rw-r--r--lv2/ns/ext/port-props/port-props.ttl217
l---------lv2/ns/ext/port-props/waf1
l---------lv2/ns/ext/port-props/wscript1
l---------lv2/ns/ext/presets/ext.pc.in1
-rw-r--r--lv2/ns/ext/presets/manifest.ttl9
-rw-r--r--lv2/ns/ext/presets/presets.ttl148
l---------lv2/ns/ext/presets/waf1
l---------lv2/ns/ext/presets/wscript1
l---------lv2/ns/ext/pui/ext.pc.in1
-rw-r--r--lv2/ns/ext/pui/manifest.ttl8
-rw-r--r--lv2/ns/ext/pui/pui.h374
-rw-r--r--lv2/ns/ext/pui/pui.ttl284
l---------lv2/ns/ext/pui/waf1
l---------lv2/ns/ext/pui/wscript1
l---------lv2/ns/ext/reference/ext.pc.in1
-rw-r--r--lv2/ns/ext/reference/manifest.ttl9
-rw-r--r--lv2/ns/ext/reference/reference.h161
-rw-r--r--lv2/ns/ext/reference/reference.ttl82
l---------lv2/ns/ext/reference/waf1
l---------lv2/ns/ext/reference/wscript1
l---------lv2/ns/ext/resize-port/ext.pc.in1
-rw-r--r--lv2/ns/ext/resize-port/manifest.ttl9
-rw-r--r--lv2/ns/ext/resize-port/resize-port.h57
-rw-r--r--lv2/ns/ext/resize-port/resize-port.ttl80
l---------lv2/ns/ext/resize-port/waf1
l---------lv2/ns/ext/resize-port/wscript1
l---------lv2/ns/ext/state/ext.pc.in1
-rw-r--r--lv2/ns/ext/state/manifest.ttl8
-rw-r--r--lv2/ns/ext/state/state.h359
-rw-r--r--lv2/ns/ext/state/state.ttl359
l---------lv2/ns/ext/state/waf1
l---------lv2/ns/ext/state/wscript1
l---------lv2/ns/ext/string-port/ext.pc.in1
-rw-r--r--lv2/ns/ext/string-port/manifest.ttl8
-rw-r--r--lv2/ns/ext/string-port/string-port.h58
-rw-r--r--lv2/ns/ext/string-port/string-port.ttl105
l---------lv2/ns/ext/string-port/waf1
l---------lv2/ns/ext/string-port/wscript1
l---------lv2/ns/ext/time/ext.pc.in1
-rw-r--r--lv2/ns/ext/time/manifest.ttl9
-rw-r--r--lv2/ns/ext/time/time.h131
-rw-r--r--lv2/ns/ext/time/time.ttl57
l---------lv2/ns/ext/time/waf1
l---------lv2/ns/ext/time/wscript1
l---------lv2/ns/ext/ui-resize/ext.pc.in1
-rw-r--r--lv2/ns/ext/ui-resize/manifest.ttl9
-rw-r--r--lv2/ns/ext/ui-resize/ui-resize.h58
-rw-r--r--lv2/ns/ext/ui-resize/ui-resize.ttl43
l---------lv2/ns/ext/ui-resize/waf1
l---------lv2/ns/ext/ui-resize/wscript1
l---------lv2/ns/ext/uri-map/ext.pc.in1
-rw-r--r--lv2/ns/ext/uri-map/manifest.ttl8
-rw-r--r--lv2/ns/ext/uri-map/uri-map.h92
-rw-r--r--lv2/ns/ext/uri-map/uri-map.ttl93
l---------lv2/ns/ext/uri-map/waf1
l---------lv2/ns/ext/uri-map/wscript1
l---------lv2/ns/ext/urid/ext.pc.in1
-rw-r--r--lv2/ns/ext/urid/manifest.ttl9
-rw-r--r--lv2/ns/ext/urid/urid.h115
-rw-r--r--lv2/ns/ext/urid/urid.ttl81
l---------lv2/ns/ext/urid/waf1
l---------lv2/ns/ext/urid/wscript1
l---------lv2/ns/extensions/ui/ext.pc.in1
-rw-r--r--lv2/ns/extensions/ui/lv2-ui.doap.ttl74
-rw-r--r--lv2/ns/extensions/ui/manifest.ttl9
-rw-r--r--lv2/ns/extensions/ui/ui.h247
-rw-r--r--lv2/ns/extensions/ui/ui.ttl235
l---------lv2/ns/extensions/ui/waf1
l---------lv2/ns/extensions/ui/wscript1
l---------lv2/ns/extensions/units/ext.pc.in1
-rw-r--r--lv2/ns/extensions/units/lv2-units.doap.ttl72
-rw-r--r--lv2/ns/extensions/units/manifest.ttl9
-rw-r--r--lv2/ns/extensions/units/units.ttl408
l---------lv2/ns/extensions/units/waf1
l---------lv2/ns/extensions/units/wscript1
-rw-r--r--lv2/ns/index.html.in32
-rw-r--r--lv2/ns/lv2core/AUTHORS13
-rw-r--r--lv2/ns/lv2core/COPYING16
-rw-r--r--lv2/ns/lv2core/INSTALL41
-rw-r--r--lv2/ns/lv2core/README42
-rw-r--r--lv2/ns/lv2core/lv2.h299
-rw-r--r--lv2/ns/lv2core/lv2core.doap.ttl117
-rw-r--r--lv2/ns/lv2core/lv2core.pc.in10
-rw-r--r--lv2/ns/lv2core/lv2core.ttl883
-rw-r--r--lv2/ns/lv2core/manifest.ttl10
-rwxr-xr-xlv2/ns/lv2core/wafbin91475 -> 0 bytes
-rw-r--r--lv2/ns/lv2core/wscript134
172 files changed, 0 insertions, 10836 deletions
diff --git a/lv2/ns/ext/atom/atom-helpers.h b/lv2/ns/ext/atom/atom-helpers.h
deleted file mode 100644
index 6fff74b..0000000
--- a/lv2/ns/ext/atom/atom-helpers.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- Copyright 2008-2012 David Robillard <http://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.
-*/
-
-/**
- @file atom-helpers.h Helper functions for the LV2 Atom extension.
-
- Note these functions are all static inline, do not take their address.
-
- This header is non-normative, it is provided for convenience.
-*/
-
-#ifndef LV2_ATOM_HELPERS_H
-#define LV2_ATOM_HELPERS_H
-
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
-
-#ifdef __cplusplus
-extern "C" {
-#else
-# include <stdbool.h>
-#endif
-
-/** Pad a size to 64 bits. */
-static inline uint32_t
-lv2_atom_pad_size(uint32_t size)
-{
- return (size + 7) & (~7);
-}
-
-/** Return true iff @p atom is null. */
-static inline bool
-lv2_atom_is_null(const LV2_Atom* atom)
-{
- return !atom || (atom->type == 0 && atom->size == 0);
-}
-
-/** Return true iff @p a is equal to @p b. */
-static inline bool
-lv2_atom_equals(const LV2_Atom* a, const LV2_Atom* b)
-{
- return (a == b) || (
- (a->type == b->type) &&
- (a->size == b->size) &&
- !memcmp(LV2_ATOM_CONTENTS(LV2_Atom, a),
- LV2_ATOM_CONTENTS(LV2_Atom, b),
- a->size));
-}
-
-/**
- @name Sequence Iterator
- @{
-*/
-
-/** An iterator over the elements of an LV2_Atom_Sequence. */
-typedef LV2_Atom_Event* LV2_Atom_Sequence_Iter;
-
-/** Get an iterator pointing to the first element in @p tup. */
-static inline LV2_Atom_Sequence_Iter
-lv2_sequence_begin(const LV2_Atom_Sequence* seq)
-{
- return (LV2_Atom_Sequence_Iter)(LV2_ATOM_CONTENTS(LV2_Atom_Sequence, seq));
-}
-
-/** Return true iff @p i has reached the end of @p tup. */
-static inline bool
-lv2_sequence_is_end(const LV2_Atom_Sequence* seq, LV2_Atom_Sequence_Iter i)
-{
- return (uint8_t*)i >= ((uint8_t*)seq + sizeof(LV2_Atom) + seq->atom.size);
-}
-
-/** Return an iterator to the element following @p i. */
-static inline LV2_Atom_Sequence_Iter
-lv2_sequence_iter_next(const LV2_Atom_Sequence_Iter i)
-{
- return (LV2_Atom_Sequence_Iter)((uint8_t*)i
- + sizeof(LV2_Atom_Event)
- + lv2_atom_pad_size(i->body.size));
-}
-
-/** Return the element pointed to by @p i. */
-static inline LV2_Atom_Event*
-lv2_sequence_iter_get(LV2_Atom_Sequence_Iter i)
-{
- return (LV2_Atom_Event*)i;
-}
-
-/**
- A macro for iterating over all events in a Sequence.
- @param sequence The sequence to iterate over
- @param iter The name of the iterator
-
- This macro is used similarly to a for loop (which it expands to), e.g.:
- @code
- LV2_SEQUENCE_FOREACH(sequence, i) {
- LV2_Atom_Event* ev = lv2_sequence_iter_get(i);
- // Do something with ev here...
- }
- @endcode
-*/
-#define LV2_SEQUENCE_FOREACH(sequence, iter) \
- for (LV2_Atom_Sequence_Iter (iter) = lv2_sequence_begin(sequence); \
- !lv2_sequence_is_end(sequence, (iter)); \
- (iter) = lv2_sequence_iter_next(iter))
-
-/**
- @}
- @name Tuple Iterator
- @{
-*/
-
-/** An iterator over the elements of an LV2_Atom_Tuple. */
-typedef LV2_Atom* LV2_Atom_Tuple_Iter;
-
-/** Get an iterator pointing to the first element in @p tup. */
-static inline LV2_Atom_Tuple_Iter
-lv2_tuple_begin(const LV2_Atom_Tuple* tup)
-{
- return (LV2_Atom_Tuple_Iter)(LV2_ATOM_BODY(tup));
-}
-
-/** Return true iff @p i has reached the end of @p tup. */
-static inline bool
-lv2_tuple_is_end(const LV2_Atom_Tuple* tup, LV2_Atom_Tuple_Iter i)
-{
- return (uint8_t*)i >= ((uint8_t*)tup + sizeof(LV2_Atom) + tup->atom.size);
-}
-
-/** Return an iterator to the element following @p i. */
-static inline LV2_Atom_Tuple_Iter
-lv2_tuple_iter_next(const LV2_Atom_Tuple_Iter i)
-{
- return (LV2_Atom_Tuple_Iter)(
- (uint8_t*)i + sizeof(LV2_Atom) + lv2_atom_pad_size(i->size));
-}
-
-/** Return the element pointed to by @p i. */
-static inline LV2_Atom*
-lv2_tuple_iter_get(LV2_Atom_Tuple_Iter i)
-{
- return (LV2_Atom*)i;
-}
-
-/**
- A macro for iterating over all properties of a Tuple.
- @param tuple The tuple to iterate over
- @param iter The name of the iterator
-
- This macro is used similarly to a for loop (which it expands to), e.g.:
- @code
- LV2_TUPLE_FOREACH(tuple, i) {
- LV2_Atom_Property* prop = lv2_tuple_iter_get(i);
- // Do something with prop here...
- }
- @endcode
-*/
-#define LV2_TUPLE_FOREACH(tuple, iter) \
- for (LV2_Atom_Tuple_Iter (iter) = lv2_tuple_begin(tuple); \
- !lv2_tuple_is_end(tuple, (iter)); \
- (iter) = lv2_tuple_iter_next(iter))
-
-/**
- @}
- @name Object Iterator
- @{
-*/
-
-/** An iterator over the properties of an LV2_Atom_Object. */
-typedef LV2_Atom_Property_Body* LV2_Atom_Object_Iter;
-
-/** Get an iterator pointing to the first property in @p obj. */
-static inline LV2_Atom_Object_Iter
-lv2_object_begin(const LV2_Atom_Object* obj)
-{
- return (LV2_Atom_Object_Iter)(LV2_ATOM_CONTENTS(LV2_Atom_Object, obj));
-}
-
-/** Return true iff @p i has reached the end of @p obj. */
-static inline bool
-lv2_object_is_end(const LV2_Atom_Object* obj, LV2_Atom_Object_Iter i)
-{
- return (uint8_t*)i >= ((uint8_t*)obj + sizeof(LV2_Atom) + obj->atom.size);
-}
-
-/** Return true iff @p l points to the same property as @p r. */
-static inline bool
-lv2_object_iter_equals(const LV2_Atom_Object_Iter l,
- const LV2_Atom_Object_Iter r)
-{
- return l == r;
-}
-
-/** Return an iterator to the property following @p i. */
-static inline LV2_Atom_Object_Iter
-lv2_object_iter_next(const LV2_Atom_Object_Iter i)
-{
- const LV2_Atom* const value = (LV2_Atom*)((uint8_t*)i + sizeof(i));
- return (LV2_Atom_Object_Iter)((uint8_t*)i
- + sizeof(LV2_Atom_Property_Body)
- + lv2_atom_pad_size(value->size));
-}
-
-/** Return the property pointed to by @p i. */
-static inline LV2_Atom_Property_Body*
-lv2_object_iter_get(LV2_Atom_Object_Iter i)
-{
- return (LV2_Atom_Property_Body*)i;
-}
-
-/**
- A macro for iterating over all properties of an Object.
- @param object The object to iterate over
- @param iter The name of the iterator
-
- This macro is used similarly to a for loop (which it expands to), e.g.:
- @code
- LV2_OBJECT_FOREACH(object, i) {
- LV2_Atom_Property* prop = lv2_object_iter_get(i);
- // Do something with prop here...
- }
- @endcode
-*/
-#define LV2_OBJECT_FOREACH(object, iter) \
- for (LV2_Atom_Object_Iter (iter) = lv2_object_begin(object); \
- !lv2_object_is_end(object, (iter)); \
- (iter) = lv2_object_iter_next(iter))
-
-/**
- @}
- @name Object Query
- @{
-*/
-
-/** A single entry in an Object query. */
-typedef struct {
- uint32_t key; /**< Key to query (input set by user) */
- const LV2_Atom** value; /**< Found value (output set by query function) */
-} LV2_Atom_Object_Query;
-
-static const LV2_Atom_Object_Query LV2_OBJECT_QUERY_END = { 0, NULL };
-
-/**
- Get an object's values for various keys.
-
- The value pointer of each item in @p query will be set to the location of
- the corresponding value in @p object. Every value pointer in @p query MUST
- be initialised to NULL. This function reads @p object in a single linear
- sweep. By allocating @p query on the stack, objects can be "queried"
- quickly without allocating any memory. This function is realtime safe.
-
- For example:
- @code
- const LV2_Atom* name = NULL;
- const LV2_Atom* age = NULL;
- LV2_Atom_Object_Query q[] = {
- { urids.eg_name, &name },
- { urids.eg_age, &age },
- LV2_OBJECT_QUERY_END
- };
- lv2_object_get(obj, q);
- // name and age are now set to the appropriate values in obj, or NULL.
- @endcode
-*/
-static inline int
-lv2_object_get(const LV2_Atom_Object* object, LV2_Atom_Object_Query* query)
-{
- int matches = 0;
- int n_queries = 0;
-
- /* Count number of query keys so we can short-circuit when done */
- for (LV2_Atom_Object_Query* q = query; q->key; ++q) {
- ++n_queries;
- }
-
- LV2_OBJECT_FOREACH(object, o) {
- const LV2_Atom_Property_Body* prop = lv2_object_iter_get(o);
- for (LV2_Atom_Object_Query* q = query; q->key; ++q) {
- if (q->key == prop->key && !*q->value) {
- *q->value = &prop->value;
- if (++matches == n_queries) {
- return matches;
- }
- break;
- }
- }
- }
- return matches;
-}
-
-/**
- @}
-*/
-
-#endif /* LV2_ATOM_HELPERS_H */
diff --git a/lv2/ns/ext/atom/atom-test.c b/lv2/ns/ext/atom/atom-test.c
deleted file mode 100644
index 1a88d7d..0000000
--- a/lv2/ns/ext/atom/atom-test.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- Copyright 2012 David Robillard <http://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.
-*/
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "lv2/lv2plug.in/ns/ext/atom/atom-helpers.h"
-#include "lv2/lv2plug.in/ns/ext/atom/forge.h"
-
-char** uris = NULL;
-size_t n_uris = 0;
-
-char*
-copy_string(const char* str)
-{
- const size_t len = strlen(str);
- char* dup = (char*)malloc(len + 1);
- memcpy(dup, str, len + 1);
- return dup;
-}
-
-LV2_URID
-urid_map(LV2_URID_Map_Handle handle, const char* uri)
-{
- for (size_t i = 0; i < n_uris; ++i) {
- if (!strcmp(uris[i], uri)) {
- return i + 1;
- }
- }
-
- uris = (char**)realloc(uris, ++n_uris * sizeof(char*));
- uris[n_uris - 1] = copy_string(uri);
- return n_uris;
-}
-
-int
-test_fail(const char* fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- fprintf(stderr, "error: ");
- vfprintf(stderr, fmt, args);
- va_end(args);
- return 1;
-}
-
-int
-main()
-{
- LV2_URID_Map map = { NULL, urid_map };
- LV2_Atom_Forge forge;
- lv2_atom_forge_init(&forge, &map);
-
- LV2_URID eg_Object = urid_map(NULL, "http://example.org/Object");
- LV2_URID eg_one = urid_map(NULL, "http://example.org/one");
- LV2_URID eg_two = urid_map(NULL, "http://example.org/two");
- LV2_URID eg_three = urid_map(NULL, "http://example.org/three");
- LV2_URID eg_four = urid_map(NULL, "http://example.org/four");
- LV2_URID eg_true = urid_map(NULL, "http://example.org/true");
- LV2_URID eg_false = urid_map(NULL, "http://example.org/false");
- LV2_URID eg_uri = urid_map(NULL, "http://example.org/uri");
- LV2_URID eg_string = urid_map(NULL, "http://example.org/string");
- LV2_URID eg_literal = urid_map(NULL, "http://example.org/literal");
- LV2_URID eg_tuple = urid_map(NULL, "http://example.org/tuple");
- LV2_URID eg_vector = urid_map(NULL, "http://example.org/vector");
- LV2_URID eg_seq = urid_map(NULL, "http://example.org/seq");
-
-#define BUF_SIZE 1024
-#define NUM_PROPS 12
-
- uint8_t buf[BUF_SIZE];
- lv2_atom_forge_set_buffer(&forge, buf, BUF_SIZE);
-
- LV2_Atom* obj = (LV2_Atom*)lv2_atom_forge_object(
- &forge, NULL, 0, eg_Object);
-
- // eg_one = (Int32)1
- lv2_atom_forge_property_head(&forge, obj, eg_one, 0);
- LV2_Atom_Int32* one = lv2_atom_forge_int32(&forge, obj, 1);
- if (one->value != 1) {
- return test_fail("%d != 1\n", one->value);
- }
-
- // eg_two = (Int64)2
- lv2_atom_forge_property_head(&forge, obj, eg_two, 0);
- LV2_Atom_Int64* two = lv2_atom_forge_int64(&forge, obj, 2);
- if (two->value != 2) {
- return test_fail("%ld != 2\n", two->value);
- }
-
- // eg_three = (Float)3.0
- lv2_atom_forge_property_head(&forge, obj, eg_three, 0);
- LV2_Atom_Float* three = lv2_atom_forge_float(&forge, obj, 3.0f);
- if (three->value != 3) {
- return test_fail("%f != 3\n", three->value);
- }
-
- // eg_four = (Double)4.0
- lv2_atom_forge_property_head(&forge, obj, eg_four, 0);
- LV2_Atom_Double* four = lv2_atom_forge_double(&forge, obj, 4.0);
- if (four->value != 4) {
- return test_fail("%ld != 4\n", four->value);
- }
-
- // eg_true = (Bool)1
- lv2_atom_forge_property_head(&forge, obj, eg_true, 0);
- LV2_Atom_Bool* t = lv2_atom_forge_bool(&forge, obj, true);
- if (t->value != 1) {
- return test_fail("%ld != 1 (true)\n", t->value);
- }
-
- // eg_false = (Bool)0
- lv2_atom_forge_property_head(&forge, obj, eg_false, 0);
- LV2_Atom_Bool* f = lv2_atom_forge_bool(&forge, obj, false);
- if (f->value != 0) {
- return test_fail("%ld != 0 (false)\n", f->value);
- }
-
- // eg_uri = (URID)"http://example.org/value"
- LV2_URID eg_value = urid_map(NULL, "http://example.org/value");
- lv2_atom_forge_property_head(&forge, obj, eg_uri, 0);
- LV2_Atom_URID* uri = lv2_atom_forge_urid(&forge, obj, eg_value);
- if (uri->id != eg_value) {
- return test_fail("%u != %u\n", uri->id, eg_value);
- }
-
- // eg_string = (String)"hello"
- lv2_atom_forge_property_head(&forge, obj, eg_string, 0);
- LV2_Atom_String* string = lv2_atom_forge_string(
- &forge, obj, (const uint8_t*)"hello", strlen("hello"));
- uint8_t* body = (uint8_t*)LV2_ATOM_BODY(string);
- if (strcmp((const char*)body, "hello")) {
- return test_fail("%s != \"hello\"\n", (const char*)body);
- }
-
- // eg_literal = (Literal)"hello"@fr
- lv2_atom_forge_property_head(&forge, obj, eg_literal, 0);
- LV2_Atom_Literal* literal = lv2_atom_forge_literal(
- &forge, obj, (const uint8_t*)"bonjour", strlen("bonjour"),
- 0, urid_map(NULL, "http://lexvo.org/id/term/fr"));
- body = (uint8_t*)LV2_ATOM_CONTENTS(LV2_Atom_Literal, literal);
- if (strcmp((const char*)body, "bonjour")) {
- return test_fail("%s != \"bonjour\"\n", (const char*)body);
- }
-
- // eg_tuple = "foo",true
- lv2_atom_forge_property_head(&forge, obj, eg_tuple, 0);
- LV2_Atom_Tuple* tuple = lv2_atom_forge_tuple(&forge, obj);
- LV2_Atom_String* tup0 = lv2_atom_forge_string(
- &forge, (LV2_Atom*)tuple, (const uint8_t*)"foo", strlen("foo"));
- LV2_Atom_Bool* tup1 = lv2_atom_forge_bool(&forge, (LV2_Atom*)tuple, true);
- obj->size += ((LV2_Atom*)tuple)->size;
- LV2_Atom_Tuple_Iter i = lv2_tuple_begin(tuple);
- if (lv2_tuple_is_end(tuple, i)) {
- return test_fail("Tuple iterator is empty\n");
- }
- LV2_Atom* tup0i = (LV2_Atom*)lv2_tuple_iter_get(i);
- if (!lv2_atom_equals((LV2_Atom*)tup0, tup0i)) {
- return test_fail("Corrupt tuple element 0\n");
- }
- i = lv2_tuple_iter_next(i);
- if (lv2_tuple_is_end(tuple, i)) {
- return test_fail("Premature end of tuple iterator\n");
- }
- LV2_Atom* tup1i = lv2_tuple_iter_get(i);
- if (!lv2_atom_equals((LV2_Atom*)tup1, tup1i)) {
- return test_fail("Corrupt tuple element 1\n");
- }
- i = lv2_tuple_iter_next(i);
- if (!lv2_tuple_is_end(tuple, i)) {
- return test_fail("Tuple iter is not at end\n");
- }
-
- // eg_vector = (Vector<Int32>)1,2,3,4
- lv2_atom_forge_property_head(&forge, obj, eg_vector, 0);
- int32_t elems[] = { 1, 2, 3, 4 };
- LV2_Atom_Vector* vector = lv2_atom_forge_vector(
- &forge, obj, 4, forge.Int32, sizeof(int32_t), elems);
- void* vec_body = LV2_ATOM_CONTENTS(LV2_Atom_Vector, vector);
- if (memcmp(elems, vec_body, sizeof(elems))) {
- return test_fail("Corrupt vector\n");
- }
-
- // eg_seq = (Sequence)1, 2
- lv2_atom_forge_property_head(&forge, obj, eg_seq, 0);
- LV2_Atom_Sequence* seq = lv2_atom_forge_sequence_head(&forge, obj, 0);
- lv2_atom_forge_audio_time(&forge, (LV2_Atom*)seq, 0, 0);
- lv2_atom_forge_int32(&forge, (LV2_Atom*)seq, 1);
- lv2_atom_forge_audio_time(&forge, (LV2_Atom*)seq, 1, 0);
- lv2_atom_forge_int32(&forge, (LV2_Atom*)seq, 2);
- obj->size += seq->atom.size - sizeof(LV2_Atom);
-
- // Test equality
- LV2_Atom_Int32 itwo = { { forge.Int32, sizeof(int32_t) }, 2 };
- if (lv2_atom_equals((LV2_Atom*)one, (LV2_Atom*)two)) {
- return test_fail("1 == 2.0\n");
- } else if (lv2_atom_equals((LV2_Atom*)one, (LV2_Atom*)&itwo)) {
- return test_fail("1 == 2\n");
- }
-
- unsigned n_events = 0;
- LV2_SEQUENCE_FOREACH(seq, i) {
- LV2_Atom_Event* ev = lv2_sequence_iter_get(i);
- if (ev->time.audio.frames != n_events
- || ev->time.audio.subframes != 0) {
- return test_fail("Corrupt event %u has bad time\n", n_events);
- } else if (ev->body.type != forge.Int32) {
- return test_fail("Corrupt event %u has bad type\n", n_events);
- } else if (((LV2_Atom_Int32*)&ev->body)->value != (int)n_events + 1) {
- return test_fail("Event %u != %d\n", n_events, n_events + 1);
- }
- ++n_events;
- }
-
- unsigned n_props = 0;
- LV2_OBJECT_FOREACH((LV2_Atom_Object*)obj, i) {
- LV2_Atom_Property_Body* prop = lv2_object_iter_get(i);
- if (!prop->key) {
- return test_fail("Corrupt property %u has no key\n", n_props);
- } else if (prop->context) {
- return test_fail("Corrupt property %u has context\n", n_props);
- }
- ++n_props;
- }
-
- if (n_props != NUM_PROPS) {
- return test_fail("Corrupt object has %u properties != %u\n",
- n_props, NUM_PROPS);
- }
-
- const LV2_Atom* one_match = NULL;
- const LV2_Atom* two_match = NULL;
- const LV2_Atom* three_match = NULL;
- const LV2_Atom* four_match = NULL;
- const LV2_Atom* true_match = NULL;
- const LV2_Atom* false_match = NULL;
- const LV2_Atom* uri_match = NULL;
- const LV2_Atom* string_match = NULL;
- const LV2_Atom* literal_match = NULL;
- const LV2_Atom* tuple_match = NULL;
- const LV2_Atom* vector_match = NULL;
- const LV2_Atom* seq_match = NULL;
- LV2_Atom_Object_Query q[] = {
- { eg_one, &one_match },
- { eg_two, &two_match },
- { eg_three, &three_match },
- { eg_four, &four_match },
- { eg_true, &true_match },
- { eg_false, &false_match },
- { eg_uri, &uri_match },
- { eg_string, &string_match },
- { eg_literal, &literal_match },
- { eg_tuple, &tuple_match },
- { eg_vector, &vector_match },
- { eg_seq, &seq_match },
- LV2_OBJECT_QUERY_END
- };
-
- unsigned matches = lv2_object_get((LV2_Atom_Object*)obj, q);
- if (matches != n_props) {
- return test_fail("Query failed, %u matches != %u\n", matches, n_props);
- } else if (!lv2_atom_equals((LV2_Atom*)one, one_match)) {
- return test_fail("Bad match one\n");
- } else if (!lv2_atom_equals((LV2_Atom*)two, two_match)) {
- return test_fail("Bad match two\n");
- } else if (!lv2_atom_equals((LV2_Atom*)three, three_match)) {
- return test_fail("Bad match three\n");
- } else if (!lv2_atom_equals((LV2_Atom*)four, four_match)) {
- return test_fail("Bad match four\n");
- } else if (!lv2_atom_equals((LV2_Atom*)t, true_match)) {
- return test_fail("Bad match true\n");
- } else if (!lv2_atom_equals((LV2_Atom*)f, false_match)) {
- return test_fail("Bad match false\n");
- } else if (!lv2_atom_equals((LV2_Atom*)uri, uri_match)) {
- return test_fail("Bad match URI\n");
- } else if (!lv2_atom_equals((LV2_Atom*)string, string_match)) {
- return test_fail("Bad match string\n");
- } else if (!lv2_atom_equals((LV2_Atom*)literal, literal_match)) {
- return test_fail("Bad match literal\n");
- } else if (!lv2_atom_equals((LV2_Atom*)tuple, tuple_match)) {
- return test_fail("Bad match tuple\n");
- } else if (!lv2_atom_equals((LV2_Atom*)vector, vector_match)) {
- return test_fail("Bad match vector\n");
- } else if (!lv2_atom_equals((LV2_Atom*)seq, seq_match)) {
- return test_fail("Bad match sequence\n");
- }
-
- printf("All tests passed.\n");
- return 0;
-}
diff --git a/lv2/ns/ext/atom/atom.h b/lv2/ns/ext/atom/atom.h
deleted file mode 100644
index bea9197..0000000
--- a/lv2/ns/ext/atom/atom.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- Copyright 2008-2012 David Robillard <http://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.
-*/
-
-/**
- @file atom.h C header for the LV2 Atom extension
- <http://lv2plug.in/ns/ext/atom>.
-
- This header describes the binary layout of various types defined in the
- atom extension.
-*/
-
-#ifndef LV2_ATOM_H
-#define LV2_ATOM_H
-
-#define LV2_ATOM_URI "http://lv2plug.in/ns/ext/atom"
-
-#define LV2_ATOM_REFERENCE_TYPE 0
-
-#include <stdint.h>
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** This expression will fail to compile if double does not fit in 64 bits. */
-typedef char lv2_atom_assert_double_fits_in_64_bits[
- ((sizeof(double) <= sizeof(uint64_t)) * 2) - 1];
-
-/**
- Return a pointer to the contents of a variable-sized atom.
- @param type The type of the atom, e.g. LV2_Atom_String.
- @param atom A variable-sized atom.
-*/
-#define LV2_ATOM_CONTENTS(type, atom) \
- ((void*)((uint8_t*)(atom) + sizeof(type)))
-
-/** Return a pointer to the body of @p atom (just past the LV2_Atom head). */
-#define LV2_ATOM_BODY(atom) LV2_ATOM_CONTENTS(LV2_Atom, atom)
-
-/** The header of an atom:Atom. */
-typedef struct {
- uint32_t type; /**< Type of this atom (mapped URI). */
- uint32_t size; /**< Size in bytes, not including type and size. */
-} LV2_Atom;
-
-/** An atom:Int32 or atom:Bool. May be cast to LV2_Atom. */
-typedef struct {
- LV2_Atom atom;
- int32_t value;
-} LV2_Atom_Int32;
-
-/** An atom:Int64. May be cast to LV2_Atom. */
-typedef struct {
- LV2_Atom atom;
- int64_t value;
-} LV2_Atom_Int64;
-
-/** An atom:Float. May be cast to LV2_Atom. */
-typedef struct {
- LV2_Atom atom;
- float value;
-} LV2_Atom_Float;
-
-/** An atom:Double. May be cast to LV2_Atom. */
-typedef struct {
- LV2_Atom atom;
- double value;
-} LV2_Atom_Double;
-
-/** An atom:Bool. May be cast to LV2_Atom. */
-typedef LV2_Atom_Int32 LV2_Atom_Bool;
-
-/** An atom:URID. May be cast to LV2_Atom. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- uint32_t id; /**< URID. */
-} LV2_Atom_URID;
-
-/** The complete header of an atom:String. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- /* Contents (a null-terminated UTF-8 string) follow here. */
-} LV2_Atom_String;
-
-/** The header of an atom:Literal body. */
-typedef struct {
- uint32_t datatype; /**< The ID of the datatype of this literal. */
- uint32_t lang; /**< The ID of the language of this literal. */
-} LV2_Atom_Literal_Head;
-
-/** The complete header of an atom:Literal. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- LV2_Atom_Literal_Head literal; /**< Literal body header. */
- /* Contents (a null-terminated UTF-8 string) follow here. */
-} LV2_Atom_Literal;
-
-/** The complete header of an atom:Tuple. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- /* Contents (a series of complete atoms) follow here. */
-} LV2_Atom_Tuple;
-
-/** The complete header of an atom:Vector. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- uint32_t elem_count; /**< The number of elements in the vector */
- uint32_t elem_type; /**< The type of each element in the vector */
- /* Contents (a series of packed atom bodies) follow here. */
-} LV2_Atom_Vector;
-
-/** The header of an atom:Property body (e.g. in an atom:Object). */
-typedef struct {
- uint32_t key; /**< Key (predicate) (mapped URI). */
- uint32_t context; /**< Context URID (may be, and generally is, 0). */
- LV2_Atom value; /**< Value atom header. */
-} LV2_Atom_Property_Body;
-
-/** The complete header of an atom:Property. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- uint32_t key; /**< Key (predicate) (mapped URI). */
- uint32_t context; /**< Context URID (may be, and generally is, 0). */
- LV2_Atom value; /**< Value atom header. */
- /* Value atom body follows here. */
-} LV2_Atom_Property;
-
-/** The complete header of an atom:Object. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- uint32_t id; /**< URID for atom:Resource, or blank ID for atom:Blank. */
- uint32_t type; /**< Type URID (same as rdf:type, for fast dispatch). */
- /* Contents (a series of property bodies) follow here. */
-} LV2_Atom_Object;
-
-/** The complete header of an atom:Response. */
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- uint32_t source; /**< ID of message this is a response to (may be 0). */
- uint32_t type; /**< Specific response type URID (may be 0). */
- uint32_t seq; /**< Response sequence number, 0 for end. */
- LV2_Atom body; /**< Body atom header (may be empty). */
- /* Body optionally follows here. */
-} LV2_Atom_Response;
-
-/** A time stamp in frames. Note this type is NOT an LV2_Atom. */
-typedef struct {
- uint32_t frames; /**< Time in frames relative to this block. */
- uint32_t subframes; /**< Fractional time in 1/(2^32)ths of a frame. */
-} LV2_Atom_Audio_Time;
-
-/** The header of an atom:Event. Note this type is NOT an LV2_Atom. */
-typedef struct {
- /** Time stamp. Which type is valid is determined by context. */
- union {
- LV2_Atom_Audio_Time audio; /**< Time in audio frames. */
- double beats; /**< Time in beats. */
- } time;
- LV2_Atom body; /**< Event body atom header. */
- /* Body atom contents follow here. */
-} LV2_Atom_Event;
-
-/**
- A sequence of events (time-stamped atoms).
-
- This is used as the contents of an atom:EventPort, but is a generic Atom
- type which can be used anywhere.
-
- The contents of a sequence is a series of LV2_Atom_Event, each aligned
- to 64-bits, e.g.:
- <pre>
- | Event 1 (size 6) | Event 2
- | | | | | | | | |
- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
- |FRAMES |SUBFRMS|TYPE |SIZE |DATADATADATAPAD|FRAMES |SUBFRMS|...
- </pre>
-*/
-typedef struct {
- LV2_Atom atom; /**< Atom header. */
- uint32_t capacity; /**< Maximum size of contents. */
- uint32_t time_type; /**< URID type of event time stamps. */
- /* Contents (a series of events) follow here. */
-} LV2_Atom_Sequence;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* LV2_ATOM_H */
diff --git a/lv2/ns/ext/atom/atom.ttl b/lv2/ns/ext/atom/atom.ttl
deleted file mode 100644
index 7d534d0..0000000
--- a/lv2/ns/ext/atom/atom.ttl
+++ /dev/null
@@ -1,462 +0,0 @@
-# LV2 Atom Extension
-# Copyright 2007-2012 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 owl: <http://www.w3.org/2002/07/owl#> .
-@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/atom>
- a lv2:Specification ;
- doap:name "LV2 Atom" ;
- doap:shortdesc "A generic value container and several data types." ;
- doap:license <http://opensource.org/licenses/isc> ;
- rdfs:seeAlso <atom-helpers.h> ,
- <forge.h> ;
- doap:release [
- doap:revision "0.4" ;
- doap:created "2012-02-07"
- ] ;
- 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 generic container for data, called an <q>Atom</q>,
-and several basic Atom types which can be used to express structured data.
-Atoms allow LV2 plugins and hosts to communicate, process, serialise, and store
-values of any type via a generic mechanism (e.g. ports, files, networks,
-ringbuffers, etc.). Atoms are, with one exception, Plain Old Data (POD) which
-may safely be copied (e.g. with a simple call to <code>memcpy</code>).</p>
-
-<p>Since Atom communication can be implemented generically, plugins that
-understand some type can be used together in a host that does not understand
-that type, and plugins (e.g. routers, delays) can process atoms of unknown
-type.</p>
-
-<p>Atoms can and should be used anywhere values of various types must be stored
-or transmitted. This extension defines port types, atom:ValuePort and
-atom:MessagePort, which are connected to an Atom. The atom:Sequence type in
-conjunction with atom:MessagePort is intended to replace the <a
-href="http://lv2plug.in/ns/ext/event">LV2 event</a> extension.</p>
-
-<p>The types defined in this extension should be powerful enough to express
-almost any structure. Implementers SHOULD build structures out of the types
-provided here, rather than define new binary formats (e.g. use atom:Object
-rather than a new C <code>struct</code> type). New binary formats are an
-implementation burden which harms interoperabilty, and should only be defined
-where absolutely necessary.</p>
-
-<p>Implementing this extension requires a facility for mapping URIs to
-integers, such as the <a href="http://lv2plug.in/ns/ext/urid">LV2 URID</a>
-extension.</p>
-""" .
-
-atom:cType
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:label "C type" ;
- rdfs:domain rdfs:Class ;
- rdfs:range xsd:string ;
- rdfs:comment """
-The identifier for a C type describing the in-memory representation of
-an instance of this class.
-""" .
-
-atom:Atom
- a rdfs:Class ;
- rdfs:label "Atom" ;
- atom:cType "LV2_Atom" ;
- lv2:documentation """
-<p>Abstract base class for all atoms. An LV2_Atom has a 32-bit
-<code>type</code> and <code>size</code> followed by a body of <code>size</code>
-bytes. Atoms MUST be 64-bit aligned.</p>
-
-<p>All concrete Atom types (subclasses of this class) MUST define a precise
-binary layout for their body.</p>
-
-<p>The <code>type</code> field is the URI of an Atom type mapped to an integer.
-Implementations SHOULD gracefully ignore, or pass through, atoms with unknown
-types.</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, the details of reference handling are
-currently unspecified. A future revision of this extension, or a different
-extension, may define how to use non-POD data and references. Implementations
-MUST NOT send references to another implementation unless the receiver is
-explicitly known to support references (e.g. by supporting a feature). The
-atom with both <code>type</code> <em>and</em> <code>size</code> 0 is
-<q>null</q>, which is not considered a Reference.</p>
-""" .
-
-atom:Bang
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Bang" ;
- rdfs:comment "Generic activity or trigger, with no body." .
-
-atom:Number
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Number" .
-
-atom:Int32
- a rdfs:Class ;
- rdfs:subClassOf atom:Number ;
- rdfs:label "Signed 32-bit integer" ;
- atom:cType "LV2_Atom_Int32" .
-
-atom:Int64
- a rdfs:Class ;
- rdfs:subClassOf atom:Number ;
- rdfs:label "Signed 64-bit integer" ;
- atom:cType "LV2_Atom_Int64" .
-
-atom:Float
- a rdfs:Class ;
- rdfs:subClassOf atom:Number ;
- rdfs:label "32-bit IEEE-754 floating point number" ;
- atom:cType "LV2_Atom_Float" .
-
-atom:Double
- a rdfs:Class ;
- rdfs:subClassOf atom:Number ;
- rdfs:label "64-bit IEEE-754 floating point number" ;
- atom:cType "LV2_Atom_Double" .
-
-atom:Bool
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Boolean" ;
- atom:cType "LV2_Atom_Bool" ;
- rdfs:comment "An Int32 where 0 is false and any other value is true." .
-
-atom:String
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "String" ;
- atom:cType "LV2_Atom_String" ;
- lv2:documentation """
-<p>A UTF-8 encoded string.</p>
-
-<p>The body of an LV2_Atom_String is a C string in UTF-8 encoding, i.e. an
-array of bytes (<code>uint8_t</code>) terminated with a NULL byte
-(<code>'\\0'</code>).</p>
-
-<p>This type can be used for free-form strings, but in most cases it is better to
-use atom:Literal since this supports a language tag or datatype. Implementations
-SHOULD NOT use atom:String unless translating the string does not make sense and
-the string has no meaningful datatype.</p>
-""" .
-
-atom:Literal
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "String Literal" ;
- atom:cType "LV2_Atom_Literal" ;
- lv2:documentation """
-<p>A UTF-8 encoded string literal, with an optional datatype or language.</p>
-
-<p>This type is compatible with rdf:Literal and is capable of expressing a
-string in any language or a value of any type. A Literal has a
-<code>datatype</code> and <code>lang</code> followed by string data in UTF-8
-encoding. The length of the string data in bytes is <code>size -
-sizeof(LV2_Atom_Literal)</code>, including the terminating NULL character. The
-<code>lang</code> field SHOULD be a URI of the form
-&lt;http://lexvo.org/id/term/LANG&gt; where LANG is an <a
-href="http://www.loc.gov/standards/iso639-2/">ISO 693-2</a> or <a
-href="http://www.loc.gov/standards/iso639-2/">ISO 693-3</a> language code.</p>
-
-<p>A Literal may have a <code>datatype</code> OR a <code>lang</code>, but never
-both.</p>
-
-<p>For example, a Literal can be "Hello" in English:</p>
-<pre class="c-code">
-void set_to_hello_in_english(LV2_Atom_Literal* lit) {
- lit->atom.type = map(expand("atom:Literal"));
- lit->atom.size = 14;
- lit->datatype = 0;
- lit->lang = map("http://lexvo.org/id/term/en");
- memcpy(LV2_ATOM_CONTENTS(LV2_Atom_Literal, lit),
- "Hello",
- sizeof("Hello")); // Assumes enough space
-}
-</pre>
-
-<p>or a Turtle string:</p>
-<pre class="c-code">
-void set_to_turtle_string(LV2_Atom_Literal* lit, const char* ttl) {
- lit->atom.type = map(expand("atom:Literal"));
- lit->atom.size = 64;
- lit->datatype = map("http://www.w3.org/2008/turtle#turtle");
- lit->lang = 0;
- memcpy(LV2_ATOM_CONTENTS(LV2_Atom_Literal, lit),
- ttl,
- strlen(ttl) + 1); // Assumes enough space
-}
-</pre>
-""" .
-
-atom:URID
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Integer ID mapped from a URI" ;
- atom:cType "LV2_Atom_ID" ;
- lv2:documentation """
-<p>An unsigned 32-bit integer mapped from a URI (e.g. with LV2_URID_Map).</p>
-""" .
-
-atom:Vector
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Vector" ;
- atom:cType "LV2_Atom_Vector" ;
- lv2:documentation """
-<p>A homogeneous series of atom bodies with equivalent type and size.</p>
-
-<p>An LV2_Atom_Vector is a 32-bit <code>elem_count</code> and
-<code>elem_type</code> followed by <code>elem_count</code> atom bodies of type
-<code>elem_type</code>. The element type must be a fixed size atom:Atom type,
-i.e. the size of each element is the vector's <code>size /
-elem_count</code>.</p>
-
-<p>For example, an atom:Vector containing 42 elements of type atom:Float:</p>
-<pre class="c-code">
-struct VectorOf42Floats {
- uint32_t type; // map(expand("atom:Vector"))
- uint32_t size; // sizeof(LV2_Atom_Vector) + (42 * sizeof(float);
- uint32_t elem_count; // 42
- uint32_t elem_type; // map(expand("atom:Float"))
- float elems[32];
-};
-</pre>
-
-<p>Note that it is possible to construct a valid Atom for each element
-of the vector, even by an implementation which does not understand
-<code>elem_type</code>.</p>
-""" .
-
-atom:Tuple
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Tuple" ;
- lv2:documentation """
-<p>A series of Atoms with varying <code>type</code> and <code>size</code>.</p>
-
-<p>The body of a Tuple is simply a series of complete atoms, each aligned to
-64 bits.</p>
-""" .
-
-atom:Property
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Property" ;
- atom:cType "LV2_Atom_Property" ;
- lv2:documentation """
-<p>A property of an atom:Object. An LV2_Atom_Property has a URID
-<code>key</code> and <code>context</code>, and an Atom <code>value</code>.
-This corresponds to an RDF Property, where the <q>key</q> is the <q>predicate</q>
-and the <q>value</q> is the object.</p>
-
-<p>The <code>context</code> field can be used to specify a different context
-for each property, where this is useful. Otherwise, it may be 0.</p>
-""" .
-
-atom:Object
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Object" ;
- atom:cType "LV2_Atom_Object" ;
- lv2:documentation """
-<p>An <q>Object</q> is an atom with a set of properties. This corresponds to
-an RDF Resource, and can be thought of as a dictionary with URID keys.</p>
-
-<p>An LV2_Atom_Object has a uint32_t <code>id</code> and uint32_t
-<code>type</code>, followed by a series of atom:Property bodies (without
-headers, i.e. LV2_Atom_Property_Body). The LV2_Atom_Object::type field is
-semantically equivalent to a property with key rdf:type, but is included in the
-structure to allow for fast dispatch.</p>
-
-<p>This is an abstract Atom type, an Object is always either a atom:Resource
-or a atom:Blank.</p>
-""" .
-
-atom:Resource
- a rdfs:Class ;
- rdfs:subClassOf atom:Object ;
- rdfs:label "Resource" ;
- atom:cType "LV2_Atom_Object" ;
- lv2:documentation """
-<p>An atom:Object where the <code>id</code> field is a URID, i.e. an Object
-with a URI.</p>
-""" .
-
-atom:Blank
- a rdfs:Class ;
- rdfs:subClassOf atom:Object ;
- rdfs:label "Blank" ;
- atom:cType "LV2_Atom_Object" ;
- lv2:documentation """
-<p>An atom:Object where the LV2_Atom_Object::id is a blank node ID (NOT a URI).
-The ID of a Blank is valid only within the context the Blank appears in. For
-ports this is the context of the associated run() call, i.e. all ports share
-the same context so outputs can contain IDs that correspond to IDs of blanks in
-the input.</p> """ .
-
-atom:Event
- a rdfs:Class ;
- rdfs:label "Event" ;
- atom:cType "LV2_Atom_Event" ;
- lv2:documentation """
-<p>An atom with a time stamp header prepended, typically an element of an
-atom:Sequence. Note this is not an Atom type.</p>
-""" .
-
-atom:Sequence
- a rdfs:Class ;
- rdfs:subClassOf atom:Atom ;
- rdfs:label "Sequence" ;
- atom:cType "LV2_Atom_Sequence" ;
- lv2:documentation """
-<p>A sequence of atom:Event, i.e. a series of time-stamped Atoms.</p>
-""" .
-
-atom:AtomPort
- a rdfs:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Atom Port" ;
- lv2:documentation """
-<p>A port which contains an lv2:Atom. Ports of this type will be connected to
-a 64-bit aligned LV2_Atom immediately followed by <code>size</code> bytes of
-data.</p>
-
-<p>This is an abstract port type with incomplete semantics which can not be
-used directly as a port type. Atom ports should be either a atom:ValuePort or
-a atom:MessagePort.</p>
-
-<p>Before calling a method on a plugin that writes to an AtomPort output, the
-host MUST set the size of the Atom in that output to the amount of available
-memory immediately following the Atom header. The plugin MUST write a valid
-Atom to that port; leaving it untouched is illegal. If there is no reasonable
-value to write to the port, the plugin MUST write null (the Atom with both
-<code>type</code> and <code>size</code> 0).</p>
-""" .
-
-atom:ValuePort
- a rdfs:Class ;
- rdfs:subClassOf atom:AtomPort ;
- rdfs:label "Value Port" ;
- lv2:documentation """
-
-<p>An AtomPort that contains a persistent <em>value</em>. A <q>value</q> is
-time-independent and may be used numerous times. A ValuePort is <q>pure</q> in
-the sense that it may affect output but MUST NOT affect persistent plugin state
-in any externally visible way.</p>
-
-<ul>
-<li>If a plugin has fixed values for all inputs, all ValuePort outputs are also
-fixed regardless of the number of times the plugin is run.</li>
-
-<li>If a plugin has fixed input values for all ports except a ValuePort, each
-value of that port corresponds to a single set of values for all
-ValuePort outputs.</li>
-
-<li>If the plugin saves state other than port values (e.g. using the <a
-href="http://lv2plug.in/ns/ext/state">LV2 State</a> extension), changing only
-the value of a ValuePort input MUST NOT change that state. In other words,
-value port changes MUST NOT trigger a state change that requires a save.</li>
-</ul>
-
-<p>Value ports are essentially purely functional ports: if a plugin has only
-value ports, that plugin is purely functional. Hosts may elect to cache output
-and avoid calling run() if the output is already known according to these
-rules.</p>
-""" .
-
-atom:MessagePort
- a rdfs:Class ;
- rdfs:subClassOf atom:AtomPort ;
- rdfs:label "Message Port" ;
- lv2:documentation """
-<p>An AtomPort that contains transient data which is <em>consumed</em> or
-<em>sent</em>. The Atom contained in a MessagePort is time-dependent and only
-valid for a single run invocation. Unlike a ValuePort, a MessagePort may be
-used to manipulate internal plugin state.</p>
-
-<p>Intuitively, a MessagePort contains a <q>message</q> or <q>event</q> which
-is reacted to <em>once</em> (not a <q>value</q> which is computed with any
-number of times).</p>
-""" .
-
-atom:bufferType
- a rdf:Property ;
- rdfs:domain atom:AtomPort ;
- rdfs:label "buffer type" ;
- lv2:documentation """
-<p>Indicates that an AtomPort may be connected to a certain Atom type. A port
-MAY support several buffer types. The host MUST NOT connect a port to an Atom
-with a type not explicitly listed with this property. The value of this
-property MUST be a sub-class of atom:Atom. For example, an input port that is
-connected directly to an LV2_Atom_Double value is described like so:</p>
-
-<pre class="turtle-code">
-&lt;plugin&gt;
- lv2:port [
- a lv2:InputPort , atom:ValuePort ;
- atom:bufferType atom:Double ;
- ] .
-</pre>
-
-<p>Note this property only indicates the atom types a port may be directly
-connected to, it is not <q>recursive</q>. If a port can be connected to a
-collection, use atom:supports to indicate which element types are understood.
-If a port supports heterogeneous collections (collections that can contain
-several types of elements at once), implementations MUST gracefully handle any
-types that are present in the collection, even if those types are not
-explicitly supported.</p>
-""" .
-
-atom:supports
- a rdf:Property ;
- rdfs:label "supports" ;
- lv2:documentation """
-<p>Indicates that a particular Atom type is supported.</p>
-
-<p>This property is defined loosely, it may be used to indicate that anything
-<q>supports</q> an Atom type, wherever that may be useful. It applies
-<q>recursively</q> where collections are involved.</p>
-
-<p>In particular, this property can be used to describe which event types are
-supported by a port. For example, a port that receives MIDI events is
-described like so:</p>
-
-<pre class="turtle-code">
-&lt;plugin&gt;
- lv2:port [
- a lv2:InputPort , atom:MessagePort ;
- atom:bufferType atom:Sequence ;
- atom:supports midi:MidiEvent ;
- ] .
-</pre>
-""" .
diff --git a/lv2/ns/ext/atom/ext.pc.in b/lv2/ns/ext/atom/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/atom/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/atom/forge.h b/lv2/ns/ext/atom/forge.h
deleted file mode 100644
index 2790778..0000000
--- a/lv2/ns/ext/atom/forge.h
+++ /dev/null
@@ -1,445 +0,0 @@
-/*
- Copyright 2008-2012 David Robillard <http://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.
-*/
-
-/**
- @file forge.h An API for constructing LV2 atoms.
-
- This file provides a simple API which can be used to create complex nested
- atoms by calling the provided functions to append atoms (or atom headers) in
- the correct order. The size of the parent atom is automatically updated,
- but the caller must handle this situation if atoms are more deeply nested.
-
- All output is written to a user-provided buffer. This entire API is
- realtime safe and suitable for writing to output port buffers in the run
- method.
-
- Note these functions are all static inline, do not take their address.
-
- This header is non-normative, it is provided for convenience.
-*/
-
-#ifndef LV2_ATOM_FORGE_H
-#define LV2_ATOM_FORGE_H
-
-#include <assert.h>
-#include <string.h>
-
-#include "lv2/lv2plug.in/ns/ext/atom/atom-helpers.h"
-#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
-#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
-
-#ifdef __cplusplus
-extern "C" {
-#else
-# include <stdbool.h>
-#endif
-
-/**
- A "forge" for creating atoms by appending to a buffer.
-*/
-typedef struct {
- uint8_t* buf;
- size_t offset;
- size_t size;
-
- LV2_URID Bool;
- LV2_URID Double;
- LV2_URID Float;
- LV2_URID Int32;
- LV2_URID Int64;
- LV2_URID Literal;
- LV2_URID Object;
- LV2_URID Property;
- LV2_URID Sequence;
- LV2_URID String;
- LV2_URID Tuple;
- LV2_URID URID;
- LV2_URID Vector;
-} LV2_Atom_Forge;
-
-/** Set the output buffer where @c forge will write atoms. */
-static inline void
-lv2_atom_forge_set_buffer(LV2_Atom_Forge* forge, uint8_t* buf, size_t size)
-{
- forge->buf = buf;
- forge->size = size;
- forge->offset = 0;
-}
-
-/**
- Initialise @c forge.
-
- URIs will be mapped using @c map and stored, a reference to @c map itself is
- not held.
-*/
-static inline void
-lv2_atom_forge_init(LV2_Atom_Forge* forge, LV2_URID_Map* map)
-{
- lv2_atom_forge_set_buffer(forge, NULL, 0);
- forge->Bool = map->map(map->handle, LV2_ATOM_URI "#Bool");
- forge->Double = map->map(map->handle, LV2_ATOM_URI "#Double");
- forge->Float = map->map(map->handle, LV2_ATOM_URI "#Float");
- forge->Int32 = map->map(map->handle, LV2_ATOM_URI "#Int32");
- forge->Int64 = map->map(map->handle, LV2_ATOM_URI "#Int64");
- forge->Literal = map->map(map->handle, LV2_ATOM_URI "#Literal");
- forge->Object = map->map(map->handle, LV2_ATOM_URI "#Object");
- forge->Property = map->map(map->handle, LV2_ATOM_URI "#Property");
- forge->Sequence = map->map(map->handle, LV2_ATOM_URI "#Sequence");
- forge->String = map->map(map->handle, LV2_ATOM_URI "#String");
- forge->Tuple = map->map(map->handle, LV2_ATOM_URI "#Tuple");
- forge->URID = map->map(map->handle, LV2_ATOM_URI "#URID");
- forge->Vector = map->map(map->handle, LV2_ATOM_URI "#Vector");
-}
-
-/**
- Reserve @c size bytes in the output buffer (used internally).
- @return The start of the reserved memory, or NULL if out of space.
-*/
-static inline uint8_t*
-lv2_atom_forge_reserve(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- uint32_t size)
-{
- uint8_t* const out = forge->buf + forge->offset;
- const uint32_t padded_size = lv2_atom_pad_size(size);
- if (forge->offset + padded_size > forge->size) {
- return NULL;
- }
- if (parent) {
- parent->size += padded_size;
- }
- forge->offset += padded_size;
- return out;
-}
-
-/**
- Write the header of an atom:Atom.
-
- Space for the complete atom will be reserved, but uninitialised.
-*/
-static inline LV2_Atom*
-lv2_atom_forge_atom_head(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- uint32_t type,
- uint32_t size)
-{
- LV2_Atom* const out = (LV2_Atom*)lv2_atom_forge_reserve(
- forge, parent, size);
- if (out) {
- out->type = type;
- out->size = size - sizeof(LV2_Atom);
- }
- return out;
-}
-
-/** Write an atom:Int32. */
-static inline LV2_Atom_Int32*
-lv2_atom_forge_int32(LV2_Atom_Forge* forge, LV2_Atom* parent, int32_t val)
-{
- LV2_Atom_Int32* out = (LV2_Atom_Int32*)lv2_atom_forge_atom_head(
- forge, parent, forge->Int32, sizeof(LV2_Atom_Int32));
- if (out) {
- out->value = val;
- }
- return out;
-}
-
-/** Write an atom:Int64. */
-static inline LV2_Atom_Int64*
-lv2_atom_forge_int64(LV2_Atom_Forge* forge, LV2_Atom* parent, int64_t val)
-{
- LV2_Atom_Int64* out = (LV2_Atom_Int64*)lv2_atom_forge_atom_head(
- forge, parent, forge->Int64, sizeof(LV2_Atom_Int64));
- if (out) {
- out->value = val;
- }
- return out;
-}
-
-/** Write an atom:Float. */
-static inline LV2_Atom_Float*
-lv2_atom_forge_float(LV2_Atom_Forge* forge, LV2_Atom* parent, float val)
-{
- LV2_Atom_Float* out = (LV2_Atom_Float*)lv2_atom_forge_atom_head(
- forge, parent, forge->Float, sizeof(LV2_Atom_Float));
- if (out) {
- out->value = val;
- }
- return out;
-}
-
-/** Write an atom:Double. */
-static inline LV2_Atom_Double*
-lv2_atom_forge_double(LV2_Atom_Forge* forge, LV2_Atom* parent, double val)
-{
- LV2_Atom_Double* out = (LV2_Atom_Double*)lv2_atom_forge_atom_head(
- forge, parent, forge->Double, sizeof(LV2_Atom_Double));
- if (out) {
- out->value = val;
- }
- return out;
-}
-
-/** Write an atom:Bool. */
-static inline LV2_Atom_Bool*
-lv2_atom_forge_bool(LV2_Atom_Forge* forge, LV2_Atom* parent, bool val)
-{
- LV2_Atom_Bool* out = (LV2_Atom_Bool*)lv2_atom_forge_atom_head(
- forge, parent, forge->Bool, sizeof(LV2_Atom_Bool));
- if (out) {
- out->value = val ? 1 : 0;
- }
- return out;
-}
-
-/** Write an atom:URID. */
-static inline LV2_Atom_URID*
-lv2_atom_forge_urid(LV2_Atom_Forge* forge, LV2_Atom* parent, LV2_URID id)
-{
- LV2_Atom_URID* out = (LV2_Atom_URID*)lv2_atom_forge_reserve(
- forge, parent, sizeof(LV2_Atom_URID));
- if (out) {
- out->atom.type = forge->URID;
- out->atom.size = sizeof(uint32_t);
- out->id = id;
- }
- return out;
-}
-
-/** Write an atom:String. */
-static inline LV2_Atom_String*
-lv2_atom_forge_string(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- const uint8_t* str,
- size_t len)
-{
- LV2_Atom_String* out = (LV2_Atom_String*)lv2_atom_forge_reserve(
- forge, parent, sizeof(LV2_Atom_String) + len + 1);
- if (out) {
- out->atom.type = forge->String;
- out->atom.size = len + 1;
- assert(LV2_ATOM_CONTENTS(LV2_Atom_String, out) == LV2_ATOM_BODY(out));
- uint8_t* buf = LV2_ATOM_CONTENTS(LV2_Atom_String, out);
- memcpy(buf, str, len);
- buf[len] = '\0';
- }
- return out;
-}
-
-/** Write an atom:Literal. */
-static inline LV2_Atom_Literal*
-lv2_atom_forge_literal(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- const uint8_t* str,
- size_t len,
- uint32_t datatype,
- uint32_t lang)
-{
- LV2_Atom_Literal* out = (LV2_Atom_Literal*)lv2_atom_forge_reserve(
- forge, parent, sizeof(LV2_Atom_Literal) + len + 1);
- if (out) {
- out->atom.type = forge->Literal;
- out->atom.size = sizeof(LV2_Atom_Literal_Head) + len + 1;
- out->literal.datatype = datatype;
- out->literal.lang = lang;
- uint8_t* buf = LV2_ATOM_CONTENTS(LV2_Atom_Literal, out);
- memcpy(buf, str, len);
- buf[len] = '\0';
- }
- return out;
-}
-
-/** Write an atom:Vector header and reserve space for the body. */
-static inline LV2_Atom_Vector*
-lv2_atom_forge_reserve_vector(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- uint32_t elem_count,
- uint32_t elem_type,
- uint32_t elem_size)
-{
- const size_t size = sizeof(LV2_Atom_Vector) + (elem_size * elem_count);
- LV2_Atom_Vector* out = (LV2_Atom_Vector*)lv2_atom_forge_reserve(
- forge, parent, size);
- if (out) {
- out->atom.type = forge->Vector;
- out->atom.size = size - sizeof(LV2_Atom);
- out->elem_count = elem_count;
- out->elem_type = elem_type;
- }
- return out;
-}
-
-/** Write an atom:Vector. */
-static inline LV2_Atom_Vector*
-lv2_atom_forge_vector(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- uint32_t elem_count,
- uint32_t elem_type,
- uint32_t elem_size,
- void* elems)
-{
- LV2_Atom_Vector* out = lv2_atom_forge_reserve_vector(
- forge, parent, elem_count, elem_type, elem_size);
- if (out) {
- uint8_t* buf = LV2_ATOM_CONTENTS(LV2_Atom_Vector, out);
- memcpy(buf, elems, elem_size * elem_count);
- }
- return out;
-}
-
-/**
- Write the header of an atom:Tuple.
-
- To complete the tuple, write a sequence of atoms, always passing the
- returned tuple as the @c parent parameter (or otherwise ensuring the size is
- updated correctly).
-
- For example:
- @code
- // Write tuple (1, 2.0)
- LV2_Atom* tup = (LV2_Atom*)lv2_atom_forge_tuple(forge, NULL);
- lv2_atom_forge_int32(forge, tup, 1);
- lv2_atom_forge_float(forge, tup, 2.0);
- @endcode
-*/
-static inline LV2_Atom_Tuple*
-lv2_atom_forge_tuple(LV2_Atom_Forge* forge,
- LV2_Atom* parent)
-{
- return (LV2_Atom_Tuple*)lv2_atom_forge_atom_head(
- forge, parent, forge->Tuple, sizeof(LV2_Atom));
-}
-
-/**
- Write the header of an atom:Object.
-
- To complete the object, write a sequence of properties, always passing the
- object as the @c parent parameter (or otherwise ensuring the size is updated
- correctly).
-
- For example:
- @code
- LV2_URID eg_Cat = map("http://example.org/Cat");
- LV2_URID eg_name = map("http://example.org/name");
-
- // Write object header
- LV2_Atom* obj = (LV2_Atom*)lv2_atom_forge_object(forge, NULL, 0, eg_Cat);
-
- // Write property: eg:name = "Hobbes"
- lv2_atom_forge_property_head(forge, obj, eg_name, 0);
- lv2_atom_forge_string(forge, obj, "Hobbes", strlen("Hobbes"));
- @endcode
-*/
-static inline LV2_Atom_Object*
-lv2_atom_forge_object(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- LV2_URID id,
- LV2_URID type)
-{
- LV2_Atom_Object* out = (LV2_Atom_Object*)lv2_atom_forge_reserve(
- forge, parent, sizeof(LV2_Atom_Object));
- if (out) {
- out->atom.type = forge->Object;
- out->atom.size = sizeof(LV2_Atom_Object) - sizeof(LV2_Atom);
- out->id = id;
- out->type = type;
- }
- return out;
-}
-
-/**
- Write the header for a property body (likely in an Object).
- See lv2_atom_forge_object() documentation for an example.
-*/
-static inline LV2_Atom_Property_Body*
-lv2_atom_forge_property_head(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- LV2_URID key,
- LV2_URID context)
-{
- LV2_Atom_Property_Body* out = (LV2_Atom_Property_Body*)
- lv2_atom_forge_reserve(forge, parent, 2 * sizeof(uint32_t));
- if (out) {
- out->key = key;
- out->context = context;
- }
- return out;
-}
-
-/**
- Write the header for a Sequence.
- The size of the returned sequence will be 0, so passing it as the parent
- parameter to other forge methods will do the right thing.
-*/
-static inline LV2_Atom_Sequence*
-lv2_atom_forge_sequence_head(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- uint32_t capacity)
-{
- LV2_Atom_Sequence* out = (LV2_Atom_Sequence*)
- lv2_atom_forge_reserve(forge, parent, sizeof(LV2_Atom_Sequence));
- if (out) {
- out->atom.type = forge->Sequence;
- out->atom.size = sizeof(LV2_Atom_Sequence) - sizeof(LV2_Atom);
- out->capacity = capacity;
- out->pad = 0;
- }
- return out;
-}
-
-/**
- Write the time stamp header of an Event (in a Sequence) in audio frames.
- After this, call the appropriate forge method(s) to write the body, passing
- the same @c parent parameter. Note the returned LV2_Event is NOT an Atom.
-*/
-static inline LV2_Atom_Event*
-lv2_atom_forge_audio_time(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- uint32_t frames,
- uint32_t subframes)
-{
- LV2_Atom_Event* out = (LV2_Atom_Event*)
- lv2_atom_forge_reserve(forge, parent, 2 * sizeof(uint32_t));
- if (out) {
- out->time.audio.frames = frames;
- out->time.audio.subframes = subframes;
- }
- return out;
-}
-
-/**
- Write the time stamp header of an Event (in a Sequence) in beats.
- After this, call the appropriate forge method(s) to write the body, passing
- the same @c parent parameter. Note the returned LV2_Event is NOT an Atom.
-*/
-static inline LV2_Atom_Event*
-lv2_atom_forge_beat_time(LV2_Atom_Forge* forge,
- LV2_Atom* parent,
- double beats)
-{
- LV2_Atom_Event* out = (LV2_Atom_Event*)
- lv2_atom_forge_reserve(forge, parent, sizeof(double));
- if (out) {
- out->time.beats = beats;
- }
- return out;
-}
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* LV2_ATOM_FORGE_H */
diff --git a/lv2/ns/ext/atom/manifest.ttl b/lv2/ns/ext/atom/manifest.ttl
deleted file mode 100644
index 37f0f58..0000000
--- a/lv2/ns/ext/atom/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/atom>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <atom.ttl> .
-
diff --git a/lv2/ns/ext/atom/waf b/lv2/ns/ext/atom/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/atom/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/atom/wscript b/lv2/ns/ext/atom/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/atom/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/contexts/contexts.h b/lv2/ns/ext/contexts/contexts.h
deleted file mode 100644
index f49b474..0000000
--- a/lv2/ns/ext/contexts/contexts.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* LV2 Contexts Extension
- * Copyright (C) 2007-2009 David Robillard <http://drobilla.net>
- *
- * This header is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This header is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-/** @file
- * C header for the LV2 Contexts extension
- * <http://lv2plug.in/ns/ext/contexts>.
- */
-
-#ifndef LV2_CONTEXTS_H
-#define LV2_CONTEXTS_H
-
-#include <stdint.h>
-
-#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
-
-#define LV2_CONTEXTS_URI "http://lv2plug.in/ns/ext/contexts"
-
-static inline void
-lv2_contexts_set_port_valid(void* flags, uint32_t index) {
- ((uint8_t*)flags)[index / 8] |= 1 << (index % 8);
-}
-
-static inline void
-lv2_contexts_unset_port_valid(void* flags, uint32_t index) {
- ((uint8_t*)flags)[index / 8] &= ~(1 << (index % 8));
-}
-
-static inline int
-lv2_contexts_port_is_valid(const void* flags, uint32_t index) {
- return (((uint8_t*)flags)[index / 8] & (1 << (index % 8))) != 0;
-}
-
-typedef struct {
-
- /** The message run function. This is called once to process a set of
- * inputs and produce a set of outputs.
- *
- * Before calling the host MUST set valid_inputs such that the bit
- * corresponding to each input port is 1 iff data is present. The plugin
- * MUST only inspect bits corresponding to ports in the message thread.
- *
- * Similarly, before returning the plugin MUST set valid_outputs such that
- * the bit corresponding to each output port of the message context is 1
- * iff the value at that port has changed.
- * The plugin must return 1 if outputs have been written, 0 otherwise.
- */
- uint32_t (*run)(LV2_Handle instance,
- const void* valid_inputs,
- void* valid_outputs);
-
-} LV2_Contexts_MessageContext;
-
-typedef void* LV2_Contexts_Request_Run_Data;
-
-typedef struct {
-
- /** Pointer to opaque host data (to be passed to request_run) */
- LV2_Contexts_Request_Run_Data data;
-
- /** Request the host execute the context with the given URI */
- void (*request_run)(LV2_Contexts_Request_Run_Data host_handle,
- uint32_t context_uri);
-
-} LV2_Contexts_Request_Run_Feature;
-
-#endif /* LV2_CONTEXTS_H */
-
diff --git a/lv2/ns/ext/contexts/contexts.ttl b/lv2/ns/ext/contexts/contexts.ttl
deleted file mode 100644
index c56c649..0000000
--- a/lv2/ns/ext/contexts/contexts.ttl
+++ /dev/null
@@ -1,134 +0,0 @@
-# LV2 Contexts Extension
-#
-# Allows for an LV2 plugin to have several independent contexts, each with its
-# own run callback and associated ports.
-#
-# Copyright (C) 2007-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 ctx: <http://lv2plug.in/ns/ext/contexts#> .
-@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#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-
-<http://lv2plug.in/ns/ext/contexts>
- a lv2:Specification , lv2:Feature ;
- doap:name "LV2 Contexts" ;
- doap:shortdesc "Support for plugins with several execution contexts." ;
- lv2:documentation """
-<p>An extension for LV2 plugins which have several execution contexts.</p>
-
-<p>Contexts allow plugins to run tasks and/or process input/output in
-multiple threads. Contexts can be used to add non-realtime functionality
-to a plugin while still keeping the audio run() method realtime safe.</p>
-
-<p>A context is an LV2 feature, so the usual LV2 feature mechanism is used
-to determine whether a plugin has a given context, and whether or not it is
-mandatory.</p>
-
-<p>Unless otherwise stated, each context (defined by some URI) adds a new
-threading class similar to the Audio class defined by LV2. Each context has a
-run callback and a connect_port callback both in the same class (i.e. can't be
-called concurrently), but may be called concurrently with functions for other
-contexts (excluding the Instantiation class). Context properties such as
-ctx:hardRTCapable apply to both functions.
-The host MUST only call the correct connect_port function associated with the
-context for that port, i.e. it is an error to use the main LV2 connect_port
-function on a port with a context other than the main LV2 run function.</p>
-""" .
-
-
-##########################
-## Context Base Classes ##
-##########################
-
-ctx:Context a rdfs:Class ;
- rdfs:label "LV2 Context" ;
- lv2:documentation """
-<p>A potentially concurrent context (callback) on a plugin.</p>
-
-<p>Ports are always associated with a context. If a port has no explicit context
-property, then its context is ctx:audioContext (the default LV2 run() context).</p>
-
-<p>A plugin indicates support for a context by supporting an LV2 Feature with
-that context's URI. If a plugin optionally supports a context (e.g.
-<code>&lt;plugin&gt; lv2:optionalFeature ctx:idleContext .</code>), then
-all ports associated with that context MUST be lv2:connectionOptional. Thus,
-hosts that do not support contexts will connect such ports to NULL and the
-plugin can run with only a standard LV2 run() context.</p>
-
-<p>Any plugin that supports any context (optionally or mandatorily) MUST adhere
-to the following additional threading rules for LV2_Descriptor.connect_port:</p>
-<ul>
-<li>connect_port MUST only be called for a given port from the context
-associated with that port</li>
-<li>connect_port MAY be called concurrently for ports with different
-contexts (but MUST NOT be called concurrently for multiple ports in the
-same context)</li>
-</ul>
-<p>Note this implies that any shared data access in connect_port may be
-accessed concurrently. The plugin is responsible for any synchronisation
-or locking necessary to make this possible.</p>
-""" .
-
-ctx:audioContext a ctx:Context , lv2:Feature ;
- rdfs:comment """The context of LV2_Descriptor.run().""" .
-
-ctx:messageContext a ctx:Context , lv2:Feature ;
- lv2:documentation """
-<p>A non-realtime context for plugin control via message passing. This context
-has a run method which takes a bitset of flags for parameters specifying which
-input and output ports are valid before and after the run method has executed,
-respectively (see <code>LV2_Contexts_MessageContext</code>).</p>
-""" .
-
-ctx:idleContext a ctx:Context , lv2:Feature ;
- rdfs:comment """
-A non-realtime idle context, periodically run by the host roughly every second.
-This context never has any ports.
-""" .
-
-ctx:requestRunFeature a lv2:Feature ;
- lv2:documentation """
-<p>A feature allowing the plugin to request the execution of a particular
-context at an arbitrary time. To support this feature, the host MUST pass an
-LV2_Feature to <code>instantiate</code> with <code>data</code> pointing to a
-LV2_Contexts_Request_Run_Feature.</p>
-
-<p>The plugin MAY call <code>request_run</code> with the given
-<code>data</code> from any non-realtime context to demand soon-as-possible execution
-of the specified context.</p>
-""" .
-
-ctx:context a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range ctx:Context ;
- rdfs:label "is used in context" ;
- rdfs:comment """
-The context a particular port is associated with; the port will only be
-connected/read/written by that context.
-
-If no context is specified, the port is considered part of the default LV2
-audio context.""" .
-
-
diff --git a/lv2/ns/ext/contexts/ext.pc.in b/lv2/ns/ext/contexts/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/contexts/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/contexts/manifest.ttl b/lv2/ns/ext/contexts/manifest.ttl
deleted file mode 100644
index d2cc036..0000000
--- a/lv2/ns/ext/contexts/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/contexts>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <contexts.ttl> .
-
diff --git a/lv2/ns/ext/contexts/test.c b/lv2/ns/ext/contexts/test.c
deleted file mode 100644
index ca41a10..0000000
--- a/lv2/ns/ext/contexts/test.c
+++ /dev/null
@@ -1,67 +0,0 @@
-#include <stdio.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <limits.h>
-#include <assert.h>
-#include <unistd.h>
-#include "contexts.h"
-
-#define TEST_ASSERT(check) do {\
- if (!(check)) {\
- fprintf(stderr, "Failure at line %d: %s\n", __LINE__, #check);\
- assert(false);\
- _exit(1);\
- }\
-} while (0)
-
-#define NUM_PORTS 64
-
-void
-print_flags(void* flags)
-{
- for (int i = NUM_PORTS; i >= 0; --i)
- printf((lv2_contexts_port_is_valid(flags, i)) ? "1" : "0");
- printf("\n");
-}
-
-
-int
-main()
-{
- uint64_t flags = 0;
- print_flags(&flags);
-
- lv2_contexts_set_port_valid(&flags, 16);
- print_flags(&flags);
- for (int i = 0; i < NUM_PORTS; ++i) {
- if (i == 16) {
- TEST_ASSERT(lv2_contexts_port_is_valid(&flags, i));
- } else {
- TEST_ASSERT(!lv2_contexts_port_is_valid(&flags, i));
- }
- }
-
- lv2_contexts_set_port_valid(&flags, 46);
- lv2_contexts_set_port_valid(&flags, 0);
- print_flags(&flags);
- for (int i = 0; i < NUM_PORTS; ++i) {
- if (i == 0 || i == 16 || i == 46) {
- TEST_ASSERT(lv2_contexts_port_is_valid(&flags, i));
- } else {
- TEST_ASSERT(!lv2_contexts_port_is_valid(&flags, i));
- }
- }
-
- lv2_contexts_unset_port_valid(&flags, 16);
- print_flags(&flags);
- for (int i = 0; i < NUM_PORTS; ++i) {
- if (i == 0 || i == 46) {
- TEST_ASSERT(lv2_contexts_port_is_valid(&flags, i));
- } else {
- TEST_ASSERT(!lv2_contexts_port_is_valid(&flags, i));
- }
- }
-
- return 0;
-}
-
diff --git a/lv2/ns/ext/contexts/waf b/lv2/ns/ext/contexts/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/contexts/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/contexts/wscript b/lv2/ns/ext/contexts/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/contexts/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/cv-port/cv-port.ttl b/lv2/ns/ext/cv-port/cv-port.ttl
deleted file mode 100644
index 09016d6..0000000
--- a/lv2/ns/ext/cv-port/cv-port.ttl
+++ /dev/null
@@ -1,77 +0,0 @@
-# LV2 CV Port Extension
-# Copyright 2011 David Robillard <http://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 cv: <http://lv2plug.in/ns/ext/cv-port#> .
-@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#> .
-
-<http://lv2plug.in/ns/ext/cv-port>
- a lv2:Specification ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 CV Port" ;
- doap:shortdesc "Control Voltage ports for LV2 plugins." ;
- 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 Control Voltage (CV) ports, which are audio-rate
-control ports like those used on classical voltage-controlled synthesizers.
-These ports serve as control ports like <a
-href="http://lv2plug.in/ns/lv2core#ControlPort">lv2:ControlPort</a> but can
-also be used for audio-rate modulation of control signals. This enables many
-types of processing and synthesis which are not possible with a lower control
-rate.</p>
-""" .
-
-cv:CVPort
- a rdfs:Class ;
- rdfs:label "CV Port" ;
- rdfs:subClassOf lv2:Port ;
- lv2:documentation """
-
-<p>Ports of this type have identical semantics to <a
-href="http://lv2plug.in/ns/lv2core#AudioPort">lv2:AudioPort</a> in terms of
-buffer format and connection/input/output logistics. However, rather than the
-buffer representing audio, the buffer represents audio-rate control data. A
-CVPort SHOULD have the same properties a <a
-href="http://lv2plug.in/ns/lv2core#ControlPort">lv2:ControlPort</a> typically
-has to describe appropriate control values (e.g. <a
-href="http://lv2plug.in/ns/lv2core#minimum">lv2:minimum</a>, <a
-href="http://lv2plug.in/ns/lv2core#maximum">lv2:maximum</a>, <a
-href="http://lv2plug.in/ns/lv2core#default">lv2:default</a>)</p>
-
-<p>Hosts SHOULD take care to prevent data from a CVPort port from being used as
-audio except in cases where this is known to be safe.</p>
-
-<p>Example:</p>
-<pre class="turtle-code">
-&lt;http://example.org/some-plugin&gt;
- lv2:port [
- a cv:CVPort, lv2:InputPort ;
- lv2:index 0 ;
- lv2:minimum -1.0 ;
- lv2:maximum 1.0 ;
- lv2:default 0.0 ;
- lv2:symbol "modulation" ;
- lv2:name "Modulation" ;
- ] .
-</pre>
-""" .
diff --git a/lv2/ns/ext/cv-port/ext.pc.in b/lv2/ns/ext/cv-port/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/cv-port/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/cv-port/manifest.ttl b/lv2/ns/ext/cv-port/manifest.ttl
deleted file mode 100644
index e5fa145..0000000
--- a/lv2/ns/ext/cv-port/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/cv-port>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <cv-port.ttl> .
-
diff --git a/lv2/ns/ext/cv-port/waf b/lv2/ns/ext/cv-port/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/cv-port/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/cv-port/wscript b/lv2/ns/ext/cv-port/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/cv-port/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/data-access/data-access.h b/lv2/ns/ext/data-access/data-access.h
deleted file mode 100644
index fac6974..0000000
--- a/lv2/ns/ext/data-access/data-access.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- LV2 Data Access Extension
- Copyright 2008-2011 David Robillard <http://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.
-*/
-
-/**
- @file data-access.h
- C header for the LV2 Extension Data extension
- <http://lv2plug.in/ns/ext/data-access>.
-
- This extension defines a method for (e.g.) plugin UIs to have (possibly
- marshalled) access to the extension_data function on a plugin instance.
-*/
-
-#ifndef LV2_DATA_ACCESS_H
-#define LV2_DATA_ACCESS_H
-
-#define LV2_DATA_ACCESS_URI "http://lv2plug.in/ns/ext/data-access"
-
-/**
- The data field of the LV2_Feature for this extension.
-
- To support this feature the host must pass an LV2_Feature struct to the
- instantiate method with URI "http://lv2plug.in/ns/ext/data-access"
- and data pointed to an instance of this struct.
-*/
-typedef struct {
- /**
- A pointer to a method the UI can call to get data (of a type specified
- by some other extension) from the plugin.
-
- This call never is never guaranteed to return anything, UIs should
- degrade gracefully if direct access to the plugin data is not possible
- (in which case this function will return NULL).
-
- This is for access to large data that can only possibly work if the UI
- and plugin are running in the same process. For all other things, use
- the normal LV2 UI communication system.
- */
- const void* (*data_access)(const char* uri);
-
-} LV2_Extension_Data_Feature;
-
-#endif /* LV2_DATA_ACCESS_H */
diff --git a/lv2/ns/ext/data-access/data-access.ttl b/lv2/ns/ext/data-access/data-access.ttl
deleted file mode 100644
index 6b0d817..0000000
--- a/lv2/ns/ext/data-access/data-access.ttl
+++ /dev/null
@@ -1,82 +0,0 @@
-# LV2 Data Access Extension
-# Copyright 2008-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 da: <http://lv2plug.in/ns/ext/data-access#> .
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix lv2ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/ext/data-access>
- a lv2:Specification ,
- doap:Project ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 Data Access" ;
- doap:shortdesc "Provides access to LV2_Descriptor::extension_data()." ;
- doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-data-access-1.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2011-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-data-access-1.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system for installation."
- ] , [
- rdfs:label "Switch to ISC license."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-10-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-data-access-1.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- lv2:documentation """
-<p>This extension defines a feature, LV2_Extension_Data_Feature, which provides
-access to LV2_Descriptor::extension_data() for plugin UIs or other potentially
-remote users of a plugin.</p>
-
-<p>To support this feature the host must pass an LV2_Feature struct to the
-instantiate method with URI LV2_DATA_ACCESS_URI and data pointed to an instance
-of LV2_Extension_Data_Feature.</p>
-""" . \ No newline at end of file
diff --git a/lv2/ns/ext/data-access/ext.pc.in b/lv2/ns/ext/data-access/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/data-access/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/data-access/manifest.ttl b/lv2/ns/ext/data-access/manifest.ttl
deleted file mode 100644
index f7ccd9d..0000000
--- a/lv2/ns/ext/data-access/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/data-access>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <data-access.ttl> .
-
diff --git a/lv2/ns/ext/data-access/waf b/lv2/ns/ext/data-access/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/data-access/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/data-access/wscript b/lv2/ns/ext/data-access/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/data-access/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/dynmanifest/dynmanifest.h b/lv2/ns/ext/dynmanifest/dynmanifest.h
deleted file mode 100644
index 51908b7..0000000
--- a/lv2/ns/ext/dynmanifest/dynmanifest.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- Dynamic manifest specification for LV2
- Copyright 2008-2011 Stefano D'Angelo <zanga.mail@gmail.com>
-
- 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.
-*/
-
-/**
- @file dynmanifest.h
- C header for the LV2 Dynamic Manifest extension
- <http://lv2plug.in/ns/ext/dynmanifest>.
- Revision: 1.2
-*/
-
-#ifndef LV2_DYN_MANIFEST_H_INCLUDED
-#define LV2_DYN_MANIFEST_H_INCLUDED
-
-#include <stdio.h>
-
-#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
-
-#define LV2_DYN_MANIFEST_URI "http://lv2plug.in/ns/ext/dynmanifest"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- Dynamic manifest generator handle.
-
- This handle indicates a particular status of a dynamic manifest generator.
- The host MUST NOT attempt to interpret it and, unlikely LV2_Handle, it is
- NOT even valid to compare this to NULL. The dynamic manifest generator MAY
- use it to reference internal data.
-*/
-typedef void * LV2_Dyn_Manifest_Handle;
-
-/**
- Generate the dynamic manifest.
-
- @param handle Pointer to an uninitialized dynamic manifest generator handle.
-
- @param features NULL terminated array of LV2_Feature structs which represent
- the features the host supports. The dynamic manifest generator may refuse to
- (re)generate the dynamic manifest if required features are not found here
- (however hosts SHOULD NOT use this as a discovery mechanism, instead of
- reading the static manifest file). This array must always exist; if a host
- has no features, it MUST pass a single element array containing NULL.
-
- @return 0 on success, otherwise a non-zero error code. The host SHOULD
- evaluate the result of the operation by examining the returned value and
- MUST NOT try to interpret the value of handle.
-*/
-int lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle * handle,
- const LV2_Feature *const * features);
-
-/**
- Fetch a "list" of subject URIs described in the dynamic manifest.
-
- The dynamic manifest generator has to fill the resource only with the needed
- triples to make the host aware of the "objects" it wants to expose. For
- example, if the plugin library exposes a regular LV2 plugin, it should
- output only a triple like the following:
-
- <http://www.example.com/plugin/uri> a lv2:Plugin .
-
- The objects that are elegible for exposure are those that would need to be
- represented by a subject node in a static manifest.
-
- @param handle Dynamic manifest generator handle.
-
- @param fp FILE * identifying the resource the host has to set up for the
- dynamic manifest generator. The host MUST pass a writable, empty resource to
- this function, and the dynamic manifest generator MUST ONLY perform write
- operations on it at the end of the stream (e.g., using only fprintf(),
- fwrite() and similar).
-
- @return 0 on success, otherwise a non-zero error code.
-*/
-int lv2_dyn_manifest_get_subjects(LV2_Dyn_Manifest_Handle handle,
- FILE * fp);
-
-/**
- Function that fetches data related to a specific URI.
-
- The dynamic manifest generator has to fill the resource with data related to
- object represented by the given URI. For example, if the library exposes a
- regular LV2 plugin whose URI, as retrieved by the host using
- lv2_dyn_manifest_get_subjects() is http://www.example.com/plugin/uri, it
- should output something like:
-
- <pre>
- <http://www.example.com/plugin/uri>
- a lv2:Plugin ;
- doap:name "My Plugin" ;
- lv2:binary <mylib.so> ;
- etc:etc "..." .
- </pre>
-
- @param handle Dynamic manifest generator handle.
-
- @param fp FILE * identifying the resource the host has to set up for the
- dynamic manifest generator. The host MUST pass a writable resource to this
- function, and the dynamic manifest generator MUST ONLY perform write
- operations on it at the current position of the stream (e.g. using only
- fprintf(), fwrite() and similar).
-
- @param uri URI to get data about (in the "plain" form, i.e., absolute URI
- without Turtle prefixes).
-
- @return 0 on success, otherwise a non-zero error code.
-*/
-int lv2_dyn_manifest_get_data(LV2_Dyn_Manifest_Handle handle,
- FILE * fp,
- const char * uri);
-
-/**
- Function that ends the operations on the dynamic manifest generator.
-
- This function SHOULD be used by the dynamic manifest generator to perform
- cleanup operations, etc.
-
- Once this function is called, referring to handle will cause undefined
- behavior.
-
- @param handle Dynamic manifest generator handle.
-*/
-void lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LV2_DYN_MANIFEST_H_INCLUDED */
diff --git a/lv2/ns/ext/dynmanifest/dynmanifest.ttl b/lv2/ns/ext/dynmanifest/dynmanifest.ttl
deleted file mode 100644
index 2054a17..0000000
--- a/lv2/ns/ext/dynmanifest/dynmanifest.ttl
+++ /dev/null
@@ -1,107 +0,0 @@
-# LV2 Dynamic Manifest Extension
-# Copyright 2008-2011 Stefano D'Angelo <zanga.mail@gmail.com>
-#
-# 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 dman: <http://lv2plug.in/ns/ext/dynmanifest#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@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/dynmanifest>
- a lv2:Specification ;
- lv2:documentation """
-<p>The LV2 API, on its own, cannot be used to write plugin libraries where data
-is dynamically generated at runtime (e.g. API wrappers), since LV2 requires
-needed information to be provided in one or more static data (RDF) files. This
-API addresses this limitation by extending the LV2 API.</p>
-
-<p>To detect that a plugin library implements a dynamic manifest generator,
-the host checks its static manifest for a description like:</p>
-
-<pre class="turtle-code">
-&lt;http://example.org/my-dynamic-manifest&gt;
- a dman:DynManifest ;
- lv2:binary &lt;mydynmanifest.so&gt; .
-</pre>
-
-<p>To load the data, the host loads the library
-(e.g. <code>mydynmanifest.so</code>) as usual and fetches the dynamic Turtle
-data from it using this API.</p>
-
-<p>The host is allowed to request regeneration of the dynamic manifest multiple
-times, and the plugin library is expected to provide updated data if/when
-possible. All data and references provided via this API before the last
-regeneration of the dynamic manifest is to be considered invalid by the host,
-including plugin descriptors whose URIs were discovered using this API.</p>
-
-<h3>Accessing Data</h3>
-
-<p>Whenever a host wants to access data using this API, it could:</p>
-
-<ol>
-<li>Call lv2_dyn_manifest_open().</li>
-<li>Create a FILE for functions to write data to (e.g. using tmpfile()).</li>
-<li>Get a <q>list</q> of exposed subject URIs using
- lv2_dyn_manifest_get_subjects().</li>
-<li>Call lv2_dyn_manifest_get_data() for each URI of interest to
- get the data related to that URI (which can be written to any FILE).</li>
-<li>Call lv2_dyn_manifest_close().</li>
-<li>Parse the content of the FILE(s).</li>
-<li>Free/delete/unlink the FILE(s).</li>
-</ol>
-
-<p>Each call to the above mentioned dynamic manifest functions MUST write a
-complete, valid Turtle document (including all needed prefix definitions) to
-the output FILE.</p>
-
-<p>Each call to lv2_dyn_manifest_open() causes the (re)generation of the
-dynamic manifest data, and invalidates all data fetched before the call.</p>
-
-<p>In case the plugin library uses this same API to access other dynamic
-manifests, it MUST implement some mechanism to avoid potentially endless loops
-(such as A loads B, B loads A, etc.) and, in case such a loop is detected, the
-operation MUST fail. For this purpose, use of a static boolean flag is
-suggested.</p>
-
-<h3>Threading Rules</h3>
-
-<p>All of the functions defined by this specification belong to the Discovery
-class.</p>
-""" .
-
-dman:DynManifest
- a rdfs:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "Dynamic manifest generator" ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty lv2:binary ;
- owl:minCardinality 1 ;
- rdfs:comment """
-A DynManifest MUST have at least 1 lv2:binary, which MUST implement all the
-functions defined in dynmanifest.h.
-"""
- ] ;
- rdfs:comment """
-The class which represents a dynamic manifest generator.
-
-There MUST NOT be any instances of dman:DynManifest in the generated manifest.
-
-All relative URIs in the generated data MUST be relative to the base path
-that would be used to parse a normal LV2 manifest (the bundle path).
-""" .
diff --git a/lv2/ns/ext/dynmanifest/ext.pc.in b/lv2/ns/ext/dynmanifest/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/dynmanifest/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/dynmanifest/lv2-dynmanifest.doap.ttl b/lv2/ns/ext/dynmanifest/lv2-dynmanifest.doap.ttl
deleted file mode 100644
index 6c4d985..0000000
--- a/lv2/ns/ext/dynmanifest/lv2-dynmanifest.doap.ttl
+++ /dev/null
@@ -1,43 +0,0 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/ext/dynmanifest>
- a doap:Project ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 Dynamic Manifest" ;
- doap:homepage <http://naspro.atheme.org> ;
- doap:created "2009-06-13" ;
- doap:shortdesc "Support for dynamic data generation." ;
- doap:programming-language "C" ;
- doap:developer [
- a foaf:Person ;
- foaf:name "Stefano D'Angelo"
- ] ;
- doap:release [
- doap:revision "1.2" ;
- doap:created "2011-11-21" ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-04-10" ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] .
diff --git a/lv2/ns/ext/dynmanifest/manifest.ttl b/lv2/ns/ext/dynmanifest/manifest.ttl
deleted file mode 100644
index cc5a83d..0000000
--- a/lv2/ns/ext/dynmanifest/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/dynmanifest>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 2 ;
- rdfs:seeAlso <dynmanifest.ttl> ,
- <lv2-dynmanifest.doap.ttl> .
diff --git a/lv2/ns/ext/dynmanifest/waf b/lv2/ns/ext/dynmanifest/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/dynmanifest/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/dynmanifest/wscript b/lv2/ns/ext/dynmanifest/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/dynmanifest/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/event/event-helpers.h b/lv2/ns/ext/event/event-helpers.h
deleted file mode 100644
index 75ba14b..0000000
--- a/lv2/ns/ext/event/event-helpers.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* lv2_event_helpers.h - Helper functions for the LV2 events extension.
- *
- * Copyright (C) 2008-2009 David Robillard <http://drobilla.net>
- *
- * This header is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This header is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this header; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 01222-1307 USA
- */
-
-#ifndef LV2_EVENT_HELPERS_H
-#define LV2_EVENT_HELPERS_H
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "lv2/lv2plug.in/ns/ext/event/event.h"
-
-/** @file
- * Helper functions for the LV2 Event extension
- * <http://lv2plug.in/ns/ext/event>.
- *
- * These functions are provided for convenience only, use of them is not
- * required for supporting lv2ev (i.e. the events extension is defined by the
- * raw buffer format described in lv2_event.h and NOT by this API).
- *
- * Note that these functions are all static inline which basically means:
- * do not take the address of these functions. */
-
-
-/** Pad a size to 64 bits (for event sizes) */
-static inline uint16_t
-lv2_event_pad_size(uint16_t size)
-{
- return (size + 7) & (~7);
-}
-
-
-/** Initialize (empty, reset..) an existing event buffer.
- * The contents of buf are ignored entirely and overwritten, except capacity
- * which is unmodified. */
-static inline void
-lv2_event_buffer_reset(LV2_Event_Buffer* buf,
- uint16_t stamp_type,
- uint8_t *data)
-{
- buf->data = data;
- buf->header_size = sizeof(LV2_Event_Buffer);
- buf->stamp_type = stamp_type;
- buf->event_count = 0;
- buf->size = 0;
-}
-
-
-/** Allocate a new, empty event buffer. */
-static inline LV2_Event_Buffer*
-lv2_event_buffer_new(uint32_t capacity, uint16_t stamp_type)
-{
- const size_t size = sizeof(LV2_Event_Buffer) + capacity;
- LV2_Event_Buffer* buf = (LV2_Event_Buffer*)malloc(size);
- if (buf != NULL) {
- buf->capacity = capacity;
- lv2_event_buffer_reset(buf, stamp_type, (uint8_t *)(buf + 1));
- return buf;
- } else {
- return NULL;
- }
-}
-
-
-/** An iterator over an LV2_Event_Buffer.
- *
- * Multiple simultaneous read iterators over a single buffer is fine,
- * but changing the buffer invalidates all iterators (e.g. RW Lock). */
-typedef struct {
- LV2_Event_Buffer* buf;
- uint32_t offset;
-} LV2_Event_Iterator;
-
-
-/** Reset an iterator to point to the start of @a buf.
- * @return True if @a iter is valid, otherwise false (buffer is empty) */
-static inline bool
-lv2_event_begin(LV2_Event_Iterator* iter,
- LV2_Event_Buffer* buf)
-{
- iter->buf = buf;
- iter->offset = 0;
- return (buf->size > 0);
-}
-
-
-/** Check if @a iter is valid.
- * @return True if @a iter is valid, otherwise false (past end of buffer) */
-static inline bool
-lv2_event_is_valid(LV2_Event_Iterator* iter)
-{
- return (iter->offset < iter->buf->size);
-}
-
-
-/** Advance @a iter forward one event.
- * @a iter must be valid.
- * @return True if @a iter is valid, otherwise false (reached end of buffer) */
-static inline bool
-lv2_event_increment(LV2_Event_Iterator* iter)
-{
- assert(lv2_event_is_valid(iter));
-
- LV2_Event* const ev = (LV2_Event*)(
- (uint8_t*)iter->buf->data + iter->offset);
-
- iter->offset += lv2_event_pad_size(sizeof(LV2_Event) + ev->size);
-
- return true;
-}
-
-
-/** Dereference an event iterator (get the event currently pointed at).
- * @a iter must be valid.
- * @a data if non-NULL, will be set to point to the contents of the event
- * returned.
- * @return A Pointer to the event @a iter is currently pointing at, or NULL
- * if the end of the buffer is reached (in which case @a data is
- * also set to NULL). */
-static inline LV2_Event*
-lv2_event_get(LV2_Event_Iterator* iter,
- uint8_t** data)
-{
- assert(lv2_event_is_valid(iter));
-
- LV2_Event* const ev = (LV2_Event*)(
- (uint8_t*)iter->buf->data + iter->offset);
-
- if (data)
- *data = (uint8_t*)ev + sizeof(LV2_Event);
-
- return ev;
-}
-
-
-/** Write an event at @a iter.
- * The event (if any) pointed to by @a iter will be overwritten, and @a iter
- * incremented to point to the following event (i.e. several calls to this
- * function can be done in sequence without twiddling iter in-between).
- * @return True if event was written, otherwise false (buffer is full). */
-static inline bool
-lv2_event_write(LV2_Event_Iterator* iter,
- uint32_t frames,
- uint32_t subframes,
- uint16_t type,
- uint16_t size,
- const uint8_t* data)
-{
- if (iter->buf->capacity - iter->buf->size < sizeof(LV2_Event) + size)
- return false;
-
- LV2_Event* const ev = (LV2_Event*)(
- (uint8_t*)iter->buf->data + iter->offset);
-
- ev->frames = frames;
- ev->subframes = subframes;
- ev->type = type;
- ev->size = size;
- memcpy((uint8_t*)ev + sizeof(LV2_Event), data, size);
- ++iter->buf->event_count;
-
- size = lv2_event_pad_size(sizeof(LV2_Event) + size);
- iter->buf->size += size;
- iter->offset += size;
-
- return true;
-}
-
-
-/** Reserve space for an event in the buffer and return a pointer to
- the memory where the caller can write the event data, or NULL if there
- is not enough room in the buffer. */
-static inline uint8_t*
-lv2_event_reserve(LV2_Event_Iterator* iter,
- uint32_t frames,
- uint32_t subframes,
- uint16_t type,
- uint16_t size)
-{
- size = lv2_event_pad_size(size);
- if (iter->buf->capacity - iter->buf->size < sizeof(LV2_Event) + size)
- return NULL;
-
- LV2_Event* const ev = (LV2_Event*)((uint8_t*)iter->buf->data +
- iter->offset);
-
- ev->frames = frames;
- ev->subframes = subframes;
- ev->type = type;
- ev->size = size;
- ++iter->buf->event_count;
-
- size = lv2_event_pad_size(sizeof(LV2_Event) + size);
- iter->buf->size += size;
- iter->offset += size;
-
- return (uint8_t*)ev + sizeof(LV2_Event);
-}
-
-
-/** Write an event at @a iter.
- * The event (if any) pointed to by @a iter will be overwritten, and @a iter
- * incremented to point to the following event (i.e. several calls to this
- * function can be done in sequence without twiddling iter in-between).
- * @return True if event was written, otherwise false (buffer is full). */
-static inline bool
-lv2_event_write_event(LV2_Event_Iterator* iter,
- const LV2_Event* ev,
- const uint8_t* data)
-{
- if (iter->buf->capacity - iter->buf->size < sizeof(LV2_Event) + ev->size)
- return false;
-
- LV2_Event* const write_ev = (LV2_Event*)(
- (uint8_t*)iter->buf->data + iter->offset);
-
- *write_ev = *ev;
- memcpy((uint8_t*)write_ev + sizeof(LV2_Event), data, ev->size);
- ++iter->buf->event_count;
-
- const uint16_t size = lv2_event_pad_size(sizeof(LV2_Event) + ev->size);
- iter->buf->size += size;
- iter->offset += size;
-
- return true;
-}
-
-#endif /* LV2_EVENT_HELPERS_H */
-
diff --git a/lv2/ns/ext/event/event.h b/lv2/ns/ext/event/event.h
deleted file mode 100644
index 2c340ba..0000000
--- a/lv2/ns/ext/event/event.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- LV2 Event Extension
- Copyright 2008-2011 David Robillard <http://drobilla.net>
- Copyright 2006-2007 Lars Luthman <lars.luthman@gmail.com>
-
- 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.
-*/
-
-#ifndef LV2_EVENT_H
-#define LV2_EVENT_H
-
-#define LV2_EVENT_URI "http://lv2plug.in/ns/ext/event"
-#define LV2_EVENT_AUDIO_STAMP 0
-
-#include <stdint.h>
-
-/**
- @file event.h
- C API for the LV2 Event extension <http://lv2plug.in/ns/ext/event>.
-
- This extension is a generic transport mechanism for time stamped events
- of any type (e.g. MIDI, OSC, ramps, etc). Each port can transport mixed
- events of any type; the type of events and timestamps are defined by a URI
- which is mapped to an integer by the host for performance reasons.
-
- This extension requires the host to support the LV2 URI Map extension.
- Any host which supports this extension MUST guarantee that any call to
- the LV2 URI Map uri_to_id function with the URI of this extension as the
- 'map' argument returns a value within the range of uint16_t.
-*/
-
-/**
- The best Pulses Per Quarter Note for tempo-based uint32_t timestamps.
- Equal to 2^12 * 5 * 7 * 9 * 11 * 13 * 17, which is evenly divisble
- by all integers from 1 through 18 inclusive, and powers of 2 up to 2^12.
-*/
-static const uint32_t LV2_EVENT_PPQN = 3136573440U;
-
-/**
- An LV2 event (header only).
-
- LV2 events are generic time-stamped containers for any type of event.
- The type field defines the format of a given event's contents.
-
- This struct defines the header of an LV2 event. An LV2 event is a single
- chunk of POD (plain old data), usually contained in a flat buffer (see
- LV2_EventBuffer below). Unless a required feature says otherwise, hosts may
- assume a deep copy of an LV2 event can be created safely using a simple:
-
- memcpy(ev_copy, ev, sizeof(LV2_Event) + ev->size); (or equivalent)
-*/
-typedef struct {
-
- /**
- The frames portion of timestamp. The units used here can optionally be
- set for a port (with the lv2ev:timeUnits property), otherwise this is
- audio frames, corresponding to the sample_count parameter of the LV2 run
- method (e.g. frame 0 is the first frame for that call to run).
- */
- uint32_t frames;
-
- /**
- The sub-frames portion of timestamp. The units used here can optionally
- be set for a port (with the lv2ev:timeUnits property), otherwise this is
- 1/(2^32) of an audio frame.
- */
- uint32_t subframes;
-
- /**
- The type of this event, as a number which represents some URI
- defining an event type. This value MUST be some value previously
- returned from a call to the uri_to_id function defined in the LV2
- URI map extension (see lv2_uri_map.h).
- There are special rules which must be followed depending on the type
- of an event. If the plugin recognizes an event type, the definition
- of that event type will describe how to interpret the event, and
- any required behaviour. Otherwise, if the type is 0, this event is a
- non-POD event and lv2_event_unref MUST be called if the event is
- 'dropped' (see above). Even if the plugin does not understand an event,
- it may pass the event through to an output by simply copying (and NOT
- calling lv2_event_unref). These rules are designed to allow for generic
- event handling plugins and large non-POD events, but with minimal hassle
- on simple plugins that "don't care" about these more advanced features.
- */
- uint16_t type;
-
- /**
- The size of the data portion of this event in bytes, which immediately
- follows. The header size (12 bytes) is not included in this value.
- */
- uint16_t size;
-
- /* size bytes of data follow here */
-
-} LV2_Event;
-
-
-/**
- A buffer of LV2 events (header only).
-
- Like events (which this contains) an event buffer is a single chunk of POD:
- the entire buffer (including contents) can be copied with a single memcpy.
- The first contained event begins sizeof(LV2_EventBuffer) bytes after the
- start of this struct.
-
- After this header, the buffer contains an event header (defined by struct
- LV2_Event), followed by that event's contents (padded to 64 bits), followed
- by another header, etc:
-
- | | | | | | |
- | | | | | | | | | | | | | | | | | | | | | | | | |
- |FRAMES |SUBFRMS|TYP|LEN|DATA..DATA..PAD|FRAMES | ...
-*/
-typedef struct {
-
- /**
- The contents of the event buffer. This may or may not reside in the
- same block of memory as this header, plugins must not assume either.
- The host guarantees this points to at least capacity bytes of allocated
- memory (though only size bytes of that are valid events).
- */
- uint8_t* data;
-
- /**
- The size of this event header in bytes (including everything).
-
- This is to allow for extending this header in the future without
- breaking binary compatibility. Whenever this header is copied,
- it MUST be done using this field (and NOT the sizeof this struct).
- */
- uint16_t header_size;
-
- /**
- The type of the time stamps for events in this buffer.
- As a special exception, '0' always means audio frames and subframes
- (1/UINT32_MAX'th of a frame) in the sample rate passed to instantiate.
-
- INPUTS: The host must set this field to the numeric ID of some URI
- defining the meaning of the frames/subframes fields of contained events
- (obtained by the LV2 URI Map uri_to_id function with the URI of this
- extension as the 'map' argument, see lv2_uri_map.h). The host must
- never pass a plugin a buffer which uses a stamp type the plugin does not
- 'understand'. The value of this field must never change, except when
- connect_port is called on the input port, at which time the host MUST
- have set the stamp_type field to the value that will be used for all
- subsequent run calls.
-
- OUTPUTS: The plugin may set this to any value that has been returned
- from uri_to_id with the URI of this extension for a 'map' argument.
- When connected to a buffer with connect_port, output ports MUST set this
- field to the type of time stamp they will be writing. On any call to
- connect_port on an event input port, the plugin may change this field on
- any output port, it is the responsibility of the host to check if any of
- these values have changed and act accordingly.
- */
- uint16_t stamp_type;
-
- /**
- The number of events in this buffer.
-
- INPUTS: The host must set this field to the number of events contained
- in the data buffer before calling run(). The plugin must not change
- this field.
-
- OUTPUTS: The plugin must set this field to the number of events it has
- written to the buffer before returning from run(). Any initial value
- should be ignored by the plugin.
- */
- uint32_t event_count;
-
- /**
- The size of the data buffer in bytes.
- This is set by the host and must not be changed by the plugin.
- The host is allowed to change this between run() calls.
- */
- uint32_t capacity;
-
- /**
- The size of the initial portion of the data buffer containing data.
-
- INPUTS: The host must set this field to the number of bytes used
- by all events it has written to the buffer (including headers)
- before calling the plugin's run().
- The plugin must not change this field.
-
- OUTPUTS: The plugin must set this field to the number of bytes
- used by all events it has written to the buffer (including headers)
- before returning from run().
- Any initial value should be ignored by the plugin.
- */
- uint32_t size;
-
-} LV2_Event_Buffer;
-
-
-/**
- Opaque pointer to host data.
-*/
-typedef void* LV2_Event_Callback_Data;
-
-
-/**
- Non-POD events feature.
-
- To support this feature the host must pass an LV2_Feature struct to the
- plugin's instantiate method with URI "http://lv2plug.in/ns/ext/event"
- and data pointed to an instance of this struct. Note this feature
- is not mandatory to support the event extension.
-*/
-typedef struct {
-
- /**
- Opaque pointer to host data.
-
- The plugin MUST pass this to any call to functions in this struct.
- Otherwise, it must not be interpreted in any way.
- */
- LV2_Event_Callback_Data callback_data;
-
- /**
- Take a reference to a non-POD event.
-
- If a plugin receives an event with type 0, it means the event is a
- pointer to some object in memory and not a flat sequence of bytes
- in the buffer. When receiving a non-POD event, the plugin already
- has an implicit reference to the event. If the event is stored AND
- passed to an output, lv2_event_ref MUST be called on that event.
- If the event is only stored OR passed through, this is not necessary
- (as the plugin already has 1 implicit reference).
-
- @param event An event received at an input that will not be copied to
- an output or stored in any way.
-
- @param context The calling context. Like event types, this is a mapped
- URI, see lv2_context.h. Simple plugin with just a run() method should
- pass 0 here (the ID of the 'standard' LV2 run context). The host
- guarantees that this function is realtime safe iff @a context is
- realtime safe.
-
- PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS.
- */
- uint32_t (*lv2_event_ref)(LV2_Event_Callback_Data callback_data,
- LV2_Event* event);
-
- /**
- Drop a reference to a non-POD event.
-
- If a plugin receives an event with type 0, it means the event is a
- pointer to some object in memory and not a flat sequence of bytes
- in the buffer. If the plugin does not pass the event through to
- an output or store it internally somehow, it MUST call this function
- on the event (more information on using non-POD events below).
-
- @param event An event received at an input that will not be copied to an
- output or stored in any way.
-
- @param context The calling context. Like event types, this is a mapped
- URI, see lv2_context.h. Simple plugin with just a run() method should
- pass 0 here (the ID of the 'standard' LV2 run context). The host
- guarantees that this function is realtime safe iff @a context is
- realtime safe.
-
- PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS.
- */
- uint32_t (*lv2_event_unref)(LV2_Event_Callback_Data callback_data,
- LV2_Event* event);
-
-} LV2_Event_Feature;
-
-
-#endif /* LV2_EVENT_H */
diff --git a/lv2/ns/ext/event/event.ttl b/lv2/ns/ext/event/event.ttl
deleted file mode 100644
index 67285aa..0000000
--- a/lv2/ns/ext/event/event.ttl
+++ /dev/null
@@ -1,224 +0,0 @@
-# LV2 Event Extension
-# Copyright 2008-2011 David Robillard <http://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 dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-_:larsl
- a foaf:Person ;
- foaf:name "Lars Luthman" .
-
-<http://lv2plug.in/ns/ext/event>
- a lv2:Specification ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 Event" ;
- doap:shortdesc "A port-based real-time generic event interface." ;
- rdfs:seeAlso <event-helpers.h> ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-event-1.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2011-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-event-1.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system (for installation)."
- ] , [
- rdfs:label "Convert documentation to HTML and use lv2:documentation."
- ] , [
- rdfs:label "Use lv2:Specification to be discovered as an extension."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-11-24" ;
- doap:file-release <http://lv2plug.in/spec/lv2-event-1.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- doap:developer <http://drobilla.net/drobilla#me> ,
- _:larsl ;
- lv2:documentation """
-<p>This extension defines a generic time-stamped event port type, which can be
-used to create plugins that read and write real-time events, such as MIDI,
-OSC, or any other type of event payload. The type(s) of event supported by
-a port is defined in the data file for a plugin, for example:</p>
-<pre class="turtle-code">
-&lt;http://example.org/some-plugin&gt;
- lv2:port [
- a ev:EventPort, lv2:InputPort ;
- lv2:index 0 ;
- ev:supportsEvent &lt;http://lv2plug.in/ns/ext/midi#MidiEvent&gt; ;
- lv2:symbol "midi_input" ;
- lv2:name "MIDI input" ;
- ] .
-</pre>
-""" .
-
-ev:EventPort
- a rdfs:Class ;
- rdfs:label "Event port" ;
- rdfs:subClassOf lv2:Port ;
- rdfs:comment """
-Ports of this type will be connected to a struct of type LV2_Event_Buffer,
-defined in event.h. These ports contain a sequence of generic events
-(possibly several types mixed in a single stream), the specific types of
-which are defined by some URI in another LV2 extension.
-""" .
-
-ev:Event
- a rdfs:Class ;
- rdfs:label "LV2 event" ;
- rdfs:comment """
-A single generic time-stamped event.
-
-An ev:EventPort contains an LV2_Event_Buffer which contains a sequence
-of these events. The binary format of LV2 events is defined by the
-LV2_Event struct in event.h.
-
-Specific event types (e.g. MIDI, OSC) are defined by extensions, and should
-be rdfs:subClassOf this class.
-""" .
-
-ev:TimeStamp
- a rdfs:Class ;
- rdfs:label "LV2 event time stamp" ;
- rdfs:comment """
-The time stamp of an Event.
-
-This defines the meaning of the 'frames' and 'subframes' fields of an
-LV2_Event (both unsigned 32-bit integers).
-""" .
-
-ev:FrameStamp
- a rdfs:Class ;
- rdfs:subClassOf ev:TimeStamp ;
- rdfs:label "Audio frame time stamp" ;
- rdfs:comment """
-The default time stamp unit for an LV2 event: the frames field represents
-audio frames (in the sample rate passed to intantiate), and the subframes
-field is 1/UINT32_MAX of a frame.
-""" .
-
-ev:generic
- a lv2:PortProperty ;
- rdfs:label "Generic event port" ;
- rdfs:comment """
-Indicates that this port does something meaningful for any event type
-(e.g. event mixers, delays, serialisers, etc). If this property is set, hosts
-should consider the port suitable for any type of event. Otherwise, hosts
-should consider the port 'appropriate' only for the specific event types
-listed with :supportsEvent. Note that plugins must gracefully handle unknown
-event types whether or not this property is present.
-""" .
-
-ev:supportsEvent
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range ev:Event ;
- rdfs:label "Supports event type" ;
- rdfs:comment """
-Indicates that this port supports or "understands" a certain event type.
-For input ports, this means the plugin understands and does something useful
-with events of this type. For output ports, this means the plugin may generate
-events of this type. If the plugin never actually generates events of this type,
-but might pass them through from an input, this property should not be set (use
-ev:inheritsEvent for that).
-Plugins with event input ports must always gracefully handle any type of event,
-even if it does not 'support' it. This property should always be set for
-event types the plugin understands/generates so hosts can discover plugins
-appropriate for a given scenario (e.g. plugins with a MIDI input).
-Hosts are not expected to consider event ports suitable for some type of
-event if the relevant :supportsEvent property is not set, unless the
-ev:generic property for that port is also set.
-""" .
-
-ev:inheritsEvent
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:Port ;
- rdfs:label "Inherits event type" ;
- rdfs:comment """
-Indicates that this output port might pass through events that arrived at some
-other input port (or generate an event of the same type as events arriving at
-that input). The host must always check the stamp type of all outputs when
-connecting an input, but this property should be set whenever it applies.
-""" .
-
-ev:supportsTimeStamp
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range ev:TimeStamp ;
- rdfs:label "Supports time stamp type" ;
- rdfs:comment """
-Indicates that this port supports or "understands" a certain time stamp type.
-Meaningful only for input ports, the host must never connect a port to an
-event buffer with a time stamp type that isn't supported by the port.
-""" .
-
-ev:generatesTimeStamp
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range ev:TimeStamp ;
- rdfs:label "Outputs time stamp type" ;
- rdfs:comment """
-Indicates that this port may output a certain time stamp type, regardless of
-the time stamp type of any input ports. If the port outputs stamps based on
-what type inputs are connected to, this property should not be set (use the
-ev:inheritsTimeStamp property for that). Hosts MUST check the time_stamp value
-of any output port buffers after a call to connect_port on ANY event input
-port on the plugin. If the plugin changes the stamp_type field of an output
-event buffer during a call to run(), the plugin must call the
-stamp_type_changed function provided by the host in the LV2_Event_Feature
-struct, if it is non-NULL.
-""" .
-
-ev:inheritsTimeStamp
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:Port ;
- rdfs:label "Inherits time stamp type" ;
- rdfs:comment """
-Indicates that this port follows the time stamp type of an input port.
-This property is not necessary, but it should be set for outputs that
-base their output type on an input port so the host can make more sense
-of the plugin and provide a more sensible interface.
-""" .
diff --git a/lv2/ns/ext/event/ext.pc.in b/lv2/ns/ext/event/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/event/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/event/manifest.ttl b/lv2/ns/ext/event/manifest.ttl
deleted file mode 100644
index fa12f94..0000000
--- a/lv2/ns/ext/event/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/event>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <event.ttl> .
-
diff --git a/lv2/ns/ext/event/waf b/lv2/ns/ext/event/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/event/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/event/wscript b/lv2/ns/ext/event/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/event/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/host-info/ext.pc.in b/lv2/ns/ext/host-info/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/host-info/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/host-info/host-info.ttl b/lv2/ns/ext/host-info/host-info.ttl
deleted file mode 100644
index 4f563bb..0000000
--- a/lv2/ns/ext/host-info/host-info.ttl
+++ /dev/null
@@ -1,117 +0,0 @@
-# LV2 Host Info Extension
-# Copyright (C) 2009 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 hi: <http://lv2plug.in/ns/ext/host-info#> .
-@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 owl: <http://www.w3.org/2002/07/owl#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix amb: <http://ambisonics.ch/standards/channels/> .
-
-<http://lv2plug.in/ns/ext/host-info> a lv2:Specification ;
- doap:license <http://usefulinc.com/doap/licenses/mit> ;
- doap:name "LV2 Host Info" ;
- doap:shortdesc "A format for describing LV2 hosts." ;
- 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 specification defines various properties to represent useful information
-about LV2 hosts. Currently, the primary use of this specification is to describe which
-extensions are supported by a given host.</p>
-
-<p>The extensions supported by a host can be described like this:</p>
-<pre class="turtle-code">
-@prefix hi: &lt;http://lv2plug.in/ns/ext/host-info#&gt; .
-
-&lt;http://example.org/some-host&gt;
- a hi:Host ;
- doap:name "Foo Rack" ;
- hi:supportsExtension [
- hi:extension &lt;http://example.org/some-extension&gt; ;
- hi:sinceVersion "1.2.0"
- ] .
-</pre>
-""" .
-
-
-## Core Classes / Properties
-
-hi:Host a rdfs:Class ;
- rdfs:label "LV2 Host" ;
- rdfs:subClassOf [ a owl:Restriction ;
- owl:onProperty doap:name ;
- owl:someValuesFrom xsd:string ;
- owl:minCardinality 1 ;
- rdfs:comment "A hi:Host MUST have at least one string doap:name"
- ] ;
- rdfs:comment """
-An application that supports loading LV2 plugins, or performs other
-LV2 related functionality.
-""" .
-
-hi:supportsExtension a rdf:Property ;
- rdfs:domain hi:Host ;
- rdfs:range hi:ExtensionSupport ;
- rdfs:label "supports extension" ;
- rdfs:comment "Relates a Host to its ExtensionSupport" .
-
-hi:ExtensionSupport a rdfs:Class ;
- rdfs:label "Extension Support" ;
- rdfs:subClassOf [ a owl:Restriction ;
- owl:onProperty hi:sinceVersion ;
- owl:someValuesFrom xsd:string ;
- owl:minCardinality 1 ;
- rdfs:comment """
-A hi:ExtensionSupport MUST have at least one string hi:sinceVersion
-""" ] ;
- rdfs:comment "A description of the support for an extension by a Host" .
-
-hi:extension a rdf:Property ;
- rdfs:domain hi:ExtensionSupport ;
- rdfs:range lv2:Specification ;
- rdfs:label "extension" ;
- rdfs:comment "Indicates the extension supported by a host." .
-
-hi:sinceVersion a rdf:Property ;
- rdfs:domain hi:ExtensionSupport ;
- rdfs:range xsd:string ;
- rdfs:label "since version" ;
- rdfs:comment """
-The initial version of a host which supported an extension.
-This property MUST always be given
-""" .
-
-hi:untilVersion a rdf:Property ;
- rdfs:domain hi:ExtensionSupport ;
- rdfs:range xsd:string ;
- rdfs:label "until version" ;
- rdfs:comment """
-The final version of a host which supported an extension. This property can
-be used if support for an extension was discontinued in a host for some reason.
-""" .
-
diff --git a/lv2/ns/ext/host-info/manifest.ttl b/lv2/ns/ext/host-info/manifest.ttl
deleted file mode 100644
index ae1e097..0000000
--- a/lv2/ns/ext/host-info/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/host-info>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <host-info.ttl> .
-
diff --git a/lv2/ns/ext/host-info/waf b/lv2/ns/ext/host-info/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/host-info/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/host-info/wscript b/lv2/ns/ext/host-info/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/host-info/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/instance-access/ext.pc.in b/lv2/ns/ext/instance-access/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/instance-access/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/instance-access/instance-access.h b/lv2/ns/ext/instance-access/instance-access.h
deleted file mode 100644
index 7e18ee4..0000000
--- a/lv2/ns/ext/instance-access/instance-access.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- LV2 Instance Access Extension
- Copyright 2008-2011 David Robillard <http://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.
-*/
-
-#ifndef LV2_INSTANCE_ACCESS_H
-#define LV2_INSTANCE_ACCESS_H
-
-#define LV2_INSTANCE_ACCESS_URI "http://lv2plug.in/ns/ext/instance-access"
-
-
-/** @file
- * C header for the LV2 Instance Access extension
- * <http://lv2plug.in/ns/ext/instance-access>.
- *
- * This extension defines a method for (e.g.) plugin UIs to get a direct
- * handle to an LV2 plugin instance (LV2_Handle), if possible.
- *
- * To support this feature the host must pass an LV2_Feature struct to the
- * UI instantiate method with URI "http://lv2plug.in/ns/ext/instance-access"
- * and data pointed directly to the LV2_Handle of the plugin instance.
- */
-
-
-#endif /* LV2_INSTANCE_ACCESS_H */
-
diff --git a/lv2/ns/ext/instance-access/instance-access.ttl b/lv2/ns/ext/instance-access/instance-access.ttl
deleted file mode 100644
index 14eb732..0000000
--- a/lv2/ns/ext/instance-access/instance-access.ttl
+++ /dev/null
@@ -1,80 +0,0 @@
-# LV2 Instance Access Extension
-# Copyright 2008-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 dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix ia: <http://lv2plug.in/ns/ext/instance-access#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix lv2ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/ext/instance-access>
- a lv2:Specification ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 Instance Access" ;
- doap:shortdesc "Provides access to the LV2_Handle of a plugin." ;
- doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-instance-access-1.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2011-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-instance-access-1.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system for installation."
- ] , [
- rdfs:label "Switch to ISC license."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-10-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-instance-access-1.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- lv2:documentation """
-<p>This extension defines a feature which allows plugin UIs to get a direct
-handle to an LV2 plugin instance (LV2_Handle), if possible.</p>
-
-<p>To support this feature the host must pass an LV2_Feature struct to the UI
-instantiate method with URI LV2_INSTANCE_ACCESS_URI and data pointed directly
-to the LV2_Handle of the plugin instance.</p>
-""" .
diff --git a/lv2/ns/ext/instance-access/manifest.ttl b/lv2/ns/ext/instance-access/manifest.ttl
deleted file mode 100644
index d6412c5..0000000
--- a/lv2/ns/ext/instance-access/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/instance-access>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <instance-access.ttl> .
-
diff --git a/lv2/ns/ext/instance-access/waf b/lv2/ns/ext/instance-access/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/instance-access/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/instance-access/wscript b/lv2/ns/ext/instance-access/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/instance-access/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/log/ext.pc.in b/lv2/ns/ext/log/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/log/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/log/log.h b/lv2/ns/ext/log/log.h
deleted file mode 100644
index c139a27..0000000
--- a/lv2/ns/ext/log/log.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- Copyright 2012 David Robillard <http://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.
-*/
-
-/**
- @file log.h C header for the LV2 Log extension
- <http://lv2plug.in/ns/ext/log>.
-*/
-
-#ifndef LV2_LOG_H
-#define LV2_LOG_H
-
-#define LV2_LOG_URI "http://lv2plug.in/ns/ext/log"
-#define LV2_LOG_LOG_URI LV2_LOG_URI "#log"
-#define LV2_LOG_ERROR_URI LV2_LOG_URI "#Error"
-#define LV2_LOG_INFO_URI LV2_LOG_URI "#Info"
-#define LV2_LOG_WARN_URI LV2_LOG_URI "#Warn"
-
-#include <stdarg.h>
-
-#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __GNUC__
-/** Allow type checking of printf-like functions. */
-# define LV2_LOG_FUNC(fmt, arg1) __attribute__((format(printf, fmt, arg1)))
-#else
-# define LV2_LOG_FUNC
-#endif
-
-/**
- Opaque data to host data for LV2_Log_Log.
-*/
-typedef void* LV2_Log_Handle;
-
-/**
- Log (http://lv2plug.in/ns/ext/log#log).
-*/
-typedef struct _LV2_Log {
- /**
- Opaque pointer to host data.
-
- This MUST be passed to methods in this struct henever they are called.
- Otherwise, it must not be interpreted in any way.
- */
- LV2_Log_Handle handle;
-
- /**
- Log a message, passing format parameters directly.
-
- The API of this function matches that of the standard C printf
- function, except for the addition of the first two parameters.
- */
- LV2_LOG_FUNC(3, 4)
- int (*printf)(LV2_Log_Handle handle,
- LV2_URID level,
- const char* fmt, ...);
-
- /**
- Log a message, passing format parameters in a va_list.
-
- The API of this function matches that of the standard C vprintf
- function, except for the addition of the first two parameters.
- */
- LV2_LOG_FUNC(3, 0)
- int (*vprintf)(LV2_Log_Handle handle,
- LV2_URID level,
- const char* fmt,
- va_list ap);
-} LV2_Log_Log;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* LV2_LOG_H */
diff --git a/lv2/ns/ext/log/log.ttl b/lv2/ns/ext/log/log.ttl
deleted file mode 100644
index 567333f..0000000
--- a/lv2/ns/ext/log/log.ttl
+++ /dev/null
@@ -1,74 +0,0 @@
-# LV2 Log Extension
-# Copyright 2012 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 doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix log: <http://lv2plug.in/ns/ext/log#> .
-@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/log>
- a lv2:Specification ;
- doap:name "LV2 Log" ;
- doap:shortdesc "A feature for writing log messages." ;
- 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 feature, LV2_Log_Log, which allows plugins to print
-messages to logs implemented by the host with an API much like the standard C
-printf functions. This allows, for example, plugin logs to be nicely presented
-to the user in a graphical user interface.</p>
-
-<p>Different log <q>levels</q> (e.g. <q>error</q> or <q>information</q>) are
-defined by URI and passed as an LV2_URID. Thus, the possible number of log
-levels is unlimited, but implementations SHOULD use the levels defined in this
-extension unless they have a special reason to do otherwise.</p>
-""" .
-
-log:Level
- a rdfs:Class ;
- lv2:documentation """
-<p>A log level. Subclasses of this class can be passed to LV2_Log_Log methods
-to describe the nature of the log message.</p>""" .
-
-log:Error
- a rdfs:Class ;
- rdfs:subClassOf log:Level ;
- rdfs:comment "An error" .
-
-log:Info
- a rdfs:Class ;
- rdfs:subClassOf log:Level ;
- rdfs:comment "An informative message" .
-
-log:Warn
- a rdfs:Class ;
- rdfs:subClassOf log:Level ;
- rdfs:comment "A warning" .
-
-log:log
- a lv2:Feature ;
- lv2:documentation """
-<p>A feature which plugins may use to log messages. To support this feature,
-the host must pass an LV2_Feature to LV2_Descriptor::instantiate() with URI
-LV2_LOG_LOG_URI and data pointed to an instance of LV2_Log_Log.</p>
-""" .
diff --git a/lv2/ns/ext/log/manifest.ttl b/lv2/ns/ext/log/manifest.ttl
deleted file mode 100644
index 7d00e2e..0000000
--- a/lv2/ns/ext/log/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/log>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <log.ttl> .
-
diff --git a/lv2/ns/ext/log/waf b/lv2/ns/ext/log/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/log/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/log/wscript b/lv2/ns/ext/log/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/log/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/midi/ext.pc.in b/lv2/ns/ext/midi/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/midi/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/midi/manifest.ttl b/lv2/ns/ext/midi/manifest.ttl
deleted file mode 100644
index a8e194e..0000000
--- a/lv2/ns/ext/midi/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/midi>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <midi.ttl> .
-
diff --git a/lv2/ns/ext/midi/midi.ttl b/lv2/ns/ext/midi/midi.ttl
deleted file mode 100644
index 64edf0e..0000000
--- a/lv2/ns/ext/midi/midi.ttl
+++ /dev/null
@@ -1,115 +0,0 @@
-# LV2 MIDI Extension
-# Copyright 2008-2011 David Robillard <d@drobilla.net>
-# Copyright 2006 Lars Luthman <lars.luthman@gmail.com>
-#
-# 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 dcs: <http://ontologi.es/doap-changeset#> .
-@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-_:larsl
- a foaf:Person ;
- foaf:name "Lars Luthman" ;
- foaf:mbox <mailto:lars.luthman@gmail.com> .
-
-<http://lv2plug.in/ns/ext/midi>
- a lv2:Specification ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 MIDI" ;
- doap:shortdesc "A data type for raw MIDI." ;
- doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:developer _:larsl ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-midi-1.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2011-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-midi-1.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system for installation."
- ] , [
- rdfs:label "Switch to ISC license."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-10-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-midi-1.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- lv2:documentation """
-<p>This extension defines a data type for a MIDI message, midi:MidiEvent, which
-is normalized for fast and convenient processing by plugins. It is
-particularly useful as the payload of an <a
-href="http://lv2plug.in/ns/ext/atom#Atom">Atom</a> or <a
-href="http://lv2plug.in/ns/ext/event#Event">Event</a>.</p>
-""" .
-
-midi:MidiEvent
- a rdfs:Class ;
- rdfs:label "LV2 MIDI message." ;
- rdfs:subClassOf ev:Event ,
- atom:Atom ;
- lv2:documentation """
-<p>A single raw MIDI message (i.e. a sequence of bytes).</p>
-
-<p>This is equivalent to a standard MIDI messages, except with the following
-restrictions to simplify handling:</p>
-<ul>
- <li>Running status is not allowed, every message must have its own status
- byte.</li>
-
- <li>Note On messages with velocity 0 are not allowed. These messages are
- equivalent to Note Off in standard MIDI streams, but here only proper Note
- Off messages are allowed.</li>
-
- <li>"Realtime messages" (status bytes 0xF8 to 0xFF) are allowed, but may
- not occur inside other messages like they can in standard MIDI streams.</li>
-
- <li>All messages are complete valid MIDI messages. This means, for example,
- that only the first byte in each event (the status byte) may have the eighth
- bit set, that Note On and Note Off events are always 3 bytes long, etc.
- Where messages are communicated, the writer is responsible for writing valid
- messages, and the reader may assume that all events are valid.</li>
-</ul>
-""" .
diff --git a/lv2/ns/ext/midi/waf b/lv2/ns/ext/midi/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/midi/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/midi/wscript b/lv2/ns/ext/midi/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/midi/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/osc/ext.pc.in b/lv2/ns/ext/osc/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/osc/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/osc/lv2_osc.c b/lv2/ns/ext/osc/lv2_osc.c
deleted file mode 100644
index afea2c9..0000000
--- a/lv2/ns/ext/osc/lv2_osc.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/* LV2 OSC Messages Extension
- * Copyright (C) 2007-2009 David Robillard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "lv2_osc.h"
-#include "lv2_osc_print.h"
-
-/*#ifndef BIG_ENDIAN
- #ifndef LITTLE_ENDIAN
- #warning This code requires BIG_ENDIAN or LITTLE_ENDIAN to be defined
- #warning Assuming little endian. THIS MAY BREAK HORRIBLY!
- #endif
-#endif*/
-
-#define lv2_osc_swap32(x) \
-({ \
- uint32_t __x = (x); \
- ((uint32_t)( \
- (((uint32_t)(__x) & (uint32_t)0x000000ffUL) << 24) | \
- (((uint32_t)(__x) & (uint32_t)0x0000ff00UL) << 8) | \
- (((uint32_t)(__x) & (uint32_t)0x00ff0000UL) >> 8) | \
- (((uint32_t)(__x) & (uint32_t)0xff000000UL) >> 24) )); \
-})
-
-#define lv2_osc_swap64(x) \
-({ \
- uint64_t __x = (x); \
- ((uint64_t)( \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00000000000000ffULL) << 56) | \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x000000000000ff00ULL) << 40) | \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x0000000000ff0000ULL) << 24) | \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00000000ff000000ULL) << 8) | \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x000000ff00000000ULL) >> 8) | \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x0000ff0000000000ULL) >> 24) | \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00ff000000000000ULL) >> 40) | \
- (uint64_t)(((uint64_t)(__x) & (uint64_t)0xff00000000000000ULL) >> 56) )); \
-})
-
-
-/** Pad a size to a multiple of 32 bits */
-inline static uint32_t
-lv2_osc_pad_size(uint32_t size)
-{
- return size + 3 - ((size-1) % 4);
-}
-
-
-inline static uint32_t
-lv2_osc_string_size(const char *s)
-{
- return lv2_osc_pad_size((uint32_t)strlen(s) + 1);
-}
-
-
-static inline uint32_t
-lv2_osc_blob_size(const void* blob)
-{
- return sizeof(uint32_t) + lv2_osc_pad_size(*((uint32_t*)blob));
-}
-
-
-uint32_t
-lv2_osc_arg_size(char type, const LV2_OSC_Argument* arg)
-{
- switch (type) {
- case 'c':
- case 'i':
- case 'f':
- case 'S': // Symbol (URI-mapped integer)
- return 4;
-
- case 'h':
- case 'd':
- return 8;
-
- case 's':
- return lv2_osc_string_size(&arg->s);
-
- case 'b':
- return lv2_osc_blob_size(&arg->b);
-
- default:
- fprintf(stderr, "Warning: unknown OSC type '%c'.", type);
- return 0;
- }
-}
-
-
-void
-lv2_osc_argument_swap_byte_order(char type, LV2_OSC_Argument* arg)
-{
- switch (type) {
- case 'i':
- case 'f':
- case 'b':
- case 'c':
- *(int32_t*)arg = lv2_osc_swap32(*(int32_t*)arg);
- break;
-
- case 'h':
- case 'd':
- *(int64_t*)arg = lv2_osc_swap64(*(int64_t*)arg);
- break;
- }
-}
-
-
-/** Convert a message from network byte order to host byte order. */
-void
-lv2_osc_message_swap_byte_order(LV2_OSC_Event* msg)
-{
- const char* const types = lv2_osc_get_types(msg);
-
- for (uint32_t i=0; i < msg->argument_count; ++i)
- lv2_osc_argument_swap_byte_order(types[i], lv2_osc_get_argument(msg, i));
-}
-
-
-/** Not realtime safe, returned value must be free()'d by caller. */
-LV2_OSC_Event*
-lv2_osc_message_new(const char* path, const char* types, ...)
-{
- /* FIXME: path only */
-
- LV2_OSC_Event* result = malloc(sizeof(LV2_OSC_Event)
- + 4 + lv2_osc_string_size(path));
-
- const uint32_t path_size = lv2_osc_string_size(path);
- result->data_size = path_size + 4; // 4 for types
- result->argument_count = 0;
- result->types_offset = lv2_osc_string_size(path) + 1;
- (&result->data)[result->types_offset - 1] = ',';
- (&result->data)[result->types_offset] = '\0';
-
- memcpy(&result->data, path, strlen(path) + 1);
-
- return result;
-}
-
-
-/** Create a new LV2_OSC_Event from a raw OSC message.
- *
- * If \a out_buf is NULL, new memory will be allocated. Otherwise the returned
- * value will be equal to buf, unless there is insufficient space in which
- * case NULL is returned.
- */
-LV2_OSC_Event*
-lv2_osc_message_from_raw(uint32_t out_buf_size,
- void* out_buf,
- uint32_t raw_msg_size,
- void* raw_msg)
-{
- const uint32_t message_header_size = (sizeof(uint32_t) * 4);
-
- const uint32_t path_size = lv2_osc_string_size((char*)raw_msg);
- const uint32_t types_len = strlen((char*)(raw_msg + path_size + 1));
- uint32_t index_size = types_len * sizeof(uint32_t);
-
- if (out_buf == NULL) {
- out_buf_size = message_header_size + index_size + raw_msg_size;
- out_buf = malloc((size_t)out_buf_size);
- } else if (out_buf && out_buf_size < message_header_size + raw_msg_size) {
- return NULL;
- }
-
- LV2_OSC_Event* write_loc = (LV2_OSC_Event*)(out_buf);
- write_loc->argument_count = types_len;
- write_loc->data_size = index_size + raw_msg_size;
-
- // Copy raw message
- memcpy(&write_loc->data + index_size, raw_msg, raw_msg_size);
-
- write_loc->types_offset = index_size + path_size + 1;
- const char* const types = lv2_osc_get_types(write_loc);
-
- // Calculate/Write index
- uint32_t args_base_offset = write_loc->types_offset + lv2_osc_string_size(types) - 1;
- uint32_t arg_offset = 0;
-
- for (uint32_t i=0; i < write_loc->argument_count; ++i) {
- ((uint32_t*)&write_loc->data)[i] = args_base_offset + arg_offset;
- const LV2_OSC_Argument* const arg = (LV2_OSC_Argument*)(&write_loc->data + args_base_offset + arg_offset);
- // Special case because size is still big-endian
-#ifndef BIG_ENDIAN
- if (types[i] == 'b') // special case because size is still big-endian
- arg_offset += lv2_osc_swap32(*((int32_t*)arg));
- else
-#endif
- arg_offset += lv2_osc_arg_size(types[i], arg);
- }
-
- /*printf("Index:\n");
- for (uint32_t i=0; i < write_loc->argument_count; ++i) {
- printf("%u ", ((uint32_t*)&write_loc->data)[i]);
- }
- printf("\n");
-
- printf("Data:\n");
- for (uint32_t i=0; i < (write_loc->argument_count * 4) + size; ++i) {
- printf("%3u", i % 10);
- }
- printf("\n");
- for (uint32_t i=0; i < (write_loc->argument_count * 4) + size; ++i) {
- char c = *(((char*)&write_loc->data) + i);
- if (c >= 32 && c <= 126)
- printf("%3c", c);
- else
- printf("%3d", (int)c);
- }
- printf("\n");*/
-
- // Swap to host byte order if necessary
-#ifndef BIG_ENDIAN
- lv2_osc_message_swap_byte_order(write_loc);
-#endif
-
- printf("Created message:\n");
- lv2_osc_message_print(write_loc);
-
- return write_loc;
-}
diff --git a/lv2/ns/ext/osc/lv2_osc_print.c b/lv2/ns/ext/osc/lv2_osc_print.c
deleted file mode 100644
index 5282d46..0000000
--- a/lv2/ns/ext/osc/lv2_osc_print.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* LV2 OSC Messages Extension - Pretty printing methods
- * Copyright (C) 2007-2009 David Robillard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <stdio.h>
-#include "lv2_osc_print.h"
-
-void
-lv2_osc_argument_print(char type, const LV2_OSC_Argument* arg)
-{
- int32_t blob_size;
-
- switch (type) {
- case 'c':
- printf("%c", arg->c); break;
- case 'i':
- printf("%d", arg->i); break;
- case 'f':
- printf("%f", arg->f); break;
- case 'h':
- printf("%ld", arg->h); break;
- case 'd':
- printf("%f", arg->d); break;
- case 's':
- printf("\"%s\"", &arg->s); break;
- /*case 'S':
- printf("\"%s\"", &arg->S); break;*/
- case 'b':
- blob_size = *((int32_t*)arg);
- printf("{ ");
- for (int32_t i=0; i < blob_size; ++i)
- printf("%X, ", (&arg->b)[i+4]);
- printf(" }");
- break;
- default:
- printf("?");
- }
-}
-
-
-void
-lv2_osc_print(const LV2_OSC_Event* msg)
-{
- const char* const types = lv2_osc_get_types(msg);
-
- printf("%s (%s) ", lv2_osc_get_path(msg), types);
- for (uint32_t i=0; i < msg->argument_count; ++i) {
- lv2_osc_argument_print(types[i], lv2_osc_get_argument(msg, i));
- printf(" ");
- }
- printf("\n");
-}
-
diff --git a/lv2/ns/ext/osc/lv2_osc_test.c b/lv2/ns/ext/osc/lv2_osc_test.c
deleted file mode 100644
index 3f76d41..0000000
--- a/lv2/ns/ext/osc/lv2_osc_test.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <lo/lo.h>
-#include "lv2_osc.h"
-#include "lv2_osc_print.h"
-
-int
-main()
-{
- lo_message lo_msg = lo_message_new();
- //lo_message_add_symbol(lo_msg, "a_sym");
- lo_message_add_string(lo_msg, "Hello World");
- lo_message_add_char(lo_msg, 'a');
- lo_message_add_int32(lo_msg, 1234);
- lo_message_add_float(lo_msg, 0.1234);
- lo_message_add_int64(lo_msg, 5678);
- lo_message_add_double(lo_msg, 0.5678);
-
-
- /*unsigned char blob_data[] = { 0,1,2,3,4,5,6,7,8,9 };
- lo_blob blob = lo_blob_new(10, blob_data);
- lo_message_add_blob(lo_msg, blob);*/
-
- /* Leaks like a sieve */
-
- size_t raw_msg_size = 0;
- void* raw_msg = lo_message_serialise(lo_msg, "/foo/bar", NULL, &raw_msg_size);
-
- LV2Message* msg = lv2_osc_message_from_raw(0.0, 0, NULL, raw_msg_size, raw_msg);
- assert(msg);
-
- LV2OSCBuffer* buf = lv2_osc_buffer_new(1024);
-
- int ret = lv2_osc_buffer_append_message(buf, msg);
- if (ret)
- fprintf(stderr, "Message append failed: %s", strerror(ret));
-
- lo_message lo_msg_2 = lo_message_new();
- lo_message_add_string(lo_msg_2, "Another message");
-
- raw_msg = lo_message_serialise(lo_msg_2, "/baz", NULL, &raw_msg_size);
-
- msg = lv2_osc_message_from_raw(0.0, 0, NULL, raw_msg_size, raw_msg);
- assert(msg);
-
- ret = lv2_osc_buffer_append_message(buf, msg);
- if (ret)
- fprintf(stderr, "Message append failed: %s", strerror(ret));
-
- printf("\nBuffer contents:\n\n");
- lv2_osc_buffer_print(buf);
-
- return 0;
-}
diff --git a/lv2/ns/ext/osc/manifest.ttl b/lv2/ns/ext/osc/manifest.ttl
deleted file mode 100644
index 7209b05..0000000
--- a/lv2/ns/ext/osc/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/osc>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <osc.ttl> .
-
diff --git a/lv2/ns/ext/osc/osc-print.h b/lv2/ns/ext/osc/osc-print.h
deleted file mode 100644
index ceebbf7..0000000
--- a/lv2/ns/ext/osc/osc-print.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* LV2 OSC Messages Extension - Pretty printing methods
- * Copyright (C) 2007-2009 David Robillard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/** @file
- * Helper functions for printing LV2 OSC messages as defined by the
- * LV2 OSC extension <http://lv2plug.in/ns/ext/osc>.
- */
-
-#ifndef LV2_OSC_PRINT_H
-#define LV2_OSC_PRINT_H
-
-#include "lv2/lv2plug.in/ns/ext/osc/osc.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void
-lv2_osc_argument_print(char type, const LV2_OSC_Argument* arg);
-
-void
-lv2_osc_message_print(const LV2_OSC_Event* msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LV2_OSC_PRINT_H */
diff --git a/lv2/ns/ext/osc/osc.h b/lv2/ns/ext/osc/osc.h
deleted file mode 100644
index 05e39cc..0000000
--- a/lv2/ns/ext/osc/osc.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* LV2 OSC Messages Extension
- * Copyright (C) 2007-2009 David Robillard <http://drobilla.net>
- *
- * This header is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This header is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef LV2_OSC_H
-#define LV2_OSC_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @file
- * C header for the LV2 OSC extension <http://lv2plug.in/ns/ext/osc>.
- * This extension defines a format for (raw) OSC messages/events.
- */
-
-
-/** Argument (in a message).
- *
- * The name of the element in this union directly corresponds to the OSC
- * type tag character in LV2_Event::types.
- */
-typedef union {
- /* Standard OSC types */
- int32_t i; /**< 32 bit signed integer */
- float f; /**< 32 bit IEEE-754 floating point number ("float") */
- char s; /**< Standard C, NULL terminated string */
- uint8_t b; /**< Blob (int32 size then size bytes padded to 32 bits) */
-
- /* "Nonstandard" OSC types (defined in the OSC standard) */
- int64_t h; /* 64 bit signed integer */
- // t /* OSC-timetag */
- double d; /* 64 bit IEEE 754 floating point number ("double") */
- // S /* Symbol, represented as an OSC-string */
- int32_t c; /* Character, represented as a 32-bit integer */
- // r /* 32 bit RGBA color */
- // m /* 4 byte MIDI message. Bytes from MSB to LSB are: port id, status byte, data1, data2 */
- // T /* True. No bytes are allocated in the argument data. */
- // F /* False. No bytes are allocated in the argument data. */
- // N /* Nil. No bytes are allocated in the argument data. */
- // I /* Infinitum. No bytes are allocated in the argument data. */
- // [ /* The beginning of an array. */
- // ] /* The end of an array. */
-} LV2_OSC_Argument;
-
-
-
-/** Message.
- *
- * This is an OSC message at heart, but with some additional cache information
- * to allow fast access to parameters. This is the payload of an LV2_Event,
- * time stamp and size (being generic) are in the containing header.
- */
-typedef struct {
- uint32_t data_size; /**< Total size of data, in bytes */
- uint32_t argument_count; /**< Number of arguments in data */
- uint32_t types_offset; /**< Offset of types string in data */
-
- /** Take the address of this member to get a pointer to the remaining data.
- *
- * Contents are an argument index:
- * uint32_t argument_index[argument_count]
- *
- * followed by a standard OSC message:
- * char path[path_length] (padded OSC string)
- * char types[argument_count] (padded OSC string)
- * void data[data_size]
- */
- char data;
-
-} LV2_OSC_Event;
-
-LV2_OSC_Event* lv2_osc_event_new(const char* path, const char* types, ...);
-
-LV2_OSC_Event* lv2_osc_event_from_raw(uint32_t out_buf_size, void* out_buf,
- uint32_t raw_msg_size, void* raw_msg);
-
-static inline uint32_t lv2_osc_get_osc_message_size(const LV2_OSC_Event* msg)
- { return (msg->argument_count * sizeof(char) + 1) + msg->data_size; }
-
-static inline const void* lv2_osc_get_osc_message(const LV2_OSC_Event* msg)
- { return (const void*)(&msg->data + (sizeof(uint32_t) * msg->argument_count)); }
-
-static inline const char* lv2_osc_get_path(const LV2_OSC_Event* msg)
- { return (const char*)(&msg->data + (sizeof(uint32_t) * msg->argument_count)); }
-
-static inline const char* lv2_osc_get_types(const LV2_OSC_Event* msg)
- { return (const char*)(&msg->data + msg->types_offset); }
-
-static inline LV2_OSC_Argument* lv2_osc_get_argument(const LV2_OSC_Event* msg, uint32_t i)
- { return (LV2_OSC_Argument*)(&msg->data + ((uint32_t*)&msg->data)[i]); }
-
-/*
-int lv2_osc_buffer_append_message(LV2_Event_Buffer* buf, LV2_Event* msg);
-int lv2_osc_buffer_append(LV2_Event_Buffer* buf, double time, const char* path, const char* types, ...);
-void lv2_osc_buffer_compact(LV2_Event_Buffer* buf);
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LV2_OSC_H */
diff --git a/lv2/ns/ext/osc/osc.ttl b/lv2/ns/ext/osc/osc.ttl
deleted file mode 100644
index c83a69d..0000000
--- a/lv2/ns/ext/osc/osc.ttl
+++ /dev/null
@@ -1,39 +0,0 @@
-# LV2 OSC Messages Extension
-# Copyright (C) 2007 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 osc: <http://lv2plug.in/ns/ext/osc#> .
-@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#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-
-<http://lv2plug.in/ns/ext/osc> a lv2:Specification ;
- doap:license <http://usefulinc.com/doap/licenses/mit> ;
- doap:name "LV2 OSC Events" ;
- doap:shortdesc "A data type for raw OSC." ;
- doap:maintainer [
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- rdfs:seeAlso <http://drobilla.net/drobilla.xrdf>
- ] .
diff --git a/lv2/ns/ext/osc/waf b/lv2/ns/ext/osc/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/osc/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/osc/wscript b/lv2/ns/ext/osc/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/osc/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/parameter/ext.pc.in b/lv2/ns/ext/parameter/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/parameter/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/parameter/manifest.ttl b/lv2/ns/ext/parameter/manifest.ttl
deleted file mode 100644
index d7af7ff..0000000
--- a/lv2/ns/ext/parameter/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/parameter>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <parameter.ttl> .
-
diff --git a/lv2/ns/ext/parameter/parameter.ttl b/lv2/ns/ext/parameter/parameter.ttl
deleted file mode 100644
index e43cc48..0000000
--- a/lv2/ns/ext/parameter/parameter.ttl
+++ /dev/null
@@ -1,111 +0,0 @@
-# LV2 Parameter Extension
-# Copyright (C) 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 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 param: <http://lv2plug.in/ns/ext/parameter#> .
-@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/parameter>
- a lv2:Specification ;
- doap:name "LV2 Parameter" ;
- doap:shortdesc "Dynamic message-controlled LV2 plugin parameters." ;
- doap:maintainer [
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
- ] ;
- rdfs:comment """
-""" .
-
-
-param:Parameter a rdfs:Class ; a lv2:Resource ;
- rdfs:label "Parameter" ;
- lv2:documentation """
-<p>A parameter on an LV2 plugin. Parameters can be manipulated to alter
-the behaviour or output of a plugin. Unlike lv2:ControlPort:</p>
-<ul>
-<li>A parameter may have any data type</li>
-<li>Parameters can be dynamically added or removed</li>
-<li>Parameter values can be manipulated by the plugin</li>
-</ul>
-
-<p>Note that plugins are not required to support this potential functionality,
-parameters can be used to provide a basic LADSPA-like set of floating point
-parameters in a more extensible manner.</p>
-
-<p>Parameters are essentially controls that are not 1:1 associated with ports
-(manipulation of parameters can be accomplished by e.g. sending messages
-to a command port).</p>
-""" .
-
-
-param:supportsType a rdf:Property ;
- rdfs:domain param:Parameter ;
- rdfs:range atom:Atom ;
- rdfs:label "supports type" ;
- lv2:documentation """
-<p>Indicates that a Parameter has values of a particular type. A Parameter may
-support many types. Parameter values are always LV2 Atoms as defined by the <a
-href="http://lv2plug.in/ns/ext/atom">LV2 Atom</a> Extension Any type of LV2
-Atom may be used as a parameter value.</p>
-""" .
-
-
-param:value a rdf:Property ;
- rdfs:domain param:Parameter ;
- rdfs:label "value" ;
- rdfs:comment """
-Indicates that a Parameter has a certain value. A Parameter has at most
-one value at any given time. The type of the value specified must be
-one of the types specified by param:supportsType. When used in a plugin
-data file this property specifies the default value of a parameter.
-""" .
-
-
-param:minimum a rdf:Property ;
- rdfs:domain param:Parameter ;
- rdfs:label "minimum" ;
- rdfs:comment """
-Specifies the minimum value of a Parameter (for Parameters with comparable
-types for which this makes sense). The type of the minimum must be one of
-the types specified by param:supportsType. The host MAY attempt to set a
-parameter to any value (of a legal type), i.e. the plugin MUST NOT assume
-attempts to change a parameter are within range and SHOULD clamp accordingly.
-""" .
-
-
-param:maximum a rdf:Property ;
- rdfs:domain param:Parameter ;
- rdfs:label "maximum" ;
- rdfs:comment """
-Specifies the maximum value of a Parameter (for Parameters with comparable
-types for which this makes sense). The type of the maximum must be one of
-the types specified by param:supportsType. The host MAY attempt to set a
-parameter to any value (of a legal type), i.e. the plugin MUST NOT assume
-attempts to change a parameter are within range and SHOULD clamp accordingly.
-""" .
-
diff --git a/lv2/ns/ext/parameter/waf b/lv2/ns/ext/parameter/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/parameter/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/parameter/wscript b/lv2/ns/ext/parameter/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/parameter/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/port-groups/ext.pc.in b/lv2/ns/ext/port-groups/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/port-groups/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/port-groups/manifest.ttl b/lv2/ns/ext/port-groups/manifest.ttl
deleted file mode 100644
index ff4205b..0000000
--- a/lv2/ns/ext/port-groups/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/port-groups>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <port-groups.ttl> .
-
diff --git a/lv2/ns/ext/port-groups/port-groups.ttl b/lv2/ns/ext/port-groups/port-groups.ttl
deleted file mode 100644
index edf5359..0000000
--- a/lv2/ns/ext/port-groups/port-groups.ttl
+++ /dev/null
@@ -1,490 +0,0 @@
-# LV2 Port Groups Extension
-# Copyright 2009-2011 David Robillard <d@drobilla.net>
-# Copyright 2008-2009 Lars Luthman <lars.luthman@gmail.com>
-#
-# 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 pg: <http://lv2plug.in/ns/ext/port-groups#> .
-@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 owl: <http://www.w3.org/2002/07/owl#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix amb: <http://ambisonics.ch/standards/channels/> .
-
-<http://lv2plug.in/ns/ext/port-groups> a lv2:Specification ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 Port Groups" ;
- doap:shortdesc "Multi-channel groups of LV2 ports." ;
- rdfs:comment "Defines semantic groupings of LV2 ports" ;
- doap:maintainer [
- a foaf:Person ;
- foaf:name "Lars Luthman" ;
- foaf:mbox <mailto:lars.luthman@gmail.com>
- ] , [
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
- ] .
-
-
-## Core Classes / Properties
-
-pg:Group a rdfs:Class ;
- rdfs:label "LV2 Port Group" ;
- rdfs:subClassOf [ a owl:Restriction ;
- owl:onProperty lv2:symbol ;
- owl:someValuesFrom xsd:string ;
- owl:cardinality 1 ;
- rdfs:comment """
-A pg:Group MUST have exactly one string lv2:symbol. This symbol must be
-unique according to the same rules as the lv2:symbol for an lv2:Port, where
-group symbols and port symbols reside in the same namespace. In other words,
-a group on a plugin MUST NOT have the same symbol as another group or a port
-on that plugin. Rationale: Hosts or bindings may find it useful to construct
-an identifier to refer to groups for the same reasons this is useful for ports.
-"""
- ] ;
- rdfs:subClassOf [ a owl:Restriction ;
- owl:onProperty pg:hasRole ;
- owl:someValuesFrom pg:RoleAssignment ;
- owl:minCardinality 1 ;
- rdfs:comment "A Group MUST have at least one role assignment"
- ] ;
- rdfs:comment """
-A grouping of ports that can be logically considered a single "stream", e.g.
-two audio ports in a group may form a stereo stream. The pg:source predicate
-can also be used to describe this correspondence between separate ports/groups.
-""" .
-
-pg:index a rdf:Property ;
- rdfs:domain pg:RoleAssignment ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "index" ;
- rdfs:comment "Index of a role within some group" .
-
-pg:RoleAssignment a rdfs:Class ;
- rdfs:label "Role Assignment" ;
- rdfs:comment "A numbered role within some Group." ;
- rdfs:subClassOf [ a owl:Restriction ;
- owl:onProperty pg:index ;
- owl:cardinality 1 ;
- rdfs:comment """
-A RoleAssignment MUST have exactly one index.
-""" ] ;
- rdfs:subClassOf [ a owl:Restriction ;
- owl:onProperty pg:role ;
- owl:cardinality 1 ;
- rdfs:comment """
-A RoleAssignment MUST have exactly one role.
-""" ] ;
- rdfs:comment """
-All group definitions MUST define the order of channels. Note that this
-does not have anything to do with port indices, this information is only
-defined here for use by other extensions. For simply assigning groups
-and roles to a basic LV2 plugin, index is irrelevant.
-""" .
-
-pg:hasRole a rdf:Property ;
- rdfs:domain pg:Group ;
- rdfs:range pg:Role ;
- rdfs:label "Has port with role" ;
- rdfs:comment """
-Indicates that a group always has a port with a particular role.
-""" .
-
-pg:mayHaveRole a rdf:Property ;
- rdfs:domain pg:Group ;
- rdfs:range pg:Role ;
- rdfs:label "May have port with role" ;
- rdfs:comment """
-Indicates that a group may have a port with a particular role.
-""" .
-
-pg:sideChainOf a rdf:Property ;
- rdfs:domain pg:Group , lv2:Port ;
- rdfs:range pg:Group , lv2:Port ;
- rdfs:label "Side-chain of" ;
- rdfs:comment """
-Indicates that this port or group should be considered a "side chain" of
-some other port or group. The precise definition of "side chain" depends
-on the plugin, but in general this group should be considered a modifier to
-some other group, rather than an independent input itself.
-""" .
-
-pg:subGroupOf a rdf:Property ;
- rdfs:domain pg:Group ;
- rdfs:range pg:Group ;
- rdfs:label "Sub-group of" ;
- rdfs:comment """
-Indicates that this group is a child of another group. This property has
-no meaning with respect to plugin execution, but the host may find this
-information useful (e.g. to provide a compact user interface). Note that
-all groups on a plugin MUST have a unique symbol with respect to the plugin
-as documented for pg:Group, i.e. sub-groups must have a unique symbol among
-all groups and ports on the plugin.
-""" .
-
-pg:source a rdf:Property ;
- rdfs:domain pg:Group , lv2:Port ;
- rdfs:range pg:Group , lv2:Port ;
- rdfs:label "Source group" ;
- rdfs:comment """
-Indicates that this port or group should be considered the "result" of
-some other port or group. This property only makes sense on groups with
-outputs when the source is a group with inputs. This can be used to convey
-a relationship between corresponding input and output groups with different
-types, e.g. a mono->stereo plugin.
-""" .
-
-pg:mainGroup a rdf:Property ;
- rdfs:domain lv2:Plugin ;
- rdfs:range pg:Group ;
- rdfs:label "Main port group" ;
- rdfs:comment """
-Indicates that this group should be considered the "main" inputs/outputs of
-the plugin, e.g. it probably makes sense to just connect main groups and set
-some controls. A plugin MUST NOT have more than one :mainGroup property.
-High-level hosts that simply want to insert an plugin in a given stream
-should use this property to determine where the plugin 'fits'.
-""" .
-
-pg:inGroup a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range pg:Group ;
- rdfs:label "In port group" ;
- rdfs:comment """
-Indicates that this port is a part of a group of ports on the plugin.
-Ports that have a meaningful "role" that may be useful to hosts SHOULD also
-have a :role property, otherwise ports in the group have no meaningful order.
-""" .
-
-pg:Role a rdfs:Class ;
- rdfs:label "Port role" ;
- rdfs:comment """
-The role of a port with respect to its plugin or group. If the port is a
-member of a group (has an :inGroup property) the role is relevant with respect
-to that group. Otherwise the role is relevant with respect to the plugin.
-""" .
-
-pg:role a rdf:Property ;
- rdfs:range pg:Role ;
- rdfs:label "Role" ;
- rdfs:comment """
-Indicates that this port has a particular role with respect to its enclosing
-plugin or group (whichever is smaller). A port may have several roles if it
-makes sense to do so (though some Role or Group definition may forbid this).
-""" .
-
-
-# Discrete
-
-pg:DiscreteGroup a rdfs:Class ;
- rdfs:subClassOf pg:Group ;
- rdfs:comment """
-"Discrete" channel configurations. These groups are divided into channels
-where each represents a particular speaker location. The position of sound
-in one of these groups depends on a particular speaker configuration.
-""" .
-
-pg:leftChannel a pg:Role ; rdfs:label "Left" .
-pg:rightChannel a pg:Role ; rdfs:label "Right" .
-pg:centerChannel a pg:Role ; rdfs:label "Center" .
-pg:sideChannel a pg:Role ; rdfs:label "Side" .
-pg:centerLeftChannel a pg:Role ; rdfs:label "Center Left" .
-pg:centerRightChannel a pg:Role ; rdfs:label "Center Right" .
-pg:sideLeftChannel a pg:Role ; rdfs:label "Side Left" .
-pg:sideRightChannel a pg:Role ; rdfs:label "Side Right" .
-pg:rearLeftChannel a pg:Role ; rdfs:label "Rear Left" .
-pg:rearRightChannel a pg:Role ; rdfs:label "Rear Right" .
-pg:rearCenterChannel a pg:Role ; rdfs:label "Rear Center" .
-pg:lfeChannel a pg:Role ; rdfs:label "Sub (LFE)" .
-
-pg:MonoGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "Mono" ;
- pg:hasRole [ pg:index 0; pg:role pg:centerChannel ] .
-
-pg:StereoGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "Stereo" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:rightChannel ] .
-
-pg:MidSideGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "Mid-Side Stereo" ;
- pg:hasRole [ pg:index 0; pg:role pg:centerChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:sideChannel ] .
-
-pg:ThreePointZeroGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "3.0 Surround" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:rightChannel ] ;
- pg:hasRole [ pg:index 2; pg:role pg:rearCenterChannel ] .
-
-pg:FourPointZeroGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "4.0 Surround (Quadraphonic)" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:centerChannel ] ;
- pg:hasRole [ pg:index 2; pg:role pg:rightChannel ] ;
- pg:hasRole [ pg:index 3; pg:role pg:rearCenterChannel ] .
-
-pg:FivePointZeroGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "5.0 Surround (3-2 stereo)" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:centerChannel ] ;
- pg:hasRole [ pg:index 2; pg:role pg:rightChannel ] ;
- pg:hasRole [ pg:index 3; pg:role pg:rearLeftChannel ] ;
- pg:hasRole [ pg:index 4; pg:role pg:rearRightChannel ] .
-
-pg:FivePointOneGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "5.1 Surround (3-2 stereo)" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:centerChannel ] ;
- pg:hasRole [ pg:index 2; pg:role pg:rightChannel ] ;
- pg:hasRole [ pg:index 3; pg:role pg:rearLeftChannel ] ;
- pg:hasRole [ pg:index 4; pg:role pg:rearRightChannel ] ;
- pg:hasRole [ pg:index 5; pg:role pg:lfeChannel ] .
-
-pg:SixPointOneGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "6.1 Surround" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:centerChannel ] ;
- pg:hasRole [ pg:index 2; pg:role pg:rightChannel ] ;
- pg:hasRole [ pg:index 3; pg:role pg:sideLeftChannel ] ;
- pg:hasRole [ pg:index 4; pg:role pg:sideRightChannel ] ;
- pg:hasRole [ pg:index 5; pg:role pg:rearCenterChannel ] ;
- pg:hasRole [ pg:index 6; pg:role pg:lfeChannel ] .
-
-pg:SevenPointOneGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "7.1 Surround" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:centerChannel ] ;
- pg:hasRole [ pg:index 2; pg:role pg:rightChannel ] ;
- pg:hasRole [ pg:index 3; pg:role pg:sideLeftChannel ] ;
- pg:hasRole [ pg:index 4; pg:role pg:sideRightChannel ] ;
- pg:hasRole [ pg:index 5; pg:role pg:rearLeftChannel ] ;
- pg:hasRole [ pg:index 6; pg:role pg:rearRightChannel ] ;
- pg:hasRole [ pg:index 7; pg:role pg:lfeChannel ] .
-
-pg:SevenPointOneWideGroup a rdfs:Class ;
- rdfs:subClassOf pg:DiscreteGroup ;
- rdfs:label "7.1 Surround (Wide)" ;
- pg:hasRole [ pg:index 0; pg:role pg:leftChannel ] ;
- pg:hasRole [ pg:index 1; pg:role pg:centerLeftChannel ] ;
- pg:hasRole [ pg:index 2; pg:role pg:centerChannel ] ;
- pg:hasRole [ pg:index 3; pg:role pg:centerRightChannel ] ;
- pg:hasRole [ pg:index 4; pg:role pg:rightChannel ] ;
- pg:hasRole [ pg:index 5; pg:role pg:rearLeftChannel ] ;
- pg:hasRole [ pg:index 6; pg:role pg:rearRightChannel ] ;
- pg:hasRole [ pg:index 7; pg:role pg:lfeChannel ] .
-
-
-# Ambisonic
-
-pg:AmbisonicGroup a rdfs:Class ;
- rdfs:subClassOf pg:Group ;
- rdfs:comment """
-"Ambisonic" channel configurations. These groups are divided into channels
-which together represent a position in an abstract n-dimensional space.
-The position of sound in one of these groups does not depend on a particular
-speaker configuration; a decoder can be used to convert an ambisonic stream
-for any speaker configuration.
-""" .
-
-#amb:ACN0 a pg:Role ; rdfs:label "ACN 0 (W)" .
-#amb:ACN1 a pg:Role ; rdfs:label "ACN 1 (Y)" .
-#amb:ACN2 a pg:Role ; rdfs:label "ACN 2 (Z)" .
-#amb:ACN3 a pg:Role ; rdfs:label "ACN 3 (X)" .
-#amb:ACN4 a pg:Role ; rdfs:label "ACN 4 (V)" .
-#amb:ACN5 a pg:Role ; rdfs:label "ACN 5 (T)" .
-#amb:ACN6 a pg:Role ; rdfs:label "ACN 6 (R)" .
-#amb:ACN7 a pg:Role ; rdfs:label "ACN 7 (S)" .
-#amb:ACN8 a pg:Role ; rdfs:label "ACN 8 (U)" .
-#amb:ACN9 a pg:Role ; rdfs:label "ACN 9 (Q)" .
-#amb:ACN10 a pg:Role ; rdfs:label "ACN 10 (O)" .
-#amb:ACN11 a pg:Role ; rdfs:label "ACN 11 (M)" .
-#amb:ACN12 a pg:Role ; rdfs:label "ACN 12 (K)" .
-#amb:ACN13 a pg:Role ; rdfs:label "ACN 13 (L)" .
-#amb:ACN14 a pg:Role ; rdfs:label "ACN 14 (N)" .
-#amb:ACN15 a pg:Role ; rdfs:label "ACN 15 (P)" .
-
-pg:AmbisonicBH1P0Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 1 and peripheral order 0." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN3 ] .
-
-pg:AmbisonicBH1P1Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 1 and peripheral order 1." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN2 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN3 ] .
-
-pg:AmbisonicBH2P0Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 2 and peripheral order 0." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN3 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN4 ] ;
- pg:hasRole [ pg:index 4; pg:role amb:ACN8 ] .
-
-pg:AmbisonicBH2P1Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 2 and peripheral order 1." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN2 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN3 ] ;
- pg:hasRole [ pg:index 4; pg:role amb:ACN4 ] ;
- pg:hasRole [ pg:index 5; pg:role amb:ACN8 ] .
-
-pg:AmbisonicBH2P2Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 2 and peripheral order 2." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN2 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN3 ] ;
- pg:hasRole [ pg:index 4; pg:role amb:ACN4 ] ;
- pg:hasRole [ pg:index 5; pg:role amb:ACN5 ] ;
- pg:hasRole [ pg:index 6; pg:role amb:ACN6 ] ;
- pg:hasRole [ pg:index 7; pg:role amb:ACN7 ] ;
- pg:hasRole [ pg:index 8; pg:role amb:ACN8 ] .
-
-pg:AmbisonicBH3P0Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 0." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN3 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN4 ] ;
- pg:hasRole [ pg:index 4; pg:role amb:ACN8 ] ;
- pg:hasRole [ pg:index 5; pg:role amb:ACN9 ] ;
- pg:hasRole [ pg:index 6; pg:role amb:ACN15 ] .
-
-pg:AmbisonicBH3P1Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 1." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN2 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN3 ] ;
- pg:hasRole [ pg:index 4; pg:role amb:ACN4 ] ;
- pg:hasRole [ pg:index 5; pg:role amb:ACN8 ] ;
- pg:hasRole [ pg:index 6; pg:role amb:ACN9 ] ;
- pg:hasRole [ pg:index 7; pg:role amb:ACN15 ] .
-
-pg:AmbisonicBH3P2Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 2." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN2 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN3 ] ;
- pg:hasRole [ pg:index 4; pg:role amb:ACN4 ] ;
- pg:hasRole [ pg:index 5; pg:role amb:ACN5 ] ;
- pg:hasRole [ pg:index 6; pg:role amb:ACN6 ] ;
- pg:hasRole [ pg:index 7; pg:role amb:ACN7 ] ;
- pg:hasRole [ pg:index 8; pg:role amb:ACN8 ] ;
- pg:hasRole [ pg:index 9; pg:role amb:ACN9 ] ;
- pg:hasRole [ pg:index 10; pg:role amb:ACN15 ] .
-
-pg:AmbisonicBH3P3Group a rdfs:Class ;
- rdfs:subClassOf pg:AmbisonicGroup ;
- rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 3." ;
- pg:hasRole [ pg:index 0; pg:role amb:ACN0 ] ;
- pg:hasRole [ pg:index 1; pg:role amb:ACN1 ] ;
- pg:hasRole [ pg:index 2; pg:role amb:ACN2 ] ;
- pg:hasRole [ pg:index 3; pg:role amb:ACN3 ] ;
- pg:hasRole [ pg:index 4; pg:role amb:ACN4 ] ;
- pg:hasRole [ pg:index 5; pg:role amb:ACN5 ] ;
- pg:hasRole [ pg:index 6; pg:role amb:ACN6 ] ;
- pg:hasRole [ pg:index 7; pg:role amb:ACN7 ] ;
- pg:hasRole [ pg:index 8; pg:role amb:ACN8 ] ;
- pg:hasRole [ pg:index 9; pg:role amb:ACN9 ] ;
- pg:hasRole [ pg:index 10; pg:role amb:ACN10 ] ;
- pg:hasRole [ pg:index 11; pg:role amb:ACN11 ] ;
- pg:hasRole [ pg:index 12; pg:role amb:ACN12 ] ;
- pg:hasRole [ pg:index 13; pg:role amb:ACN13 ] ;
- pg:hasRole [ pg:index 14; pg:role amb:ACN14 ] ;
- pg:hasRole [ pg:index 15; pg:role amb:ACN15 ] .
-
-
-# Controls
-
-pg:ControlGroup a rdfs:Class ;
- rdfs:subClassOf pg:Group ;
- rdfs:comment """
-A group representing a set of associated controls.
-""" .
-
-pg:amplitude a pg:Role ; rdfs:label "Amplitude" .
-pg:attack a pg:Role ; rdfs:label "Attack" .
-pg:cutoffFrequency a pg:Role ; rdfs:label "Cutoff Frequency" .
-pg:decay a pg:Role ; rdfs:label "Decay" .
-pg:delay a pg:Role ; rdfs:label "Delay" .
-pg:frequency a pg:Role ; rdfs:label "Frequency" .
-pg:hold a pg:Role ; rdfs:label "Hold" .
-pg:pulseWidth a pg:Role ; rdfs:label "Pulse Width" .
-pg:ratio a pg:Role ; rdfs:label "Ratio" .
-pg:release a pg:Role ; rdfs:label "Release" .
-pg:resonance a pg:Role ; rdfs:label "Resonance" .
-pg:sustain a pg:Role ; rdfs:label "Sustain" .
-pg:threshold a pg:Role ; rdfs:label "Threshold" .
-pg:waveform a pg:Role ; rdfs:label "Waveform" .
-
-pg:EnvelopeControlGroup a rdfs:Class ;
- rdfs:subClassOf pg:ControlGroup ;
- rdfs:label "Controls for a DAHDSR envelope." ;
- pg:mayHaveRole pg:delay ;
- pg:mayHaveRole pg:attack ;
- pg:mayHaveRole pg:hold ;
- pg:mayHaveRole pg:decay ;
- pg:mayHaveRole pg:sustain ;
- pg:mayHaveRole pg:release .
-
-pg:OscillatorControlGroup a rdfs:Class ;
- rdfs:subClassOf pg:ControlGroup ;
- rdfs:label "Controls for an oscillator." ;
- pg:mayHaveRole pg:frequency ;
- pg:mayHaveRole pg:amplitude ;
- pg:mayHaveRole pg:waveform ;
- pg:mayHaveRole pg:pulseWidth .
-
-pg:FilterControlGroup a rdfs:Class ;
- rdfs:subClassOf pg:ControlGroup ;
- rdfs:label "Controls for a filter." ;
- pg:mayHaveRole pg:cutoffFrequency ;
- pg:mayHaveRole pg:resonance .
-
-pg:CompressorControlGroup a rdfs:Class ;
- rdfs:subClassOf pg:ControlGroup ;
- rdfs:label "Controls for a compressor." ;
- pg:mayHaveRole pg:threshold ;
- pg:mayHaveRole pg:ratio .
-
diff --git a/lv2/ns/ext/port-groups/waf b/lv2/ns/ext/port-groups/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/port-groups/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/port-groups/wscript b/lv2/ns/ext/port-groups/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/port-groups/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/port-props/ext.pc.in b/lv2/ns/ext/port-props/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/port-props/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/port-props/manifest.ttl b/lv2/ns/ext/port-props/manifest.ttl
deleted file mode 100644
index b4afe2f..0000000
--- a/lv2/ns/ext/port-props/manifest.ttl
+++ /dev/null
@@ -1,8 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/port-props>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <port-props.ttl> .
diff --git a/lv2/ns/ext/port-props/port-props.ttl b/lv2/ns/ext/port-props/port-props.ttl
deleted file mode 100644
index d811959..0000000
--- a/lv2/ns/ext/port-props/port-props.ttl
+++ /dev/null
@@ -1,217 +0,0 @@
-@prefix pprops: <http://lv2plug.in/ns/ext/port-props#> .
-@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/port-props>
- a lv2:Specification ;
- doap:name "LV2 Port Properties" ;
- doap:release [
- doap:revision "0.1" ;
- doap:created "2011-11-01"
- ] ;
- doap:created "2009-01-01" ;
- doap:shortdesc "Additional properties for LV2 plugin ports." ;
- doap:maintainer [
- a foaf:Person ;
- foaf:name "Krzysztof Foltman"
- ] , [
- a foaf:Person ;
- foaf:name "David Robillard" ;
- rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
- ] ;
- lv2:documentation """
-<p>This extension defines several useful properties for LV2 plugin ports, which
-can be used in plugin descriptions to better describe ports. Using this
-metadata, hosts can build better UIs for plugins, and provide more advanced
-automatic functionality.</p>
-""" .
-
-pprops:trigger
- a lv2:PortProperty ;
- rdfs:label "Trigger" ;
- rdfs:comment """
-Indicates that the data item corresponds to a momentary event that has been
-detected (control output ports) or is to be triggered (control input ports).
-For input ports, the port needs to be reset to lv2:default value after run()
-function of the plugin has returned. If the control port is assigned a GUI
-widget by the host, the widget should be of auto-off (momentary, one-shot) type
-- for example, a push button if the port is also declared as lv2:toggled, or a
-series of push button or auto-clear input box with a "Send" button if the port
-is also lv2:integer.
-""" .
-
-pprops:supportsStrictBounds
- a lv2:Feature ;
- rdfs:label "Supports strict bounds" ;
- rdfs:comment """
-Indicates use of host support for pprops:hasStrictBounds port property. A
-plugin that specifies it as optional feature can omit value clamping for
-hasStrictBounds ports, if the feature is supported by the host. When specified
-as required feature, it indicates that the plugin does not do any clamping for
-input ports that have a pprops:hasStrictBounds property.
-""" .
-
-pprops:hasStrictBounds
- a lv2:PortProperty ;
- rdfs:label "Has strict bounds" ;
- rdfs:comment """
-For hosts that support pprops:supportsStrictBounds, this indicates that the
-value of the port should never exceed the port's minimum and maximum control
-points. For input ports, it moves the responsibility for limiting the range of
-values to host, if it supports pprops:supportsStrictBounds. For output ports,
-it indicates that values within specified range are to be expected, and
-breaking that should be considered by the host as error in plugin
-implementation.
-""" .
-
-pprops:expensive
- a lv2:PortProperty ;
- rdfs:label "Changes trigger expensive calculation" ;
- rdfs:comment """
-Input ports only. Indicates that any changes to the port value may trigger
-expensive background calculation (e.g. regenerate some lookup tables in a
-background thread). Any value changes may have not have immediate effect, or
-may cause silence or diminished-quality version of the output until background
-processing is finished. Ports having this property are typically not well
-suited for connection to outputs of other plugins, and should not be offered as
-connection targets or for automation by default.
-""" .
-
-pprops:causesArtifacts
- a lv2:PortProperty ;
- rdfs:label "May cause audio artifacts when changed" ;
- rdfs:comment """
-Input ports only. Indicates that any changes to the port value may produce
-slight artifacts to produced audio signals (zipper noise and other results of
-signal discontinuities). Connecting ports of this type to continuous signals
-is not recommended, and when presenting a list of automation targets, those
-ports may be marked as artifact-producing.
-""" .
-
-pprops:continuousCV
- a lv2:PortProperty ;
- rdfs:label "Carries a smooth modulation signal" ;
- rdfs:comment """
-Indicates that the port carries a "smooth" modulation signal. Control input
-ports of this type are well-suited for being connected to sources of smooth
-signals (knobs with smoothing, modulation rate oscillators, output ports with
-continuousCV type, etc.). Typically, the plugin with ports which have this
-property will implement appropriate smoothing to avoid audio artifacts. For
-output ports, this property suggests the value of the port is likely to change
-frequently, and describes a smooth signal (e.g. successive values may be
-considered points along a curve).
-""" .
-
-pprops:discreteCV
- a lv2:PortProperty ;
- rdfs:label "Carries a discrete modulation signal" ;
- rdfs:comment """
-Indicates that the port carries a "discrete" modulation signal. Input ports of
-this type are well-suited for being connected to sources of discrete signals
-(switches, buttons, classifiers, event detectors, etc.). May be combined with
-pprops:trigger property. For output ports, this property suggests the value of
-the port describe discrete values that should be interpreted as steps (and not
-points along a curve).
-""" .
-
-pprops:reportsBpm
- a lv2:PortProperty ;
- rdfs:label "Carries the current tempo expressed in BPM" ;
- rdfs:comment """
-Indicates that the port is used to pass the current tempo in context of the
-plugin (which may be current song tempo, or tempo of a particular subset of the
-song, or the subgraph the plugin resides in). For input ports, the host may
-automatically feed the port with current tempo and hide the port from the user,
-unless the user or other factors encourage different behaviour.
-""" .
-
-pprops:reportsBeatsPerBar
- a lv2:PortProperty ;
- rdfs:label "Carries the current number of beats in a bar" ;
- rdfs:comment """
-Indicates that the port may be used to pass the current number of beats in a
-bar. """ .
-
-pprops:reportsBeatUnit
- a lv2:PortProperty ;
- rdfs:label "Carries the current beat size" ;
- rdfs:comment """
-Indicates that the port may be used to pass the current size of a beat (4 for a
-crochet/quarter note, 8 for a quaver/eighth note, etc.).
-""" .
-
-pprops:logarithmic
- a lv2:PortProperty ;
- rdfs:label "Port value uses a logarithmic scale" ;
- rdfs:comment """
-Indicates that port value behaviour within specified range (bounds) is a value
-using logarithmic scale. The lower and upper bounds must be specified, and
-must be of the same sign.
-""" .
-
-pprops:notAutomatic
- a lv2:PortProperty ;
- rdfs:label "Port is not intended as a CV input" ;
- rdfs:comment """
-Indicates that the port is not primarily intended to be fed with modulation
-signals from external sources (other plugins, etc.). It is merely a UI hint
-and hosts may allow the user to override it.
-""" .
-
-pprops:notOnGUI
- a lv2:PortProperty ;
- rdfs:label "Port is not to be displayed on a GUI or equivalent" ;
- rdfs:comment """
-Indicates that the port is not primarily intended to be represented by a
-separate control in the user interface window (or any similar mechanism used
-for direct, immediate control of control ports). It is merely a UI hint and
-hosts may allow the user to override it.
-""" .
-
-pprops:priority
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range xsd:float ;
- rdfs:label "Relative usefulness of a port" ;
- rdfs:comment """
-Indicates how (typically) useful is the port comparing to other ports with that
-property (higher value = more important). The values do not need to be unique,
-and ports can be grouped based on their priorities.
-""" .
-
-pprops:rangeSteps
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "Number of value quantization steps" ;
- lv2:documentation """
-<p>This value indicates into how many evenly-divided points the (control) port
-range shoujld be divided for step-wise control. This may be used for changing
-the value with step-based controllers like arrow keys, mouse wheel, rotary
-encoders, etc.</p>
-
-<p>Note that when used with a pprops:logarithmic port, the steps are
-logarithmic too, and port value can be calculated as:</p>
-
-<pre class="c-code">
-value = lower * pow(upper / lower, step / (steps - 1))
-</pre>
-
-<p>and the step from value is:</p>
-
-<pre class="c-code">
-step = (steps - 1) * log(value / lower) / log(upper / lower)
-</pre>
-
-<p>where:</p>
-<ul>
-<li><code>value</code> is the port value</li>
-<li><code>step</code> is the step number (0..steps)</li>
-<li><code>steps</code> is the number of steps (= value of :rangeSteps property)</li>
-<li><code>lower</code> and <code>upper</code> are the bounds</li>
-</ul>
-""" .
diff --git a/lv2/ns/ext/port-props/waf b/lv2/ns/ext/port-props/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/port-props/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/port-props/wscript b/lv2/ns/ext/port-props/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/port-props/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/presets/ext.pc.in b/lv2/ns/ext/presets/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/presets/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/presets/manifest.ttl b/lv2/ns/ext/presets/manifest.ttl
deleted file mode 100644
index 51985ab..0000000
--- a/lv2/ns/ext/presets/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/presets>
- a lv2:Specification ;
- lv2:minorVersion 2 ;
- lv2:microVersion 2 ;
- rdfs:seeAlso <presets.ttl> .
-
diff --git a/lv2/ns/ext/presets/presets.ttl b/lv2/ns/ext/presets/presets.ttl
deleted file mode 100644
index e11210a..0000000
--- a/lv2/ns/ext/presets/presets.ttl
+++ /dev/null
@@ -1,148 +0,0 @@
-# LV2 Presets Extension
-# Copyright 2009-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 dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
-@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://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/ext/presets>
- a lv2:Specification ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 Presets" ;
- doap:shortdesc "Presets for LV2 plugins. " ;
- doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "2.2" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-presets-2.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2010-10-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-presets-2.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- lv2:documentation """
-<p>This extension describes a format for presets (i.e. named sets of control
-values) for LV2 plugins. The structure of pset:Preset is deliberately very
-similar to the description of a plugin and can be thought of as a plugin
-<q>overlay</q>. For example:</p>
-
-<pre class="turtle-code">
-@prefix eg: &lt;http://example.org/&gt; .
-
-eg:mypreset
- a pset:Preset ;
- rdfs:label "One louder" ;
- pset:appliesTo eg:myplugin ;
- lv2:port [
- lv2:symbol "volume1" ;
- pset:value 11
- ] , [
- lv2:symbol "volume2" ;
- pset:value 11.0
- ] .
-</pre>
-
-<p>Presets may be defined in any bundles, including the plugin's bundle,
-separate third party preset bundles, or user-created preset bundles created by
-hosts. The manifest.ttl of a bundle containing presets should list the
-presets like so:</p>
-
-<pre class="turtle-code">
-eg:mypreset
- a pset:Preset ;
- pset:appliesTo eg:myplugin ;
- rdfs:seeAlso &lt;mypreset.ttl&gt; .
-</pre>
-
-<p>This extension does not define a dynamic mechanism for changing plugin
-presets for plugins that require such a facility, but may be extended to do
-so.</p>
-""" .
-
-pset:Preset
- a rdfs:Class ;
- rdfs:subClassOf lv2:PluginBase ;
- rdfs:label "LV2 Preset" ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty rdfs:label ;
- owl:someValuesFrom xsd:string ;
- rdfs:comment "A Preset MUST have at least one string rdfs:label."
- ] ;
- rdfs:comment """
-A Preset for an LV2 Plugin. A preset can be considered an "overlay" on a
-Plugin. Rather than attempting to define all valid predicates for a Preset
-(which is not possible since presets may need to specify values for things
-defined in other extensions), the presets extension simply provides this
-class which can be augmented with any data in the exact same fashion as the
-definition of a Plugin.
-
-A Preset SHOULD have at least one pset:appliesTo property.
-Each Port on a Preset MUST have at least a lv2:symbol property and a
-pset:value property.
-""" .
-
-pset:appliesTo
- a rdf:Property ;
- rdfs:domain pset:Preset ;
- rdfs:range lv2:Plugin ;
- rdfs:label "Applies to" ;
- rdfs:comment """
-Specifies the Plugin(s) a Preset may be applied to. When a Preset applies
-to a Plugin, that Preset SHOULD have ports for every control port on that
-plugin, each of which SHOULD have a pset:value property. If the Preset is
-missing ports, or refers to ports which do not exist on the Plugin, then
-the host SHOULD apply all the values in the preset that do match the Plugin.
-
-The Preset MAY have any other values that should be applied to the Plugin
-in some way. The host SHOULD simply ignore any values on a Preset it does
-not understand.
-""" .
-
-pset:value
- a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:label "Has value" ;
- rdfs:comment """
-Specifies the value of a Port on some Preset. This property is used
-in a similar way to e.g. lv2:default.
-""" .
diff --git a/lv2/ns/ext/presets/waf b/lv2/ns/ext/presets/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/presets/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/presets/wscript b/lv2/ns/ext/presets/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/presets/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/pui/ext.pc.in b/lv2/ns/ext/pui/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/pui/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/pui/manifest.ttl b/lv2/ns/ext/pui/manifest.ttl
deleted file mode 100644
index 1229118..0000000
--- a/lv2/ns/ext/pui/manifest.ttl
+++ /dev/null
@@ -1,8 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#>.
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
-
-<http://lv2plug.in/ns/ext/pui>
- a lv2:Specification;
- lv2:minorVersion 0;
- lv2:microVersion 1;
- rdfs:seeAlso <pui.ttl>.
diff --git a/lv2/ns/ext/pui/pui.h b/lv2/ns/ext/pui/pui.h
deleted file mode 100644
index caa7deb..0000000
--- a/lv2/ns/ext/pui/pui.h
+++ /dev/null
@@ -1,374 +0,0 @@
-/************************************************************************
- *
- * Plugin UI extension for LV2
- *
- * Copyright (C) 2006-2011 Lars Luthman <mail@larsluthman.net>
- *
- * Based on lv2.h, which was
- *
- * Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis,
- * Stefan Westerfeld
- * Copyright (C) 2006 Steve Harris, David Robillard.
- *
- * This header is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 2.1 of the License,
- * or (at your option) any later version.
- *
- * This header is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
- * USA.
- *
- ***********************************************************************/
-
-/**
- @file pui.h C API for the LV2 UI extension <http://lv2plug.in/ns/ext/pui>.
-
- This file specifies a C API for communication between an LV2 host and an
- LV2 UI. The interface is similar to the one used for actual LV2 plugins.
-
- The entry point is the function lv2ui_descriptor().
-*/
-
-#ifndef LV2_PUI_H
-#define LV2_PUI_H
-
-#include <lv2.h>
-
-/** The URI of this extension (note this is not the same as the prefix). */
-#define LV2_PUI_URI "http://lv2plug.in/ns/ext/pui"
-
-/** The numerical ID returned by LV2_PUI_Host_Descriptor::port_index() for
- invalid port symbols. */
-#define LV2_PUI_INVALID_PORT_INDEX ((uint32_t)-1)
-
-/** The full URI for the pui:floatControl PortProtocol. */
-#define LV2_PUI_FLOAT_CONTROL_URI "http://lv2plug.in/ns/ext/pui#floatControl"
-
-/** The full URI for the pui:floatPeakRMS PortProtocol. */
-#define LV2_PUI_FLOAT_PEAK_RMS_URI "http://lv2plug.in/ns/ext/pui#floatPeakRMS"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- A data type that is used to pass peak and RMS values for a period of
- audio data at an input or output port to an UI, using port_event. See the
- documentation for pui:floatPeakRMS for details about how and when this
- should be done.
-*/
-typedef struct _LV2_PUI_Peak_RMS_Data {
-
- /**
- The start of the measurement period. This is just a running counter that
- must not be interpreted as any sort of global frame position. It should
- only be interpreted relative to the starts of other measurement periods
- in port_event() calls to the same plugin instance.
-
- This counter is allowed to overflow, in which case it should just wrap
- around.
- */
- uint32_t period_start;
-
- /**
- The size of the measurement period, in the same units as period_start.
- */
- uint32_t period_size;
-
- /**
- The peak value for the measurement period. This should be the maximal
- value for abs(sample) over all the samples in the period.
- */
- float peak;
-
- /**
- The RMS value for the measurement period. This should be the root mean
- square value of the samples in the period, equivalent to
- sqrt((pow(sample1, 2) + pow(sample2, 2) + ... + pow(sampleN, 2)) / N)
- where N is period_size.
- */
- float rms;
-
-} LV2_PUI_Peak_RMS_Data;
-
-/**
- A pointer to a widget or other type of UI.
- The actual type is defined by the type of the UI defined in the RDF data.
- All the functionality provided by this extension is toolkit independent, the
- host only needs to pass the necessary callbacks and display the widget, if
- possible. Plugins may have several UIs, in various toolkits.
-*/
-typedef void* LV2_PUI_Widget;
-
-/**
- Handle for a particular instance of a UI.
- It is valid to compare this to NULL (0 for C++) but otherwise the host MUST
- NOT attempt to interpret it. The UI may use it to reference internal
- instance data.
-*/
-typedef void* LV2_PUI_Handle;
-
-/**
- Handle for host functions and data provided to a UI.
- An object of this type is passed to the UI's instantiate() function, and the
- UI must in turn pass it as the first parameter to the callbacks in
- LV2_PUI_Host_Descriptor. The host may use it to reference internal data, such
- as the plugin instance that the UI is associated with. The UI MUST NOT
- interpret the value of an LV2_PUI_Host_Handle in any way.
-*/
-typedef void* LV2_PUI_Host_Handle;
-
-/**
- Host-provided functions that the UI can use to control the plugin instance.
-
- A pointer to an object of this type is passed to the lv2ui_descriptor()
- function.
-
- The host MUST provide non-NULL values for all the function pointers.
-*/
-typedef struct _LV2_PUI_Host_Descriptor {
-
- /**
- Send data to one of the plugin's input ports.
-
- The @c buffer parameter MUST point to a block of data @c buffer_size
- bytes large. The contents of this buffer and what the host should do
- with it depends on the value of the @c port_protocol parameter.
-
- The @c port_protocol parameter MUST be a numeric ID for a
- pui:PortProtocol. Numeric IDs for PortProtocols are retrieved using the
- port_protocol_id() function.
-
- The @c buffer is only valid during the time of this function call, so if
- the host wants to keep it for later use it has to copy the contents to an
- internal buffer.
-
- @param host_handle The @c host_handle that was passed to the UI's
- instantiate() function.
- @param port_index The index of the port that the data should be written
- to, as returned by port_index().
- @param buffer_size The size of the data pointed to by @c buffer, in
- bytes.
- @param port_protocol The numeric ID of the Port Protocol to use,
- as returned by port_protocol_id().
- */
- void (*write_port)(LV2_PUI_Host_Handle host_handle,
- uint32_t port_index,
- uint32_t buffer_size,
- uint32_t port_protocol,
- void const* buffer);
-
- /**
- Return the numerical index for a port.
- This index is used when writing data to ports using write_port() and whe
- receiving data using port_event(). If @c port_symbol is not a valid port
- symbol for @c plugin the host it MUST return
- LV2_PUI_INVALID_PORT_INDEX. For performance reasons it may be a good idea
- to cache port indices in the UI at instantiation time.
-
- @param host_handle The LV2_PUI_Host_Handle that was passed to the UI's
- instantiate() function.
- @param port_symbol The port's symbol, as defined in the RDF data for
- the plugin.
- */
- uint32_t (*port_index)(LV2_PUI_Host_Handle host_handle,
- char const* port_symbol);
-
- /**
- Subscribe to updates for a port.
- This means that the host will call the UI's port_event() function when
- the port value changes (as defined by the PortProtocol).
-
- Calling this function with the same @c port_index and @c port_protocol
- as an already active subscription has no effect.
-
- @param host_handle The @c host_handle that was passed to the UI's
- instantiate() function.
- @param port_index The index of the port, as returned by port_index().
- @param port_protocol The numeric ID of the PortProtocol, as
- returned by port_protocol_id().
- */
- void (*subscribe_to_port)(LV2_PUI_Host_Handle host_handle,
- uint32_t port_index,
- uint32_t port_protocol,
- const LV2_Feature* const* features);
-
- /**
- Unsubscribe from updates for a port.
- This means that the host will cease calling calling port_event() when
- the port value changes.
-
- Calling this function with a @c port_index and @c port_protocol that
- does not refer to an active port subscription has no effect.
-
- @param host_handle The @c host_handle that was passed to the UI's
- instantiate() function.
- @param port_index The index of the port, as returned by port_index().
- @param port_protocol The numeric ID of the PortProtocol, as
- returned by port_protocol_id().
- */
- void (*unsubscribe_from_port)(LV2_PUI_Host_Handle host_handle,
- uint32_t port_index,
- uint32_t port_protocol,
- const LV2_Feature* const* features);
-
-
-} LV2_PUI_Host_Descriptor;
-
-/**
- This struct contains the implementation of an UI. A pointer to an
- object of this type is returned by the lv2ui_descriptor() function.
-*/
-typedef struct _LV2_PUI_Descriptor {
-
- /**
- The URI for this UI (not for the plugin it controls).
- */
- char const* URI;
-
- /**
- Create a new UI object and return a handle to it. This function works
- similarly to the instantiate() member in LV2_Descriptor.
-
- @param descriptor The descriptor for the UI to instantiate.
-
- @param plugin_uri The URI of the plugin that this UI will control.
-
- @param bundle_path The path to the bundle containing the RDF data that
- references this shared object file, with trailing separator (e.g. '/').
-
- @param host_descriptor A pointer to an object that contains function
- pointers that the UI instance should use to control the plugin
- instance. This pointer MUST be valid until cleanup() is called for this
- UI instance.
-
- @param host_handle A handle that the host may use to reference internal
- data. It MUST be passed as the first parameter to the function
- pointers in @c host_descriptor, and MUST NOT be interpreted in any other
- way by the UI.
-
- @param features A NULL-terminated array of LV2_Feature pointers. The
- host must pass all feature URIs that it and the UI supports and any
- additional data, just like in the LV2 plugin instantiate()
- function. Note that UI features and plugin features are NOT necessarily
- the same; @c features will probably not be the same array as the one the
- plugin host passes to a plugin.
- */
- LV2_PUI_Handle (*instantiate)(
- struct _LV2_PUI_Descriptor const* descriptor,
- char const* plugin_uri,
- char const* bundle_path,
- LV2_PUI_Host_Descriptor const* host_descriptor,
- LV2_PUI_Host_Handle host_handle,
- LV2_Feature const* const* features);
-
- /**
- Return the widget pointer for the UI object.
- This MUST return the same value during the entire lifetime of the UI
- object.
- */
- LV2_PUI_Widget (*get_widget)(LV2_PUI_Handle ui);
-
- /**
- Destroy the UI object and the associated widget.
- The host must not try to access the widget after calling this function.
- */
- void (*cleanup)(LV2_PUI_Handle ui);
-
- /**
- Notify the UI that something has happened to a subscribed port.
-
- This is called by the host when something happens at a plugin port that
- has been subscribed to using
- LV2_PUI_Host_Descriptor::add_port_subscription().
-
- The @c buffer is only valid during the time of this function call, so if
- the UI wants to keep it for later use it has to copy the contents to an
- internal buffer.
-
- @param ui A handle for the UI object.
- @param port_index The index of the port that has changed, as returned by
- LV2_PUI_Host_Descriptor::port_index().
- @param buffer_size The size of the data buffer in bytes.
- @param port_protocol The format of the data buffer, as returned by
- LV2_PUI_Host_Descriptor::port_protocol_id().
- @param buffer A pointer to the data buffer.
- */
- void (*port_event)(LV2_PUI_Handle ui,
- uint32_t port_index,
- uint32_t buffer_size,
- uint32_t port_protocol,
- void const* buffer);
-
- /**
- Return a data structure associated with an extension URI.
-
- This facility can be used by extensions to extend the LV2_PUI_Descriptor
- API. This function adheres to the same rules as
- LV2_Descriptor::extension_data, except it applies to UIs rather than
- plugins.
- */
- void const* (*extension_data)(char const* uri);
-
-} LV2_PUI_Descriptor;
-
-typedef void* LV2_PUI_Lib_Data;
-
-/**
- Descriptor for a plugin UI library.
-
- Each plugin UI shared library has exactly one of these objects, accessed
- via the lv2_pui_lib_descriptor() function in that library.
-*/
-typedef struct {
- /**
- Opaque library data which must be passed as the first parameter to
- all the methods of this struct.
- */
- LV2_PUI_Lib_Data lib_data;
-
- void (*cleanup)(LV2_PUI_Lib_Data lib_data);
-
- /**
- Prototype for UI accessor function.
-
- This function follows the same rules as lv2_descriptor(), except it
- applies to UIs rather than plugins.
- */
- LV2_PUI_Descriptor const* (*pui_descriptor)(LV2_PUI_Lib_Data lib_data,
- uint32_t index);
-
-} LV2_PUI_Lib_Descriptor;
-
-/**
- Prototype for UI library accessor function.
-
- This is the entry point for a plugin UI library. Hosts load this symbol
- from the library and call this function to obtain a library descriptor which
- can be used to access all the UIs contained in this library. The returned
- object must not be destroyed (with LV2_PUI_Lib_Descriptor::cleanup()) until
- all UIs loaded from that library have been destroyed.
-*/
-LV2_PUI_Lib_Descriptor const* lv2_pui_lib_descriptor(
- const char* bundle_path,
- LV2_Feature const* const* features);
-
-/**
- Type of the lv2_pui_lib_descriptor() function in a UI library.
-*/
-typedef LV2_PUI_Lib_Descriptor const* (*LV2_PUI_Lib_Descriptor_Func)(
- const char* bundle_path,
- LV2_Feature const* const* features);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LV2_PUI_H */
diff --git a/lv2/ns/ext/pui/pui.ttl b/lv2/ns/ext/pui/pui.ttl
deleted file mode 100644
index d305769..0000000
--- a/lv2/ns/ext/pui/pui.ttl
+++ /dev/null
@@ -1,284 +0,0 @@
-# LV2 Plugin UI Extension
-# Copyright (C) 2010-2011 Lars Luthman <mail@larsluthman.net>
-#
-# Based on lv2.ttl, which is
-# Copyright (C) 2006-2008 Steve Harris, David Robillard
-#
-# This extension should be considered a replacement for the earlier
-# in-process UI extension with the URI <http://lv2plug.in/ns/extensions/ui>.
-# Hosts and plugins that used that extension should use this one instead.
-# The earlier in-process UI extension is not compatible with LV2 revision 3
-# and later and may break in subtle ways.
-#
-# 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 doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#>.
-@prefix pui: <http://lv2plug.in/ns/ext/pui#>.
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/pui>
- a lv2:Specification ;
- doap:license <http://usefulinc.com/doap/licenses/mit> ;
- doap:name "LV2 UI" ;
- doap:shortdesc "Generic UI interface for LV2 plugins." ;
- doap:release [
- doap:revision "0.1" ;
- doap:created "2011-03-26"
- ] ;
- doap:maintainer [
- a foaf:Person ;
- foaf:name "Lars Luthman" ;
- foaf:mbox <mailto:mail@larsluthman.net>
- ] ;
- lv2:documentation """
-<p>This extension defines an interface that can be used to create UIs for
-plugins. The UIs are code that reside in shared object files in an LV2
-bundle and are referenced in the RDF data using the triples:</p>
-<pre class="turtle-code">
-@prefix pui: &lt;http://lv2plug.in/ns/ext/pui#&gt; .
-
-&lt;http://example.org/my-ui&gt;
- a pui:Gtk2UI ;
- lv2:appliesTo &lt;http://example.org/my-plugin&gt; ;
- pui:binary &lt;my-ui.so&gt; .
-</pre>
-<p>... where <code>http://example.org/my-plugin</code> is the URI of the plugin,
-<code>http://example.org/my-ui</code> is the URI of the plugin UI and
-<code>my-ui.so</code> is the relative URI to the shared object file. While it
-is possible to have the plugin UI and the plugin in the same shared object file
-it is probably a good idea to keep them separate so that hosts that don't want
-UIs don't have to load the UI code.</p>
-
-<p>A UI MUST specify its class in the RDF data and the class MUST be a proper
-subclass of pui:UI, in this case pui:Gtk2UI. The class defines what type the
-UI is, e.g. what graphics toolkit it uses. There are no UI classes defined in
-this extension, those are specified separately (and anyone can define their
-own).</p>
-
-<p>It's entirely possible to have multiple UIs for the same plugin, or to have
-the UI for a plugin in a different bundle from the actual plugin - this way
-people other than the plugin author can write plugin UIs independently without
-editing the original plugin bundle. It is also possible to have one UI that
-works with several different plugins.</p>
-
-<p>UIs should also be written in such a way that the host may load several
-instances of an UI, or different UIs, and use them with the same plugin
-instance.</p>
-
-<p>Note that the process that loads the shared object file containing the UI
-code and the process that loads the shared object file containing the actual
-plugin implementation do not have to be the same. There are many valid reasons
-for having the plugin and the UI in different processes, or even on different
-machines. This means that you can <strong>not</strong> use singletons and
-global variables and expect them to refer to the same objects in the UI and the
-actual plugin. The function callback interface defined in the header pui.h is
-all you can expect to work.</p>
-""" .
-
-pui:UI
- a rdfs:Class ;
- rdfs:subClassOf lv2:Feature ;
- rdfs:label "UI" ;
- lv2:documentation """
-<p>The class which represents an LV2 plugin UI.
-</p>
-
-<p>To be used by a host a UI MUST have at least the following properties:</p>
-<ul>
-<li>rdf:type (with object a proper subclass of pui:UI)</li>
-<li>doap:name (one without language tag)</li>
-<li>lv2:binary (with a shared object file as object)</li>
-<li>lv2:appliesTo (with a LV2 plugin as object)</li>
-</ul>
-
-<p>The rdf:type of an UI is used by the host to decide whether it supports the
-UI and how to handle the LV2_PUI_Widget object that is returned by the UIs
-get_widget() function. For example, a type of pui:Gtk2UI might tell the
-host that LV2_PUI_Widget is a pointer to an object of a type defined in the
-Gtk+ library. No UI types are defined in this extension, that is intentionally
-left for other extensions.</p>
-
-<p>The doap:name property should be at most a few words in length using title
-capitalization, e.g. "Flashy Mixer GUI". Use lv2:documentation for more
-detailed descriptions.</p>
-
-<p>UIs may have optional or required features, specified using lv2:optionalFeature
-or lv2:requiredFeature. The same rules apply here as for plugins; a host MUST
-pass the LV2_Feature objects for all features it supports to the UI's
-instantiate() function, a host SHOULD NOT try to instantiate an UI if it
-doesn't support all of its required features, and an UI MUST fail to
-instantiate if the host doesn't pass all required features to instantiate().
-</p>
-
-<p>For details about the C API used to load UIs, see the file pui.h.
-</p>
-""" .
-
-pui:PortProtocol
- a rdfs:Class ;
- rdfs:subClassOf lv2:Feature ;
- rdfs:label "Port protocol" ;
- lv2:documentation """
-<p>A PortProtocol defines a certain way of communicating port data between UI
-and plugin. PortProtocols can be specified in additional extensions, and
-those extensions MUST specify:
-</p>
-
-<ol>
-<li>Which plugin port types the buffer type is valid for</li>
-<li>When the host should call port_event() in LV2_PUI_Descriptor</li>
-<li>The format of the data in the buffer passed to port_event()</li>
-<li>The format of the data in the buffer passed to write_port()</li>
-<li>What happens when the UI calls write_port() in LV2_PUI_Host_Descriptor</li>
-<li>What data (if any) should be passed in the LV2_Feature data pointer. </li>
-</ol>
-
-<p>For an example, see pui:floatControl or pui:floatPeakRMS.
-</p>
-
-<p>PortProtocol is a subclass of lv2:Feature, so UIs use lv2:optionalFeature and
-lv2:requiredFeature to specify which PortProtocols they want to use.
-</p>
-""" .
-
-pui:floatControl
- a pui:PortProtocol ;
- rdfs:label "Floating point value" ;
- lv2:documentation """
-<p>The rules (see pui:PortProtocol) for this port protocol are:</p>
-<ol>
-<li>This PortProtocol is valid for ports with the type lv2:ControlPort.</li>
-<li>The host SHOULD call port_event() as soon as possible when the port value
- has changed, but the plugin MUST NOT depend on a call for every change or
- the timing of the calls. However, the host MUST do the calls in the same
- order that the value changes occur in.</li>
-<li>The format of the data in the buffer passed to port_event() is a single
- float, and the buffer size is sizeof(float).</li>
-<li>Same as 3.</li>
-<li>The host SHOULD change the port value as soon as possible when write_port()
- is called, but the UI MUST NOT depend on a change for every call or the
- timing of the changes. However, the host MUST do the changes in the same
- order that the function calls occur in.</li>
-<li>The data pointer in the LV2_Feature object for this feature should be
- NULL.</li>
-</ol>
-""" .
-
-pui:floatPeakRMS
- a pui:PortProtocol ;
- rdfs:label "Peak and RMS for a period of audio data" ;
- lv2:documentation """
-<p>This port protocol defines a way for the host to send continuous peak
-and RMS measurements of the audio signal at a certain port to the UI. The
-intended use is visualisation, e.g. an animated meter widget that shows
-the level of the audio input or output.</p>
-
-<p>A contiguous sequence of audio samples for which a single peak value
-and a single RMS value have been computed is called a <em>measurement
-period</em>.</p>
-
-<p>The rules (see pui:PortProtocol) for this port protocol are:</p>
-<ol>
-<li>This PortProtocol is valid for ports with the type lv2:AudioPort.</li>
-<li>The host SHOULD call port_event() at regular intervals. The measurement
- periods used for calls to port_event() for the same port SHOULD be
- contiguous (i.e. the measurement period for one call should begin right
- after the end of the measurement period for the previous call ends) unless
- the UI has removed and re-added the port subscription between those calls.
- However, UIs MUST NOT depend on either the regularity of the calls or the
- contiguity of the measurement periods; hosts may change the call rate
- or skip calls for performance or other reasons. Measurement periods for
- different calls to port_event() for the same port MUST NOT overlap.</li>
-<li>The format of the data in the buffer passed to port_event() is a single
- LV2_PUI_Peak_RMS_Data object, and the buffer size is
- sizeof(LV2_PUI_Peak_RMS_Data).</li>
-<li>The UI MUST NOT call write_port() with the ID for this port protocol as
- the port_protocol parameter.</li>
-<li>The host MUST ignore any write_port() calls with the ID for this port
- protocol as the port_protocol parameter.</li>
-<li>The data pointer in the LV2_Feature object for this feature should be
- NULL.</li>
-</ol>
-""" .
-
-pui:events
- a pui:PortProtocol ;
- rdfs:label "Event buffer" ;
- lv2:documentation """
-<ol>
-<li>This PortProtocol is valid for ports with the type ev:EventPort.</li>
-<li>The host MUST call port_event() whenever there is an event in an input port
- prior to the plugin instance's run() function is called, and whenever there
- is an event in an output port after run() has been called. The UI MUST NOT
- depend on the timing of the calls. However, the host MUST do the calls in
- the same order that the events occur in. The host is allowed and encouraged
- to bundle multiple events into a single port_event() call if it improves
- performance.</li>
-<li>The data buffer passed to port_event() is an LV2_Event_Buffer, as specified
- in the Event extension. The stamp_type MUST be ignored. The frames and
- subframes fields of every event in the buffer MUST be ignored. Events with
- type 0 (reference counted events) MUST be ignored.</li>
-<li>The data buffer passed to write_event() is an LV2_Event_Buffer, as
- specified in the Event extension. The stamp_type MUST be ignored. The
- frames and subframes fields of every event in the buffer MUST be
- ignored. The host MUST NOT pass events with type 0 (references) unless the
- UI supports the feature "http://lv2plug.in/ns/ext/event".</li>
-<li>The host MUST pass all the events in the buffer to the plugin instance's
- event port in the same order, but the plugin and the UI MUST NOT depend on
- the timing of the events, or on whether they are all sent to the plugin in
- the same run() call or distributed over multiple calls.</li>
-<li>The data pointer in the LV2_Feature object for this feature should be
- NULL.</li>
-</ol>
-""" .
-
-pui:Gtk2UI
- a rdfs:Class ;
- rdfs:subClassOf pui:UI ;
- rdfs:label "Gtk+ UI" ;
- lv2:documentation """
-<p>The class which represents a Gtk+ UI. For a successfully created instance of
-an UI of this class, the get_widget() function MUST return a pointer to a valid
-GtkWidget object compatible with Gtk+ version 2.0. The host MUST ensure that
-the Gtk+ library has been initialised and that the Glib main loop is running
-before an UI of this type is instantiated.</p>
-
-<p>Unless otherwise specified by extensions, all function pointers in
-LV2_PUI_Descriptor may only be called from the thread that runs the Glib main
-loop.</p>
-""" .
-
-pui:noHostResize
- a lv2:Feature ;
- rdfs:label "No host resize" ;
- lv2:documentation """
-<p>This Feature should only be used with UIs.</p>
-
-<p>When this Feature is active the host SHOULD NOT resize the UI widget to any
-other size than its natural size, which the host should be able to determine
-via the API of whatever toolkit the UI is implemented in. However, the UI MUST
-NOT break if the widget is resized to another size. This Feature can be used
-for example when the widget uses a fixed-size pixmap interface.</p>
-
-<p>The data pointer in the LV2_Feature object for this Feature should be set to
-NULL.</p>
-""" .
diff --git a/lv2/ns/ext/pui/waf b/lv2/ns/ext/pui/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/pui/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/pui/wscript b/lv2/ns/ext/pui/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/pui/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/reference/ext.pc.in b/lv2/ns/ext/reference/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/reference/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/reference/manifest.ttl b/lv2/ns/ext/reference/manifest.ttl
deleted file mode 100644
index e25c54d..0000000
--- a/lv2/ns/ext/reference/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/reference>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <reference.ttl> .
-
diff --git a/lv2/ns/ext/reference/reference.h b/lv2/ns/ext/reference/reference.h
deleted file mode 100644
index 26ef4c3..0000000
--- a/lv2/ns/ext/reference/reference.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- Copyright 2008-2011 David Robillard <http://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.
-*/
-
-/**
- @file reference.h C header for the LV2 Reference extension
- <http://lv2plug.in/ns/ext/reference>.
-*/
-
-#ifndef LV2_REFERENCE_H
-#define LV2_REFERENCE_H
-
-#define LV2_REFERENCE_URI "http://lv2plug.in/ns/ext/reference"
-#define LV2_REFERENCE_BLOB_SUPPORT_URI LV2_REFERENCE_URI "#blobSupport"
-
-#include <stdint.h>
-#include <stddef.h>
-
-#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
-
-/**
- Dynamically Allocated Data.
-
- This is an opaque piece of data of any type, dynamically allocated in memory.
- Unlike an "atom", a "blob" is not necessarily POD. Non-POD data is referred
- to by a "reference (a special case of atom with type 0).
-
- This is a pointer to host data which is opaque to the plugin. Plugins MUST
- NOT interpret this data in any way, except via host-provided functions in
- LV2_Blob_Support.
-*/
-typedef void* LV2_Blob;
-
-typedef LV2_Atom LV2_Reference;
-
-typedef void* LV2_Blob_Support_Data;
-
-typedef void (*LV2_Blob_Destroy)(LV2_Blob* blob);
-
-/**
- The data field of the LV2_Feature for reference:blobSupport.
-
- A host which supports blobs must pass an LV2_Feature to the plugin's
- instantiate method with 'URI' = "http://lv2plug.in/ns/ext/reference#blobSupport"
- and 'data' pointing to an instance of this struct. All fields of this struct
- MUST be set to non-NULL values by the host, except possibly 'data'.
-*/
-typedef struct {
-
- /**
- Pointer to opaque host data.
-
- The plugin MUST pass this to any call to functions in this struct.
- Otherwise, the plugin MUST NOT interpret this value in any way.
- */
- LV2_Blob_Support_Data data;
-
- /**
- The size of a reference, in bytes.
-
- This value is provided by the host so plugins can allocate large enough
- chunks of memory to store references. Note a reference is an LV2_Reference
- with type reference:Reference, hence ref_size is a uint16, like
- LV2_Reference.size.
- */
- uint16_t ref_size;
-
- /**
- Return the Blob referred to by @a ref.
-
- The returned value MUST NOT be used in any way other than by calling
- methods defined in LV2_Blob_Support (e.g. it MUST NOT be directly
- accessed, copied, or destroyed). The actual payload of the blob can
- be accessed with LV2_Blob_Support.blob_get.
- */
- LV2_Blob (*ref_get)(LV2_Blob_Support_Data data,
- LV2_Reference* ref);
-
- /**
- Copy a reference.
- This copies a reference but not the blob it refers to,
- i.e. after this call @a dst and @a src refer to the same LV2_Blob.
- */
- void (*ref_copy)(LV2_Blob_Support_Data data,
- LV2_Reference* dst,
- LV2_Reference* src);
-
- /**
- Reset (release) a reference.
- After this call, @a ref is invalid. Implementations must be sure to
- call this function when necessary, or memory leaks will result. The
- specific times this is necessary MUST be defined by any extensions that
- define a mechanism for transporting references. The standard semantics are:
- <ul><li>Whenever passed a Reference (e.g. via a Port) and run, the
- plugin owns that reference.</li>
- <li>The plugin owns any reference it creates (e.g. by using blob_new or
- ref_copy).</li>
- <li>For any reference it owns, the plugin MUST either:
- <ul><li>Copy the reference and store it (to be used in future runs and
- released later).</li>
- <li>Copy the reference to an output port exactly once.</li>
- <li>Release it with ref_reset.</li></ul></li>
- </ul>
- */
- void (*ref_reset)(LV2_Blob_Support_Data data,
- LV2_Reference* ref);
-
- /**
- Initialize a reference to point to a newly allocated Blob.
-
- @param data Must be the data member of this struct.
- @param ref Pointer to an area of memory at least as large as
- the ref_size field of this struct. On return, this will
- be the unique reference to the new blob, which is owned by the
- caller. Assumed to be uninitialised, i.e. the caller MUST NOT
- pass a valid reference since this could cause a memory leak.
- @param destroy Function to destroy this blob. This function
- MUST clean up any resources contained in the blob, but MUST NOT
- attempt to free the memory pointed to by its LV2_Blob* parameter
- (since this is allocated by the host).
- @param type ID of type of blob to allocate.
- @param size Size of blob to allocate in bytes.
- */
- void (*blob_new)(LV2_Blob_Support_Data data,
- LV2_Reference* ref,
- LV2_Blob_Destroy destroy,
- uint32_t type,
- size_t size);
-
- /**
- Get blob's type as an ID.
-
- The return value may be any type URI, mapped to an integer with the
- URI Map extension with <code>context = NULL</code>.
- */
- uint32_t (*blob_type)(LV2_Blob blob);
-
- /**
- Get blob's body.
-
- Returns a pointer to the start of the blob data. The format of this
- data is defined by the return value of the type method. It MUST NOT
- be used in any way by code which does not understand that type.
- */
- void* (*blob_data)(LV2_Blob blob);
-
-} LV2_Blob_Support;
-
-#endif /* LV2_REFERENCE_H */
diff --git a/lv2/ns/ext/reference/reference.ttl b/lv2/ns/ext/reference/reference.ttl
deleted file mode 100644
index bbf56d4..0000000
--- a/lv2/ns/ext/reference/reference.ttl
+++ /dev/null
@@ -1,82 +0,0 @@
-# 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#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>
-""" .
diff --git a/lv2/ns/ext/reference/waf b/lv2/ns/ext/reference/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/reference/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/reference/wscript b/lv2/ns/ext/reference/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/reference/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/resize-port/ext.pc.in b/lv2/ns/ext/resize-port/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/resize-port/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/resize-port/manifest.ttl b/lv2/ns/ext/resize-port/manifest.ttl
deleted file mode 100644
index 37d1b42..0000000
--- a/lv2/ns/ext/resize-port/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/resize-port>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <resize-port.ttl> .
-
diff --git a/lv2/ns/ext/resize-port/resize-port.h b/lv2/ns/ext/resize-port/resize-port.h
deleted file mode 100644
index 7f014a3..0000000
--- a/lv2/ns/ext/resize-port/resize-port.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* LV2 Resize Port Extension
- * Copyright (C) 2007-2009 David Robillard <http://drobilla.net>
- *
- * This header is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This header is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef LV2_RESIZE_PORT_H
-#define LV2_RESIZE_PORT_H
-
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-
-#define LV2_RESIZE_PORT_URI "http://lv2plug.in/ns/ext/resize-port"
-
-typedef void* LV2_Resize_Port_Feature_Data;
-
-typedef struct {
-
- LV2_Resize_Port_Feature_Data data;
-
- /** Resize a port buffer to at least @a size bytes.
- *
- * This function MAY return false, in which case the port buffer was
- * not resized and the port is still connected to the same location.
- * Plugins MUST gracefully handle this situation.
- *
- * This function MUST NOT be called from any context other than
- * the context associated with the port of the given index.
- *
- * The host MUST preserve the contents of the port buffer when
- * resizing.
- *
- * Plugins MAY resize a port many times in a single run callback.
- * Hosts SHOULD make this an inexpensive as possible (i.e. plugins
- * can liberally use this function in a similar way to realloc).
- */
- bool (*resize_port)(LV2_Resize_Port_Feature_Data data,
- uint32_t index,
- size_t size);
-
-} LV2_Resize_Port_Feature;
-
-#endif /* LV2_RESIZE_PORT_H */
-
diff --git a/lv2/ns/ext/resize-port/resize-port.ttl b/lv2/ns/ext/resize-port/resize-port.ttl
deleted file mode 100644
index a458431..0000000
--- a/lv2/ns/ext/resize-port/resize-port.ttl
+++ /dev/null
@@ -1,80 +0,0 @@
-# LV2 Contexts Extension
-#
-# Allows for an LV2 plugin to have several independent contexts, each with its
-# own run callback and associated ports.
-#
-# Copyright (C) 2007 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 rsz: <http://lv2plug.in/ns/ext/resize-port#> .
-@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#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-
-<http://lv2plug.in/ns/ext/resize-port>
- a lv2:Specification ;
- a lv2:Feature ;
- doap:name "LV2 Resize Port Extension" ;
- doap:shortdesc "Dynamically sized LV2 port buffers." ;
- lv2:documentation """
-<p>An extension that allows LV2 plugins to request a resize of an output
-port.</p>
-
-<p>Any host which supports this extension must pass an LV2_Feature to the
-plugin's instantiate method with URI http://lv2plug.in/ns/ext/resize-port and a
-pointer to a LV2_Resize_Port_Feature structure. This structure provides a
-resize_port function which plugins may use to resize output port buffers as
-necessary.</p>
-
-<p>This extension also defines several predicates useful for describing the
-amount of space required for a particular port buffer.</p>
-""" .
-
-rsz:asLargeAs a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:Symbol ;
- rdfs:label "as large as" ;
- rdfs:comment """
-Indicates that a port requires at least as much buffer space as the port
-with the given symbol on the same plugin instance. This may be used for
-any ports, but is generally most useful to indicate an output port must
-be at least as large as some input port (because it will copy from it).
-If a port is asLargeAs several ports, it is asLargeAs the largest such port
-(not the sum of those ports' sizes).
-
-The host guarantees that whenever an ObjectPort's run method is called,
-any output O that is obj:asLargeAs an input I is connected to a buffer large
-enough to copy I, or NULL if the port is lv2:connectionOptional.
-""" .
-
-rsz:minimumSize a rdf:Property ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:Symbol ;
- rdfs:label "minimum size" ;
- rdfs:comment """
-Indicates that a port requires a buffer at least this large, in bytes.
-Any host that supports the resize-port feature MUST connect any port with a
-minimumSize specified to a buffer at least as large as the value given for
-this property. Any host, especially those that do NOT support dynamic port
-resizing, SHOULD do so or reduced functionality may result.
-""" .
diff --git a/lv2/ns/ext/resize-port/waf b/lv2/ns/ext/resize-port/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/resize-port/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/resize-port/wscript b/lv2/ns/ext/resize-port/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/resize-port/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/state/ext.pc.in b/lv2/ns/ext/state/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/state/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/state/manifest.ttl b/lv2/ns/ext/state/manifest.ttl
deleted file mode 100644
index bff9ad5..0000000
--- a/lv2/ns/ext/state/manifest.ttl
+++ /dev/null
@@ -1,8 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/state>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 5 ;
- rdfs:seeAlso <state.ttl> .
diff --git a/lv2/ns/ext/state/state.h b/lv2/ns/ext/state/state.h
deleted file mode 100644
index b450b93..0000000
--- a/lv2/ns/ext/state/state.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- Copyright 2010-2012 David Robillard <http://drobilla.net>
- Copyright 2010 Leonard Ritter <paniq@paniq.org>
-
- 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.
-*/
-
-/**
- @file
- C API for the LV2 State extension <http://lv2plug.in/ns/ext/state>.
-*/
-
-#ifndef LV2_STATE_H
-#define LV2_STATE_H
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
-
-#ifdef __cplusplus
-extern "C" {
-#else
-# include <stdbool.h>
-#endif
-
-#define LV2_STATE_URI "http://lv2plug.in/ns/ext/state"
-
-#define LV2_STATE_INTERFACE_URI LV2_STATE_URI "#Interface"
-#define LV2_STATE_PATH_URI LV2_STATE_URI "#Path"
-#define LV2_STATE_MAP_PATH_URI LV2_STATE_URI "#mapPath"
-#define LV2_STATE_MAKE_PATH_URI LV2_STATE_URI "#makePath"
-
-typedef void* LV2_State_Handle;
-typedef void* LV2_State_Map_Path_Handle;
-typedef void* LV2_State_Make_Path_Handle;
-
-/**
- Flags describing value characteristics.
-
- These flags are used along with the value's type URI to determine how to
- (de-)serialise the value data, or whether it is even possible to do so.
-*/
-typedef enum {
-
- /**
- Plain Old Data.
-
- Values with this flag contain no references to non-persistent or
- non-global resources (e.g. pointers, handles, local paths, etc.). It is
- safe to copy POD values with a simple memcpy and store them for use at
- any time in the future on a machine with a compatible architecture
- (e.g. the same endianness and alignment).
-
- Implementations MUST NOT attempt to copy or serialise a non-POD value if
- they do not understand its type (and thus know how to correctly do so).
- */
- LV2_STATE_IS_POD = 1,
-
- /**
- Portable (architecture independent) data.
-
- Values with this flag are in a format that is usable on any
- architecture, i.e. if the value is saved on one machine it can safely be
- restored on another machine regardless of endianness, alignment, etc.
- */
- LV2_STATE_IS_PORTABLE = 1 << 1,
-
- /**
- Native data.
-
- This flag is used by the host to indicate that the saved data is only
- going to be used locally in the currently running process (e.g. for
- instance duplication or snapshots), so the plugin should use the most
- efficient representation possible and not worry about serialisation
- and portability.
- */
- LV2_STATE_IS_NATIVE = 1 << 2
-
-} LV2_State_Flags;
-
-/**
- A host-provided function to store a property.
- @param handle Must be the handle passed to LV2_State_Interface.save().
- @param key The key (predicate) to store @c value under (URI mapped integer).
- @param value Pointer to the value (object) to be stored.
- @param size The size of the data at @c value in bytes.
- @param type The type of @c value (URI).
- @param flags LV2_State_Flags for @c value.
- @return 0 on success, otherwise a non-zero error code.
-
- The host passes a callback of this type to LV2_State_Interface.save(). This
- callback is called repeatedly by the plugin within
- LV2_State_Interface.save() to store all the statements that describe its
- current state.
-
- DO NOT INVENT NONSENSE URI SCHEMES FOR THE KEY. Best is to use keys from
- existing vocabularies. If nothing appropriate is available, use http URIs
- that point to somewhere you can host documents, so you can make
- documentation resolvable. If this is not possible, invent a URN scheme,
- e.g. urn:myproj:whatever. The plugin MUST NOT pass an invalid URI key.
-
- The host MAY fail to store a property for whatever reason, but SHOULD
- store any property that is LV2_STATE_IS_POD and LV2_STATE_IS_PORTABLE.
- Implementations SHOULD use the types from the LV2 Atom extension
- (http://lv2plug.in/ns/ext/atom) wherever possible.
-
- Note that @c size MUST be > 0, and @c value MUST point to a valid region of
- memory @c size bytes long (this is required to make restore unambiguous).
-
- The plugin MUST NOT attempt to use this function outside of the
- LV2_State_Interface.restore() context.
-*/
-typedef int (*LV2_State_Store_Function)(LV2_State_Handle handle,
- uint32_t key,
- const void* value,
- size_t size,
- uint32_t type,
- uint32_t flags);
-
-/**
- A host-provided function to retrieve a property.
- @param handle Must be the handle passed to
- LV2_State_Interface.restore().
- @param key The key (predicate) of the property to retrieve (URI).
- @param size (Output) If non-NULL, set to the size of the restored value.
- @param type (Output) If non-NULL, set to the type of the restored value.
- @param flags (Output) If non-NULL, set to the LV2_State_Flags for
- the returned value.
- @return A pointer to the restored value (object), or NULL if no value
- has been stored under @c key.
-
- A callback of this type is passed by the host to
- LV2_State_Interface.restore(). This callback is called repeatedly by the
- plugin within LV2_State_Interface.restore() to retrieve any properties it
- requires to restore its state.
-
- The returned value MUST remain valid until LV2_State_Interface.restore()
- returns.
-
- The plugin MUST NOT attempt to use this function, or any value returned from
- it, outside of the LV2_State_Interface.restore() context. Returned values
- MAY be copied for later use if necessary, assuming the plugin knows how to
- do so correctly (e.g. the value is POD, or the plugin understands the type).
-*/
-typedef const void* (*LV2_State_Retrieve_Function)(LV2_State_Handle handle,
- uint32_t key,
- size_t* size,
- uint32_t* type,
- uint32_t* flags);
-
-/**
- State Extension Data.
-
- When the plugin's extension_data is called with argument LV2_STATE_URI,
- the plugin MUST return an LV2_State structure, which remains valid for the
- lifetime of the plugin.
-
- The host can use the contained function pointers to save and restore the
- state of a plugin instance at any time (provided the threading restrictions
- for the given function are met).
-
- The typical use case is to save the plugin's state when a project is saved,
- and to restore the state when a project has been loaded. Other uses are
- possible (e.g. cloning plugin instances or taking a snapshot of plugin
- state).
-
- Stored data is only guaranteed to be compatible between instances of plugins
- with the same URI (i.e. if a change to a plugin would cause a fatal error
- when restoring state saved by a previous version of that plugin, the plugin
- URI MUST change just as it must when ports change incompatibly). Plugin
- authors should consider this possibility, and always store sensible data
- with meaningful types to avoid such compatibility issues in the future.
-*/
-typedef struct _LV2_State_Interface {
-
- /**
- Save plugin state using a host-provided @c store callback.
-
- @param instance The instance handle of the plugin.
- @param store The host-provided store callback.
- @param handle An opaque pointer to host data, e.g. the map or
- file where the values are to be stored. If @c store is called, this MUST
- be passed as its handle parameter.
- @param flags Flags describing desires properties of this save. The
- plugin SHOULD use these values to determine the most appropriate and/or
- efficient serialisation, but is not required to do so.
- @param features Extensible parameter for passing any additional
- features to be used for this save.
-
- The plugin is expected to store everything necessary to completely
- restore its state later (possibly much later, in a different process, on
- a completely different machine, etc.)
-
- The @c handle pointer and @c store function MUST NOT be used
- beyond the scope of save().
-
- This function has its own special threading class: it may not be called
- concurrently with any "Instantiation" function, but it may be called
- concurrently with functions in any other class, unless the definition of
- that class prohibits it (e.g. it may not be called concurrently with a
- "Discovery" function, but it may be called concurrently with an "Audio"
- function. The plugin is responsible for any locking or lock-free
- techniques necessary to make this possible.
-
- Note that in the simple case where state is only modified by restore(),
- there are no synchronization issues since save() is never called
- concurrently with restore() (though run() may read it during a save).
-
- Plugins that dynamically modify state while running, however, must take
- care to do so in such a way that a concurrent call to save() will save a
- consistent representation of plugin state for a single instant in time.
- */
- void (*save)(LV2_Handle instance,
- LV2_State_Store_Function store,
- LV2_State_Handle handle,
- uint32_t flags,
- const LV2_Feature *const * features);
-
- /**
- Restore plugin state using a host-provided @c retrieve callback.
-
- @param instance The instance handle of the plugin.
- @param retrieve The host-provided retrieve callback.
- @param handle An opaque pointer to host data, e.g. the map or
- file from which the values are to be restored. If @c retrieve is
- called, this MUST be passed as its handle parameter.
- @param flags Currently unused.
- @param features Extensible parameter for passing any additional
- features to be used for this restore.
-
- The plugin MAY assume a restored value was set by a previous call to
- LV2_State_Interface.save() by a plugin with the same URI.
-
- The plugin MUST gracefully fall back to a default value when a value can
- not be retrieved. This allows the host to reset the plugin state with an
- empty map.
-
- The @c handle pointer and @c store function MUST NOT be used
- beyond the scope of restore().
-
- This function is in the "Instantiation" threading class as defined by
- LV2. This means it MUST NOT be called concurrently with any other
- function on the same plugin instance.
- */
- void (*restore)(LV2_Handle instance,
- LV2_State_Retrieve_Function retrieve,
- LV2_State_Handle handle,
- uint32_t flags,
- const LV2_Feature *const * features);
-
-} LV2_State_Interface;
-
-/**
- Feature data for state:mapPath (LV2_STATE_MAP_PATH_URI).
-*/
-typedef struct {
-
- /**
- Opaque host data.
- */
- LV2_State_Map_Path_Handle handle;
-
- /**
- Map an absolute path to an abstract path for use in plugin state.
- @param handle MUST be the @a handle member of this struct.
- @param absolute_path The absolute path of a file.
- @return An abstract path suitable for use in plugin state.
-
- The plugin MUST use this function to map any paths that will be stored
- in files in plugin state. The returned value is an abstract path which
- MAY not be an actual file system path; @ref absolute_path MUST be used
- to map it to an actual path in order to use the file.
-
- Hosts MAY map paths in any way (e.g. by creating symbolic links within
- the plugin's state directory or storing a list of referenced files
- elsewhere). Plugins MUST NOT make any assumptions about abstract paths
- except that they can be mapped back to an absolute path using @ref
- absolute_path.
-
- This function may only be called within the context of
- LV2_State_Interface.save() or LV2_State_Interface.restore(). The caller
- is responsible for freeing the returned value.
- */
- char* (*abstract_path)(LV2_State_Map_Path_Handle handle,
- const char* absolute_path);
-
- /**
- Map an abstract path from plugin state to an absolute path.
- @param handle MUST be the @a handle member of this struct.
- @param abstract_path An abstract path (e.g. a path from plugin state).
- @return An absolute file system path.
-
- Since abstract paths are not necessarily actual file paths (or at least
- not necessarily absolute paths), this function MUST be used in order to
- actually open or otherwise use the file referred to by an abstract path.
-
- This function may only be called within the context of
- LV2_State_Interface.save() or LV2_State_Interface.restore(). The caller
- is responsible for freeing the returned value.
- */
- char* (*absolute_path)(LV2_State_Map_Path_Handle handle,
- const char* abstract_path);
-
-} LV2_State_Map_Path;
-
-/**
- Feature data for state:makePath (@ref LV2_STATE_MAKE_PATH_URI).
-*/
-typedef struct {
-
- /**
- Opaque host data.
- */
- LV2_State_Make_Path_Handle handle;
-
- /**
- Return a path the plugin may use to create a new file.
- @param handle MUST be the @a handle member of this struct.
- @param path The path of the new file relative to a namespace unique
- to this plugin instance.
- @return The absolute path to use for the new file.
-
- This function can be used by plugins to create files and directories,
- either at state saving time (if this feature is passed to
- LV2_State_Interface.save()) or any time (if this feature is passed to
- LV2_Descriptor.instantiate()).
-
- The host must do whatever is necessary for the plugin to be able to
- create a file at the returned path (e.g. using fopen), including
- creating any leading directories.
-
- If this function is passed to LV2_Descriptor.instantiate(), it may be
- called from any non-realtime context. If it is passed to
- LV2_State_Interface.save(), it may only be called within the dynamic
- scope of that function call.
-
- The caller is responsible for freeing the returned value with free().
- */
- char* (*path)(LV2_State_Make_Path_Handle handle,
- const char* path);
-
-} LV2_State_Make_Path;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* LV2_STATE_H */
diff --git a/lv2/ns/ext/state/state.ttl b/lv2/ns/ext/state/state.ttl
deleted file mode 100644
index 6c0656a..0000000
--- a/lv2/ns/ext/state/state.ttl
+++ /dev/null
@@ -1,359 +0,0 @@
-# LV2 State Extension
-# Copyright 2010-2012 David Robillard <d@drobilla.net>
-# Copyright 2010 Leonard Ritter <paniq@paniq.org>
-#
-# 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 dcs: <http://ontologi.es/doap-changeset#> .
-@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 state: <http://lv2plug.in/ns/ext/state#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/ext/state>
- a lv2:Specification ;
- doap:name "LV2 State" ;
- doap:shortdesc "An interface for LV2 plugins to save and restore state." ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:release [
- doap:revision "0.5" ;
- doap:created "2012-01-29" ;
- dcs:blame <http://drobilla.net/drobilla#me>
- ] ;
- doap:developer [
- a foaf:Person ;
- foaf:name "Leonard Ritter" ;
- foaf:homepage <http://paniq.org>
- ] ;
- 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 provides a simple mechanism for plugins to save and restore
-state across instances, allowing hosts to save and restore a plugin instance's
-state at any time. The goal is for an instance's state to be
-<em>completely</em> described by port values (as with all LV2 plugins) and a
-dictionary.</p>
-
-<p>The <q>state</q> described by this extension is conceptually a simple
-key:value dictionary, where keys are URIDs (URIs mapped to integers) and values
-are type-tagged blobs of any type. A single key:value pair is called a
-<q>property</q>. To implement state, the plugin provides a state:Interface to
-the host. To save or restore, the host calls LV2_State_Interface::save() or
-LV2_State_Interface::restore(), passing a callback to be used for handling a
-single property. The host is free to implement property storage and retrieval
-in any way.</p>
-
-<p>This state model is simple yet has many benefits:</p>
-<ul>
- <li>URID keys provide both fast performance and RDF compatibility.</li>
- <li>Fully extensible, no limitations on keys or value types.</li>
- <li>Easy to serialise in many formats (e.g. any RDF syntax, plain
- text, JSON, XML, key:value databases, SQL, s-expressions, etc.).</li>
- <li>Elegantly described in Turtle, which is useful for describing presets
- or default state in LV2 data files (the predicate state:state is provided
- for this purpose).</li>
- <li>Does not impose any file formats, data structures, or file system
- requirements.</li>
- <li>Suitable for portable persistent state as well as fast in-memory
- snapshots.</li>
- <li>Easily stored in a typical <q>map</q> or <q>dictionary</q> data
- structure.</li>
- <li>Keys may be defined by extensions and used by several plugins,
- making state meaningful enabling dynamic state control.</li>
-</ul>
-
-<p>Implementations or further extensions which work with plugin state
-(including dynamic plugin control) SHOULD work entirely within this model.
-That is, <strong>do not complicate the state model</strong>. <em>All</em>
-information required to express an instance's state at any given time can, and
-should, be expressed within this model.</p>
-
-<h3>Plugin Code Example</h3>
-
-<pre class="c-code">
-#define NS_EG "http://example.org/"
-#define NS_ATOM "http://lv2plug.in/ns/ext/atom#"
-
-LV2_Handle my_instantiate(...)
-{
- MyPlugin* plugin = ...;
- plugin->uris.atom_String = map_uri(NS_ATOM "String");
- plugin->uris.eg_greeting = map_uri(NS_EG "greeting");
- plugin->state.greeting = strdup("Hello");
- return plugin;
-}
-
-void my_save(LV2_Handle instance,
- LV2_State_Store_Function store,
- void* handle,
- uint32_t flags,
- const LV2_Feature *const * features)
-{
- MyPlugin* plugin = (MyPlugin*)instance;
- const char* greeting = plugin->state.greeting;
-
- store(handle,
- plugin->uris.eg_greeting,
- greeting,
- strlen(greeting) + 1,
- plugin->uris.atom_String,
- LV2_STATE_IS_POD | LV2_STATE_IS_PORTABLE);
-}
-
-void my_restore(LV2_Handle instance,
- LV2_State_Retrieve_Function retrieve,
- void* handle,
- uint32_t flags,
- const LV2_Feature *const * features)
-{
- MyPlugin* plugin = (MyPlugin*)instance;
-
- size_t size;
- uint32_t type;
- uint32_t flags;
- const char* greeting = retrieve(
- handle, plugin->uris.eg_greeting, &amp;size, &amp;type, &amp;flags);
-
- if (greeting) {
- free(plugin->state->greeting);
- plugin->state->greeting = strdup(greeting);
- } else {
- plugin->state->greeting = strdup("Hello");
- }
-}
-
-const void* my_extension_data(const char* uri)
-{
- static const LV2_State_Interface state_iface = { my_save, my_restore };
- if (!strcmp(uri, LV2_STATE_INTERFACE_URI)) {
- return &amp;state_iface;
- }
-}
-</pre>
-
-<h3>Host Code Example</h3>
-
-<pre class="c-code">
-int store_callback(void* handle,
- uint32_t key,
- const void* value,
- size_t size,
- uint32_t type,
- uint32_t flags)
-{
- if ((flags &amp; LV2_STATE_IS_POD)) {
- /* We only care about POD since we're keeping state in memory only.
- If this was for disk or network storage/transmission,
- LV2_STATE_IS_PORTABLE would have to be checked as well.
- */
- Map* state_map = (Map*)handle;
- state_map->insert(key, Value(copy(value), size, type, pod));
- return 0;
- } else {
- return 1; /* Non-POD events are unsupported. */
- }
-}
-
-Map get_plugin_state(LV2_Handle instance)
-{
- LV2_State* state = instance.extension_data("http://lv2plug.in/ns/ext/state");
- Map state_map;
- /** Request a fast/native/POD save, since we're just copying in memory */
- state.save(instance, store_callback, &amp;state_map,
- LV2_STATE_IS_POD|LV2_STATE_IS_NATIVE);
- return state_map;
-}
-</pre>
-
-<h3>Referring to Existing Files</h3>
-
-<p>Plugins may need to refer to files (e.g. loaded samples) in their state.
-This is done by storing the file's path as a property just like any other
-value. However, there are some rules which MUST be followed when storing
-paths, see <a href="#mapPath">state:mapPath</a> for details.</p>
-
-<h3>Creating New Files or Directories</h3>
-
-<p>Implementations are strongly encouraged to avoid the use of files and simply
-store all state as properties whenever possible. However, occasionally the
-ability to create files is necessary. The feature <a
-href="#newPath">state:newPath</a> makes this possible, if it is provided by the
-host.</p>
-""" .
-
-state:Interface
- a rdfs:Class ;
- rdfs:subClassOf lv2:ExtensionData ;
- lv2:documentation """
-<p>A structure (LV2_State_Interface) which contains functions to be called by
-the host to save and restore state. In order to support this extension, the
-plugin must return a valid LV2_State_Interface from
-LV2_Descriptor::extension_data() when it is called with
-LV2_STATE_INTERFACE_URI.</p>
-
-<p>The plugin data file should describe this like so:</p>
-<pre class="turtle-code">
-@prefix state: &lt;http://lv2plug.in/ns/ext/state#&gt; .
-
-&lt;plugin&gt;
- a lv2:Plugin ;
- lv2:extensionData state:Interface .
-</pre>
-""" .
-
-state:State
- a rdfs:Class ;
- rdfs:label "Plugin Instance State" ;
- lv2:documentation """
-<p>This class is used to express a plugin instance's state in RDF. The
-key/value properties of the instance form the predicate/object (respectively)
-of triples with a state:State as the subject (see <a
-href="#state">state:state</a> for an example). This may be used wherever it is
-useful to express a plugin instance's state in RDF (e.g. for serialisation,
-storing in a model, or transmitting over a network). Note that this class is
-provided because it may be useful for hosts, plugins, or extensions that work
-with instance state, but its use is not required to support the LV2 State
-extension.</p>
-""" .
-
-state:state
- a rdf:Property ;
- rdfs:range state:State ;
- lv2:documentation """
-<p>Predicate to relate a plugin instance to its State. This may be used
-wherever the state of a particular plugin instance needs to be represented.
-Note that the domain of this property is unspecified, since LV2 does not define
-any RDF class for plugin instance. This predicate may be used wherever it makes
-sense to do so, e.g.:</p>
-<pre class="turtle-code">
-@prefix eg: &lt;http://example.org/&gt; .
-
-&lt;plugininstance&gt;
- state:state [
- eg:somekey "some value" ;
- eg:someotherkey "some other value" ;
- eg:favourite-number 2
- ] .
-</pre>
-<p>Note that this property is provided because it may be useful for hosts,
-plugins, or extensions that work with instance state, but its use is not
-required to support this extension.</p>
-""" .
-
-state:mapPath
- a lv2:Feature ;
- rdfs:label "Support for storing paths in files" ;
- lv2:documentation """
-
-<p>This feature maps absolute paths to/from <q>abstract paths</q> which are
-stored in state. To support this feature a host must pass an LV2_Feature with
-URI LV2_STATE_MAP_PATH_URI and data pointed to an LV2_State_Map_Path to the
-plugin's LV2_State_Interface methods.</p>
-
-<p>The plugin MUST map <em>all</em> paths stored in its state (including in any
-files in its state). This is necessary to enable host to handle file system
-references correctly, e.g. for distribution or archival.</p>
-
-<p>For example, a plugin may write a path to a state file like so:</p>
-
-<pre class="c-code">
-void write_path(LV2_State_Map_Path* map_path, FILE* myfile, const char* path)
-{
- char* abstract_path = map_path->abstract_path(map_path->handle, path);
- fprintf(myfile, "%s", abstract_path);
- free(abstract_path);
-}
-</pre>
-
-<p>Then, later reload the path like so:</p>
-
-<pre class="c-code">
-char* read_path(LV2_State_Map_Path* map_path, FILE* myfile)
-{
- /* Obviously this is not production quality code! */
- char abstract_path[1024];
- fscanf(myfile, "%s", abstract_path);
- return map_path->absolute_path(map_path->handle, abstract_path);
-}
-</pre>
-""" .
-
-state:makePath
- a lv2:Feature ;
- rdfs:label "Support for creating new files and directories" ;
- lv2:documentation """
-
-<p>This feature allows plugins to create new files and/or directories. To
-support this feature the host passes an LV2_Feature with URI
-LV2_STATE_MAKE_PATH_URI and data pointed to an LV2_State_Make_Path to the
-plugin. The host may make this feature available only during save by passing
-it to LV2_State_Interface::save(), or available any time by passing it to
-LV2_Descriptor::instantiate(). If passed to LV2_State_Interface::save(), the
-feature MUST NOT be used beyond the scope of that call.</p>
-
-<p>The plugin is guaranteed a hierarchial namespace unique to that plugin
-instance, and may expect the returned path to have the requested path as a
-suffix. There is <em>one</em> such namespace, even if the feature is passed to
-both LV2_Descriptor::instantiate() <em>and</em>
-LV2_State_Interface::save(). Beyond this, the plugin MUST NOT make any
-assumptions about the returned paths.</p>
-
-<p>Like any other paths, the plugin MUST map these paths using <a
-href="#mapPath">state:mapPath</a> before storing them in state. The plugin
-MUST NOT assume these paths will be available across a save/restore otherwise,
-i.e. only mapped paths saved to state are persistent, any other created paths
-are temporary.</p>
-
-<p>For example, a plugin may create a file in a subdirectory like so:</p>
-
-<pre class="c-code">
-char* save_myfile(LV2_State_Make_Path* make_path)
-{
- char* path = make_path->path(make_path->handle, "foo/bar/myfile.txt");
- FILE* myfile = fopen(path, 'w');
- fprintf(myfile, "Hello");
- fclose(myfile);
- return path;
-}
-</pre>
-""" .
-
-state:Path
- a rdfs:Class ;
- rdfs:label "Path" ;
- lv2:documentation """
-<p>A path to a file or directory.</p>
-
-<p>The format of a state:Path is a C string, possibly escaped or otherwise
-restricted in a system-specific manner. This URI (LV2_STATE_PATH_URI), mapped
-to an integer, MUST be used as the <code>type</code> parameter for any files
-passed to the LV2_State_Store_Function; and will likewise be returned by the
-corresponding call to the LV2_State_Retrieve_Function.</p>
-
-<p>When storing and retrieving a path, the plugin MUST NOT assume the same path
-will be restored. However, the restored path will refer to a file with
-equivalent contents to the original.</p>
-""" .
diff --git a/lv2/ns/ext/state/waf b/lv2/ns/ext/state/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/state/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/state/wscript b/lv2/ns/ext/state/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/state/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/string-port/ext.pc.in b/lv2/ns/ext/string-port/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/string-port/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/string-port/manifest.ttl b/lv2/ns/ext/string-port/manifest.ttl
deleted file mode 100644
index d0e618e..0000000
--- a/lv2/ns/ext/string-port/manifest.ttl
+++ /dev/null
@@ -1,8 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/string-port>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <string-port.ttl> .
diff --git a/lv2/ns/ext/string-port/string-port.h b/lv2/ns/ext/string-port/string-port.h
deleted file mode 100644
index e7fc8c7..0000000
--- a/lv2/ns/ext/string-port/string-port.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* lv2_string_port.h - C header file for LV2 string port extension.
- * Draft Revision 3
- * Copyright (C) 2008 Krzysztof Foltman <wdev@foltman.com>
- *
- * This header is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This header is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this header; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 01222-1307 USA
- */
-
-/** @file
- * C header for the LV2 String Port extension
- * <http://lv2plug.in/ns/ext/string-port#StringTransfer>.
- */
-
-#ifndef LV2_STRING_PORT_H
-#define LV2_STRING_PORT_H
-
-#include <stdint.h>
-
-/** URI for the string port transfer mechanism feature */
-#define LV2_STRING_PORT_URI "http://lv2plug.in/ns/ext/string-port#StringTransfer"
-
-/** Flag: port data has been updated; for input ports, this flag is set by
-the host. For output ports, this flag is set by the plugin. */
-#define LV2_STRING_DATA_CHANGED_FLAG 1
-
-/** structure for string port data */
-typedef struct
-{
- /** Buffer for UTF-8 encoded zero-terminated string value; host-allocated */
- char *data;
-
- /** Length in bytes (not characters), not including zero byte */
- size_t len;
-
- /** Output ports: storage space in bytes; must be >= RDF-specified requirements */
- size_t storage;
-
- /** Flags defined above */
- uint32_t flags;
-
- /** Undefined (pad to 8 bytes) */
- uint32_t pad;
-
-} LV2_String_Data;
-
-#endif
-
diff --git a/lv2/ns/ext/string-port/string-port.ttl b/lv2/ns/ext/string-port/string-port.ttl
deleted file mode 100644
index f36fa7a..0000000
--- a/lv2/ns/ext/string-port/string-port.ttl
+++ /dev/null
@@ -1,105 +0,0 @@
-# LV2 String Port Extension.
-# Draft Revision 3
-# Copyright (C) 2008 Krzysztof Foltman
-#
-# 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 sp: <http://lv2plug.in/ns/ext/string-port#> .
-@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#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-
-<http://lv2plug.in/ns/ext/string-port> a lv2:Specification ;
- doap:license <http://usefulinc.com/doap/licenses/mit> ;
- doap:name "LV2 String Ports" ;
- doap:maintainer [
- a foaf:Person ;
- foaf:name "Krzysztof Foltman" ;
- ] ;
- lv2:documentation """
-<p>Defines ports which contain string data.</p>
-
-<h4>UI issues</h4>
-<p>When using port_event / write_port (and possible other communication
-mechanisms), the format parameter should contain the numeric value of URI
-LV2_STRING_PORT_URI (mapped with http://lv2plug.in/ns/extensions/ui specified
-as map URI).</p>
-
-<p>It's probably possible to use ports belonging to message context
-&lt;http://lv2plug.in/ns/ext/contexts#MessageContext&gt; for transfer. However,
-contexts mechanism does not offer any way to notify the message recipient about
-which ports have been changed. To remedy that, this extension defines a flag
-LV2_STRING_DATA_CHANGED_FLAG that carries that information inside a port value
-structure.</p>
-
-<h4>Storage</h4>
-<p>The value of string port are assumed to be "persistent": if a host saves and
-restores a state of a plugin (e.g. control port values), the values of input
-string ports should also be assumed to belong to that state. This also applies
-to message context: if a session is being restored, the host MUST resend the
-last value that was sent to the port before session has been saved. In other
-words, string port values "stick" to message ports.</p>
-""" .
-
-sp:StringTransfer a lv2:Feature ;
- rdfs:label "String data transfer via LV2_String_Data" .
-
-sp:StringPort a lv2:Port ;
- rdfs:label "String port" ;
- lv2:documentation """
-<p>Indicates that the port data points to a LV2_String_Data structure
-as defined in accompanying header file.</p>
-
-<h4>Input Port Semantics</h4>
-<p>If the port does not have a context specified (it runs in the default,
-realtime audio processing context), the values in the structure and the actual
-string data MUST remain unchanged for the time a run() function of a plugin
-is executed. However, if the port belongs to a different context, the same
-data MUST remain unchanged only for the time a run() or message_process()
-function of a given context is executed.</p>
-
-<h4>Output Port Semantics</h4>
-<p>The plugin may only change the string or length in a run() function (if
-the port belongs to default context) or in context-defined counterparts
-(if the port belongs to another context). Because of that, using default
-context output string ports is contraindicated for longer strings.</p>
-""" .
-
-sp:default a rdf:Property ;
- rdfs:label "Default value" ;
- rdfs:domain sp:StringPort ;
- rdfs:range xsd:string ;
- rdfs:comment """
-Gives a default value for a string port.
-""" .
-
-sp:requiredSpace a rdf:Property ;
- rdfs:label "Required storage space in bytes" ;
- rdfs:domain sp:StringPort ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:comment """
-Specifies required buffer space for output string ports and those of
-input string ports that are meant to be GUI-controlled. The host MUST
-allocate a buffer of at least required size to accommodate for all values
-that can be produced by the plugin.
-""" .
-
diff --git a/lv2/ns/ext/string-port/waf b/lv2/ns/ext/string-port/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/string-port/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/string-port/wscript b/lv2/ns/ext/string-port/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/string-port/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/time/ext.pc.in b/lv2/ns/ext/time/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/time/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/time/manifest.ttl b/lv2/ns/ext/time/manifest.ttl
deleted file mode 100644
index 2657388..0000000
--- a/lv2/ns/ext/time/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/time>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <time.ttl> .
-
diff --git a/lv2/ns/ext/time/time.h b/lv2/ns/ext/time/time.h
deleted file mode 100644
index f3b2e77..0000000
--- a/lv2/ns/ext/time/time.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- Copyright 2011 David Robillard <http://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.
-*/
-
-/**
- @file time.h C header for the LV2 Time extension
- <http://lv2plug.in/ns/ext/time>.
-*/
-
-#ifndef LV2_TIME_H
-#define LV2_TIME_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- Time states.
-*/
-typedef enum {
- LV2_TIME_STOPPED = 0, /**< Transport halted */
- LV2_TIME_ROLLING = 1, /**< Transport playing */
-} LV2_Time_State;
-
-/**
- Bits indicating properties of an LV2_Time_Position.
-*/
-typedef enum {
- LV2_TIME_HAS_BBT = 1 /**< Has Bar, Beat, Tick */
-} LV2_Time_Flags;
-
-/**
- Description of a position and/or tempo.
-
- This struct is used as the payload of an event to notify the plugin about
- time state, such as position and tempo.
-*/
-typedef struct {
- /**
- @{
- @name Mandatory Fields
- */
-
- /**
- Frame number on the timeline.
- */
- uint64_t frame;
-
- /**
- Bit field of LV2_Time_Flags values indicating which fields
- of this struct are valid.
- */
- uint32_t flags;
-
- /**
- Transport state.
- */
- LV2_Time_State state;
-
- /**
- @}
- @{
- @name LV2_TIME_BBT fields
- These fields are valid iff the LV2_TIME_BBT bit is set in @ref flags.
- */
-
- /**
- Current bar.
- The first bar is number 0 (but should be represented in a UI as bar 1).
- */
- int64_t bar;
-
- /**
- Beat within the current bar.
- The first beat is number 0.
- Always <= @ref beats_per_bar.
- */
- int32_t beat;
-
- /**
- Tick within the current beat.
- The first tick is number 0.
- Always <= @ref ticks_per_beat.
- */
- int32_t tick;
-
- /**
- Number of beats per bar (top of time signature).
- */
- int32_t beats_per_bar;
-
- /**
- Type of note that counts as one beat (bottom of time signature).
- */
- int32_t beat_type;
-
- /**
- Number of ticks per beat.
- Typically this is a large integer with many even divisors.
- */
- int32_t ticks_per_beat;
-
- /**
- Current tempo, in beats per minute.
- */
- double beats_per_minute;
-
- /**
- @}
- */
-} LV2_Time_Position;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* LV2_TIME_H */
diff --git a/lv2/ns/ext/time/time.ttl b/lv2/ns/ext/time/time.ttl
deleted file mode 100644
index 40bfdbb..0000000
--- a/lv2/ns/ext/time/time.ttl
+++ /dev/null
@@ -1,57 +0,0 @@
-# LV2 Time Extension
-# Copyright 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 time: <http://lv2plug.in/ns/ext/time#> .
-@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/time>
- a lv2:Specification ;
- doap:name "LV2 Time" ;
- doap:shortdesc "A data type for transport speed and position." ;
- 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 structure type, LV2_Time_Position, which
-describes a tempo and position along a timeline. This can be used as
-an event payload by the host to notify plugins about the current
-tempo and position.</p>
-""" .
-
-time:Position
- a rdfs:Class ;
- rdfs:label "LV2 time position" ;
- lv2:documentation """
-<p>Type for an LV2_Time_Position struct. This can be mapped to an integer and
-used as the type field of an event to indicate that the event payload is an
-LV2_Time_Positon struct. Plugins SHOULD indicate that a port supports time
-information using the ev:supports predicate, e.g.:</p>
-<pre class="turtle-code">
-&lt;plugin&gt; lv2:port [
- a lv2:InputPort , ev:EventPort ;
- lv2:name "control" ;
- lv2:index 0 ;
- ev:supportsEvent time:Position
-] .
-</pre>
-""" .
diff --git a/lv2/ns/ext/time/waf b/lv2/ns/ext/time/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/time/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/time/wscript b/lv2/ns/ext/time/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/time/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/ui-resize/ext.pc.in b/lv2/ns/ext/ui-resize/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/ui-resize/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/ui-resize/manifest.ttl b/lv2/ns/ext/ui-resize/manifest.ttl
deleted file mode 100644
index ca5cdf9..0000000
--- a/lv2/ns/ext/ui-resize/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/ui-resize>
- a lv2:Specification ;
- lv2:minorVersion 0 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <ui-resize.ttl> .
-
diff --git a/lv2/ns/ext/ui-resize/ui-resize.h b/lv2/ns/ext/ui-resize/ui-resize.h
deleted file mode 100644
index cf5ccc6..0000000
--- a/lv2/ns/ext/ui-resize/ui-resize.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- Copyright 2011 David Robillard <http://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.
-*/
-
-#ifndef LV2_UI_RESIZE_H
-#define LV2_UI_RESIZE_H
-
-#define LV2_UI_RESIZE_URI "http://lv2plug.in/ns/ext/ui-resize"
-
-typedef void* LV2_UI_Resize_Feature_Data;
-
-/**
- UI Resize Feature.
-
- This structure may be used in two ways: as a feature passed by the host
- (e.g. via the features parameter of LV2UI_Descriptor::instantiate()) or
- as a feature exposed by a UI (e.g. via LV2UI_Descriptor::extension_data()).
-
- In both cases, the URI to be used is
- http://lv2plug.in/ns/ext/ui-resize#UIResize
-*/
-typedef struct {
-
- LV2_UI_Resize_Feature_Data data;
-
- /**
- Request or notify a size change.
-
- When this struct is provided by the host, the UI may call this
- function to notify the host that a size change is desired, or notify
- the host of the initial size of the UI.
-
- When this struct is provided by the plugin, the host may call this
- function in the UI thread to notify the UI that it should change its
- size to the given dimensions.
-
- @return 0 on success.
- */
- int (*ui_resize)(LV2_UI_Resize_Feature_Data data,
- int width,
- int height);
-
-} LV2_UI_Resize_Feature;
-
-#endif /* LV2_UI_RESIZE_H */
-
diff --git a/lv2/ns/ext/ui-resize/ui-resize.ttl b/lv2/ns/ext/ui-resize/ui-resize.ttl
deleted file mode 100644
index f3b7d92..0000000
--- a/lv2/ns/ext/ui-resize/ui-resize.ttl
+++ /dev/null
@@ -1,43 +0,0 @@
-# LV2 UI Resize Extension
-# Copyright 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 uirsz: <http://lv2plug.in/ns/ext/ui-resize#> .
-@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#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-
-<http://lv2plug.in/ns/ext/ui-resize>
- a lv2:Specification ;
- doap:name "LV2 UI Resize Extension" ;
- doap:shortdesc "A feature for self-resizing plugin UIs." ;
- doap:license <http://opensource.org/licenses/isc> ;
- lv2:documentation """
-<p>An extension that allows LV2 plugin UIs to notify the host about size
-changes, or for the host to notify plugin UIs about size changes.</p>
-""" .
-
-uirsz:UIResize
- a lv2:Feature ;
- lv2:documentation """
-<p>A feature that allows the UI to notify the host about its current size, or
-request a size change. This feature corresponds to the LV2_UI_Resize_Feature
-struct, which should be passed with the feature URI
-<code>http://lv2plug.in/ns/ext/ui-resize#UIResize</code>. This struct may also
-be provided by the UI as extension data using the same URI, in which case it
-is used by the host to request that the UI change its size.</p>
-""" .
diff --git a/lv2/ns/ext/ui-resize/waf b/lv2/ns/ext/ui-resize/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/ui-resize/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/ui-resize/wscript b/lv2/ns/ext/ui-resize/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/ui-resize/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/uri-map/ext.pc.in b/lv2/ns/ext/uri-map/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/uri-map/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/uri-map/manifest.ttl b/lv2/ns/ext/uri-map/manifest.ttl
deleted file mode 100644
index 0348a55..0000000
--- a/lv2/ns/ext/uri-map/manifest.ttl
+++ /dev/null
@@ -1,8 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/uri-map>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <uri-map.ttl> .
diff --git a/lv2/ns/ext/uri-map/uri-map.h b/lv2/ns/ext/uri-map/uri-map.h
deleted file mode 100644
index 6767cd1..0000000
--- a/lv2/ns/ext/uri-map/uri-map.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- Copyright 2008-2011 David Robillard <http://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.
-*/
-
-/**
- @file
- C header for the LV2 URI Map extension <http://lv2plug.in/ns/ext/uri-map>.
-
- This extension defines a simple mechanism for plugins to map URIs to
- integers, usually for performance reasons (e.g. processing events typed by
- URIs in real time). The expected use case is for plugins to map URIs to
- integers for things they 'understand' at instantiation time, and store those
- values for use in the audio thread without doing any string comparison.
- This allows the extensibility of RDF with the performance of integers (or
- centrally defined enumerations).
-*/
-
-#ifndef LV2_URI_MAP_H
-#define LV2_URI_MAP_H
-
-#define LV2_URI_MAP_URI "http://lv2plug.in/ns/ext/uri-map"
-
-#include <stdint.h>
-
-/**
- Opaque pointer to host data.
-*/
-typedef void* LV2_URI_Map_Callback_Data;
-
-/**
- URI Map Feature.
-
- To support this feature the host must pass an LV2_Feature struct to the
- plugin's instantiate method with URI "http://lv2plug.in/ns/ext/uri-map"
- and data pointed to an instance of this struct.
-*/
-typedef struct {
-
- /**
- Opaque pointer to host data.
-
- The plugin MUST pass this to any call to functions in this struct.
- Otherwise, it must not be interpreted in any way.
- */
- LV2_URI_Map_Callback_Data callback_data;
-
- /**
- Get the numeric ID of a URI from the host.
-
- @param callback_data Must be the callback_data member of this struct.
- @param map The 'context' of this URI. Certain extensions may define a
- URI that must be passed here with certain restrictions on the return
- value (e.g. limited range). This value may be NULL if the plugin needs
- an ID for a URI in general. Extensions SHOULD NOT define a context
- unless there is a specific need to do so, e.g. to restrict the range of
- the returned value.
- @param uri The URI to be mapped to an integer ID.
-
- This function is referentially transparent; any number of calls with the
- same arguments is guaranteed to return the same value over the life of a
- plugin instance (though the same URI may return different values with a
- different map parameter). However, this function is not necessarily very
- fast: plugins SHOULD cache any IDs they might need in performance
- critical situations.
-
- The return value 0 is reserved and indicates that an ID for that URI
- could not be created for whatever reason. Extensions MAY define more
- precisely what this means in a certain context, but in general plugins
- SHOULD handle this situation as gracefully as possible. However, hosts
- SHOULD NOT return 0 from this function in non-exceptional circumstances
- (e.g. the URI map SHOULD be dynamic). Hosts that statically support only
- a fixed set of URIs should not expect plugins to function correctly.
- */
- uint32_t (*uri_to_id)(LV2_URI_Map_Callback_Data callback_data,
- const char* map,
- const char* uri);
-
-} LV2_URI_Map_Feature;
-
-#endif /* LV2_URI_MAP_H */
diff --git a/lv2/ns/ext/uri-map/uri-map.ttl b/lv2/ns/ext/uri-map/uri-map.ttl
deleted file mode 100644
index 88f0fdd..0000000
--- a/lv2/ns/ext/uri-map/uri-map.ttl
+++ /dev/null
@@ -1,93 +0,0 @@
-# LV2 URI Map Extension
-# Copyright 2008-2011 David Robillard <http://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 dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix lv2ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix umap: <http://lv2plug.in/ns/ext/uri-map#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-_:larsl
- a foaf:Person ;
- foaf:name "Lars Luthman" .
-
-<http://lv2plug.in/ns/ext/uri-map>
- a lv2:Specification ,
- lv2:Feature ;
- owl:deprecated true ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 URI Map" ;
- doap:shortdesc "A feature for mapping URIs to integers." ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2011-11-21" ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- doap:file-release <http://lv2plug.in/spec/lv2-uri-map-1.4.tar.bz2> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Deprecate uri-map in favour of urid."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2011-05-26" ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- doap:file-release <http://lv2plug.in/spec/lv2-uri-map-1.2.tar.bz2> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system (for installation)."
- ] , [
- rdfs:label "Mark up documentation in HTML using lv2:docum"
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-10-18" ;
- doap:file-release <http://lv2plug.in/spec/lv2-uri-map-1.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- doap:maintainer <http://drobilla.net/drobilla#me> ,
- _:larsl ;
- lv2:documentation """
-<p><span class="warning">This extension is deprecated.</span> New
-implementations should use <a href="http://lv2plug.in/ns/ext/urid">LV2 URID</a>
-instead.</p>
-
-<p>This extension defines a simple mechanism for plugins to map URIs to
-integers, usually for performance reasons (e.g. processing events typed by URIs
-in real time). The expected use case is for plugins to map URIs to integers
-for things they 'understand' at instantiation time, and store those values for
-use in the audio thread without doing any string comparison. This allows the
-extensibility of RDF with the performance of integers (or centrally defined
-enumerations).</p>
-""" .
diff --git a/lv2/ns/ext/uri-map/waf b/lv2/ns/ext/uri-map/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/uri-map/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/uri-map/wscript b/lv2/ns/ext/uri-map/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/uri-map/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/ext/urid/ext.pc.in b/lv2/ns/ext/urid/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/ext/urid/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/ext/urid/manifest.ttl b/lv2/ns/ext/urid/manifest.ttl
deleted file mode 100644
index 4b23244..0000000
--- a/lv2/ns/ext/urid/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
-
-<http://lv2plug.in/ns/ext/urid>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 0 ;
- rdfs:seeAlso <urid.ttl> .
diff --git a/lv2/ns/ext/urid/urid.h b/lv2/ns/ext/urid/urid.h
deleted file mode 100644
index 22c9a66..0000000
--- a/lv2/ns/ext/urid/urid.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- Copyright 2011 Gabriel M. Beddingfield <gabrbedd@gmail.com>
- Copyright 2008-2011 David Robillard <http://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.
-*/
-
-/**
- @file
- C header for the LV2 URID extension <http://lv2plug.in/ns/ext/urid>
-*/
-
-#ifndef LV2_URID_H
-#define LV2_URID_H
-
-#define LV2_URID_URI "http://lv2plug.in/ns/ext/urid"
-#define LV2_URID_MAP_URI LV2_URID_URI "#map"
-#define LV2_URID_UNMAP_URI LV2_URID_URI "#unmap"
-
-#include <stdint.h>
-
-/**
- Opaque pointer to host data for LV2_URID_Map.
-*/
-typedef void* LV2_URID_Map_Handle;
-
-/**
- Opaque pointer to host data for LV2_URID_Unmap.
-*/
-typedef void* LV2_URID_Unmap_Handle;
-
-/**
- URI mapped to an integer.
-*/
-typedef uint32_t LV2_URID;
-
-/**
- URI Map (http://lv2plug.in/ns/ext/urid#map).
-*/
-typedef struct {
- /**
- Opaque pointer to host data.
-
- This MUST be passed to map_uri() whenever it is called.
- Otherwise, it must not be interpreted in any way.
- */
- LV2_URID_Map_Handle handle;
-
- /**
- Get the numeric ID of a URI.
-
- If the ID does not already exist, it will be created.
-
- This function is referentially transparent; any number of calls with the
- same arguments is guaranteed to return the same value over the life of a
- plugin instance. Note, however, that several URIs MAY resolve to the
- same ID if the host considers those URIs equivalent.
-
- This function is not necessarily very fast or RT-safe: plugins SHOULD
- cache any IDs they might need in performance critical situations.
-
- The return value 0 is reserved and indicates that an ID for that URI
- could not be created for whatever reason. However, hosts SHOULD NOT
- return 0 from this function in non-exceptional circumstances (i.e. the
- URI map SHOULD be dynamic).
-
- @param handle Must be the callback_data member of this struct.
- @param uri The URI to be mapped to an integer ID.
- */
- LV2_URID (*map)(LV2_URID_Map_Handle handle,
- const char* uri);
-} LV2_URID_Map;
-
-/**
- URI Unmap (http://lv2plug.in/ns/ext/urid#unmap).
-*/
-typedef struct {
- /**
- Opaque pointer to host data.
-
- This MUST be passed to unmap() whenever it is called.
- Otherwise, it must not be interpreted in any way.
- */
- LV2_URID_Unmap_Handle handle;
-
- /**
- Get the URI for a previously mapped numeric ID.
-
- Returns NULL if @c urid is not yet mapped. Otherwise, the corresponding
- URI is returned in a canonical form. This MAY not be the exact same
- string that was originally passed to LV2_URID_Map::map(), but it MUST be
- an identical URI according to the URI syntax specification (RFC3986). A
- non-NULL return for a given @c urid will always be the same for the life
- of the plugin. Plugins that intend to perform string comparison on
- unmapped URIs SHOULD first canonicalise URI strings with a call to
- map_uri() followed by a call to unmap_uri().
-
- @param handle Must be the callback_data member of this struct.
- @param urid The ID to be mapped back to the URI string.
- */
- const char* (*unmap)(LV2_URID_Unmap_Handle handle,
- LV2_URID urid);
-} LV2_URID_Unmap;
-
-#endif /* LV2_URID_H */
diff --git a/lv2/ns/ext/urid/urid.ttl b/lv2/ns/ext/urid/urid.ttl
deleted file mode 100644
index 121ffaf..0000000
--- a/lv2/ns/ext/urid/urid.ttl
+++ /dev/null
@@ -1,81 +0,0 @@
-# LV2 URID Extension
-# Copyright 2011 Gabriel M. Beddingfield <gabrbedd@gmail.com>
-# Copyright 2008-2011 David Robillard <http://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 dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-_:gabrbedd
- a foaf:Person ;
- foaf:name "Gabriel M. Beddingfield" ;
- foaf:homepage <http://gabe.is-a-geek.org/> .
-
-<http://lv2plug.in/ns/ext/urid>
- a lv2:Specification ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 URID" ;
- doap:shortdesc "Features for mapping URIs to and from integers." ;
- doap:release [
- doap:revision "1.0" ;
- doap:created "2011-11-21" ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- doap:developer _:gabrbedd ;
- lv2:documentation """
-<p>This extension defines a simple mechanism for plugins to map URIs to and
-from integers, usually for performance reasons (e.g. processing events typed by
-URIs in real time). Typically, plugins map URIs to integers for things they
-"understand" at instantiation time, and store those values for use in the audio
-thread without doing any string comparison. This allows for the extensibility
-of RDF but with the performance of integers.</p>
-
-<p>This extension is intended as an improved and simplified replacement for the
-<a href="http://lv2plug.in/ns/ext/uri-map">uri-map</a> extension, since the
-<q>map</q> context parameter has been found problematic. New implementations
-are strongly encouraged to use this extension for URI mapping.</p>
-""" .
-
-urid:map
- a lv2:Feature ;
- lv2:documentation """
-<p>A feature which is used to map URIs to integers. To support this feature,
-the host must pass an LV2_Feature to LV2_Descriptor::instantiate() with URI
-LV2_URID_MAP_URI and data pointed to an instance of LV2_URID_Map.</p>
-""" .
-
-urid:unmap
- a lv2:Feature ;
- lv2:documentation """
-<p>A feature which is used to unmap URIs previously mapped to integers by
-urid:map. To support this feature, the host must pass an LV2_Feature to
-LV2_Descriptor::instantiate() with URI LV2_URID_UNMAP_URI and data pointed to
-an instance of LV2_URID_Unmap.</p>
-""" .
diff --git a/lv2/ns/ext/urid/waf b/lv2/ns/ext/urid/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/ext/urid/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/ext/urid/wscript b/lv2/ns/ext/urid/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/ext/urid/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/extensions/ui/ext.pc.in b/lv2/ns/extensions/ui/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/extensions/ui/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/extensions/ui/lv2-ui.doap.ttl b/lv2/ns/extensions/ui/lv2-ui.doap.ttl
deleted file mode 100644
index 5b8ca9e..0000000
--- a/lv2/ns/extensions/ui/lv2-ui.doap.ttl
+++ /dev/null
@@ -1,74 +0,0 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/extensions/ui>
- a doap:Project ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 UI" ;
- doap:shortdesc "Generic UI interface for LV2 plugins." ;
- doap:developer [
- a foaf:Person ;
- foaf:name "Lars Luthman" ;
- foaf:mbox <mailto:lars.luthman@gmail.com>
- ] ;
- doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "2.5" ;
- doap:created "2011-12-28" ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add ui:parent."
- ]
- ]
- ] , [
- doap:revision "2.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-ui-2.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Deprecate ui:makeSONameResident."
- ] , [
- rdfs:label "Add Qt4 and X11 widget types."
- ] , [
- rdfs:label "Install header to URI-based system path."
- ] , [
- rdfs:label "Add pkg-config file."
- ] , [
- rdfs:label "Make ui.ttl a valid OWL 2 DL ontology."
- ]
- ]
- ] , [
- doap:revision "2.2" ;
- doap:created "2011-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-ui-2.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system (for installation)."
- ] , [
- rdfs:label "Convert documentation to HTML and use lv2:documentation."
- ] , [
- rdfs:label "Use lv2:Specification to be discovered as an extension."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2010-10-06" ;
- doap:file-release <http://lv2plug.in/spec/lv2-ui-2.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] .
diff --git a/lv2/ns/extensions/ui/manifest.ttl b/lv2/ns/extensions/ui/manifest.ttl
deleted file mode 100644
index 28412c4..0000000
--- a/lv2/ns/extensions/ui/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/extensions/ui>
- a lv2:Specification ;
- lv2:minorVersion 2 ;
- lv2:microVersion 5 ;
- rdfs:seeAlso <ui.ttl> ,
- <lv2-ui.doap.ttl> .
diff --git a/lv2/ns/extensions/ui/ui.h b/lv2/ns/extensions/ui/ui.h
deleted file mode 100644
index 6d64a0d..0000000
--- a/lv2/ns/extensions/ui/ui.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- LV2 UI Extension
- Copyright 2009-2011 David Robillard <d@drobilla.net>
- Copyright 2006-2008 Lars Luthman <lars.luthman@gmail.com>
-
- 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.
-*/
-
-/**
- * @file
- * C header for the LV2 UI extension <http://lv2plug.in/ns/extensions/ui>.
- */
-
-#ifndef LV2_UI_H
-#define LV2_UI_H
-
-#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
-
-#define LV2_UI_URI "http://lv2plug.in/ns/extensions/ui"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- A pointer to some widget or other type of UI handle.
-
- The actual type is defined by the type URI of the UI. All the functionality
- provided by this extension is toolkit independent, the host only needs to
- pass the necessary callbacks and display the widget, if possible. Plugins
- may have several UIs, in various toolkits.
-*/
-typedef void* LV2UI_Widget;
-
-/**
- A pointer to a particular instance of a UI.
-
- It is valid to compare this to NULL (0 for C++) but otherwise the host MUST
- not attempt to interpret it. The UI plugin may use it to reference internal
- instance data.
-*/
-typedef void* LV2UI_Handle;
-
-/**
- A pointer to a particular plugin controller, provided by the host.
-
- It is valid to compare this to NULL (0 for C++) but otherwise the UI plugin
- MUST NOT attempt to interpret it. The host may use it to reference internal
- instance data.
-*/
-typedef void* LV2UI_Controller;
-
-/**
- The type of the host-provided function that the UI can use to
- send data to a plugin's input ports.
-
- The @c buffer parameter must point to a block of data, @c buffer_size bytes
- large. The contents of this buffer and what the host should do with it
- depends on the value of the @c format parameter.
-
- The @c format parameter should either be 0 or a numeric ID for a "Transfer
- mechanism". Transfer mechanisms are Features and may be defined in
- meta-extensions. They specify how to translate the data buffers passed to
- this function to input data for the plugin ports. If a UI wishes to write
- data to an input port, it must list a transfer mechanism Feature for that
- port's class as an optional or required feature (depending on whether the UI
- will work without being able to write to that port or not). The only
- exception is when the UI wants to write single float values to input ports
- of the class lv2:ControlPort, in which case @c buffer_size should always be
- 4, the buffer should always contain a single IEEE-754 float, and @c format
- should be 0.
-
- The numeric IDs for the transfer mechanisms are provided by a URI-to-integer
- mapping function provided by the host, using the URI Map feature
- <http://lv2plug.in/ns/ext/uri-map> with the map URI
- "http://lv2plug.in/ns/extensions/ui". Thus a UI that requires transfer
- mechanism features also requires the URI Map feature, but this is implicit -
- the UI does not have to list the URI map feature as a required or optional
- feature in it's RDF data.
-
- An UI MUST NOT pass a @c format parameter value (except 0) that has not been
- returned by the host-provided URI mapping function for a host-supported
- transfer mechanism feature URI.
-
- The UI MUST NOT try to write to a port for which there is no specified
- transfer mechanism, or to an output port. The UI is responsible for
- allocating the buffer and deallocating it after the call.
-*/
-typedef void (*LV2UI_Write_Function)(LV2UI_Controller controller,
- uint32_t port_index,
- uint32_t buffer_size,
- uint32_t format,
- const void* buffer);
-
-/**
- The implementation of a UI.
-
- A pointer to an object of this type is returned by the lv2ui_descriptor()
- function.
-*/
-typedef struct _LV2UI_Descriptor {
- /**
- The URI for this UI (not for the plugin it controls).
- */
- const char* URI;
-
- /**
- Create a new UI object and return a handle to it. This function works
- similarly to the instantiate() member in LV2_Descriptor.
-
- @param descriptor The descriptor for the UI that you want to instantiate.
-
- @param plugin_uri The URI of the plugin that this UI will control.
-
- @param bundle_path The path to the bundle containing the RDF data file
- that references this shared object file, including the trailing '/'.
-
- @param write_function A function provided by the host that the UI can use
- to send data to the plugin's input ports.
-
- @param controller A handle for the plugin instance that should be passed
- as the first parameter of @c write_function.
-
- @param widget A pointer to an LV2UI_Widget. The UI will write a widget
- pointer to this location (what type of widget depends on the RDF class of
- the UI) that will be the main UI widget.
-
- @param features An array of LV2_Feature pointers. The host must pass all
- feature URIs that it and the UI supports and any additional data, just
- like in the LV2 plugin instantiate() function. Note that UI features and
- plugin features are NOT necessarily the same, they just share the same
- data structure - this will probably not be the same array as the one the
- plugin host passes to a plugin.
-
- */
- LV2UI_Handle (*instantiate)(const struct _LV2UI_Descriptor* descriptor,
- const char* plugin_uri,
- const char* bundle_path,
- LV2UI_Write_Function write_function,
- LV2UI_Controller controller,
- LV2UI_Widget* widget,
- const LV2_Feature* const* features);
-
-
- /**
- Destroy the UI object and the associated widget. The host must not try
- to access the widget after calling this function.
- */
- void (*cleanup)(LV2UI_Handle ui);
-
- /**
- Tell the UI that something interesting has happened at a plugin port.
-
- What is interesting and how it is written to the buffer passed to this
- function is defined by the @c format parameter, which has the same meaning
- as in LV2UI_Write_Function. The only exception is ports of the class
- lv2:ControlPort, for which this function should be called when the port
- value changes (it does not have to be called for every single change if
- the host's UI thread has problems keeping up with the thread the plugin is
- running in), @c buffer_size should be 4, the buffer should contain a
- single IEEE-754 float, and @c format should be 0.
-
- By default, the host should only call this function for input ports of the
- lv2:ControlPort class. However, the default setting can be modified by
- using the following URIs in the UI's RDF data:
- <pre>
- uiext:portNotification
- uiext:noPortNotification
- uiext:plugin
- uiext:portIndex
- </pre>
- For example, if you want the UI with uri
- <code><http://my.pluginui></code> for the plugin with URI
- <code><http://my.plugin></code> to get notified when the value of the
- output control port with index 4 changes, you would use the following
- in the RDF for your UI:
- <pre>
- <http://my.pluginui> uiext:portNotification [ uiext:plugin <http://my.plugin> ;
- uiext:portIndex 4 ] .
- </pre>
- and similarly with <code>uiext:noPortNotification</code> if you wanted
- to prevent notifications for a port for which it would be on by default
- otherwise. The UI is not allowed to request notifications for ports of
- types for which no transfer mechanism is specified, if it does it should
- be considered broken and the host should not load it.
-
- The @c buffer is only valid during the time of this function call, so if
- the UI wants to keep it for later use it has to copy the contents to an
- internal buffer.
-
- This member may be set to NULL if the UI is not interested in any
- port events.
- */
- void (*port_event)(LV2UI_Handle ui,
- uint32_t port_index,
- uint32_t buffer_size,
- uint32_t format,
- const void* buffer);
-
- /**
- Return a data structure associated with an extension URI, for example
- a struct containing additional function pointers.
-
- Avoid returning function pointers directly since standard C/C++ has no
- valid way of casting a void* to a function pointer. This member may be set
- to NULL if the UI is not interested in supporting any extensions. This is
- similar to the extension_data() member in LV2_Descriptor.
- */
- const void* (*extension_data)(const char* uri);
-
-} LV2UI_Descriptor;
-
-/**
- A plugin UI programmer must include a function called "lv2ui_descriptor"
- with the following function prototype within the shared object file. This
- function will have C-style linkage (if you are using C++ this is taken care
- of by the 'extern "C"' clause at the top of the file). This function will
- be accessed by the UI host using the @c dlsym() function and called to get a
- LV2UI_UIDescriptor for the wanted plugin.
-
- Just like lv2_descriptor(), this function takes an index parameter. The
- index should only be used for enumeration and not as any sort of ID number -
- the host should just iterate from 0 and upwards until the function returns
- NULL or a descriptor with an URI matching the one the host is looking for.
-*/
-const LV2UI_Descriptor* lv2ui_descriptor(uint32_t index);
-
-/**
- The type of the lv2ui_descriptor() function.
-*/
-typedef const LV2UI_Descriptor* (*LV2UI_DescriptorFunction)(uint32_t index);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LV2_UI_H */
diff --git a/lv2/ns/extensions/ui/ui.ttl b/lv2/ns/extensions/ui/ui.ttl
deleted file mode 100644
index 9eb0933..0000000
--- a/lv2/ns/extensions/ui/ui.ttl
+++ /dev/null
@@ -1,235 +0,0 @@
-# LV2 UI Extension
-# Copyright 2009-2011 David Robillard <d@drobilla.net>
-# Copyright 2006-2008 Lars Luthman <lars.luthman@gmail.com>
-#
-# 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 doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-<http://lv2plug.in/ns/extensions/ui>
- a owl:Ontology ;
- owl:imports <http://lv2plug.in/ns/lv2core> ;
- lv2:documentation """
-<p>This extension defines an interface that can be used in LV2 plugins and
-hosts to create UIs for plugins. The UIs are similar to plugins and reside in
-shared object files in an LV2 bundle. UIs are associated with a plugin in RDF
-using the triples:</p>
-
-<pre class="turtle-code">
-@prefix ui: &lt;http://lv2plug.in/ns/extensions/ui#&gt; .
-
-&lt;http://my.plugin&gt; ui:ui &lt;http://my.pluginui&gt; .
-&lt;http://my.pluginui&gt; a ui:GtkUI ;
- ui:binary &lt;myui.so&gt; .
-</pre>
-
-<p>where &lt;http://my.plugin&gt; is the URI of the plugin,
-&lt;http://my.pluginui&gt; is the URI of the plugin UI and &lt;myui.so&gt; is
-the relative URI to the shared object file.</p>
-
-<p>While it is possible to have the plugin UI and the plugin in the same shared
-object file it is probably a good idea to keep them separate so that hosts that
-don't want UIs don't have to load the UI code. A UI MUST specify its class in
-the RDF data (ui:GtkUI in the above example). The class defines what type the
-UI is, e.g. what graphics toolkit it uses. Any type of UI class can be defined
-separately from this extension.</p>
-
-<p>It is possible to have multiple UIs for the same plugin, or to have the UI
-for a plugin in a different bundle from the actual plugin - this way people
-other than the plugin author can write plugin UIs independently without editing
-the original plugin bundle.</p>
-
-<p>Note that the process that loads the shared object file containing the UI
-code and the process that loads the shared object file containing the actual
-plugin implementation are not necessarily the same process (and not even
-necessarily on the same machine). This means that plugin and UI code can
-<strong>not</strong> use singletons and global variables and expect them to
-refer to the same objects in the UI and the actual plugin. The function
-callback interface defined in this header is the only method of communication
-between UIs and plugin instances (extensions may define more, though this is
-discouraged unless absolutely necessary since the significant benefits of
-network transparency and serialisability are lost).</p>
-
-<p>Since the LV2 specification itself allows for extensions that may add new
-functionality that could be useful to control with a UI, this extension allows
-for meta-extensions that can extend the interface between the UI and the
-host. These extensions mirror the extensions used for plugins - there are
-required and optional "features" that you declare in the RDF data for the
-UI:</p>
-
-<pre class="turtle-code">
-&lt;http://my.pluginui&gt; lv2:requiredFeature &lt;http://my.feature&gt; .
-&lt;http://my.pluginui&gt; lv2:optionalFeature &lt;http://my.feature&gt; .
-</pre>
-
-<p>The rules for a UI with a required or optional feature are identical to
-those of lv2:Plugin instances: if a UI declares a feature as required, the host
-is NOT allowed to load it unless it supports that feature; and if it does
-support a feature, it MUST pass an appropriate LV2_Feature struct to the UI's
-instantiate() method. These features may be used to specify how to pass
-specific types of data between the UI and the plugin port buffers (see
-LV2UI_Write_Function for details).</p>
-
-<p>UIs written to this specification do not need to be threadsafe - the
-functions defined below may only be called in the same thread the UI main loop
-is running in.</p>
-
-<p>Note that this UI extension is NOT a lv2:Feature. There is no way for a
-plugin to know whether the host that loads it supports UIs or not, and the
-plugin must always work without the UI (although it may be rather useless
-unless it has been configured using the UI in a previous session). From the
-plugin perspective, control from a UI is the same as control from anywhere else
-(e.g. the host, the user): via ports.</p>
-
-<p>A UI does not have to be a graphical widget, it could just as well be a
-server listening for OSC input or an interface to some sort of hardware device,
-depending on the RDF class of the UI.</p>
-""" .
-
-ui:UI
- a rdfs:Class ,
- owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "LV2 UI" ;
- rdfs:comment "A UI for an LV2 plugin" .
-
-ui:GtkUI
- a rdfs:Class ,
- owl:Class ;
- rdfs:subClassOf ui:UI ;
- rdfs:comment """
-A UI where the LV2_Widget is a pointer to a Gtk+ 2.0 compatible GtkWidget,
-and the host guarantees that the Gtk+ library has been initialised and the
-Glib main loop is running before a UI of this type is instantiated.""" .
-
-ui:Qt4UI
- a rdfs:Class ,
- owl:Class ;
- rdfs:subClassOf ui:UI ;
- rdfs:comment """
-A UI where the LV2_Widget is a pointer to a Qt4 compatible QWidget,
-and the host guarantees that the Qt4 library has been initialised and the
-Qt4 main loop is running before a UI of this type is instantiated.""" .
-
-ui:X11UI
- a rdfs:Class ,
- owl:Class ;
- rdfs:subClassOf ui:UI ;
- rdfs:comment """
-A UI where the LV2_Widget is an X11 window ID. Note this is actually an
-integer, i.e. the LV2_Widget is not a pointer to an X11 window ID, but should
-be itself taken as an integer value.""" .
-
-ui:makeSONameResident
- a lv2:Feature ;
- owl:deprecated "true"^^xsd:boolean ;
- lv2:documentation """
-<p>DEPRECATED</p>
-
-<p>This feature was intended to support UIs that link against toolkit
-libraries which may not be unloaded during the lifetime of the host.
-This is better achieved by using the appropriate flags when linking the
-UI, e.g. <code>gcc -Wl,nodelete</code>.</p>
-""" .
-
-ui:noUserResize
- a lv2:Feature ;
- lv2:documentation """
-<p>If a UI requires this feature it indicates that it does not make sense
-to let the user resize the main widget, and the host should prevent that.
-This feature may not make sense for all UI types. The data pointer for the
-LV2_Feature for this feature should always be set to NULL.</p>
-""" .
-
-ui:fixedSize
- a lv2:Feature ;
- lv2:documentation """
-<p>If a UI requires this feature it indicates the same thing as
-ui:noUserResize, and additionally it means that the UI will not resize
-the main widget on its own - it will always remain the same size (e.g. a
-pixmap based GUI). This feature may not make sense for all UI types.
-The data pointer for the LV2_Feature for this feature should always be set
-to NULL.</p>
-""" .
-
-ui:parent
- a lv2:Feature ;
- lv2:documentation """
-<p>The parent for the UI.</p>
-
-<p>This feature can be used to pass a parent (e.g. a widget, container, canvas,
-etc.) the UI should be a child of. The format of data pointer of this feature
-is determined by the UI type, and is generally the same type as the LV2_Widget
-the UI would return (e.g. for a GtkUI the data would be a pointer to a
-GtkWidget which is a GtkContainer). This is particularly useful for
-cross-toolkit embedding, where the parent often must be known at construction
-time for embedding to work correctly. UIs should not require this feature
-unless it is absolutely necessary for them to work at all.</p>
-""" .
-
-ui:PortNotification
- a rdfs:Class ,
- owl:Class ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty ui:plugin ;
- owl:someValuesFrom lv2:Plugin ;
- owl:cardinality 1 ;
- rdfs:comment """
-A PortNotification MUST have exactly one ui:plugin which is a lv2:Plugin.
-"""
- ] , [
- a owl:Restriction ;
- owl:onProperty ui:portIndex ;
- owl:someValuesFrom xsd:decimal ;
- owl:cardinality 1 ;
- rdfs:comment """
-A PortNotification MUST have exactly one ui:portIndex which is an xsd:decimal.
-"""
- ] ;
- rdfs:comment "Port Notification" .
-
-ui:portNotification
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain ui:UI ;
- rdfs:range ui:PortNotification ;
- lv2:documentation """
-<p>Indicates that a UI should receive notification (via
-LV2UI_Descriptor::port_event()) when a particular port's value changes.</p>
-""" .
-
-ui:plugin
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain ui:PortNotification ;
- rdfs:range lv2:Plugin ;
- rdfs:comment """
-The plugin a portNotification applies to.
-""" .
-
-ui:portIndex
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:domain ui:PortNotification ;
- rdfs:range xsd:decimal ;
- rdfs:comment """
-The index of the port a portNotification applies to.
-""" .
diff --git a/lv2/ns/extensions/ui/waf b/lv2/ns/extensions/ui/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/extensions/ui/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/extensions/ui/wscript b/lv2/ns/extensions/ui/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/extensions/ui/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/extensions/units/ext.pc.in b/lv2/ns/extensions/units/ext.pc.in
deleted file mode 120000
index 82b50df..0000000
--- a/lv2/ns/extensions/units/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/ns/extensions/units/lv2-units.doap.ttl b/lv2/ns/extensions/units/lv2-units.doap.ttl
deleted file mode 100644
index 473074d..0000000
--- a/lv2/ns/extensions/units/lv2-units.doap.ttl
+++ /dev/null
@@ -1,72 +0,0 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://plugin.org.uk/swh.xrdf#me>
- a foaf:Person ;
- foaf:name "Steve Harris" ;
- foaf:homepage <http://plugin.org.uk/> ;
- rdfs:seeAlso <http://plugin.org.uk/swh.xrdf> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/extensions/units>
- a doap:Project ;
- doap:name "LV2 Units" ;
- doap:shortdesc "Units for LV2 values." ;
- doap:created "2007-02-06" ;
- doap:homepage <http://lv2plug.in/ns/extensions/units> ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:release [
- doap:revision "5.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-units-5.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Make units.ttl a valid OWL 2 DL ontology."
- ] , [
- rdfs:label "Define used but undefined resources (units:name, units:render, units:symbol, units:Conversion, units:conversion, units:prefixConversion, units:to, and units:factor)."
- ] , [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "5.2" ;
- doap:created "2010-10-05" ;
- doap:file-release <http://lv2plug.in/spec/lv2-units-5.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system (for installation)."
- ] , [
- rdfs:label "Convert documentation to HTML and use lv2:documentation."
- ]
- ]
- ] , [
- doap:revision "5.0" ;
- doap:created "2010-10-05" ;
- doap:file-release <http://lv2plug.in/spec/lv2-units-5.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ] , [
- rdfs:label "Define used but undefined resources (units:name, units:render, units:symbol, units:Conversion, units:conversion, units:prefixConversion, units:to, and units:factor)."
- ] , [
- rdfs:label "Update packaging."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] ;
- doap:developer <http://plugin.org.uk/swh.xrdf#me> ;
- doap:maintainer <http://drobilla.net/drobilla#me> .
diff --git a/lv2/ns/extensions/units/manifest.ttl b/lv2/ns/extensions/units/manifest.ttl
deleted file mode 100644
index e5250cc..0000000
--- a/lv2/ns/extensions/units/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/extensions/units>
- a lv2:Specification ;
- lv2:minorVersion 5 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <units.ttl> , <lv2-units.doap.ttl> .
-
diff --git a/lv2/ns/extensions/units/units.ttl b/lv2/ns/extensions/units/units.ttl
deleted file mode 100644
index b0c070b..0000000
--- a/lv2/ns/extensions/units/units.ttl
+++ /dev/null
@@ -1,408 +0,0 @@
-# LV2 Units Extension
-# Copyright 2009-2011 David Robillard
-# Copyright 2007 Steve Harris
-#
-# 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 lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix units: <http://lv2plug.in/ns/extensions/units#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-<http://lv2plug.in/ns/extensions/units>
- a owl:Ontology ;
- owl:imports <http://lv2plug.in/ns/lv2core> ;
- lv2:documentation """
-<p>This extension defines a number of units for use in audio processing.</p>
-
-<p>For example, to say that a gain port's value is in decibels (units:db)</p>
-<pre class="turtle-code">
-@prefix units: &lt;http://lv2plug.in/ns/extensions/units#&gt; .
-@prefix eg: &lt;http://example.org/&gt; .
-
-eg:plugin lv2:port [
- a lv2:ControlRateInputPort ;
- lv2:datatype lv2:Float ;
- lv2:index 0 ;
- lv2:symbol "gain" ;
- lv2:name "gain" ;
- units:unit units:db
-] .
-</pre>
-
-<p>Using the same form, plugins may also specify one-off units inline, to give
-better display hints to hosts:</p>
-<pre class="turtle-code">
-eg:plugin lv2:port [
- a lv2:ControlRateInputPort ;
- lv2:datatype lv2:Float ;
- lv2:index 0 ;
- lv2:symbol "frob" ;
- lv2:name "frob level" ;
- units:unit [
- a units:Unit ;
- units:name "frobnication" ;
- units:symbol "fr" ;
- units:render "%f f"
- ]
-] .
-</pre>
-
-<p>It is also possible to define conversions between various units, which makes
-it possible for hosts to automatically and generically convert from a given
-unit to a desired unit. The units defined in this extension include conversion
-definitions where it makes sense to do so.</p>
-""" .
-
-units:Unit
- a rdfs:Class ,
- owl:Class ;
- rdfs:comment "A unit for LV2 port data" .
-
-units:unit
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain lv2:Port ;
- rdfs:range units:Unit ;
- rdfs:comment "Relates a port to the unit of its data" .
-
-units:name
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:domain units:Unit ;
- rdfs:range xsd:string ;
- rdfs:comment "A display name for the unit (e.g. decibels)." .
-
-units:render
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:domain units:Unit ;
- rdfs:range xsd:string ;
- rdfs:comment """A printf format string for rendering a value (eg. "%f dB").""" .
-
-units:symbol
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:domain units:Unit ;
- rdfs:range xsd:string ;
- rdfs:comment "The abbreviated symbol for the unit (e.g. dB)." .
-
-units:Conversion
- a rdfs:Class ,
- owl:Class ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty units:to ;
- owl:cardinality 1 ;
- rdfs:comment "A conversion MUST have exactly 1 units:to property."
- ] ;
- rdfs:comment "A conversion from one unit to another." .
-
-units:conversion
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain units:Unit ;
- rdfs:range units:Conversion ;
- rdfs:comment "A conversion from this unit to another." .
-
-units:prefixConversion
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:subPropertyOf units:conversion ;
- rdfs:domain units:Unit ;
- rdfs:range units:Conversion ;
- rdfs:comment """
-A conversion from this unit to the same unit but with a different SI prefix
-(e.g. Hz to kHz).
-""" .
-
-units:to
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain units:Conversion ;
- rdfs:range units:Unit ;
- rdfs:comment "The target unit this conversion converts to." .
-
-units:factor
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:domain units:Conversion ;
- rdfs:comment """
-The factor to multiple the source value by in order to convert
-to the target unit.
-""" .
-
-units:s
- a units:Unit ;
- units:conversion [
- units:factor 0.0166666666 ;
- units:to units:min
- ] ;
- units:name "second" ;
- units:prefixConversion [
- units:factor 1000 ;
- units:to units:ms
- ] ;
- units:render "%f s" ;
- units:symbol "s" .
-
-units:ms
- a units:Unit ;
- units:name "millisecond" ;
- units:prefixConversion [
- units:factor 0.001 ;
- units:to units:s
- ] ;
- units:render "%f ms" ;
- units:symbol "ms" .
-
-units:min
- a units:Unit ;
- units:conversion [
- units:factor 60.0 ;
- units:to units:s
- ] ;
- units:name "minute" ;
- units:render "%f mins" ;
- units:symbol "min" .
-
-units:bar
- a units:Unit ;
- units:name "bar" ;
- units:render "%f bars" ;
- units:symbol "bars" .
-
-units:beat
- a units:Unit ;
- units:name "beat" ;
- units:render "%f beats" ;
- units:symbol "beats" .
-
-units:m
- a units:Unit ;
- units:conversion [
- units:factor 39.37 ;
- units:to units:inch
- ] ;
- units:name "metre" ;
- units:prefixConversion [
- units:factor 100 ;
- units:to units:cm
- ] , [
- units:factor 1000 ;
- units:to units:mm
- ] , [
- units:factor 0.001 ;
- units:to units:km
- ] ;
- units:render "%f m" ;
- units:symbol "m" .
-
-units:cm
- a units:Unit ;
- units:conversion [
- units:factor 0.3937 ;
- units:to units:inch
- ] ;
- units:name "centimetre" ;
- units:prefixConversion [
- units:factor 0.01 ;
- units:to units:m
- ] , [
- units:factor 10 ;
- units:to units:mm
- ] , [
- units:factor 0.00001 ;
- units:to units:km
- ] ;
- units:render "%f cm" ;
- units:symbol "cm" .
-
-units:mm
- a units:Unit ;
- units:conversion [
- units:factor 0.03937 ;
- units:to units:inch
- ] ;
- units:name "millimetre" ;
- units:prefixConversion [
- units:factor 0.001 ;
- units:to units:m
- ] , [
- units:factor 0.1 ;
- units:to units:cm
- ] , [
- units:factor 0.000001 ;
- units:to units:km
- ] ;
- units:render "%f mm" ;
- units:symbol "mm" .
-
-units:km
- a units:Unit ;
- units:conversion [
- units:factor 0.62138818 ;
- units:to units:mile
- ] ;
- units:name "kilometre" ;
- units:prefixConversion [
- units:factor 1000 ;
- units:to units:m
- ] , [
- units:factor 100000 ;
- units:to units:cm
- ] , [
- units:factor 1000000 ;
- units:to units:mm
- ] ;
- units:render "%f km" ;
- units:symbol "km" .
-
-units:inch
- a units:Unit ;
- units:conversion [
- units:factor 2.54 ;
- units:to units:cm
- ] ;
- units:name "inch" ;
- units:render "%f\"" ;
- units:symbol "in" .
-
-units:mile
- a units:Unit ;
- units:conversion [
- units:factor 1.6093 ;
- units:to units:km
- ] ;
- units:name "mile" ;
- units:render "%f mi" ;
- units:symbol "mi" .
-
-units:db
- a units:Unit ;
- units:name "decibel" ;
- units:render "%f dB" ;
- units:symbol "dB" .
-
-units:pc
- a units:Unit ;
- units:conversion [
- units:factor 0.01 ;
- units:to units:coef
- ] ;
- units:name "percent" ;
- units:render "%f%%" ;
- units:symbol "%" .
-
-units:coef
- a units:Unit ;
- units:conversion [
- units:factor 100 ;
- units:to units:pc
- ] ;
- units:name "coefficient" ;
- units:render "* %f" ;
- units:symbol "" .
-
-units:hz
- a units:Unit ;
- units:name "hertz" ;
- units:prefixConversion [
- units:factor 0.001 ;
- units:to units:khz
- ] , [
- units:factor 0.000001 ;
- units:to units:mhz
- ] ;
- units:render "%f Hz" ;
- units:symbol "Hz" .
-
-units:khz
- a units:Unit ;
- units:name "kilohertz" ;
- units:prefixConversion [
- units:factor 1000 ;
- units:to units:hz
- ] , [
- units:factor 0.001 ;
- units:to units:mhz
- ] ;
- units:render "%f kHz" ;
- units:symbol "kHz" .
-
-units:mhz
- a units:Unit ;
- units:name "megahertz" ;
- units:prefixConversion [
- units:factor 1000000 ;
- units:to units:hz
- ] , [
- units:factor 0.001 ;
- units:to units:khz
- ] ;
- units:render "%f MHz" ;
- units:symbol "MHz" .
-
-units:bpm
- a units:Unit ;
- units:name "beats per minute" ;
- units:prefixConversion [
- units:factor 0.0166666666 ;
- units:to units:hz
- ] ;
- units:render "%f BPM" ;
- units:symbol "BPM" .
-
-units:oct
- a units:Unit ;
- units:conversion [
- units:factor 12.0 ;
- units:to units:semitone12TET
- ] ;
- units:name "octaves" ;
- units:render "%f octaves" ;
- units:symbol "oct" .
-
-units:cent
- a units:Unit ;
- units:conversion [
- units:factor 0.01 ;
- units:to units:semitone12TET
- ] ;
- units:name "cent" ;
- units:render "%f ct" ;
- units:symbol "ct" .
-
-units:semitone12TET
- a units:Unit ;
- units:conversion [
- units:factor 0.083333333 ;
- units:to units:oct
- ] ;
- units:name "semitone" ;
- units:render "%f semi" ;
- units:symbol "semi" .
-
-units:degree
- a units:Unit ;
- units:name "degree" ;
- units:render "%f deg" ;
- units:symbol "deg" .
-
-units:midiNote
- a units:Unit ;
- units:name "MIDI note" ;
- units:render "MIDI note %d" ;
- units:symbol "note" .
diff --git a/lv2/ns/extensions/units/waf b/lv2/ns/extensions/units/waf
deleted file mode 120000
index b955110..0000000
--- a/lv2/ns/extensions/units/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../waf \ No newline at end of file
diff --git a/lv2/ns/extensions/units/wscript b/lv2/ns/extensions/units/wscript
deleted file mode 120000
index ec20a77..0000000
--- a/lv2/ns/extensions/units/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/ns/index.html.in b/lv2/ns/index.html.in
deleted file mode 100644
index 4863cb2..0000000
--- a/lv2/ns/index.html.in
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
- "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>LV2 Specifications</title>
- <meta http-equiv="Content-Type"
- content="application/xhtml+xml;charset=utf-8" />
- <link rel="stylesheet" type="text/css"
- href="../aux/style.css" />
- </head>
- <body>
- <div id="header">
- <h1 id="title">LV2 Specifications</h1>
- </div>
- <div class="content">
- <table summary="An index of LV2 specifications">
- <tr>
- <th>Name</th>
- <th>Description</th>
- <th>Version</th>
- <th>Date</th>
- <th>Status</th>
- </tr>
- @ROWS@
- </table>
- </div>
- <div id="footer">
- <div>Generated on @TIME@ by gendoc.py</div>
- </div>
- </body>
-</html>
diff --git a/lv2/ns/lv2core/AUTHORS b/lv2/ns/lv2core/AUTHORS
deleted file mode 100644
index 64febf8..0000000
--- a/lv2/ns/lv2core/AUTHORS
+++ /dev/null
@@ -1,13 +0,0 @@
-LV2 is written and maintained by:
-
-David Robillard <d@drobilla.net>
-Steve Harris <steve@plugin.org.uk>
-
-with the input and help of many others.
-
-LV2 is based on LADSPA, which was by:
- Paul Barton-Davis
- Richard W.E. Furse
- Stefan Westerfeld
-
-Thanks to all members of the free software community who made LV2 possible.
diff --git a/lv2/ns/lv2core/COPYING b/lv2/ns/lv2core/COPYING
deleted file mode 100644
index c46d5dd..0000000
--- a/lv2/ns/lv2core/COPYING
+++ /dev/null
@@ -1,16 +0,0 @@
-Copyright 2006-2011 Steve Harris, David Robillard.
-
-Based on LADSPA, Copyright 2000-2002 Richard W.E. Furse,
-Paul Barton-Davis, Stefan Westerfeld.
-
-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. \ No newline at end of file
diff --git a/lv2/ns/lv2core/INSTALL b/lv2/ns/lv2core/INSTALL
deleted file mode 100644
index 16b1427..0000000
--- a/lv2/ns/lv2core/INSTALL
+++ /dev/null
@@ -1,41 +0,0 @@
-This software requires only Python to build. The build system, based on waf,
-is included in this source distribution.
-
-
-LV2Core
-=======
-
-This package contains everything necessary to compile against and/or use LV2
-plugins and extensions: a header file, pkg-config file, and LV2 bundle (with
-Turtle files).
-
-The configure option --bundle-only can be used to install only the lv2core.lv2
-bundle. This is useful for installing the bundle to a project-specific or
-user-specific location (e.g. ~/.lv2).
-
-See README for details on how to correctly package LV2, and how to depend on
-LV2 in other projects.
-
-
-Generic Waf Instructions
-========================
-
-As with most build systems, building and installing a project with waf is done
-in three separate stages:
-
- 1. ./waf configure [OPTIONS]
- 2. ./waf build
- 3. ./waf install
-
-The default command is build. For example:
-
- ./waf configure --prefix=/some/where
- ./waf -j2
- sudo ./waf install
-
-The environment variable DESTDIR can be used to add a prefix to all install
-paths (useful for packaging), for example:
-
- DESTDIR=./lv2core.pkg ./waf install
-
-Run './waf --help' for detailed option information.
diff --git a/lv2/ns/lv2core/README b/lv2/ns/lv2core/README
deleted file mode 100644
index f49513f..0000000
--- a/lv2/ns/lv2core/README
+++ /dev/null
@@ -1,42 +0,0 @@
-LV2
-===
-
-LV2 gives programmers the ability to write audio processors (or "plugins") in
-C/C++ which can be dynamically loaded into a range of applications (or
-"hosts").
-
-This core specification is deliberately as short and simple as possible, but is
-designed so that extensions can be defined to add more advanced features.
-
-More information about LV2 can be found at <http://lv2plug.in>.
-
-
-Using LV2
----------
-
-Applications that use LV2 plugins should depend on this package. It includes a
-header, LV2 bundle, and a pkg-config file. To compile against LV2, build
-scripts should check for the pkg-config package "lv2core", or simply check for
-the header "lv2/lv2plug.in/ns/lv2core/lv2.h".
-
-The appropriate C include for LV2 specifications is based on their URI, e.g.:
-
- #include "lv2/lv2plug.in/ns/lv2core/lv2.h"
-
-Is how code should include the header "lv2.h" in this bundle, which defines the
-specification with URI "http://lv2plug.in/ns/lv2core". Other specifications
-should follow this convention, e.g. the correct way to include the header
-"foo.h" in the extension "http://example.org/foo" is:
-
- #include "lv2/example.org/foo/foo.h"
-
-
-Packaging
----------
-
-Please package these components in a single package (i.e. do not split the
-headers, data, and program into separate packages). This package, in its
-entirety, is a build and run time dependency of any code that uses LV2.
-Distributions are encouraged to include it with package name "lv2core".
-
- -- David Robillard <d@drobilla.net>
diff --git a/lv2/ns/lv2core/lv2.h b/lv2/ns/lv2core/lv2.h
deleted file mode 100644
index 29adf7b..0000000
--- a/lv2/ns/lv2core/lv2.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- LV2 - An audio plugin interface specification.
- Copyright 2006-2012 Steve Harris, David Robillard.
-
- Based on LADSPA, Copyright 2000-2002 Richard W.E. Furse,
- Paul Barton-Davis, Stefan Westerfeld.
-
- 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.
-*/
-
-/**
- @file lv2.h
- API for the LV2 specification <http://lv2plug.in/ns/lv2core>.
- Revision: 6.1
-*/
-
-#ifndef LV2_H_INCLUDED
-#define LV2_H_INCLUDED
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- Plugin Instance Handle.
-
- This is a handle for one particular instance of a plugin. It is valid to
- compare to NULL (or 0 for C++) but otherwise the host MUST NOT attempt to
- interpret it.
-*/
-typedef void * LV2_Handle;
-
-/**
- Feature.
-
- Features allow hosts to make additional functionality available to plugins
- without requiring modification to the LV2 API. Extensions may define new
- features and specify the @ref URI and @ref data to be used if necessary.
- Some features, such as lv2:isLive, do not require the host to pass data.
-*/
-typedef struct _LV2_Feature {
- /**
- A globally unique, case-sensitive identifier (URI) for this feature.
-
- This MUST be a valid URI string as defined by RFC 3986.
- */
- const char * URI;
-
- /**
- Pointer to arbitrary data.
-
- The format of this data is defined by the extension which describes the
- feature with the given @ref URI.
- */
- void * data;
-} LV2_Feature;
-
-/**
- Plugin Descriptor.
-
- This structure provides the core functions necessary to instantiate and use
- a plugin.
-*/
-typedef struct _LV2_Descriptor {
- /**
- A globally unique, case-sensitive identifier for this plugin.
-
- This MUST be a valid URI string as defined by RFC 3986. All plugins with
- the same URI MUST be compatible to some degree, see
- http://lv2plug.in/ns/lv2core for details.
- */
- const char * URI;
-
- /**
- Instantiate the plugin.
-
- Note that instance initialisation should generally occur in activate()
- rather than here. If a host calls instantiate(), it MUST call cleanup()
- at some point in the future.
-
- @param descriptor Descriptor of the plugin to instantiate.
-
- @param sample_rate Sample rate, in Hz, for the new plugin instance.
-
- @param bundle_path Path to the LV2 bundle which contains this plugin
- binary. It MUST include the trailing directory separator (e.g. '/') so
- that simply appending a filename will yield the path to that file in the
- bundle.
-
- @param features A NULL terminated array of LV2_Feature structs which
- represent the features the host supports. Plugins may refuse to
- instantiate if required features are not found here. However, hosts MUST
- NOT use this as a discovery mechanism: instead, use the RDF data to
- determine which features are required and do not attempt to instantiate
- unsupported plugins at all. This parameter MUST NOT be NULL, i.e. a host
- that supports no features MUST pass a single element array containing
- NULL.
-
- @return A handle for the new plugin instance, or NULL if instantiation
- has failed.
- */
- LV2_Handle (*instantiate)(const struct _LV2_Descriptor * descriptor,
- double sample_rate,
- const char * bundle_path,
- const LV2_Feature *const * features);
-
- /**
- Connect a port on a plugin instance to a memory location.
-
- Plugin writers should be aware that the host may elect to use the same
- buffer for more than one port and even use the same buffer for both
- input and output (see lv2:inPlaceBroken in lv2.ttl).
-
- If the plugin has the feature lv2:hardRTCapable then there are various
- things that the plugin MUST NOT do within the connect_port() function;
- see lv2core.ttl for details.
-
- connect_port() MUST be called at least once for each port before run()
- is called, unless that port is lv2:connectionOptional. The plugin must
- pay careful attention to the block size passed to run() since the block
- allocated may only just be large enough to contain the data, and is not
- guaranteed to remain constant between run() calls.
-
- connect_port() may be called more than once for a plugin instance to
- allow the host to change the buffers that the plugin is reading or
- writing. These calls may be made before or after activate() or
- deactivate() calls.
-
- @param instance Plugin instance containing the port.
-
- @param port Index of the port to connect. The host MUST NOT try to
- connect a port index that is not defined in the plugin's RDF data. If
- it does, the plugin's behaviour is undefined (a crash is likely).
-
- @param data_location Pointer to data of the type defined by the port
- type in the plugin's RDF data (e.g. an array of float for an
- lv2:AudioPort). This pointer must be stored by the plugin instance and
- used to read/write data when run() is called. Data present at the time
- of the connect_port() call MUST NOT be considered meaningful.
- */
- void (*connect_port)(LV2_Handle instance,
- uint32_t port,
- void * data_location);
-
- /**
- Initialise a plugin instance and activate it for use.
-
- This is separated from instantiate() to aid real-time support and so
- that hosts can reinitialise a plugin instance by calling deactivate()
- and then activate(). In this case the plugin instance MUST reset all
- state information dependent on the history of the plugin instance except
- for any data locations provided by connect_port(). If there is nothing
- for activate() to do then this field may be NULL.
-
- When present, hosts MUST call this function once before run() is called
- for the first time. This call SHOULD be made as close to the run() call
- as possible and indicates to real-time plugins that they are now live,
- however plugins MUST NOT rely on a prompt call to run() after
- activate().
-
- The host MUST NOT call activate() again until deactivate() has been
- called first. If a host calls activate(), it MUST call deactivate() at
- some point in the future. Note that connect_port() may be called before
- or after activate().
- */
- void (*activate)(LV2_Handle instance);
-
- /**
- Run a plugin instance for a block.
-
- Note that if an activate() function exists then it must be called before
- run(). If deactivate() is called for a plugin instance then run() may
- not be called until activate() has been called again.
-
- If the plugin has the feature lv2:hardRTCapable then there are various
- things that the plugin MUST NOT do within the run() function (see
- lv2core.ttl for details).
-
- As a special case, when @c sample_count == 0, the plugin should update
- any output ports that represent a single instant in time (e.g. control
- ports, but not audio ports). This is particularly useful for latent
- plugins, which should update their latency output port so hosts can
- pre-roll plugins to compute latency. Plugins MUST NOT crash when
- @c sample_count == 0.
-
- @param instance Instance to be run.
-
- @param sample_count The block size (in samples) for which the plugin
- instance must run.
- */
- void (*run)(LV2_Handle instance,
- uint32_t sample_count);
-
- /**
- Deactivate a plugin instance (counterpart to activate()).
-
- Hosts MUST deactivate all activated instances after they have been run()
- for the last time. This call SHOULD be made as close to the last run()
- call as possible and indicates to real-time plugins that they are no
- longer live, however plugins MUST NOT rely on prompt deactivation. If
- there is nothing for deactivate() to do then this field may be NULL
-
- Deactivation is not similar to pausing since the plugin instance will be
- reinitialised by activate(). However, deactivate() itself MUST NOT fully
- reset plugin state. For example, the host may deactivate a plugin, then
- store its state (using some extension to do so).
-
- Hosts MUST NOT call deactivate() unless activate() was previously
- called. Note that connect_port() may be called before or after
- deactivate().
- */
- void (*deactivate)(LV2_Handle instance);
-
- /**
- Clean up a plugin instance (counterpart to instantiate()).
-
- Once an instance of a plugin has been finished with it must be deleted
- using this function. The instance handle passed ceases to be valid after
- this call.
-
- If activate() was called for a plugin instance then a corresponding call
- to deactivate() MUST be made before cleanup() is called. Hosts MUST NOT
- call cleanup() unless instantiate() was previously called.
- */
- void (*cleanup)(LV2_Handle instance);
-
- /**
- Return additional plugin data defined by some extenion.
-
- A typical use of this facility is to return a struct containing function
- pointers to extend the LV2_Descriptor API.
-
- The actual type and meaning of the returned object MUST be specified
- precisely by the extension. This function MUST return NULL for any
- unsupported URI. If a plugin does not support any extension data, this
- field may be NULL.
-
- The host is never responsible for freeing the returned value.
- */
- const void * (*extension_data)(const char * uri);
-} LV2_Descriptor;
-
-/**
- Put this (LV2_SYMBOL_EXPORT) before any functions that are to be loaded
- by the host as a symbol from the dynamic library.
-*/
-#ifdef _WIN32
-# define LV2_SYMBOL_EXPORT __declspec(dllexport)
-#else
-# define LV2_SYMBOL_EXPORT
-#endif
-
-/**
- Prototype for plugin accessor function.
-
- Plugins are discovered by hosts using RDF data (not by loading libraries).
- See http://lv2plug.in for details on the discovery process, though most
- hosts should use an existing library to implement this functionality.
-
- A plugin library MUST include a function called "lv2_descriptor" with this
- prototype. This function MUST have C-style linkage (if you are using C++
- this is taken care of by the 'extern "C"' clause at the top of this file).
-
- When it is time to load a plugin (designated by its URI), the host loads the
- plugin's library, gets the lv2_descriptor() function from it, and uses this
- function to find the LV2_Descriptor for the desired plugin. Plugins are
- accessed by index using values from 0 upwards. This function MUST return
- NULL for out of range indices, so the host can enumerate plugins by
- increasing @c index until NULL is returned.
-
- Note that @c index has no meaning, hosts MUST NOT depend on it remaining
- consistent between loads of the plugin library.
-*/
-LV2_SYMBOL_EXPORT
-const LV2_Descriptor * lv2_descriptor(uint32_t index);
-
-/**
- Type of the lv2_descriptor() function in a plugin library.
-*/
-typedef const LV2_Descriptor *
-(*LV2_Descriptor_Function)(uint32_t index);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LV2_H_INCLUDED */
diff --git a/lv2/ns/lv2core/lv2core.doap.ttl b/lv2/ns/lv2core/lv2core.doap.ttl
deleted file mode 100644
index 33048a2..0000000
--- a/lv2/ns/lv2core/lv2core.doap.ttl
+++ /dev/null
@@ -1,117 +0,0 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://plugin.org.uk/swh.xrdf#me>
- a foaf:Person ;
- foaf:name "Steve Harris" ;
- foaf:homepage <http://plugin.org.uk/> ;
- rdfs:seeAlso <http://plugin.org.uk/swh.xrdf> .
-
-<http://drobilla.net/drobilla#me>
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- foaf:mbox <mailto:d@drobilla.net> ;
- rdfs:seeAlso <http://drobilla.net/drobilla> .
-
-<http://lv2plug.in/ns/lv2core>
- a doap:Project ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2" ;
- doap:homepage <http://lv2plug.in> ;
- doap:created "2004-04-21" ;
- doap:shortdesc "An audio plugin interface specification." ;
- doap:programming-language "C" ;
- doap:release [
- doap:revision "6.1" ;
- doap:created "2012-02-01" ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix LV2_SYMBOL_EXPORT and lv2_descriptor prototype for Windows."
- ]
- ]
- ] , [
- doap:revision "6.0" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-6.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Rename core.lv2 and lv2.ttl to lv2core.lv2 and lv2core.ttl to adhere to modern conventions."
- ] , [
- rdfs:label "Add lv2:extensionData and lv2:ExtensionData for plugins to indicate that they support some URI for extension_data()."
- ] , [
- rdfs:label "Remove lv2config in favour of the simple convention that specifications install headers to standard URI-based paths."
- ] , [
- rdfs:label "Switch to the ISC license, a simple BSD-style license (with permission of all contributors to lv2.h and its ancestor, ladspa.h)."
- ] , [
- rdfs:label "Make lv2core.ttl a valid OWL 2 DL ontology."
- ] , [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "4.0" ;
- doap:created "2011-03-18" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Make doap:license suggested, but not required (for wrappers)."
- ] , [
- rdfs:label "Define lv2:binary (MUST be in manifest.ttl)."
- ] , [
- rdfs:label "Define lv2:minorVersion and lv2:microVersion (MUST be in manifest.ttl)."
- ] , [
- rdfs:label "Define lv2:documentation and use it to document lv2core."
- ] , [
- rdfs:label "Add lv2:FunctionPlugin and lv2:ConstantPlugin classes."
- ] , [
- rdfs:label "Move lv2:AmplifierPlugin under lv2:DynamicsPlugin."
- ] , [
- rdfs:label "Loosen domain of lv2:optionalFeature and lv2:requiredFeature (to allow re-use in extensions)."
- ] , [
- rdfs:label "Add generic lv2:Resource and lv2:PluginBase classes."
- ] , [
- rdfs:label "Fix definition of lv2:minimum etc. (used for values, not scale points)."
- ] , [
- rdfs:label "More precisely define properties with OWL."
- ] , [
- rdfs:label "Move project metadata to manifest."
- ] , [
- rdfs:label "Add lv2:enumeration port property."
- ] , [
- rdfs:label "Define run() pre-roll special case (sample_count == 0)."
- ]
- ]
- ] , [
- doap:revision "3.0" ;
- doap:created "2008-11-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-3.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Require that serialisations refer to ports by symbol rather than index."
- ] , [
- rdfs:label "Minor stylistic changes to lv2.ttl."
- ] , [
- rdfs:label "No header changes."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2008-02-10" ;
- doap:file-release <http://lv2plug.in/spec/lv2core-2.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- doap:developer <http://plugin.org.uk/swh.xrdf#me> ,
- <http://drobilla.net/drobilla#me> ;
- doap:maintainer <http://drobilla.net/drobilla#me> .
diff --git a/lv2/ns/lv2core/lv2core.pc.in b/lv2/ns/lv2core/lv2core.pc.in
deleted file mode 100644
index 96e5169..0000000
--- a/lv2/ns/lv2core/lv2core.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@PREFIX@
-exec_prefix=@EXEC_PREFIX@
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@
-
-Name: lv2core
-Version: @LV2CORE_VERSION@
-Description: An audio plugin interface specification.
-Libs:
-Cflags: -I${includedir}
diff --git a/lv2/ns/lv2core/lv2core.ttl b/lv2/ns/lv2core/lv2core.ttl
deleted file mode 100644
index 0ab56c5..0000000
--- a/lv2/ns/lv2core/lv2core.ttl
+++ /dev/null
@@ -1,883 +0,0 @@
-# This document describes LV2, a plugin interface.
-# See <http://lv2plug.in> for more information.
-#
-# Copyright 2006-2011 Steve Harris, 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 doap: <http://usefulinc.com/ns/doap#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@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#> .
-
-###########################
-## General LV2 Resources ##
-###########################
-
-lv2:Resource a rdfs:Class , owl:Class ;
- rdfs:comment """
-An LV2 Resource (e.g. plugin, specification, or any other LV2 related thing).
-""" .
-
-lv2:Specification a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- lv2:documentation """
-<p>An LV2 specification (i.e. this specification, or an LV2 extension).</p>
-
-<p>Specification data, like plugin data, is distributed in bundles
-so hosts may discover <em>all</em> present LV2 data.</p>
-""" .
-
-lv2:documentation a rdf:Property , owl:AnnotationProperty ;
- rdfs:range rdfs:Literal ;
- rdfs:label "documentation" ;
- rdfs:seeAlso <http://www.w3.org/TR/xhtml-basic/> ;
- lv2:documentation """
-<p>Relates a Resource to documentation markup. The value of this property
-MUST be a string literal which is a valid XHTML Basic 1.1 fragment suitable
-for use as the content of the &lt;body&gt; element. This can be used by
-hosts to provide rich online documentation or by tools to generate external
-documentation pages. The standard language tagging facility of RDF can be
-used to provide multi-lingual documentation.</p>
-<p>XHTML Basic is a W3C Recommendation which defines a basic subset of XHTML
-intended to be reasonable to implement with limited resources (e.g. on embedded
-devices). See <a href="http://www.w3.org/TR/xhtml-basic/#s_xhtmlmodules"
->XHTML Basic, Section 3</a> for a list of legal tags.</p>
-""" .
-
-<http://lv2plug.in/ns/lv2core>
- a owl:Ontology ;
- owl:imports <http://lv2plug.in/ns/doap.owl> ;
- lv2:documentation """
-<p>LV2 is an interface for writing audio processors, or <q>plugins</q>, in
-C/C++ which can be dynamically loaded into many applications, or <q>hosts</q>.
-This <q>core</q> specification is simple and minimal, but is designed so that
-<q>extensions</q> can be defined to add more advanced features, making it
-possibly to implement nearly any feature imaginable.</p>
-
-<p>LV2 maintains a strong distinction between <q>code</q> and <q>data</q>.
-Plugin code is in a shared library, while data is in a companion data file
-written in <a href="http://www.w3.org/TeamSubmission/turtle/">Turtle</a>.
-Code, data, and any other resources (e.g. waveforms) are shipped together in a
-<q>bundle</q> directory. The code contains only the executable portions of the
-plugin which inherently <em>must</em> be written in code. All other data is
-provided in the data file(s). This makes plugin data flexible and extensible,
-and allows the host to do everything but run the plugin without loading or
-executing any code. Among other advantages, this makes hosts more robust
-(broken plugins can't crash a host during discovery) and allows generic tools
-and non-C programs to work with LV2 data. LV2 itself and extensions are
-distributed in a similar way.</p>
-
-<p>An LV2 plugin library is suitable for dynamic loading (e.g. via
-<code>dlopen()</code>) and provides one or more plugin descriptors via the
-<code>lv2_descriptor()</code> function. These can be instantiated to create
-plugin <q>instances</q>, which can be run directly on data or connected
-together to perform advanced signal processing tasks.</p>
-
-<p>Plugins communicate via <q>ports</q>, which can transmit any type of data.
-Data is processed by first <q>connecting</q> each port to a buffer, then
-repeatedly calling a plugin's <code>run()</code> method to process blocks of
-data.</p>
-
-<p>This core specification defines two types of port, equivalent to those in <a
-href="http://www.ladspa.org/">LADSPA</a>: lv2:ControlPort and lv2:AudioPort.
-Audio ports contain arrays with one <code>float</code> element per sample,
-allowing a block of audio to be processed in a single call to
-<code>run()</code>. Control ports contain single <code>float</code> values,
-which are fixed and valid for the duration of the call to <code>run()</code>.
-Thus the <q>control rate</q> is determined by the block size, which is
-controlled by the host (and not necessarily constant).</p>
-
-<h3>Threading Rules</h3>
-
-<p>To faciliate use in multi-threaded programs, LV2 functions are partitioned
-into several threading classes:</p>
-
-<table>
-<tr><th>Discovery Class</th>
- <th>Instantiation Class</th>
- <th>Audio Class</th></tr>
-<tr><td>lv2_descriptor()</td>
- <td>LV2_Descriptor::instantiate()</td>
- <td>LV2_Descriptor::run()</td></tr>
-<tr><td>LV2_Descriptor::extension_data()</td>
- <td>LV2_Descriptor::cleanup()</td>
- <td>LV2_Descriptor::connect_port()</td></tr>
-<tr><td></td><td>LV2_Descriptor::activate()</td><td></td></tr>
-<tr><td></td><td>LV2_Descriptor::deactivate()</td><td></td></tr>
-</table>
-
-<p>The rules that hosts MUST follow are:</p>
-<ul>
-<li>When any function is running for a plugin instance,
-no other function in the same class may run for that instance.</li>
-<li>When a <em>Discovery</em> function is running,
-no other functions in the same shared object file may run.</li>
-<li>When an <em>Instantiation</em> function is running for a plugin instance,
-no other functions for that instance may run.</li>
-</ul>
-
-<p>Any simultaneous calls that are not explicitly forbidden by these rules are
-allowed. For example, a host may call <code>run()</code> for two different
-plugin instances simultaneously.</p>
-
-<p>Plugin functions in any class MUST NOT manipulate any state which might
-affect other plugin or host code, e.g. by using non-reentrant global
-functions.</p>
-
-<p>Extensions to this specification which add new functions MUST declare in
-which of these classes the functions belong, define new classes for them, or
-otherwise precisely describe their threading rules.</p>
-""" .
-
-############
-## Plugin ##
-############
-
-lv2:PluginBase a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- lv2:documentation """
-<p>An abstract plugin-like resource that MAY not actually be an LV2 plugin
-(e.g. may not actually have a plugin binary).</p>
-
-<p>PluginBase SHOULD be used as a base type for any resource that may have
-ports or otherwise mimic the structure of a Plugin (e.g. a preset), since
-hosts and other tools already <q>understand</q> this structure.</p>
-""" .
-
-lv2:Plugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:PluginBase ;
- rdfs:label "Plugin" ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty doap:name ;
- owl:someValuesFrom xsd:string ;
- rdfs:comment """
-A Plugin MUST have at least one doap:name that is a string
-with no language tag.
-""" ] ;
- lv2:documentation """
-<p>The class which represents an LV2 plugin.</p>
-
-<p>To be discovered by hosts, plugins MUST explicitly have rdf:type lv2:Plugin
-listed in their bundle's manifest, e.g.:</p>
-<pre class="turtle-code">
-&lt;http://example.org/my-plugin&gt; a lv2:Plugin .
-</pre>
-
-<p>Plugins SHOULD have a doap:license property whenever possible. The doap:name
-property should be at most a few words in length using title capitalization,
-e.g. <q>Tape Delay Unit</q>. Use doap:shortdesc or doap:description for more
-detailed descriptions.</p>
-""" .
-
-##########
-## Port ##
-##########
-
-lv2:Port a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "Port" ;
- rdfs:subClassOf [
- a owl:Restriction ;
- owl:onProperty lv2:index ;
- owl:allValuesFrom xsd:nonNegativeInteger ;
- owl:cardinality 1 ;
- rdfs:comment """
-A port MUST have a single lv2:index which is of type xsd:nonNegativeInteger
-(e.g. a non-negative integer literal in Turtle). The actual RDF datatype
-of the index MAY be xsd:integer (which is what a generic Turtle parser
-will do), but the value itself MUST be non-negative.
-""" ] , [
- a owl:Restriction ;
- owl:onProperty lv2:symbol ;
- owl:someValuesFrom xsd:string ;
- rdfs:comment """
-A port MUST have a single lv2:symbol which is of type xsd:string with no
-language tag.
-""" ] , [
- a owl:Restriction ;
- owl:onProperty lv2:name ;
- owl:someValuesFrom xsd:string ;
- rdfs:comment """
-A port MUST have at least one lv2:name which is of type xsd:string.
-""" ] ;
- lv2:documentation """
-<p>The class which represents an LV2 port.</p>
-
-<p>All LV2 port descriptions MUST have a rdf:type that is one of lv2:Port
-lv2:InputPort or lv2:OutputPort. Additionally there MUST be at least one other
-rdf:type which more precisely describes type of the port
-(e.g. lv2:AudioPort).</p>
-
-<p>Hosts that do not support a specific port class MUST NOT instantiate the
-plugin, unless that port has the connectionOptional property set (in which case
-the host can simply <q>connect</q> that port to NULL). If a host is interested
-in plugins to insert in a certain signal path (e.g. stereo audio), it SHOULD
-consider all the classes of a port to determine which ports are most suitable
-for connection (e.g. by ignoring ports with additional classes the host does
-not recognize).</p>
-
-<p>A port has two identifiers: a (numeric) index, and a (textual) symbol.
-The index can be used as an identifier at run-time, but persistent references
-to ports (e.g. in a saved preset) MUST use the symbol. A symbol is guaranteed
-to refer to the same port on all plugins with a given URI. An index does NOT
-necessarily refer to the same port on all plugins with a given URI (i.e. the
-index for a port may differ between plugin binaries).</p>
-""" .
-
-lv2:InputPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Input port" ;
- rdfs:comment """
-Ports of this type will be connected to a pointer to some value, which will
-be read by the plugin during their run method.
-""" .
-
-lv2:OutputPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Output port" ;
- rdfs:comment """
-Ports of this type will be connected to a pointer to some value, which will
-be written to by the plugin during their run method.
-""" .
-
-lv2:ControlPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Control port" ;
- lv2:documentation """
-<p>Ports of this type will be connected to a pointer to a single value of C
-type <code>float</code>.</p>
-
-""" .
-
-lv2:AudioPort a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Port ;
- rdfs:label "Audio port" ;
- lv2:documentation """
-<p>Ports of this type will be connected to an array of length sample_count
-with elements of C type <code>float</code>.</p>
-""" .
-
-#######################
-## Plugin Properties ##
-#######################
-
-lv2:port a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:PluginBase ;
- rdfs:range lv2:Port ;
- rdfs:label "port" ;
- rdfs:comment "Relates a Plugin to the Ports it contains" .
-
-lv2:minorVersion a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "minor version" ;
- lv2:documentation """
-<p>The minor version of an LV2 Resource. This property is used (along with
-lv2:microVersion) by hosts to distinguish different versions of a compatible
-resource, e.g. to load only the bundle with the most recent version.</p>
-
-<p>The version of an LV2 resource is composed of two fields: minor version,
-and micro version. These have the usual semantics:</p>
-
-<ul>
-<li>The minor version MUST be incremented when backwards (but not
-forwards) compatible additions are made, e.g. the addition of a port to a
-plugin.</li>
-
-<li>The micro version is incremented for changes which do not affect
-compatibility at all, e.g. bug fixes or documentation updates.</li>
-</ul>
-
-<p>Note there is deliberately no concept of a major version: all versions of an
-LV2 resource with a given URI are by definition backwards compatible. More
-precisely: replacing a resource with a newer version of that resource MUST NOT
-break anything. If a change is made which breaks this rule, the URI
-of the resource MUST be changed. In contexts where a full (e.g. <a
-href="http://semver.org">SemVer</a> conformant) version number is required, the
-major version of all released LV2 resources is 1.</p>
-
-<p>Plugins and extensions MUST adhere to the following rules:</p>
-<ul>
-<li>All versions of a plugin with a given URI MUST have the <q>same</q> set of
-mandatory (i.e. not lv2:connectionOptional) ports with respect to lv2:symbol
-and rdf:type. In other words, every port on a specific version of a plugin has
-a lv2:symbol and a set of rdf:types; all future versions of that plugin are
-guaranteed to have a port with the same lv2:symbol and at least those
-rdf:types. New types may be added only if doing so does not break
-compatibility, i.e. if old hosts will continue to work correctly with the new
-plugin.</li>
-
-<li>New ports MAY be added without changing the plugin URI if and only if they
-are lv2:connectionOptional and the minor version is incremented.</li>
-
-<li>The minor version MUST be incremented if the index of any port (identified
-by its symbol) is changed.</li>
-
-<li>All versions of an extension MUST be compatible in the sense that an
-implementation of the new version can interoperate with an implementation of
-any previous version.</li>
-</ul>
-
-<p>(Note these rules are not necessarily exhaustive)</p>
-
-<p>Anything that depends on a specific version of a plugin (e.g. a
-serialisation that references ports by index) MUST refer to the plugin by both
-URI and version. However, implementations should be tolerant and extensions
-should be designed such that there is no need to do this (e.g. indices should
-only be meaningful for a particular plugin <em>instance</em> at run-time).</p>
-
-<p>When hosts discover several installed versions of a resource, they SHOULD
-warn the user and load only the most recent version.</p>
-
-<p>An odd minor <em>or</em> micro version indicates that the resource is a
-possibly unstable development version. Hosts and tools SHOULD clearly indicate
-this wherever appropriate. Several versions of a resource with an odd version
-may exist; i.e. it is acceptable to work on a development version of a resource
-(e.g. in source control) without worrying about version numbers as long as
-either the minor or micro version is odd.</p>
-
-<p>This property describes half of a resource version. See also <a
-href="http://lv2plug.in/ns/lv2core#minorVersion">lv2:minorVersion</a>, the
-property which describes the other half.</p>
-""" .
-
-lv2:microVersion a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "micro version" ;
- lv2:documentation """
-<p>The micro component of a Resource's version.</p>
-
-<p>Releases of plugins and extensions MUST be explicitly versioned. Correct
-version numbers MUST always be maintained for any versioned resource that is
-published. For example, after a release, if a change is made in the development
-version in source control, the micro version MUST be incremented (to an odd
-number) to distinguish this modified version from the previous release.</p>
-
-<p>This property describes half of a resource version. For detailed
-documentation on LV2 resource versioning, see <a
-href="http://lv2plug.in/ns/lv2core#minorVersion">lv2:minorVersion</a>.</p>
-""" .
-
-lv2:binary a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range owl:Thing ;
- rdfs:label "binary" ;
- lv2:documentation """
-<p>The binary of an LV2 resource. The value of this property must be a URI that
-resolves to a shared library object (the actual type of this library is system
-specific).</p>
-
-<p>This is a required property of a Plugin which MUST be included in the
-bundle's manifest.ttl file. The lv2:binary of an lv2:Plugin is the
-shared object containing the <code>lv2_descriptor()</code> function which can
-be used to access the descriptor for that plugin. This property may be used
-similarly by extensions to relate other resources to their implementations.</p>
-""" .
-
-lv2:appliesTo a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:Plugin ;
- rdfs:label "Applies to" ;
- lv2:documentation """
-<p>Specifies that a resource is related to a plugin. This is primarily intended
-for discovery purposes: bundles that describe resources that work with
-particular plugins (e.g. presets or user interfaces) SHOULD use this predicate
-in manifest.ttl to relate the resource to the applicable
-plugin(s), e.g.:</p>
-<pre class="turtle-code">
-&lt;thing&gt;
- a ext:Thing ;
- lv2:appliesTo &lt;plugin&gt; ;
- rdfs:seeAlso &lt;thing.ttl&gt; .
-</pre>
-
-<p>Particularly for large amounts of data, this is preferable to
-extending the plugin description with rdfs:seeAlso since the host may choose
-if/when to load the data, knowing that it describes an additional resource and
-not the plugin itself.</p>
-""" .
-
-#####################
-## Port Properties ##
-#####################
-
-lv2:index a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:range xsd:nonNegativeInteger ;
- rdfs:label "index" ;
- rdfs:comment """
-Specifies the index of the port, passed as an argument to the connect port
-function. The index uniqely identifies the port on an instance of the plugin.
-""" .
-
-lv2:symbol a rdf:Property , owl:DatatypeProperty ;
- rdfs:label "symbol" ;
- rdfs:comment """
-A short name used as a machine and human readable identifier.
-
-The first character must be one of _, a-z or A-Z and subsequenct characters can
-be from _, a-z, A-Z and 0-9.
-
-A language tag MUST NOT be used on this property. The symbol uniquely
-identifies the port on a plugin with a given URI (i.e. the plugin author MUST
-change the plugin URI if a port symbol is changed or removed).
-""" .
-
-lv2:name a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "name" ;
- rdfs:comment """
-A display name for labeling the Port in a user interface.
-
-This property is required for Ports, but MUST NOT be used by the host for
-port identification. The plugin author may change the values of this
-property without changing the Plugin URI.
-""" .
-
-###########################
-## Port Range and Points ##
-###########################
-
-lv2:Point a rdfs:Class , owl:Class ;
- rdfs:label "Port value point" ;
- # Unfortunately, it is illegal to specify restrictions on rdfs:label or
- # rdf:value. If the migration can be handled gracefully, it would be
- # good to switch to more appropriate predicates here for validators.
- lv2:documentation """
-<p>A Point describes an interesting value in a Port's range (much like a labeled
-<q>notch</q> on a physical knob).</p>
-<ul>
- <li>A Point MUST have at least one rdfs:label which is a string.</li>
- <li>A Point MUST have exactly one rdf:value with a type that is compatible
- with the type of the corresponding Port.</li>
-</ul>
-""" .
-
-lv2:ScalePoint a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Point ;
- rdfs:comment "A single float Point (for control inputs)." .
-
-lv2:scalePoint a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:ScalePoint ;
- rdfs:label "Scale point" ;
- rdfs:comment "Relates a Port to its ScalePoints." .
-
-lv2:default a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "Default value" ;
- rdfs:comment """
-The default value that the host SHOULD set this port to when there is no
-other information available.
-""" .
-
-lv2:minimum a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "Minimum value" ;
- lv2:documentation """
-<p>A hint to the host for the minimum useful value that the port will use. This
-is a <q>soft</q> limit; the plugin is required to gracefully accept all values
-in the range of a port's data type.</p>
-""" .
-
-lv2:maximum a rdf:Property , owl:DatatypeProperty ;
- rdfs:domain lv2:Port ;
- rdfs:label "Maximum value" ;
- lv2:documentation """
-<p>A hint to the host for the maximum useful value that the port will use.
-This is a <q>soft</q> limit; the plugin is required to gracefully accept all
-values in the range of a port's data type.</p>
-""" .
-
-#############
-## Feature ##
-#############
-
-lv2:Feature a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "Feature" ;
- rdfs:comment """
-An additional feature which a plugin or other resource may use or require.
-""".
-
-lv2:optionalFeature a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:Feature ;
- rdfs:label "Optional feature" ;
- lv2:documentation """
-<p>Signifies that a plugin or other resource supports a certain feature. If
-the host supports this feature, it MUST pass its URI and any additional data to
-the plugin in LV2_Descriptor::instantiate(). The plugin MUST NOT fail to
-instantiate if an optional feature is not supported by the host.</p>
-""" .
-
-lv2:requiredFeature a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:Feature ;
- rdfs:label "Required feature" ;
- lv2:documentation """
-<p>Signifies that a plugin or other resource requires a certain feature. If
-the host supports this feature, it MUST pass its URI and any additional data to
-the plugin in LV2_Descriptor::instantiate(). The plugin MUST fail to
-instantiate if a required feature is not present; hosts SHOULD always check
-this before attempting to instantiate a plugin (i.e. discovery by attempting to
-instantiate is strongly discouraged).</p>
-""" .
-
-####################
-## Extension Data ##
-####################
-
-lv2:ExtensionData a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Resource ;
- rdfs:label "Extension Data" ;
- rdfs:comment """
-Additional data and/or functions a plugin may return from
-LV2_Descriptor:extension_data() which can be used to add additional API beyond
-that defined by LV2_Descriptor.
-""".
-
-lv2:extensionData a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Resource ;
- rdfs:range lv2:ExtensionData ;
- rdfs:label "Available extension data" ;
- lv2:documentation """
-<p>Signifies that a plugin provides additional data or functions (as defined by
-some extension) via LV2:Descriptor::instantiate().</p>
-""" .
-
-#######################
-## Standard Features ##
-#######################
-
-lv2:isLive a lv2:Feature ;
- rdfs:label "Has a live (realtime) dependency" ;
- lv2:documentation """
-<p>Indicates that the plugin has a real-time dependency (e.g. queues data from
-a socket) and so its output must not be cached or subject to significant
-latency, and calls to the run method should be done in rapid succession. This
-property is not related to <q>hard real-time</q> execution requirements (see
-lv2:hardRTCapable).</p>
-""" .
-
-lv2:inPlaceBroken a lv2:Feature ;
- rdfs:label "In-place broken" ;
- lv2:documentation """
-<p>Indicates that the plugin may cease to work correctly if the host elects to
-use the same data location for both input and output. Plugins that will fail
-to work correctly if ANY input port is connected to the same location as ANY
-output port MUST require this Feature. Doing so should be avoided as it makes
-it impossible for hosts to use the plugin to process data <q>in-place</q>.</p>
-""" .
-
-lv2:hardRTCapable a lv2:Feature ;
- rdfs:label "Hard realtime capable" ;
- lv2:documentation """
-<p>Indicates that the plugin is capable of running not only in a conventional
-host but also in a <q>hard real-time</q> environment. To qualify for this the
-plugin MUST satisfy all of the following:</p>
-<ol>
-<li>The plugin MUST NOT use malloc(), free() or other heap memory management
- functions within its Audio class functions.</li>
-
-<li>The plugin MUST NOT attempt to make use of any library functions in its
- Audio class functions, unless those functions themselves adhere to these
- rules (i.e. are hard realtime safe). The plugin MAY assume the standard C
- and C math library functions are safe.</li>
-
-<li>The plugin will not access files, devices, pipes, sockets, IPC or any other
- mechanism that might result in process or thread blocking within its Audio
- class functions.</li>
-
-<li>The plugin will take an amount of time to execute a run() call
- approximately of form <code>A + B * sample_count</code> where <code>A</code>
- and <code>B</code> depend on the machine and host in use. This amount of
- time MUST NOT depend on input signals or plugin state.</li>
-</ol>
-<p>Note these rules apply to the connect_port() function as well as run().</p>
-""" .
-
-##################
-## PortProperty ##
-##################
-
-lv2:PortProperty a rdfs:Class , owl:Class ;
- rdfs:label "Port property" ;
- rdfs:comment """
-A port property - a useful piece of information that allows a host to make more
-sensible decisions (e.g. to provide a better interface).
-""" .
-
-lv2:portProperty a rdf:Property , owl:ObjectProperty ;
- rdfs:domain lv2:Port ;
- rdfs:range lv2:PortProperty ;
- rdfs:label "Port property" ;
- rdfs:comment """
-Relates Ports to PortProperties. The PortProperty may be ignored without
-catastrophic effects, though it may be useful e.g. for providing a sensible
-interface for the port.
-""" .
-
-#############################
-## Standard PortProperties ##
-#############################
-
-lv2:connectionOptional a lv2:PortProperty ;
- rdfs:label "Optionally connected port" ;
- rdfs:comment """
-Indicates that this port does not have to be connected to valid data by the
-host. If it is to be disconnected then the port MUST set to NULL with a call
-to the connectPort method.
-""" .
-
-lv2:reportsLatency a lv2:PortProperty ;
- rdfs:label "Latency reporting port" ;
- lv2:documentation """
-<p>Indicates that the port is used to express the processing latency incurred
-by the plugin, expressed in samples. The latency may be affected by the current
-sample rate, plugin settings, or other factors, and may be changed by the
-plugin at any time. Where the latency is frequency dependent the plugin may
-choose any appropriate value. If a plugin introduces latency it MUST provide
-EXACTLY ONE port with this property set which informs the host of the
-<q>correct</q> latency. In <q>fuzzy</q> cases the value output should be the
-most reasonable based on user expectation of input/output alignment
-(eg. musical delay/echo plugins should not report their delay as latency, as it
-is an intentional effect).</p>
-""" .
-
-lv2:toggled a lv2:PortProperty ;
- rdfs:label "Toggled" ;
- lv2:documentation """
-<p>Indicates that the data item should be considered a Boolean toggle. Data
-less than or equal to zero should be considered <q>off</q> or <q>false</q>, and
-data above zero should be considered <q>on</q> or <q>true</q>.</p>
-""" .
-
-lv2:sampleRate a lv2:PortProperty ;
- rdfs:label "Sample rate" ;
- rdfs:comment """
-Indicates that any bounds specified should be interpreted as multiples of the
-sample rate. For instance, a frequency range from 0Hz to the Nyquist frequency
-(half the sample rate) could be requested by this property in conjunction with
-lv2:minimum 0.0 and lv2:maximum 0.5.
-Hosts that support bounds at all MUST support this property.
-""" .
-
-lv2:integer a lv2:PortProperty ;
- rdfs:label "Integer" ;
- rdfs:comment """
-Indicates that a port's reasonable values are integers (eg. a user interface
-would likely wish to provide a stepped control allowing only integer input).
-A plugin MUST operate reasonably even if such a port has a non-integer input.
-""" .
-
-lv2:enumeration a lv2:PortProperty ;
- rdfs:label "Enumeration" ;
- rdfs:comment """
-Indicates that a port's only reasonable values are the scale points defined for
-that port. A host SHOULD NOT allow a user to set the value of such a port to
-anything other than a scale point. However, a plugin MUST operate reasonably
-even if such a port has an input that is not a scale point, preferably by
-simply choosing the largest enumeration value less than or equal to the actual
-input value (i.e. round the input value down).
-""" .
-
-####################
-## Plugin Classes ##
-####################
-
-lv2:GeneratorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Generator" ;
- rdfs:comment """
-Any plugin that generates sound internally, rather than processing its input.
-""" .
-
-lv2:InstrumentPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:GeneratorPlugin ;
- rdfs:label "Instrument" ;
- rdfs:comment """
-Any plugin that is intended to be played as a musical instrument.
-""" .
-
-lv2:OscillatorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:GeneratorPlugin ;
- rdfs:label "Oscillator" .
-
-lv2:UtilityPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Utility" ;
- rdfs:comment """
-Includes things like mathematical functions and non-musical delays.
-""" .
-
-lv2:ConverterPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Converter" ;
- rdfs:comment """
-Any plugin that converts some form of input into a different form of output.
-""" .
-
-lv2:AnalyserPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Analyser" ;
- rdfs:comment """
-Any plugin that analyses input to output some useful information.
-""" .
-
-lv2:MixerPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Mixer" ;
- rdfs:comment """
-A plugin which mixes some number of inputs into some number of outputs.
-""" .
-
-lv2:SimulatorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Simulator" ;
- rdfs:comment """
-Plugins that aim to duplicate the effect of some environmental effect or
-musical equipment.
-""" .
-
-lv2:DelayPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Delay" ;
- rdfs:comment """
-Plugins that intentionally delay their input signal as an effect.
-""" .
-
-lv2:ModulatorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Modulator" .
-
-lv2:ReverbPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:subClassOf lv2:SimulatorPlugin ;
- rdfs:subClassOf lv2:DelayPlugin ;
- rdfs:label "Reverb" .
-
-lv2:PhaserPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:ModulatorPlugin ;
- rdfs:label "Phaser" .
-
-lv2:FlangerPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:ModulatorPlugin ;
- rdfs:label "Flanger" .
-
-lv2:ChorusPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:ModulatorPlugin ;
- rdfs:label "Chorus" .
-
-lv2:FilterPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Filter" .
-
-lv2:LowpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Lowpass" .
-
-lv2:BandpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Bandpass" .
-
-lv2:HighpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Highpass" .
-
-lv2:CombPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Comb" .
-
-lv2:AllpassPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Allpass" .
-
-lv2:EQPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:FilterPlugin ;
- rdfs:label "Equaliser" .
-
-lv2:ParaEQPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:EQPlugin ;
- rdfs:label "Parametric" .
-
-lv2:MultiEQPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:EQPlugin ;
- rdfs:label "Multiband" .
-
-lv2:SpatialPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Spatial" ;
- rdfs:comment """
-Plugins that manipulate the position of audio in space (e.g. panning,
-stereo width, surround encoding, etc.).
-""" .
-
-lv2:SpectralPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Spectral" ;
- rdfs:comment """
-Plugins that alter the spectral properties (e.g. frequency) of audio.
-""" .
-
-lv2:PitchPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:SpectralPlugin ;
- rdfs:label "Pitch Shifter" .
-
-lv2:AmplifierPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Amplifier" .
-
-lv2:DistortionPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Distortion" .
-
-lv2:WaveshaperPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DistortionPlugin ;
- rdfs:label "Waveshaper" .
-
-lv2:DynamicsPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:Plugin ;
- rdfs:label "Dynamics" ;
- rdfs:comment """
-Plugins that alter the envelope or dynamic range of audio.
-""" .
-
-lv2:CompressorPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Compressor" .
-
-lv2:ExpanderPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Expander" .
-
-lv2:LimiterPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Limiter" .
-
-lv2:GatePlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:DynamicsPlugin ;
- rdfs:label "Gate" .
-
-lv2:FunctionPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:UtilityPlugin ;
- rdfs:label "Function" .
-
-lv2:ConstantPlugin a rdfs:Class , owl:Class ;
- rdfs:subClassOf lv2:GeneratorPlugin ;
- rdfs:label "Constant" .
diff --git a/lv2/ns/lv2core/manifest.ttl b/lv2/ns/lv2core/manifest.ttl
deleted file mode 100644
index 5733b55..0000000
--- a/lv2/ns/lv2core/manifest.ttl
+++ /dev/null
@@ -1,10 +0,0 @@
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/lv2core>
- a doap:Project , lv2:Specification , owl:Ontology ;
- lv2:minorVersion 6 ;
- lv2:microVersion 1 ;
- rdfs:seeAlso <lv2core.ttl> , <lv2core.doap.ttl> . \ No newline at end of file
diff --git a/lv2/ns/lv2core/waf b/lv2/ns/lv2core/waf
deleted file mode 100755
index 907b984..0000000
--- a/lv2/ns/lv2core/waf
+++ /dev/null
Binary files differ
diff --git a/lv2/ns/lv2core/wscript b/lv2/ns/lv2core/wscript
deleted file mode 100644
index af4045a..0000000
--- a/lv2/ns/lv2core/wscript
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/usr/bin/env python
-import os
-
-from waflib.extras import autowaf as autowaf
-import waflib.Options as Options
-import waflib.Scripting as Scripting
-
-# Version of this package (even if built as a child)
-LV2CORE_VERSION = '6.1'
-
-# Variables for 'waf dist'
-APPNAME = 'lv2core'
-VERSION = LV2CORE_VERSION
-
-# Mandatory variables
-top = '.'
-out = 'build'
-
-def options(opt):
- opt.load('compiler_c')
- autowaf.set_options(opt)
- opt.add_option('--bundle-only', action='store_true', default=False,
- dest='bundle_only',
- help="Only install bundle (not header or pkg-config file)")
- opt.add_option('--copy-headers', action='store_true', default=False,
- dest='copy_headers',
- help='Copy headers instead of linking to bundle')
-
-def configure(conf):
- if not hasattr(os.path, 'relpath') and not Options.options.copy_headers:
- conf.fatal(
- 'os.path.relpath missing, get Python 2.6 or use --copy-headers')
-
- conf.load('compiler_c')
- autowaf.configure(conf)
-
- autowaf.display_msg(conf, "LV2 bundle directory", conf.env['LV2DIR'])
- print('')
-
-def write_news(doap_file):
- import rdflib
- import textwrap
- from time import strftime, strptime
-
- doap = rdflib.Namespace('http://usefulinc.com/ns/doap#')
- dcs = rdflib.Namespace('http://ontologi.es/doap-changeset#')
- rdfs = rdflib.Namespace('http://www.w3.org/2000/01/rdf-schema#')
- foaf = rdflib.Namespace('http://xmlns.com/foaf/0.1/')
- rdf = rdflib.Namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#')
-
- m = rdflib.ConjunctiveGraph()
-
- try:
- m.parse(doap_file, format='n3')
- except:
- print('warning: no DOAP file found, unable to generate NEWS')
- return
-
- spec = m.value(None, rdf.type, doap.Project)
-
- entries = {}
- for r in m.triples([spec, doap.release, None]):
- release = r[2]
- revision = m.value(release, doap.revision, None) or '9999'
- date = m.value(release, doap.created, None) or '9999-01-01'
- blamee = m.value(release, dcs.blame, None)
- changeset = m.value(release, dcs.changeset, None)
-
- entry = '%s (%s) stable;\n' % (APPNAME, revision)
-
- if changeset:
- for i in m.triples([changeset, dcs.item, None]):
- entry += '\n * ' + '\n '.join(
- textwrap.wrap(m.value(i[2], rdfs.label, None), width=79))
-
- entry += '\n\n -- %s <%s> %s\n\n' % (
- m.value(blamee, foaf.name, None),
- m.value(blamee, foaf.mbox, None).replace('mailto:', ''),
- strftime('%a, %d %b %Y %H:%M:%S +0000', strptime(date, '%Y-%m-%d')))
-
- entries[revision] = entry
-
- news = open('NEWS', 'w')
- for e in sorted(entries.keys(), reverse=True):
- news.write(entries[e])
- news.close()
-
-def build(bld):
- # Header "library"
- obj = bld(export_includes = ['.'],
- name = 'liblv2core',
- target = 'lv2core')
-
- # Bundle (data)
- bld.install_files('${LV2DIR}/lv2core.lv2', bld.path.ant_glob('*.ttl'))
-
- if not Options.options.bundle_only:
- # Header
- bld.install_files('${INCLUDEDIR}', 'lv2.h')
- bld.install_files('${LV2DIR}/lv2core.lv2', 'lv2.h')
-
- # Pkgconfig file
- autowaf.build_pc(bld, 'LV2CORE', LV2CORE_VERSION, '', [])
-
- # URI-like header include
- include_dir = os.path.join(bld.env['INCLUDEDIR'], 'lv2/lv2plug.in/ns')
- bundle_dir = os.path.join(bld.env['LV2DIR'], 'lv2core.lv2')
- if bld.env['COPY_HEADERS']:
- bld.install_files(os.path.join(include_dir, 'lv2core'),
- bld.path.ant_glob('*.h'))
- else:
- bld.symlink_as(os.path.join(include_dir, 'lv2core'),
- os.path.relpath(bundle_dir, include_dir))
-
-class Dist(Scripting.Dist):
- fun = 'dist'
- cmd = 'dist'
-
- def archive(self):
- # Write NEWS file
- write_news('lv2core.doap.ttl')
-
- # Build distribution
- Scripting.Dist.archive(self)
-
- # Delete generated NEWS file
- os.remove('NEWS')
-
-class DistCheck(Dist, Scripting.DistCheck):
- fun = 'distcheck'
- cmd = 'distcheck'
-
- def archive(self):
- Dist.archive(self)