aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/lv2plug.in
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/lv2plug.in')
-rw-r--r--lv2/lv2plug.in/ns/ext/contexts/contexts.h82
-rw-r--r--lv2/lv2plug.in/ns/ext/contexts/contexts.ttl134
l---------lv2/lv2plug.in/ns/ext/contexts/ext.pc.in1
-rw-r--r--lv2/lv2plug.in/ns/ext/contexts/manifest.ttl9
-rw-r--r--lv2/lv2plug.in/ns/ext/contexts/test.c67
l---------lv2/lv2plug.in/ns/ext/contexts/waf1
l---------lv2/lv2plug.in/ns/ext/contexts/wscript1
l---------lv2/lv2plug.in/ns/ext/osc/ext.pc.in1
-rw-r--r--lv2/lv2plug.in/ns/ext/osc/lv2_osc.c238
-rw-r--r--lv2/lv2plug.in/ns/ext/osc/lv2_osc_print.c66
-rw-r--r--lv2/lv2plug.in/ns/ext/osc/lv2_osc_test.c55
-rw-r--r--lv2/lv2plug.in/ns/ext/osc/manifest.ttl9
-rw-r--r--lv2/lv2plug.in/ns/ext/osc/osc-print.h42
-rw-r--r--lv2/lv2plug.in/ns/ext/osc/osc.h119
-rw-r--r--lv2/lv2plug.in/ns/ext/osc/osc.ttl39
l---------lv2/lv2plug.in/ns/ext/osc/waf1
l---------lv2/lv2plug.in/ns/ext/osc/wscript1
l---------lv2/lv2plug.in/ns/ext/parameter/ext.pc.in1
-rw-r--r--lv2/lv2plug.in/ns/ext/parameter/manifest.ttl9
-rw-r--r--lv2/lv2plug.in/ns/ext/parameter/parameter.ttl111
l---------lv2/lv2plug.in/ns/ext/parameter/waf1
l---------lv2/lv2plug.in/ns/ext/parameter/wscript1
22 files changed, 0 insertions, 989 deletions
diff --git a/lv2/lv2plug.in/ns/ext/contexts/contexts.h b/lv2/lv2plug.in/ns/ext/contexts/contexts.h
deleted file mode 100644
index f49b474..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/contexts/contexts.ttl b/lv2/lv2plug.in/ns/ext/contexts/contexts.ttl
deleted file mode 100644
index c56c649..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/contexts/ext.pc.in b/lv2/lv2plug.in/ns/ext/contexts/ext.pc.in
deleted file mode 120000
index 03dd044..0000000
--- a/lv2/lv2plug.in/ns/ext/contexts/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/contexts/manifest.ttl b/lv2/lv2plug.in/ns/ext/contexts/manifest.ttl
deleted file mode 100644
index d2cc036..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/contexts/test.c b/lv2/lv2plug.in/ns/ext/contexts/test.c
deleted file mode 100644
index ca41a10..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/contexts/waf b/lv2/lv2plug.in/ns/ext/contexts/waf
deleted file mode 120000
index 5235032..0000000
--- a/lv2/lv2plug.in/ns/ext/contexts/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../waf \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/contexts/wscript b/lv2/lv2plug.in/ns/ext/contexts/wscript
deleted file mode 120000
index 7e2c01b..0000000
--- a/lv2/lv2plug.in/ns/ext/contexts/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/osc/ext.pc.in b/lv2/lv2plug.in/ns/ext/osc/ext.pc.in
deleted file mode 120000
index 03dd044..0000000
--- a/lv2/lv2plug.in/ns/ext/osc/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/osc/lv2_osc.c b/lv2/lv2plug.in/ns/ext/osc/lv2_osc.c
deleted file mode 100644
index afea2c9..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/osc/lv2_osc_print.c b/lv2/lv2plug.in/ns/ext/osc/lv2_osc_print.c
deleted file mode 100644
index 5282d46..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/osc/lv2_osc_test.c b/lv2/lv2plug.in/ns/ext/osc/lv2_osc_test.c
deleted file mode 100644
index 3f76d41..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/osc/manifest.ttl b/lv2/lv2plug.in/ns/ext/osc/manifest.ttl
deleted file mode 100644
index 7209b05..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/osc/osc-print.h b/lv2/lv2plug.in/ns/ext/osc/osc-print.h
deleted file mode 100644
index ceebbf7..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/osc/osc.h b/lv2/lv2plug.in/ns/ext/osc/osc.h
deleted file mode 100644
index 05e39cc..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/osc/osc.ttl b/lv2/lv2plug.in/ns/ext/osc/osc.ttl
deleted file mode 100644
index c83a69d..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/osc/waf b/lv2/lv2plug.in/ns/ext/osc/waf
deleted file mode 120000
index 5235032..0000000
--- a/lv2/lv2plug.in/ns/ext/osc/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../waf \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/osc/wscript b/lv2/lv2plug.in/ns/ext/osc/wscript
deleted file mode 120000
index 7e2c01b..0000000
--- a/lv2/lv2plug.in/ns/ext/osc/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../ext.wscript \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/parameter/ext.pc.in b/lv2/lv2plug.in/ns/ext/parameter/ext.pc.in
deleted file mode 120000
index 03dd044..0000000
--- a/lv2/lv2plug.in/ns/ext/parameter/ext.pc.in
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../ext.pc.in \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/parameter/manifest.ttl b/lv2/lv2plug.in/ns/ext/parameter/manifest.ttl
deleted file mode 100644
index d7af7ff..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/parameter/parameter.ttl b/lv2/lv2plug.in/ns/ext/parameter/parameter.ttl
deleted file mode 100644
index e43cc48..0000000
--- a/lv2/lv2plug.in/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/lv2plug.in/ns/ext/parameter/waf b/lv2/lv2plug.in/ns/ext/parameter/waf
deleted file mode 120000
index 5235032..0000000
--- a/lv2/lv2plug.in/ns/ext/parameter/waf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../waf \ No newline at end of file
diff --git a/lv2/lv2plug.in/ns/ext/parameter/wscript b/lv2/lv2plug.in/ns/ext/parameter/wscript
deleted file mode 120000
index 7e2c01b..0000000
--- a/lv2/lv2plug.in/ns/ext/parameter/wscript
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../ext.wscript \ No newline at end of file