mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-06 17:13:49 +01:00
Update local LV2 libraries to latest versions
lilv-0.24.6 lv2-1.16.0 serd-0.30.2 sord-0.16.4 sratom-0.6.4 suil-0.10.6
This commit is contained in:
113
lib-src/lv2/lilv/test/lib_descriptor.lv2/lib_descriptor.c
Normal file
113
lib-src/lv2/lilv/test/lib_descriptor.lv2/lib_descriptor.c
Normal file
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
Lilv Test Plugin - Missing descriptor
|
||||
Copyright 2011-2019 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.
|
||||
*/
|
||||
|
||||
#include "lv2/core/lv2.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define PLUGIN_URI "http://example.org/lib-descriptor"
|
||||
|
||||
enum {
|
||||
TEST_INPUT = 0,
|
||||
TEST_OUTPUT = 1
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
float* input;
|
||||
float* output;
|
||||
} Test;
|
||||
|
||||
static void
|
||||
cleanup(LV2_Handle instance)
|
||||
{
|
||||
free((Test*)instance);
|
||||
}
|
||||
|
||||
static void
|
||||
connect_port(LV2_Handle instance, uint32_t port, void* data)
|
||||
{
|
||||
Test* test = (Test*)instance;
|
||||
switch (port) {
|
||||
case TEST_INPUT:
|
||||
test->input = (float*)data;
|
||||
break;
|
||||
case TEST_OUTPUT:
|
||||
test->output = (float*)data;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static LV2_Handle
|
||||
instantiate(const LV2_Descriptor* descriptor,
|
||||
double rate,
|
||||
const char* path,
|
||||
const LV2_Feature* const* features)
|
||||
{
|
||||
Test* test = (Test*)calloc(1, sizeof(Test));
|
||||
if (!test) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return (LV2_Handle)test;
|
||||
}
|
||||
|
||||
static void
|
||||
run(LV2_Handle instance, uint32_t sample_count)
|
||||
{
|
||||
Test* test = (Test*)instance;
|
||||
|
||||
*test->output = *test->input;
|
||||
}
|
||||
|
||||
static const LV2_Descriptor descriptor = {
|
||||
PLUGIN_URI,
|
||||
instantiate,
|
||||
connect_port,
|
||||
NULL, // activate,
|
||||
run,
|
||||
NULL, // deactivate,
|
||||
cleanup,
|
||||
NULL // extension_data
|
||||
};
|
||||
|
||||
static const LV2_Descriptor*
|
||||
get_plugin(LV2_Lib_Handle handle, uint32_t index)
|
||||
{
|
||||
switch (index) {
|
||||
case 0:
|
||||
return &descriptor;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static const LV2_Lib_Descriptor lib = {
|
||||
NULL,
|
||||
sizeof(LV2_Lib_Descriptor),
|
||||
NULL,
|
||||
get_plugin };
|
||||
|
||||
LV2_SYMBOL_EXPORT
|
||||
const LV2_Lib_Descriptor*
|
||||
lv2_lib_descriptor(const char* bundle_path,
|
||||
const LV2_Feature*const* features)
|
||||
{
|
||||
return &lib;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
# Lilv Test Plugin - Missing descriptor
|
||||
# Copyright 2011-2015 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 lv2: <http://lv2plug.in/ns/lv2core#> .
|
||||
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
|
||||
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||
|
||||
<http://example.org/lib-descriptor>
|
||||
a lv2:Plugin ;
|
||||
doap:name "Missing descriptor test" ;
|
||||
doap:license <http://opensource.org/licenses/isc> ;
|
||||
lv2:optionalFeature lv2:hardRTCapable ;
|
||||
<http://example.org/blob> "aGVsbG8sIHdvcmxk"^^xsd:base64Binary ;
|
||||
<http://example.org/junk> "opaque"^^<http://example.org/binary> ;
|
||||
lv2:port [
|
||||
a lv2:InputPort ,
|
||||
lv2:ControlPort ;
|
||||
lv2:index 0 ;
|
||||
lv2:symbol "input" ;
|
||||
lv2:name "Input"
|
||||
] , [
|
||||
a lv2:OutputPort ,
|
||||
lv2:ControlPort ;
|
||||
lv2:index 1 ;
|
||||
lv2:symbol "output" ;
|
||||
lv2:name "Output"
|
||||
] .
|
||||
7
lib-src/lv2/lilv/test/lib_descriptor.lv2/manifest.ttl.in
Normal file
7
lib-src/lv2/lilv/test/lib_descriptor.lv2/manifest.ttl.in
Normal file
@@ -0,0 +1,7 @@
|
||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
|
||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||
|
||||
<http://example.org/lib-descriptor>
|
||||
a lv2:Plugin ;
|
||||
lv2:binary <lib_descriptor@SHLIB_EXT@> ;
|
||||
rdfs:seeAlso <lib_descriptor.ttl> .
|
||||
@@ -0,0 +1,66 @@
|
||||
#include "../src/lilv_internal.h"
|
||||
|
||||
#include "serd/serd.h"
|
||||
#include "lilv/lilv.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define PLUGIN_URI "http://example.org/lib-descriptor"
|
||||
|
||||
#define TEST_ASSERT(check) do {\
|
||||
if (!(check)) {\
|
||||
fprintf(stderr, "%s:%d: failed test: %s\n", __FILE__, __LINE__, #check);\
|
||||
return 1;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "USAGE: %s BUNDLE\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* bundle_path = argv[1];
|
||||
LilvWorld* world = lilv_world_new();
|
||||
|
||||
// Load test plugin bundle
|
||||
uint8_t* abs_bundle = (uint8_t*)lilv_path_absolute(bundle_path);
|
||||
SerdNode bundle = serd_node_new_file_uri(abs_bundle, 0, 0, true);
|
||||
LilvNode* bundle_uri = lilv_new_uri(world, (const char*)bundle.buf);
|
||||
lilv_world_load_bundle(world, bundle_uri);
|
||||
free(abs_bundle);
|
||||
serd_node_free(&bundle);
|
||||
lilv_node_free(bundle_uri);
|
||||
|
||||
LilvNode* plugin_uri = lilv_new_uri(world, PLUGIN_URI);
|
||||
const LilvPlugins* plugins = lilv_world_get_all_plugins(world);
|
||||
const LilvPlugin* plugin = lilv_plugins_get_by_uri(plugins, plugin_uri);
|
||||
TEST_ASSERT(plugin);
|
||||
|
||||
LilvInstance* instance = lilv_plugin_instantiate(plugin, 48000.0, NULL);
|
||||
TEST_ASSERT(instance);
|
||||
lilv_instance_free(instance);
|
||||
|
||||
LilvNode* eg_blob = lilv_new_uri(world, "http://example.org/blob");
|
||||
LilvNode* blob = lilv_world_get(world, plugin_uri, eg_blob, NULL);
|
||||
TEST_ASSERT(lilv_node_is_literal(blob));
|
||||
lilv_node_free(blob);
|
||||
lilv_node_free(eg_blob);
|
||||
|
||||
LilvNode* eg_junk = lilv_new_uri(world, "http://example.org/junk");
|
||||
LilvNode* junk = lilv_world_get(world, plugin_uri, eg_junk, NULL);
|
||||
TEST_ASSERT(lilv_node_is_literal(junk));
|
||||
lilv_node_free(junk);
|
||||
lilv_node_free(eg_junk);
|
||||
|
||||
lilv_node_free(plugin_uri);
|
||||
lilv_world_free(world);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user