[SCM] juce/master: ttl-generator for lv2

umlaeute at users.alioth.debian.org umlaeute at users.alioth.debian.org
Thu Apr 7 21:03:12 UTC 2016


The following commit has been merged in the master branch:
commit 7168b6d635163bcc30bf26a1baf1c53b2944edb3
Author: IOhannes m zmölnig <zmoelnig at umlautQ.umlaeute.mur.at>
Date:   Thu Apr 7 16:45:17 2016 +0200

    ttl-generator for lv2
    
    (taken from m.kronlachners ambix-plugins,
     which in turn took it from distrho/falktx)

diff --git a/debian/extra/lv2-ttl-generator/GNUmakefile b/debian/extra/lv2-ttl-generator/GNUmakefile
new file mode 100644
index 0000000..024f2a1
--- /dev/null
+++ b/debian/extra/lv2-ttl-generator/GNUmakefile
@@ -0,0 +1,16 @@
+#!/usr/bin/makefile -f
+
+all: build
+
+build: lv2_ttl_generator
+mingw: lv2_ttl_generator.exe
+
+lv2_ttl_generator: lv2_ttl_generator.c
+	$(CXX) lv2_ttl_generator.c -o lv2_ttl_generator -ldl
+
+lv2_ttl_generator.exe: lv2_ttl_generator.c
+	$(CXX) lv2_ttl_generator.c -o lv2_ttl_generator.exe -static
+	touch lv2_ttl_generator
+
+clean:
+	rm -f lv2_ttl_generator lv2_ttl_generator.exe
diff --git a/debian/extra/lv2-ttl-generator/generate-ttl.sh b/debian/extra/lv2-ttl-generator/generate-ttl.sh
new file mode 100755
index 0000000..d5ef597
--- /dev/null
+++ b/debian/extra/lv2-ttl-generator/generate-ttl.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+#set -e
+#echo "Please run this script from the _bin folder"
+
+error() {
+ echo "$@" 1>&2
+}
+
+SCRIPTPATH=$(cd ${0%/*}; pwd)
+
+if [ -f ${SCRIPTPATH}/lv2_ttl_generator.exe ]; then
+  GEN=${SCRIPTPATH}/lv2_ttl_generator.exe
+  EXT=dll
+else
+  GEN=${SCRIPTPATH}/lv2_ttl_generator
+  EXT=so
+fi
+if [ ! -x "${GEN}"  ]; then
+  error "unable to find lv2_ttl_generator"
+  exit 1
+fi
+
+SEARCHPATH=$1
+if [ "x${SEARCHPATH}" = "x" ]; then
+ if [ -d "lv2" ]; then
+   SEARCHPATH="lv2"
+ fi
+ if [ ! -d "${SEARCHPATH}" ]; then
+   SEARCHPATH=.
+ fi
+fi
+if [ ! -d "${SEARCHPATH}" ]; then
+ error "cannot search plugins in non-existing directory ${SEARCHPATH}"
+ exit 1
+fi
+
+
+find  ${SEARCHPATH} -type d -name "*.lv2" -exec /bin/sh -c "cd {}; ${GEN} ./*.${EXT}" \;
+
diff --git a/debian/extra/lv2-ttl-generator/lv2_ttl_generator.c b/debian/extra/lv2-ttl-generator/lv2_ttl_generator.c
new file mode 100644
index 0000000..bd19f41
--- /dev/null
+++ b/debian/extra/lv2-ttl-generator/lv2_ttl_generator.c
@@ -0,0 +1,81 @@
+/*
+ * JUCE LV2 *.ttl generator
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#ifdef _WIN32
+ #include <windows.h>
+ #define TTL_GENERATOR_WINDOWS
+#else
+ #include <dlfcn.h>
+#endif
+
+#ifndef nullptr
+ #define nullptr (0)
+#endif
+
+typedef void (*TTL_Generator_Function)(const char* basename);
+
+int main(int argc, char* argv[])
+{
+    if (argc != 2)
+    {
+        printf("usage: %s /path/to/plugin-DLL\n", argv[0]);
+        return 1;
+    }
+
+#ifdef TTL_GENERATOR_WINDOWS
+    const HMODULE handle = LoadLibraryA(argv[1]);
+#else
+    void* const handle = dlopen(argv[1], RTLD_LAZY);
+#endif
+
+    if (! handle)
+    {
+#ifdef TTL_GENERATOR_WINDOWS
+        printf("Failed to open plugin DLL\n");
+#else
+        printf("Failed to open plugin DLL, error was:\n%s\n", dlerror());
+#endif
+        return 2;
+    }
+
+#ifdef TTL_GENERATOR_WINDOWS
+    const TTL_Generator_Function ttlFn = (TTL_Generator_Function)GetProcAddress(handle, "lv2_generate_ttl");
+#else
+    const TTL_Generator_Function ttlFn = (TTL_Generator_Function)dlsym(handle, "lv2_generate_ttl");
+#endif
+
+    if (ttlFn != NULL)
+    {
+        char basename[strlen(argv[1])+1];
+
+#ifdef TTL_GENERATOR_WINDOWS
+        if (char* base2 = strrchr(argv[1], '\\'))
+#else
+        if (char* base2 = strrchr(argv[1], '/'))
+#endif
+        {
+            strcpy(basename, base2+1);
+            basename[strrchr(base2, '.')-base2-1] = '\0';
+        }
+        else
+            strcpy(basename, argv[1]);
+
+        printf("Generate ttl data for '%s', basename: '%s'\n", argv[1], basename);
+
+        ttlFn(basename);
+    }
+    else
+        printf("Failed to find 'lv2_generate_ttl' function\n");
+
+#ifdef TTL_GENERATOR_WINDOWS
+    FreeLibrary(handle);
+#else
+    dlclose(handle);
+#endif
+
+    return 0;
+}
diff --git a/debian/extra/lv2-ttl-generator/readme.txt b/debian/extra/lv2-ttl-generator/readme.txt
new file mode 100644
index 0000000..0bd3ab5
--- /dev/null
+++ b/debian/extra/lv2-ttl-generator/readme.txt
@@ -0,0 +1,7 @@
+this lv2_ttl_generator is taken from DISTRHO by Filipe Coelho (aka 'falkTX')
+
+http://distrho.sourceforge.net
+https://github.com/falkTX/DISTRHO
+
+
+this small tool creates the needed .ttl files out of the plug-in binaries (.so) for the .lv2 bundle

-- 
juce packaging



More information about the pkg-multimedia-commits mailing list