naspro

changeset 174:4f7243a606b1 trunk

Updated copyright notices and build system
author Stefano D'Angelo <zanga.mail@gmail.com>
date Sat May 01 21:51:33 2010 +0300 (21 months ago)
parents 71372f617827
children c2baa6caa3d1
files naspro-bridges-bad/AUTHORS naspro-bridges-bad/CMakeLists.txt naspro-bridges-bad/COPYING naspro-bridges-bad/INSTALL naspro-bridges-bad/Makefile naspro-bridges-bad/Makefile.haiku naspro-bridges-bad/Makefile.osx naspro-bridges-bad/README naspro-bridges-bad/cmake/COPYING-CMAKE-SCRIPTS naspro-bridges-bad/cmake/CheckLibraryLoads.c naspro-bridges-bad/cmake/FindRedland.cmake naspro-bridges-bad/dssi/Makefile naspro-bridges-bad/dssi/Makefile.haiku naspro-bridges-bad/dssi/Makefile.osx naspro-bridges-bad/dssi/descriptor.c naspro-bridges-bad/dssi/descriptor.h naspro-bridges-bad/dssi/dyn-manifest.h naspro-bridges-bad/dssi/event.h naspro-bridges-bad/dssi/lv2api.c naspro-bridges-bad/dssi/lv2api.h naspro-bridges-bad/dssi/manifest.c naspro-bridges-bad/dssi/manifest.ttl.in naspro-bridges-bad/dssi/pluglib.c naspro-bridges-bad/dssi/pluglib.h naspro-bridges-bad/dssi/uri-map.h naspro-bridges-bad/ladspa/Makefile naspro-bridges-bad/ladspa/Makefile.haiku naspro-bridges-bad/ladspa/Makefile.osx naspro-bridges-bad/ladspa/descriptor.c naspro-bridges-bad/ladspa/descriptor.h naspro-bridges-bad/ladspa/dyn-manifest.h naspro-bridges-bad/ladspa/lrdf.c naspro-bridges-bad/ladspa/lrdf.h naspro-bridges-bad/ladspa/lv2api.c naspro-bridges-bad/ladspa/lv2api.h naspro-bridges-bad/ladspa/manifest.c naspro-bridges-bad/ladspa/manifest.ttl.in naspro-bridges-bad/ladspa/pluglib.c naspro-bridges-bad/ladspa/pluglib.h naspro-core/CMakeLists.txt naspro-core/INSTALL naspro-core/README naspro-core/include/NASPRO/core/avl.h naspro-core/include/NASPRO/core/bridge.h naspro-core/include/NASPRO/core/dl.h naspro-core/include/NASPRO/core/env.h naspro-core/include/NASPRO/core/lib.h naspro-core/include/NASPRO/core/lv2api.h naspro-core/include/NASPRO/core/manifest.h naspro-core/include/NASPRO/core/path.h naspro-core/include/NASPRO/core/string.h naspro-core/nacore.pc.in naspro-core/src/avl.c naspro-core/src/dl.h naspro-core/src/init.c naspro-core/src/lv2api.c naspro-core/src/manifest.c naspro-core/src/path.h naspro-core/src/posix/dl.c naspro-core/src/posix/env.c naspro-core/src/posix/path.c
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/naspro-bridges-bad/AUTHORS	Sat May 01 21:51:33 2010 +0300
     1.3 @@ -0,0 +1,1 @@
     1.4 +Stefano D'Angelo <zanga.mail@gmail.com>
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/naspro-bridges-bad/CMakeLists.txt	Sat May 01 21:51:33 2010 +0300
     2.3 @@ -0,0 +1,79 @@
     2.4 +cmake_minimum_required(VERSION 2.8)
     2.5 +
     2.6 +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
     2.7 +
     2.8 +project(NABRIDGESBAD)
     2.9 +
    2.10 +set(NABRIDGESBAD_VERSION 0.2.0)
    2.11 +
    2.12 +set(NABRIDGESBAD_LADSPA_SOURCES ladspa/descriptor.c ladspa/lrdf.c ladspa/lv2api.c ladspa/manifest.c ladspa/pluglib.c)
    2.13 +set(NABRIDGESBAD_DSSI_SOURCES dssi/descriptor.c dssi/lv2api.c dssi/manifest.c dssi/pluglib.c)
    2.14 +
    2.15 +set(SO_FILE_EXT "${CMAKE_SHARED_MODULE_SUFFIX}")
    2.16 +
    2.17 +include(FindPkgConfig)
    2.18 +pkg_check_modules(NACORE REQUIRED nacore>=0.2.0)
    2.19 +
    2.20 +include(FindRedland)
    2.21 +if (NOT "${REDLAND_FOUND}")
    2.22 +	message(FATAL_ERROR "Redland not found")
    2.23 +endif ()
    2.24 +
    2.25 +pkg_check_modules(LV2 REQUIRED lv2core)
    2.26 +
    2.27 +pkg_search_module(ALSA REQUIRED alsa libdssialsacompat)
    2.28 +
    2.29 +include(CheckIncludeFile)
    2.30 +check_include_file(ladspa.h HAVE_LADSPA_H)
    2.31 +if (NOT "${HAVE_LADSPA_H}")
    2.32 +	message(FATAL_ERROR "ladspa.h not found")
    2.33 +endif ()
    2.34 +
    2.35 +pkg_check_modules(DSSI REQUIRED dssi)
    2.36 +
    2.37 +include_directories(. ${NACORE_INCLUDE_DIRS} ${REDLAND_INCLUDE_DIR} ${LV2_INCLUDE_DIR} ${ALSA_INCLUDE_DIR} ${DSSI_INCLUDE_DIR})
    2.38 +link_directories(${NACORE_LIBRARY_DIRS} ${ALSA_LIBRARY_DIRS})
    2.39 +
    2.40 +add_library(ladspa MODULE ${NABRIDGESBAD_LADSPA_SOURCES})
    2.41 +set_target_properties(ladspa PROPERTIES PREFIX "")
    2.42 +target_link_libraries(ladspa ${REDLAND_LIBRARIES} ${NACORE_LIBRARIES})
    2.43 +configure_file("${NABRIDGESBAD_SOURCE_DIR}/ladspa/manifest.ttl.in" "${NABRIDGESBAD_BINARY_DIR}/ladspa/manifest.ttl" @ONLY)
    2.44 +
    2.45 +add_library(dssi MODULE ${NABRIDGESBAD_DSSI_SOURCES})
    2.46 +set_target_properties(dssi PROPERTIES PREFIX "")
    2.47 +target_link_libraries(dssi ${ALSA_LIBRARIES} ${NACORE_LIBRARIES})
    2.48 +configure_file("${NABRIDGESBAD_SOURCE_DIR}/dssi/manifest.ttl.in" "${NABRIDGESBAD_BINARY_DIR}/dssi/manifest.ttl" @ONLY)
    2.49 +
    2.50 +if (NOT DEFINED LV2DIR_INSTALL)
    2.51 +	set(LV2DIR_INSTALL lib/lv2)
    2.52 +endif ()
    2.53 +
    2.54 +install(TARGETS ladspa DESTINATION "${LV2DIR_INSTALL}/naspro-ladspa.lv2")
    2.55 +install(FILES ladspa/manifest.ttl DESTINATION "${LV2DIR_INSTALL}/naspro-ladspa.lv2")
    2.56 +
    2.57 +install(TARGETS dssi DESTINATION "${LV2DIR_INSTALL}/naspro-dssi.lv2")
    2.58 +install(FILES dssi/manifest.ttl DESTINATION "${LV2DIR_INSTALL}/naspro-dssi.lv2")
    2.59 +
    2.60 +set(CPACK_PACKAGE_VERSION_MAJOR 0)
    2.61 +set(CPACK_PACKAGE_VERSION_MINOR 2)
    2.62 +set(CPACK_PACKAGE_VERSION_PATCH 0)
    2.63 +set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
    2.64 +set(CPACK_SOURCE_GENERATOR TGZ)
    2.65 +set(CPACK_SOURCE_PACKAGE_FILE_NAME naspro-bridges-bad-${CPACK_PACKAGE_VERSION})
    2.66 +set(CPACK_SOURCE_IGNORE_FILES
    2.67 +	"^${NABRIDGESBAD_BINARY_DIR}/CMakeCache.*"
    2.68 +	"^${NABRIDGESBAD_BINARY_DIR}/CMakeFiles.*"
    2.69 +	"^${NABRIDGESBAD_BINARY_DIR}/cmake_.*"
    2.70 +	"^${NABRIDGESBAD_BINARY_DIR}/install.*"
    2.71 +	"^${NABRIDGESBAD_BINARY_DIR}/_CPack.*"
    2.72 +	"^${NABRIDGESBAD_BINARY_DIR}/CPack.*"
    2.73 +	"^${NABRIDGESBAD_BINARY_DIR}/Makefile$"
    2.74 +	"^${NABRIDGESBAD_BINARY_DIR}/naspro-.*"
    2.75 +	"^${NABRIDGESBAD_BINARY_DIR}/ladspa/manifest.ttl$"
    2.76 +	"^${NABRIDGESBAD_BINARY_DIR}/dssi/manifest.ttl$"
    2.77 +	"^${NABRIDGESBAD_BINARY_DIR}/.*\\\\.o$"
    2.78 +	"^${NABRIDGESBAD_BINARY_DIR}/ladspa.*${CMAKE_SHARED_LIBRARY_SUFFIX}$"
    2.79 +	"^${NABRIDGESBAD_BINARY_DIR}/dssi.*${CMAKE_SHARED_LIBRARY_SUFFIX}$"
    2.80 +)
    2.81 +
    2.82 +include(CPack)
     3.1 --- a/naspro-bridges-bad/COPYING	Fri Mar 26 18:54:24 2010 +0200
     3.2 +++ b/naspro-bridges-bad/COPYING	Sat May 01 21:51:33 2010 +0300
     3.3 @@ -1,4 +1,4 @@
     3.4 -Copyright (C) 2007-2009 Stefano D'Angelo <zanga.mail@gmail.com>
     3.5 +Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
     3.6  All rights reserved.
     3.7  
     3.8  Redistribution and use in source and binary forms, with or without
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/naspro-bridges-bad/INSTALL	Sat May 01 21:51:33 2010 +0300
     4.3 @@ -0,0 +1,56 @@
     4.4 +Build and installation instructions
     4.5 +===================================
     4.6 +
     4.7 +Build-time requirements
     4.8 +-----------------------
     4.9 +
    4.10 +* CMake >= 2.8.0 (http://www.cmake.org)
    4.11 +* pkg-config (http://pkg-config.freedesktop.org)
    4.12 +* NASPRO core >= 0.2.0 (http://naspro.atheme.org)
    4.13 +* Redland (http://www.librdf.org)
    4.14 +* LV2 core (http://lv2plug.in)
    4.15 +* LADSPA SDK (http://www.ladspa.org)
    4.16 +* DSSI SDK (http://dssi.sourceforge.net)
    4.17 +* ALSA (http://www.alsa-project.org)
    4.18 +    or libdssialsacompat (http://www.smbolton.com/linux.html)
    4.19 +* Some C compiler (only tested with gcc)
    4.20 +
    4.21 +Runtime requirements
    4.22 +--------------------
    4.23 +
    4.24 +* NASPRO core >= 0.2.0 (http://naspro.atheme.org)
    4.25 +* Redland (http://www.librdf.org)
    4.26 +* ALSA (http://www.alsa-project.org)
    4.27 +    or libdssialsacompat (http://www.smbolton.com/linux.html)
    4.28 +
    4.29 +Building
    4.30 +--------
    4.31 +
    4.32 +To configure the package use:
    4.33 +
    4.34 + $ cmake .
    4.35 +
    4.36 +or, if building in some other directory:
    4.37 +
    4.38 + $ cmake <top-level sources directory>
    4.39 +
    4.40 +You can specify installation directories like this:
    4.41 +
    4.42 + $ cmake -DVAR1=VALUE1 -DVAR2=VALUE2 ...
    4.43 +
    4.44 +If VALUE is a relative path, it is considered as relative to the prefix
    4.45 +directory (CMAKE_INSTALL_PREFIX).
    4.46 +
    4.47 +The build system understands the following variables VARx:
    4.48 +
    4.49 + * CMAKE_INSTALL_PREFIX   Installation prefix (the default value is determined
    4.50 +                                               by CMake)
    4.51 + * LV2DIR_INSTALL         Where to put LV2 bundles (the default is lib/lv2)
    4.52 +
    4.53 +Then, build with:
    4.54 +
    4.55 + $ make
    4.56 +
    4.57 +And install with:
    4.58 +
    4.59 + $ make install
     5.1 --- a/naspro-bridges-bad/Makefile	Fri Mar 26 18:54:24 2010 +0200
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,27 +0,0 @@
     5.4 -.POSIX:
     5.5 -
     5.6 -.SUFFIXES:
     5.7 -
     5.8 -all: ladspa-bridge dssi-bridge
     5.9 -
    5.10 -install: ladspa-bridge-install dssi-bridge-install
    5.11 -
    5.12 -clean: ladspa-bridge-clean dssi-bridge-clean
    5.13 -
    5.14 -ladspa-bridge:
    5.15 -	cd ladspa && $(MAKE) && cd ..
    5.16 -
    5.17 -ladspa-bridge-install:
    5.18 -	cd ladspa && $(MAKE) install && cd ..
    5.19 -
    5.20 -ladspa-bridge-clean:
    5.21 -	cd ladspa && $(MAKE) clean && cd ..
    5.22 -
    5.23 -dssi-bridge:
    5.24 -	cd dssi && $(MAKE) && cd ..
    5.25 -
    5.26 -dssi-bridge-install:
    5.27 -	cd dssi && $(MAKE) install && cd ..
    5.28 -
    5.29 -dssi-bridge-clean:
    5.30 -	cd dssi && $(MAKE) clean && cd ..
     6.1 --- a/naspro-bridges-bad/Makefile.haiku	Fri Mar 26 18:54:24 2010 +0200
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,27 +0,0 @@
     6.4 -.POSIX:
     6.5 -
     6.6 -.SUFFIXES:
     6.7 -
     6.8 -all: ladspa-bridge dssi-bridge
     6.9 -
    6.10 -install: ladspa-bridge-install dssi-bridge-install
    6.11 -
    6.12 -clean: ladspa-bridge-clean dssi-bridge-clean
    6.13 -
    6.14 -ladspa-bridge:
    6.15 -	cd ladspa && $(MAKE) -f Makefile.haiku && cd ..
    6.16 -
    6.17 -ladspa-bridge-install:
    6.18 -	cd ladspa && $(MAKE) -f Makefile.haiku install && cd ..
    6.19 -
    6.20 -ladspa-bridge-clean:
    6.21 -	cd ladspa && $(MAKE) -f Makefile.haiku clean && cd ..
    6.22 -
    6.23 -dssi-bridge:
    6.24 -	cd dssi && $(MAKE) -f Makefile.haiku && cd ..
    6.25 -
    6.26 -dssi-bridge-install:
    6.27 -	cd dssi && $(MAKE) -f Makefile.haiku install && cd ..
    6.28 -
    6.29 -dssi-bridge-clean:
    6.30 -	cd dssi && $(MAKE) -f Makefile.haiku clean && cd ..
     7.1 --- a/naspro-bridges-bad/Makefile.osx	Fri Mar 26 18:54:24 2010 +0200
     7.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.3 @@ -1,27 +0,0 @@
     7.4 -.POSIX:
     7.5 -
     7.6 -.SUFFIXES:
     7.7 -
     7.8 -all: ladspa-bridge dssi-bridge
     7.9 -
    7.10 -install: ladspa-bridge-install dssi-bridge-install
    7.11 -
    7.12 -clean: ladspa-bridge-clean dssi-bridge-clean
    7.13 -
    7.14 -ladspa-bridge:
    7.15 -	cd ladspa && $(MAKE) -f Makefile.osx && cd ..
    7.16 -
    7.17 -ladspa-bridge-install:
    7.18 -	cd ladspa && $(MAKE) -f Makefile.osx install && cd ..
    7.19 -
    7.20 -ladspa-bridge-clean:
    7.21 -	cd ladspa && $(MAKE) -f Makefile.osx clean && cd ..
    7.22 -
    7.23 -dssi-bridge:
    7.24 -	cd dssi && $(MAKE) -f Makefile.osx && cd ..
    7.25 -
    7.26 -dssi-bridge-install:
    7.27 -	cd dssi && $(MAKE) -f Makefile.osx install && cd ..
    7.28 -
    7.29 -dssi-bridge-clean:
    7.30 -	cd dssi && $(MAKE) -f Makefile.osx clean && cd ..
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/naspro-bridges-bad/README	Sat May 01 21:51:33 2010 +0300
     8.3 @@ -0,0 +1,23 @@
     8.4 +The "bad" NASPRO bridges
     8.5 +========================
     8.6 +
     8.7 +This is a collection of <API>-to-LV2 bridges which work fine, but do not
     8.8 +completely support the original APIs.
     8.9 +
    8.10 +This release contains two such bridges: a LADSPA (+ LRDF) and a DSSI one.
    8.11 +
    8.12 +The LADSPA bridge supports every feature of LADSPA and LRDF except:
    8.13 + * run_adding() and set_run_adding_gain() - no known LV2 extension to do that;
    8.14 + * LRDF factory presets - I don't know any LADSPA plugin shipping any.
    8.15 +
    8.16 +The DSSI bridge does not support:
    8.17 + * GUIs;
    8.18 + * MIDI programs;
    8.19 + * maximum number of events per run_synth() - it is 4096, should be enough in
    8.20 +     most cases;
    8.21 + * run_synth_adding() - as before;
    8.22 + * run_multiple_synths() and run_multiple_synths_adding() - no extension to do
    8.23 +     that and it may also be impossible to support those.
    8.24 +
    8.25 +You can always use the LADSPA_PATH, LADSPA_RDF_PATH and DSSI_PATH environment
    8.26 +variables for plugin and plugin data discovery locations.
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/naspro-bridges-bad/cmake/COPYING-CMAKE-SCRIPTS	Sat May 01 21:51:33 2010 +0300
     9.3 @@ -0,0 +1,22 @@
     9.4 +Redistribution and use in source and binary forms, with or without
     9.5 +modification, are permitted provided that the following conditions
     9.6 +are met:
     9.7 +
     9.8 +1. Redistributions of source code must retain the copyright
     9.9 +   notice, this list of conditions and the following disclaimer.
    9.10 +2. Redistributions in binary form must reproduce the copyright
    9.11 +   notice, this list of conditions and the following disclaimer in the
    9.12 +   documentation and/or other materials provided with the distribution.
    9.13 +3. The name of the author may not be used to endorse or promote products 
    9.14 +   derived from this software without specific prior written permission.
    9.15 +
    9.16 +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
    9.17 +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    9.18 +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    9.19 +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
    9.20 +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    9.21 +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    9.22 +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    9.23 +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    9.24 +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    9.25 +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/naspro-bridges-bad/cmake/CheckLibraryLoads.c	Sat May 01 21:51:33 2010 +0300
    10.3 @@ -0,0 +1,23 @@
    10.4 +#include <stdio.h>
    10.5 +#include <dlfcn.h>
    10.6 +
    10.7 +/**
    10.8 + * Attempts to load shared libraries
    10.9 + * @param argc
   10.10 + * @param argv files to check (pass only shared libs)
   10.11 + * @return 0 - all shared libs loaded, 1 - error occured (invalid or broken files passed)
   10.12 + */
   10.13 +int main(int argc, char* argv[])
   10.14 +{
   10.15 +	int i;
   10.16 +	for (i = 1; i < argc; ++i) {
   10.17 +		void* handle = dlopen(argv[i], RTLD_NOW);
   10.18 +		if (!handle) {
   10.19 +			fprintf(stderr, "%s", dlerror());
   10.20 +			return 1;
   10.21 +		} else {
   10.22 +			dlclose(handle);
   10.23 +		}
   10.24 +	}
   10.25 +	return 0;
   10.26 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/naspro-bridges-bad/cmake/FindRedland.cmake	Sat May 01 21:51:33 2010 +0300
    11.3 @@ -0,0 +1,122 @@
    11.4 +# - Try to find the Redland rdf libraries (http://librdf.org/)
    11.5 +# Once done this will define
    11.6 +#
    11.7 +#  REDLAND_FOUND       - system has Redland
    11.8 +#  REDLAND_LIBRARIES   - Link these to use REDLAND
    11.9 +#  REDLAND_INCLUDE_DIR - Include directory for using the redland library
   11.10 +#  REDLAND_VERSION     - The redland version string
   11.11 +#
   11.12 +# Specifying the minimum required version via the find_package() interface
   11.13 +# is also supported by this module.
   11.14 +
   11.15 +# Always empty, so remove it from the docs for now, Alex
   11.16 +#  REDLAND_DEFINITIONS - Compiler switches required for using REDLAND
   11.17 +
   11.18 +# (c) 2007-2009 Sebastian Trueg <trueg@kde.org>
   11.19 +#
   11.20 +# Based on FindFontconfig Copyright (c) 2006,2007 Laurent Montel, <montel@kde.org>
   11.21 +#
   11.22 +# Redistribution and use is allowed according to the terms of the BSD license.
   11.23 +# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
   11.24 +
   11.25 +
   11.26 +find_program(
   11.27 +  REDLAND_CONFIG_EXECUTABLE
   11.28 +  NAMES redland-config
   11.29 +  )
   11.30 +
   11.31 +if(REDLAND_CONFIG_EXECUTABLE)
   11.32 +  EXECUTE_PROCESS(
   11.33 +    COMMAND ${REDLAND_CONFIG_EXECUTABLE} --version
   11.34 +    OUTPUT_VARIABLE REDLAND_VERSION
   11.35 +    OUTPUT_STRIP_TRAILING_WHITESPACE
   11.36 +    )
   11.37 +  if(REDLAND_VERSION)
   11.38 +
   11.39 +    # extract include paths from redland-config
   11.40 +    execute_process(
   11.41 +      COMMAND ${REDLAND_CONFIG_EXECUTABLE} --cflags
   11.42 +      OUTPUT_VARIABLE redland_LIBS_ARGS)
   11.43 +    string( REPLACE " " ";" redland_LIBS_ARGS ${redland_LIBS_ARGS} )
   11.44 +    foreach( _ARG ${redland_LIBS_ARGS} )
   11.45 +      if(${_ARG} MATCHES "^-I")
   11.46 +        string(REGEX REPLACE "^-I" "" _ARG ${_ARG})
   11.47 +        string( REPLACE "\n" "" _ARG ${_ARG} )
   11.48 +        list(APPEND redland_INCLUDE_DIRS ${_ARG})
   11.49 +      endif(${_ARG} MATCHES "^-I")
   11.50 +    endforeach(_ARG)
   11.51 +
   11.52 +    # extract lib paths from redland-config
   11.53 +    execute_process(
   11.54 +      COMMAND ${REDLAND_CONFIG_EXECUTABLE} --libs
   11.55 +      OUTPUT_VARIABLE redland_CFLAGS_ARGS)
   11.56 +    string( REPLACE " " ";" redland_CFLAGS_ARGS ${redland_CFLAGS_ARGS} )
   11.57 +    foreach( _ARG ${redland_CFLAGS_ARGS} )
   11.58 +      if(${_ARG} MATCHES "^-L")
   11.59 +        string(REGEX REPLACE "^-L" "" _ARG ${_ARG})
   11.60 +        list(APPEND redland_LIBRARY_DIRS ${_ARG})
   11.61 +      endif(${_ARG} MATCHES "^-L")
   11.62 +    endforeach(_ARG)
   11.63 +  endif(REDLAND_VERSION)
   11.64 +endif(REDLAND_CONFIG_EXECUTABLE)
   11.65 +
   11.66 +# This one is always empty, Alex
   11.67 +# set(REDLAND_DEFINITIONS ${redland_CFLAGS})
   11.68 +
   11.69 +
   11.70 +find_path(REDLAND_INCLUDE_DIR redland.h
   11.71 +  HINTS
   11.72 +  ${redland_INCLUDE_DIRS}
   11.73 +  /usr/X11/include
   11.74 +  PATH_SUFFIXES redland
   11.75 +  )
   11.76 +
   11.77 +find_library(REDLAND_LIBRARIES NAMES rdf librdf
   11.78 +  HINTS
   11.79 +  ${redland_LIBRARY_DIRS}
   11.80 +  )
   11.81 +
   11.82 +set(_REDLAND_VERSION_OK TRUE)
   11.83 +if(NOT WIN32)
   11.84 +
   11.85 +  # Look for unresolved symbols in shared librdf_storage_* libs
   11.86 +  set(_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
   11.87 +  set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX})
   11.88 +  set(_REDLAND_STORAGE_LIBS)
   11.89 +  foreach(_STORAGE_LIB rdf_storage_mysql rdf_storage_sqlite rdf_storage_tstore rdf_storage_postgresql rdf_storage_virtuoso)
   11.90 +    set(_LIB_PATH NOTFOUND)
   11.91 +    find_library(_LIB_PATH
   11.92 +      ${_STORAGE_LIB}
   11.93 +      HINTS
   11.94 +      ${redland_LIBRARY_DIRS}
   11.95 +      PATH_SUFFIXES redland
   11.96 +    )
   11.97 +    if(_LIB_PATH)
   11.98 +      set(_REDLAND_STORAGE_LIBS ${_REDLAND_STORAGE_LIBS} ${_LIB_PATH})
   11.99 +    endif(_LIB_PATH)
  11.100 +  endforeach(_STORAGE_LIB)
  11.101 +  set(CMAKE_FIND_LIBRARY_SUFFIXES ${_SUFFIXES})
  11.102 +  if(_REDLAND_STORAGE_LIBS)
  11.103 +    message(STATUS "Found Redland storage: ${_REDLAND_STORAGE_LIBS}")
  11.104 +    try_run(_TEST_EXITCODE _TEST_COMPILED
  11.105 +      "${CMAKE_CURRENT_BINARY_DIR}"
  11.106 +      "${CMAKE_CURRENT_SOURCE_DIR}/cmake/CheckLibraryLoads.c"
  11.107 +      CMAKE_FLAGS "-DLINK_LIBRARIES=dl"
  11.108 +      RUN_OUTPUT_VARIABLE _OUTPUT
  11.109 +      ARGS ${_REDLAND_STORAGE_LIBS}
  11.110 +    )
  11.111 +    if(NOT "${_TEST_EXITCODE}" EQUAL 0)
  11.112 +      set(_REDLAND_VERSION_OK)
  11.113 +      message(STATUS "${_OUTPUT}")
  11.114 +      message(STATUS "Redland with broken NEEDED section detected, disabling")
  11.115 +    endif(NOT "${_TEST_EXITCODE}" EQUAL 0)
  11.116 +  endif(_REDLAND_STORAGE_LIBS)
  11.117 +
  11.118 +endif(NOT WIN32)
  11.119 +
  11.120 +include(FindPackageHandleStandardArgs)
  11.121 +find_package_handle_standard_args(Redland  DEFAULT_MSG  REDLAND_CONFIG_EXECUTABLE REDLAND_LIBRARIES REDLAND_LIBRARIES _REDLAND_VERSION_OK)
  11.122 +
  11.123 +mark_as_advanced(REDLAND_INCLUDE_DIR_TMP
  11.124 +  REDLAND_INCLUDE_DIR
  11.125 +  REDLAND_LIBRARIES)
    12.1 --- a/naspro-bridges-bad/dssi/Makefile	Fri Mar 26 18:54:24 2010 +0200
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,56 +0,0 @@
    12.4 -.POSIX:
    12.5 -
    12.6 -.SUFFIXES:
    12.7 -
    12.8 -### Change this...
    12.9 -
   12.10 -DESTDIR =
   12.11 -PREFIX = /usr/local
   12.12 -LIB_DIR = $(PREFIX)/lib
   12.13 -
   12.14 -LV2_DIR = $(LIB_DIR)/lv2
   12.15 -
   12.16 -DSSI_BRIDGE_BUNDLE_DIR = $(LV2_DIR)/naspro-dssi.lv2
   12.17 -
   12.18 -CC = gcc
   12.19 -CFLAGS = -O2 -ansi -pedantic -Wall -fPIC
   12.20 -
   12.21 -DL_LDFLAGS = -ldl
   12.22 -LDFLAGS = -shared $(DL_LDFLAGS)
   12.23 -
   12.24 -SO_FILE_EXT = .so
   12.25 -
   12.26 -DSSI_DEFAULT_SYSTEM_PATH = /usr/local/lib/dssi:/usr/lib/dssi
   12.27 -DSSI_DEFAULT_HOME_PATH = .dssi
   12.28 -
   12.29 -### ... but not this
   12.30 -
   12.31 -TARGETS = dssi$(SO_FILE_EXT) manifest.ttl
   12.32 -
   12.33 -DSSI_BRIDGE_SOURCES = descriptor.c \
   12.34 -		      descriptor.h \
   12.35 -		      lv2api.c \
   12.36 -		      lv2api.h \
   12.37 -		      manifest.c \
   12.38 -		      pluglib.c \
   12.39 -		      pluglib.h
   12.40 -DSSI_BRIDGE_LIBS = -lnacore -lasound
   12.41 -
   12.42 -DEFS = -DDSSI_DEFAULT_SYSTEM_PATH="\"$(DSSI_DEFAULT_SYSTEM_PATH)\"" \
   12.43 -       -DDSSI_DEFAULT_HOME_PATH="\"$(DSSI_DEFAULT_HOME_PATH)\""
   12.44 -
   12.45 -all: $(TARGETS)
   12.46 -
   12.47 -manifest.ttl: manifest.ttl.in
   12.48 -	sed 's/@SO_FILE_EXT@/$(SO_FILE_EXT)/g' manifest.ttl.in > manifest.ttl
   12.49 -
   12.50 -dssi$(SO_FILE_EXT): $(DSSI_BRIDGE_SOURCES)
   12.51 -	$(CC) $(CFLAGS) $(DEFS) $(LDFLAGS) $(DSSI_BRIDGE_SOURCES) \
   12.52 -		$(DSSI_BRIDGE_LIBS) -o $@
   12.53 -
   12.54 -install: $(TARGETS) manifest.ttl
   12.55 -	mkdir -p $(DESTDIR)$(DSSI_BRIDGE_BUNDLE_DIR)
   12.56 -	cp dssi$(SO_FILE_EXT) manifest.ttl $(DESTDIR)$(DSSI_BRIDGE_BUNDLE_DIR)
   12.57 -
   12.58 -clean:
   12.59 -	rm -f $(TARGETS)
    13.1 --- a/naspro-bridges-bad/dssi/Makefile.haiku	Fri Mar 26 18:54:24 2010 +0200
    13.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3 @@ -1,31 +0,0 @@
    13.4 -.POSIX:
    13.5 -
    13.6 -.SUFFIXES:
    13.7 -
    13.8 -### Change this...
    13.9 -
   13.10 -PREFIX = /boot/common
   13.11 -ADDONS_DIR = $(PREFIX)/add-ons
   13.12 -
   13.13 -LV2_DIR = $(ADDONS_DIR)/lv2
   13.14 -
   13.15 -DL_LDFLAGS =
   13.16 -
   13.17 -DSSI_DEFAULT_SYSTEM_PATH = $(ADDONS_DIR)/dssi
   13.18 -DSSI_DEFAULT_HOME_PATH = .dssi
   13.19 -
   13.20 -### ... but not this
   13.21 -
   13.22 -MAKE_VARS = PREFIX="$(PREFIX)" LV2_DIR="$(LV2_DIR)" \
   13.23 -	    DL_LDFLAGS="$(DL_LDFLAGS)" \
   13.24 -	    DSSI_DEFAULT_SYSTEM_PATH="$(DSSI_DEFAULT_SYSTEM_PATH)" \
   13.25 -	    DSSI_DEFAULT_HOME_PATH="$(DSSI_DEFAULT_HOME_PATH)"
   13.26 -
   13.27 -all:
   13.28 -	$(MAKE) $(MAKE_VARS) all 
   13.29 -
   13.30 -install:
   13.31 -	$(MAKE) $(MAKE_VARS) install
   13.32 -
   13.33 -clean:
   13.34 -	$(MAKE) $(MAKE_VARS) clean
    14.1 --- a/naspro-bridges-bad/dssi/Makefile.osx	Fri Mar 26 18:54:24 2010 +0200
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,32 +0,0 @@
    14.4 -.POSIX:
    14.5 -
    14.6 -.SUFFIXES:
    14.7 -
    14.8 -### Change this...
    14.9 -
   14.10 -PREFIX =
   14.11 -ADDONS_DIR = $(PREFIX)/Library
   14.12 -
   14.13 -LV2_DIR = $(ADDONS_DIR)/Audio/Plug-Ins/LV2
   14.14 -
   14.15 -SO_FILE_EXT = .dylib
   14.16 -
   14.17 -DSSI_DEFAULT_SYSTEM_PATH = \
   14.18 -	/Library/Audio/Plug-Ins/DSSI:/usr/local/lib/dssi:/usr/lib/dssi
   14.19 -DSSI_DEFAULT_HOME_PATH = Library/Audio/Plug-Ins/DSSI:.dssi
   14.20 -
   14.21 -### ... but not this
   14.22 -
   14.23 -MAKE_VARS = PREFIX="$(PREFIX)" LV2_DIR="$(LV2_DIR)" \
   14.24 -	    SO_FILE_EXT="$(SO_FILE_EXT)" \
   14.25 -	    DSSI_DEFAULT_SYSTEM_PATH="$(DSSI_DEFAULT_SYSTEM_PATH)" \
   14.26 -	    DSSI_DEFAULT_HOME_PATH="$(DSSI_DEFAULT_HOME_PATH)"
   14.27 -
   14.28 -all:
   14.29 -	$(MAKE) $(MAKE_VARS) all 
   14.30 -
   14.31 -install:
   14.32 -	$(MAKE) $(MAKE_VARS) install
   14.33 -
   14.34 -clean:
   14.35 -	$(MAKE) $(MAKE_VARS) clean
    15.1 --- a/naspro-bridges-bad/dssi/descriptor.c	Fri Mar 26 18:54:24 2010 +0200
    15.2 +++ b/naspro-bridges-bad/dssi/descriptor.c	Sat May 01 21:51:33 2010 +0300
    15.3 @@ -2,7 +2,7 @@
    15.4   * NASPRO - NASPRO Architecture for Sound Processing
    15.5   * DSSI bridge
    15.6   *
    15.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    15.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    15.9   *
   15.10   * See the COPYING file for license conditions.
   15.11   */
    16.1 --- a/naspro-bridges-bad/dssi/descriptor.h	Fri Mar 26 18:54:24 2010 +0200
    16.2 +++ b/naspro-bridges-bad/dssi/descriptor.h	Sat May 01 21:51:33 2010 +0300
    16.3 @@ -2,7 +2,7 @@
    16.4   * NASPRO - NASPRO Architecture for Sound Processing
    16.5   * DSSI bridge
    16.6   *
    16.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    16.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    16.9   *
   16.10   * See the COPYING file for license conditions.
   16.11   */
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/naspro-bridges-bad/dssi/dyn-manifest.h	Sat May 01 21:51:33 2010 +0300
    17.3 @@ -0,0 +1,245 @@
    17.4 +/* Dynamic manifest specification for LV2
    17.5 + * Revision 2
    17.6 + *
    17.7 + * Copyright (C) 2008-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    17.8 + * All rights reserved.
    17.9 + *
   17.10 + * Redistribution and use in source and binary forms, with or without
   17.11 + * modification, are permitted provided that the following conditions
   17.12 + * are met:
   17.13 + * 1. Redistributions of source code must retain the above copyright
   17.14 + *    notice, this list of conditions and the following disclaimer.
   17.15 + * 2. Redistributions in binary form must reproduce the above copyright
   17.16 + *    notice, this list of conditions and the following disclaimer in the
   17.17 + *    documentation and/or other materials provided with the distribution.
   17.18 + * 3. The name of the author may not be used to endorse or promote products
   17.19 + *    derived from this software without specific prior written permission.
   17.20 + *
   17.21 + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   17.22 + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   17.23 + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   17.24 + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   17.25 + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   17.26 + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   17.27 + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   17.28 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   17.29 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   17.30 + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   17.31 + */
   17.32 +
   17.33 +#ifndef LV2_DYN_MANIFEST_H_INCLUDED
   17.34 +#define LV2_DYN_MANIFEST_H_INCLUDED
   17.35 +
   17.36 +#include <stdio.h>
   17.37 +#include <lv2.h>
   17.38 +
   17.39 +#define LV2_DYN_MANIFEST_URI "http://lv2plug.in/ns/ext/dyn-manifest"
   17.40 +
   17.41 +#ifdef __cplusplus
   17.42 +extern "C" {
   17.43 +#endif
   17.44 +
   17.45 +
   17.46 +/* ************************************************************************* */
   17.47 +
   17.48 +
   17.49 +/** @file
   17.50 + *
   17.51 + * Revision: 2
   17.52 + *
   17.53 + * == Overview ==
   17.54 + *
   17.55 + * The LV2 API, on its own, cannot be used to write plugin libraries where
   17.56 + * data is dynamically generated at runtime (e.g. API wrappers), since LV2
   17.57 + * requires needed information to be provided in one or more static data (RDF)
   17.58 + * files. This API addresses this limitation by extending the LV2 API.
   17.59 + *
   17.60 + * A host implementing support for this API should first detect that the plugin
   17.61 + * library implements a dynamic manifest generator by examining its static
   17.62 + * manifest file, then fetch data from the shared object file by accessing it as
   17.63 + * usual (dlopen() and family) and using this API.
   17.64 + *
   17.65 + * The host is allowed to request regeneration of the dynamic manifest multiple
   17.66 + * times, and the plugin library is expected to provide updated data if/when
   17.67 + * possible. All data and references provided via this API before the last
   17.68 + * regeneration of the dynamic manifest is to be considered invalid by the
   17.69 + * host, including plugin descriptors whose URIs were discovered using this API.
   17.70 + *
   17.71 + * This API is extensible in a similar fashion as the LV2 plugin API.
   17.72 + *
   17.73 + * == Accessing data ==
   17.74 + *
   17.75 + * Whenever a host wants to access data using this API, it could:
   17.76 + *
   17.77 + *  -# Call lv2_dyn_manifest_open();
   17.78 + *  -# Create an empty resource identified by a FILE *;
   17.79 + *  -# Get a "list" of exposed subject URIs using
   17.80 + *     lv2_dyn_manifest_get_subjects();
   17.81 + *  -# Call lv2_dyn_manifest_get_data() for each URI of interest, in order to
   17.82 + *     get data related to that URI (either by calling the function subsequently
   17.83 + *     with the same FILE * resource, or by creating more FILE * resources to
   17.84 + *     perform parallel calls);
   17.85 + *  -# Call lv2_dyn_manifest_close();
   17.86 + *  -# Parse the content of the FILE * resource(s).
   17.87 + *  -# Free/delete/unlink the FILE * resource(s).
   17.88 + *
   17.89 + * The content of the FILE * resources has to be interpreted by the host as a
   17.90 + * regular file in Turtle syntax. This also means that each FILE * resource
   17.91 + * should also contain needed prefix definitions, in case any are used.
   17.92 + *
   17.93 + * Each call to lv2_dyn_manifest_open() automatically implies the (re)generation
   17.94 + * of the dynamic manifest on the library side.
   17.95 + *
   17.96 + * When such calls are made, data fetched from the involved library using this
   17.97 + * API before such call is to be considered no more valid.
   17.98 + *
   17.99 + * In case the library uses this same API to access other dynamic manifests, it
  17.100 + * MUST implement some mechanism to avoid potentially endless loops (such as A
  17.101 + * loads B, B loads A, etc.) in functions from the Dynamic manifest open class
  17.102 + * (the open-like operation MUST fail). For this purpose, use of a static
  17.103 + * boolean flag is suggested.
  17.104 + *
  17.105 + * == Threading rules ==
  17.106 + *
  17.107 + * This specification defines threading rule classes, similarly to the LV2
  17.108 + * specification.
  17.109 + *
  17.110 + * The functions defined by this API belong to:
  17.111 + *
  17.112 + *  - Dynamic manifest open class:  lv2_dyn_manifest_open()
  17.113 + *  - Dynamic manifest close class: lv2_dyn_manifest_close()
  17.114 + *  - Dynamic manifest file class:  lv2_dyn_manifest_get_subjects(),
  17.115 + *                                  lv2_dyn_manifest_get_data()
  17.116 + *
  17.117 + * The rules that hosts must follow are these:
  17.118 + *
  17.119 + *  - When a function from the Dynamic manifest open or the Dynamic manifest
  17.120 + *    close class is running, no other functions in the same shared object file
  17.121 + *    may run.
  17.122 + *  - When a function from the Dynamic manifest file class is called, no other
  17.123 + *    functions from the same class may run if they are given at least one
  17.124 + *    FILE * argument with the same value.
  17.125 + *  - A function from the Dynamic manifest open class may not run after a
  17.126 + *    successful call to a function from the same class, in case a function from
  17.127 + *    the Dynamic manifest close class was not successfully called in the
  17.128 + *    meanwhile.
  17.129 + *  - A function from the Dynamic manifest close class may only run after a
  17.130 + *    successful call to a function from the Dynamic manifest open class.
  17.131 + *  - A function from the Dynamic manifest file class may only run beetween a
  17.132 + *    successful call to a function from the Dynamic manifest open class and the
  17.133 + *    following successful call to a function from the Dynamic manifest close
  17.134 + *    class.
  17.135 + *
  17.136 + * Extensions to this specification which add new functions MUST declare in
  17.137 + * which of these classes the functions belong, or define new classes for them;
  17.138 + * furthermore, classes defined by such extensions MUST only allow calls after
  17.139 + * a successful call to a function from the Dynamic manifest open class and
  17.140 + * before the following successful call to a function from the Dynamic manifest
  17.141 + * close class.
  17.142 + *
  17.143 + * Any simultaneous calls that are not explicitly forbidden by these rules are
  17.144 + * allowed.
  17.145 + */
  17.146 +
  17.147 +
  17.148 +/* ************************************************************************* */
  17.149 +
  17.150 +
  17.151 +/** Dynamic manifest generator handle.
  17.152 + *
  17.153 + * This handle indicates a particular status of a dynamic manifest generator.
  17.154 + * The host MUST NOT attempt to interpret it and, unlikely LV2_Handle, it is NOT
  17.155 + * even valid to compare this to NULL. The dynamic manifest generator may use it
  17.156 + * to reference internal data. */
  17.157 +typedef void * LV2_Dyn_Manifest_Handle;
  17.158 +
  17.159 +
  17.160 +/* ************************************************************************* */
  17.161 +
  17.162 +
  17.163 +/** Function that (re)generates the dynamic manifest.
  17.164 + *
  17.165 + * handle is a pointer to an uninitialized dynamic manifest generator handle.
  17.166 + *
  17.167 + * features is a NULL terminated array of LV2_Feature structs which
  17.168 + * represent the features the host supports. The dynamic manifest geenrator may
  17.169 + * refuse to (re)generate the dynamic manifest if required features are not
  17.170 + * found here (however hosts SHOULD NOT use this as a discovery mechanism,
  17.171 + * instead of reading the static manifest file). This array must always exist;
  17.172 + * if a host has no features, it MUST pass a single element array containing
  17.173 + * NULL.
  17.174 + *
  17.175 + * This function MUST return 0 on success, otherwise a non-zero error code, and
  17.176 + * the host SHOULD evaluate the result of the operation by examining the
  17.177 + * returned value, rather than try to interpret the value of handle.
  17.178 + */
  17.179 +int lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle *  handle,
  17.180 +                          const LV2_Feature *const * features);
  17.181 +
  17.182 +/** Function that fetches a "list" of subject URIs exposed by the dynamic
  17.183 + *  manifest generator.
  17.184 + *
  17.185 + * handle is the dynamic manifest generator handle.
  17.186 + *
  17.187 + * fp is the FILE * identifying the resource the host has to set up for the
  17.188 + * dynamic manifest generator. The host MUST pass a writable, empty resource to
  17.189 + * this function, and the dynamic manifest generator MUST ONLY perform write
  17.190 + * operations on it at the end of the stream (e.g. use only fprintf(), fwrite()
  17.191 + * and similar).
  17.192 + *
  17.193 + * The dynamic manifest generator has to fill the resource only with the needed
  17.194 + * triples to make the host aware of the "objects" it wants to expose. For
  17.195 + * example, if the library exposes a regular LV2 plugin, it should output only a
  17.196 + * triple like the following:
  17.197 + *
  17.198 + *   <http://www.example.com/plugin/uri> a lv2:Plugin;
  17.199 + *
  17.200 + * This function MUST return 0 on success, otherwise a non-zero error code.
  17.201 + */
  17.202 +int lv2_dyn_manifest_get_subjects(LV2_Dyn_Manifest_Handle handle,
  17.203 +                                  FILE *                  fp);
  17.204 +
  17.205 +/** Function that fetches data related to a specific URI.
  17.206 + *
  17.207 + * handle is the dynamic manifest generator handle.
  17.208 + *
  17.209 + * fp is the FILE * identifying the resource the host has to set up for the
  17.210 + * dynamic manifest generator. The host MUST pass a writable resource to this
  17.211 + * function, and the dynamic manifest generator MUST ONLY perform write
  17.212 + * operations on it at the current position of the stream (e.g. use only
  17.213 + * fprintf(), fwrite() and similar).
  17.214 + *
  17.215 + * uri is the URI to get data about (in the "plain" form, a.k.a. without RDF
  17.216 + * prefixes).
  17.217 + *
  17.218 + * The dynamic manifest generator has to fill the resource with data related to
  17.219 + * the URI. For example, if the library exposes a regular LV2 plugin whose URI,
  17.220 + * as retrieved by the host using lv2_dyn_manifest_get_subjects() is
  17.221 + * http://www.example.com/plugin/uri, it should output something like:
  17.222 + *
  17.223 + *   <http://www.example.com/plugin/uri> a lv2:Plugin;
  17.224 + *       lv2:binary <mylib.so>;
  17.225 + *       doap:name "My Plugin";
  17.226 + *       ... etc...
  17.227 + *
  17.228 + * This function MUST return 0 on success, otherwise a non-zero error code.
  17.229 + */
  17.230 +int lv2_dyn_manifest_get_data(LV2_Dyn_Manifest_Handle handle,
  17.231 +                              FILE *                  fp,
  17.232 +                              const char *            uri);
  17.233 +
  17.234 +/** Function that ends the operations on the dynamic manifest generator.
  17.235 + *
  17.236 + * handle is the dynamic manifest generator handle.
  17.237 + *
  17.238 + * This function should be used by the dynamic manifest generator to perform
  17.239 + * cleanup operations, etc.
  17.240 + */
  17.241 +void lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle);
  17.242 +
  17.243 +#ifdef __cplusplus
  17.244 +}
  17.245 +#endif
  17.246 +
  17.247 +#endif /* LV2_DYN_MANIFEST_H_INCLUDED */
  17.248 +
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/naspro-bridges-bad/dssi/event.h	Sat May 01 21:51:33 2010 +0300
    18.3 @@ -0,0 +1,260 @@
    18.4 +/* lv2_event.h - C header file for the LV2 events extension.
    18.5 + *
    18.6 + * Copyright (C) 2006-2007 Lars Luthman <lars.luthman@gmail.com>
    18.7 + * Copyright (C) 2008-2009 Dave Robillard <http://drobilla.net>
    18.8 + *
    18.9 + * This header is free software; you can redistribute it and/or modify it
   18.10 + * under the terms of the GNU Lesser General Public License as published
   18.11 + * by the Free Software Foundation; either version 2 of the License, or
   18.12 + * (at your option) any later version.
   18.13 + *
   18.14 + * This header is distributed in the hope that it will be useful, but WITHOUT
   18.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   18.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
   18.17 + * License for more details.
   18.18 + *
   18.19 + * You should have received a copy of the GNU Lesser General Public License
   18.20 + * along with this header; if not, write to the Free Software Foundation,
   18.21 + * Inc., 59 Temple Place, Suite 330, Boston, MA 01222-1307 USA
   18.22 + */
   18.23 +
   18.24 +#ifndef LV2_EVENT_H
   18.25 +#define LV2_EVENT_H
   18.26 +
   18.27 +#define LV2_EVENT_URI "http://lv2plug.in/ns/ext/event"
   18.28 +#define LV2_EVENT_AUDIO_STAMP 0
   18.29 +
   18.30 +#include <stdint.h>
   18.31 +
   18.32 +/** @file
   18.33 + * This header defines the code portion of the LV2 events extension with URI
   18.34 + * <http://lv2plug.in/ns/ext/event> ('lv2ev').
   18.35 + *
   18.36 + * This extension is a generic transport mechanism for time stamped events
   18.37 + * of any type (e.g. MIDI, OSC, ramps, etc).  Each port can transport mixed
   18.38 + * events of any type; the type of events and timestamps are defined by a URI
   18.39 + * which is mapped to an integer by the host for performance reasons.
   18.40 + *
   18.41 + * This extension requires the host to support the LV2 URI Map extension.
   18.42 + * Any host which supports this extension MUST guarantee that any call to
   18.43 + * the LV2 URI Map uri_to_id function with the URI of this extension as the
   18.44 + * 'map' argument returns a value within the range of uint16_t.
   18.45 + */
   18.46 +
   18.47 +
   18.48 +/** The best Pulses Per Quarter Note for tempo-based uint32_t timestmaps.
   18.49 + * Equal to 2^12 * 5 * 7 * 9 * 11 * 13 * 17, which is evenly divisble
   18.50 + * by all integers from 1 through 18 inclusive, and powers of 2 up to 2^12.
   18.51 + */
   18.52 +static const uint32_t LV2_EVENT_PPQN = 3136573440U;
   18.53 +
   18.54 +
   18.55 +/** An LV2 event (header only).
   18.56 + *
   18.57 + * LV2 events are generic time-stamped containers for any type of event.
   18.58 + * The type field defines the format of a given event's contents.
   18.59 + *
   18.60 + * This struct defines the header of an LV2 event.  An LV2 event is a single
   18.61 + * chunk of POD (plain old data), usually contained in a flat buffer
   18.62 + * (see LV2_EventBuffer below).  Unless a required feature says otherwise,
   18.63 + * hosts may assume a deep copy of an LV2 event can be created safely
   18.64 + * using a simple:
   18.65 + *
   18.66 + * memcpy(ev_copy, ev, sizeof(LV2_Event) + ev->size);  (or equivalent)
   18.67 + */
   18.68 +typedef struct {
   18.69 +
   18.70 +	/** The frames portion of timestamp.  The units used here can optionally be
   18.71 +	 * set for a port (with the lv2ev:timeUnits property), otherwise this
   18.72 +	 * is audio frames, corresponding to the sample_count parameter of the
   18.73 +	 * LV2 run method (e.g. frame 0 is the first frame for that call to run).
   18.74 +	 */
   18.75 +	uint32_t frames;
   18.76 +
   18.77 +	/** The sub-frames portion of timestamp.  The units used here can
   18.78 +	 * optionally be set for a port (with the lv2ev:timeUnits property),
   18.79 +	 * otherwise this is 1/(2^32) of an audio frame.
   18.80 +	 */
   18.81 +	uint32_t subframes;
   18.82 +
   18.83 +	/** The type of this event, as a number which represents some URI
   18.84 +	 * defining an event type.  This value MUST be some value previously
   18.85 +	 * returned from a call to the uri_to_id function defined in the LV2
   18.86 +	 * URI map extension (see lv2_uri_map.h).
   18.87 +	 * There are special rules which must be followed depending on the type
   18.88 +	 * of an event.  If the plugin recognizes an event type, the definition
   18.89 +	 * of that event type will describe how to interpret the event, and
   18.90 +	 * any required behaviour.  Otherwise, if the type is 0, this event is a
   18.91 +	 * non-POD event and lv2_event_unref MUST be called if the event is
   18.92 +	 * 'dropped' (see above).  Even if the plugin does not understand an event,
   18.93 +	 * it may pass the event through to an output by simply copying (and NOT
   18.94 +	 * calling lv2_event_unref).  These rules are designed to allow for generic
   18.95 +	 * event handling plugins and large non-POD events, but with minimal hassle
   18.96 +	 * on simple plugins that "don't care" about these more advanced features.
   18.97 +	 */
   18.98 +	uint16_t type;
   18.99 +
  18.100 +	/** The size of the data portion of this event in bytes, which immediately
  18.101 +	 * follows.  The header size (12 bytes) is not included in this value.
  18.102 +	 */
  18.103 +	uint16_t size;
  18.104 +
  18.105 +	/* size bytes of data follow here */
  18.106 +
  18.107 +} LV2_Event;
  18.108 +
  18.109 +
  18.110 +
  18.111 +/** A buffer of LV2 events (header only).
  18.112 + *
  18.113 + * Like events (which this contains) an event buffer is a single chunk of POD:
  18.114 + * the entire buffer (including contents) can be copied with a single memcpy.
  18.115 + * The first contained event begins sizeof(LV2_EventBuffer) bytes after
  18.116 + * the start of this struct.
  18.117 + *
  18.118 + * After this header, the buffer contains an event header (defined by struct
  18.119 + * LV2_Event), followed by that event's contents (padded to 64 bits), followed by
  18.120 + * another header, etc:
  18.121 + *
  18.122 + * |       |       |       |       |       |       |
  18.123 + * | | | | | | | | | | | | | | | | | | | | | | | | |
  18.124 + * |FRAMES |SUBFRMS|TYP|LEN|DATA..DATA..PAD|FRAMES | ...
  18.125 + */
  18.126 +typedef struct {
  18.127 +
  18.128 +	/** The contents of the event buffer.  This may or may not reside in the
  18.129 +	 * same block of memory as this header, plugins must not assume either.
  18.130 +	 * The host guarantees this points to at least capacity bytes of allocated
  18.131 +	 * memory (though only size bytes of that are valid events).
  18.132 +	 */
  18.133 +	uint8_t* data;
  18.134 +
  18.135 +	/** The size of this event header in bytes (including everything).
  18.136 +	 *
  18.137 +	 * This is to allow for extending this header in the future without
  18.138 +	 * breaking binary compatibility.  Whenever this header is copied,
  18.139 +	 * it MUST be done using this field (and NOT the sizeof this struct).
  18.140 +	 */
  18.141 +	uint16_t header_size;
  18.142 +
  18.143 +	/** The type of the time stamps for events in this buffer.
  18.144 +	 * As a special exception, '0' always means audio frames and subframes
  18.145 +	 * (1/UINT32_MAX'th of a frame) in the sample rate passed to instantiate.
  18.146 +	 * INPUTS: The host must set this field to the numeric ID of some URI
  18.147 +	 *     defining the meaning of the frames/subframes fields of contained
  18.148 +	 *     events (obtained by the LV2 URI Map uri_to_id function with the URI
  18.149 +	 *     of this extension as the 'map' argument, see lv2_uri_map.h).
  18.150 +	 *     The host must never pass a plugin a buffer which uses a stamp type
  18.151 +	 *     the plugin does not 'understand'.  The value of this field must
  18.152 +	 *     never change, except when connect_port is called on the input
  18.153 +	 *     port, at which time the host MUST have set the stamp_type field to
  18.154 +	 *     the value that will be used for all subsequent run calls.
  18.155 +	 * OUTPUTS: The plugin may set this to any value that has been returned
  18.156 +	 *     from uri_to_id with the URI of this extension for a 'map' argument.
  18.157 +	 *     When connected to a buffer with connect_port, output ports MUST set
  18.158 +	 *     this field to the type of time stamp they will be writing.  On any
  18.159 +	 *     call to connect_port on an event input port, the plugin may change
  18.160 +	 *     this field on any output port, it is the responsibility of the host
  18.161 +	 *     to check if any of these values have changed and act accordingly.
  18.162 +	 */
  18.163 +	uint16_t stamp_type;
  18.164 +
  18.165 +	/** The number of events in this buffer.
  18.166 +	 * INPUTS: The host must set this field to the number of events
  18.167 +	 *     contained in the data buffer before calling run().
  18.168 +	 *     The plugin must not change this field.
  18.169 +	 * OUTPUTS: The plugin must set this field to the number of events it
  18.170 +	 *     has written to the buffer before returning from run().
  18.171 +	 *     Any initial value should be ignored by the plugin.
  18.172 +	 */
  18.173 +	uint32_t event_count;
  18.174 +
  18.175 +	/** The size of the data buffer in bytes.
  18.176 +	 * This is set by the host and must not be changed by the plugin.
  18.177 +	 * The host is allowed to change this between run() calls.
  18.178 +	 */
  18.179 +	uint32_t capacity;
  18.180 +
  18.181 +	/** The size of the initial portion of the data buffer containing data.
  18.182 +	 * INPUTS: The host must set this field to the number of bytes used
  18.183 +	 *     by all events it has written to the buffer (including headers)
  18.184 +	 *     before calling the plugin's run().
  18.185 +	 *     The plugin must not change this field.
  18.186 +	 * OUTPUTS: The plugin must set this field to the number of bytes
  18.187 +	 *     used by all events it has written to the buffer (including headers)
  18.188 +	 *     before returning from run().
  18.189 +	 *     Any initial value should be ignored by the plugin.
  18.190 +	 */
  18.191 +	uint32_t size;
  18.192 +
  18.193 +} LV2_Event_Buffer;
  18.194 +
  18.195 +
  18.196 +/** Opaque pointer to host data. */
  18.197 +typedef void* LV2_Event_Callback_Data;
  18.198 +
  18.199 +
  18.200 +/** The data field of the LV2_Feature for this extension.
  18.201 + *
  18.202 + * To support this feature the host must pass an LV2_Feature struct to the
  18.203 + * plugin's instantiate method with URI "http://lv2plug.in/ns/ext/event"
  18.204 + * and data pointed to an instance of this struct.
  18.205 + */
  18.206 +typedef struct {
  18.207 +
  18.208 +	/** Opaque pointer to host data.
  18.209 +	 *
  18.210 +	 * The plugin MUST pass this to any call to functions in this struct.
  18.211 +	 * Otherwise, it must not be interpreted in any way.
  18.212 +	 */
  18.213 +	LV2_Event_Callback_Data callback_data;
  18.214 +
  18.215 +	/** Take a reference to a non-POD event.
  18.216 +	 *
  18.217 +	 * If a plugin receives an event with type 0, it means the event is a
  18.218 +	 * pointer to some object in memory and not a flat sequence of bytes
  18.219 +	 * in the buffer.  When receiving a non-POD event, the plugin already
  18.220 +	 * has an implicit reference to the event.  If the event is stored AND
  18.221 +	 * passed to an output, lv2_event_ref MUST be called on that event.
  18.222 +	 * If the event is only stored OR passed through, this is not necessary
  18.223 +	 * (as the plugin already has 1 implicit reference).
  18.224 +	 *
  18.225 +	 * @param event An event received at an input that will not be copied to
  18.226 +	 *              an output or stored in any way.
  18.227 +	 * @param context The calling context.  (Like event types) this is a mapped
  18.228 +	 *                URI, see lv2_context.h. Simple plugin with just a run()
  18.229 +	 *                method should pass 0 here (the ID of the 'standard' LV2
  18.230 +	 *                run context).  The host guarantees that this function is
  18.231 +	 *                realtime safe iff @a context is realtime safe.
  18.232 +	 *
  18.233 +	 * PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS.
  18.234 +	 */
  18.235 +	uint32_t (*lv2_event_ref)(LV2_Event_Callback_Data callback_data,
  18.236 +	                          LV2_Event*              event);
  18.237 +
  18.238 +	/** Drop a reference to a non-POD event.
  18.239 +	 *
  18.240 +	 * If a plugin receives an event with type 0, it means the event is a
  18.241 +	 * pointer to some object in memory and not a flat sequence of bytes
  18.242 +	 * in the buffer.  If the plugin does not pass the event through to
  18.243 +	 * an output or store it internally somehow, it MUST call this function
  18.244 +	 * on the event (more information on using non-POD events below).
  18.245 +	 *
  18.246 +	 * @param event An event received at an input that will not be copied to
  18.247 +	 *              an output or stored in any way.
  18.248 +	 * @param context The calling context.  (Like event types) this is a mapped
  18.249 +	 *                URI, see lv2_context.h. Simple plugin with just a run()
  18.250 +	 *                method should pass 0 here (the ID of the 'standard' LV2
  18.251 +	 *                run context).  The host guarantees that this function is
  18.252 +	 *                realtime safe iff @a context is realtime safe.
  18.253 +	 *
  18.254 +	 * PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS.
  18.255 +	 */
  18.256 +	uint32_t (*lv2_event_unref)(LV2_Event_Callback_Data callback_data,
  18.257 +	                            LV2_Event*              event);
  18.258 +
  18.259 +} LV2_Event_Feature;
  18.260 +
  18.261 +
  18.262 +#endif // LV2_EVENT_H
  18.263 +
    19.1 --- a/naspro-bridges-bad/dssi/lv2api.c	Fri Mar 26 18:54:24 2010 +0200
    19.2 +++ b/naspro-bridges-bad/dssi/lv2api.c	Sat May 01 21:51:33 2010 +0300
    19.3 @@ -2,7 +2,7 @@
    19.4   * NASPRO - NASPRO Architecture for Sound Processing
    19.5   * LADSPA bridge
    19.6   *
    19.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    19.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    19.9   *
   19.10   * See the COPYING file for license conditions.
   19.11   */
   19.12 @@ -17,8 +17,8 @@
   19.13  #include <ladspa.h>
   19.14  
   19.15  #include <lv2.h>
   19.16 -#include <lv2_uri_map.h>
   19.17 -#include <lv2_event.h>
   19.18 +#include "uri-map.h"
   19.19 +#include "event.h"
   19.20  
   19.21  #include <NASPRO/core/lib.h>
   19.22  
    20.1 --- a/naspro-bridges-bad/dssi/lv2api.h	Fri Mar 26 18:54:24 2010 +0200
    20.2 +++ b/naspro-bridges-bad/dssi/lv2api.h	Sat May 01 21:51:33 2010 +0300
    20.3 @@ -2,7 +2,7 @@
    20.4   * NASPRO - NASPRO Architecture for Sound Processing
    20.5   * DSSI bridge
    20.6   *
    20.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    20.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    20.9   *
   20.10   * See the COPYING file for license conditions.
   20.11   */
    21.1 --- a/naspro-bridges-bad/dssi/manifest.c	Fri Mar 26 18:54:24 2010 +0200
    21.2 +++ b/naspro-bridges-bad/dssi/manifest.c	Sat May 01 21:51:33 2010 +0300
    21.3 @@ -2,14 +2,14 @@
    21.4   * NASPRO - NASPRO Architecture for Sound Processing
    21.5   * DSSI bridge
    21.6   *
    21.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    21.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    21.9   *
   21.10   * See the COPYING file for license conditions.
   21.11   */
   21.12  
   21.13  #include <stdio.h>
   21.14  
   21.15 -#include <lv2_dyn_manifest.h>
   21.16 +#include "dyn-manifest.h"
   21.17  
   21.18  #include <NASPRO/core/lib.h>
   21.19  
    22.1 --- a/naspro-bridges-bad/dssi/manifest.ttl.in	Fri Mar 26 18:54:24 2010 +0200
    22.2 +++ b/naspro-bridges-bad/dssi/manifest.ttl.in	Sat May 01 21:51:33 2010 +0300
    22.3 @@ -2,7 +2,7 @@
    22.4  # NASPRO - NASPRO Architecture for Sound Processing
    22.5  # DSSI bridge
    22.6  #
    22.7 -# Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    22.8 +# Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    22.9  #
   22.10  # See the COPYING file for license conditions.
   22.11  #
    23.1 --- a/naspro-bridges-bad/dssi/pluglib.c	Fri Mar 26 18:54:24 2010 +0200
    23.2 +++ b/naspro-bridges-bad/dssi/pluglib.c	Sat May 01 21:51:33 2010 +0300
    23.3 @@ -2,7 +2,7 @@
    23.4   * NASPRO - NASPRO Architecture for Sound Processing
    23.5   * DSSI bridge
    23.6   *
    23.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    23.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    23.9   *
   23.10   * See the COPYING file for license conditions.
   23.11   */
   23.12 @@ -183,11 +183,33 @@
   23.13  	if (NACORE_STRING_IS_NULL_OR_EMPTY(ladspa_path)
   23.14  	    && NACORE_STRING_IS_NULL_OR_EMPTY(dssi_path))
   23.15  	  {
   23.16 -		nacore_path_home_for_each(DSSI_DEFAULT_HOME_PATH, pluglib_load,
   23.17 +#ifdef __APPLE__
   23.18 +		nacore_path_home_for_each("Library/Audio/Plug-Ins/DSSI:.dssi",
   23.19 +					  pluglib_load,
   23.20  					  nacore_dl_filename_filter, NULL);
   23.21 -		nacore_path_for_each(DSSI_DEFAULT_SYSTEM_PATH,
   23.22 +		nacore_path_for_each("/Library/Audio/Plug-Ins/DSSI"
   23.23 +				     "/usr/local/lib/dssi:/usr/lib/dssi",
   23.24  				     pluglib_load, nacore_dl_filename_filter,
   23.25  				     NULL);
   23.26 +#elif defined (__HAIKU__)
   23.27 +		/* FIXME: find_directory() should be used */
   23.28 +		nacore_path_home_for_each("config/add-ons/dssi", pluglib_load,
   23.29 +					  nacore_dl_filename_filter, NULL);
   23.30 +		nacore_path_for_each("/boot/common/add-ons/dssi",
   23.31 +				     pluglib_load, nacore_dl_filename_filter,
   23.32 +				     NULL);
   23.33 +#elif defined (__SYLLABLE__)
   23.34 +		nacore_path_home_for_each("extensions/dssi", pluglib_load,
   23.35 +					  nacore_dl_filename_filter, NULL);
   23.36 +		nacore_path_for_each("/system/extensions/dssi", pluglib_load,
   23.37 +				     nacore_dl_filename_filter, NULL);
   23.38 +#else
   23.39 +		nacore_path_home_for_each(".dssi", pluglib_load,
   23.40 +					  nacore_dl_filename_filter, NULL);
   23.41 +		nacore_path_for_each("/usr/local/lib/dssi:/usr/lib/dssi",
   23.42 +				     pluglib_load, nacore_dl_filename_filter,
   23.43 +				     NULL);
   23.44 +#endif
   23.45  	  }
   23.46  	else
   23.47  	  {
    24.1 --- a/naspro-bridges-bad/dssi/pluglib.h	Fri Mar 26 18:54:24 2010 +0200
    24.2 +++ b/naspro-bridges-bad/dssi/pluglib.h	Sat May 01 21:51:33 2010 +0300
    24.3 @@ -2,7 +2,7 @@
    24.4   * NASPRO - NASPRO Architecture for Sound Processing
    24.5   * DSSI bridge
    24.6   *
    24.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    24.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    24.9   *
   24.10   * See the COPYING file for license conditions.
   24.11   */
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/naspro-bridges-bad/dssi/uri-map.h	Sat May 01 21:51:33 2010 +0300
    25.3 @@ -0,0 +1,88 @@
    25.4 +/* lv2_uri_map.h - C header file for the LV2 URI Map extension.
    25.5 + *
    25.6 + * Copyright (C) 2008-2009 Dave Robillard <http://drobilla.net>
    25.7 + *
    25.8 + * This header is free software; you can redistribute it and/or modify it
    25.9 + * under the terms of the GNU Lesser General Public License as published
   25.10 + * by the Free Software Foundation; either version 2 of the License, or
   25.11 + * (at your option) any later version.
   25.12 + *
   25.13 + * This header is distributed in the hope that it will be useful, but WITHOUT
   25.14 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   25.15 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
   25.16 + * License for more details.
   25.17 + *
   25.18 + * You should have received a copy of the GNU Lesser General Public License
   25.19 + * along with this header; if not, write to the Free Software Foundation,
   25.20 + * Inc., 59 Temple Place, Suite 330, Boston, MA 01222-1307 USA
   25.21 + */
   25.22 +
   25.23 +#ifndef LV2_URI_MAP_H
   25.24 +#define LV2_URI_MAP_H
   25.25 +
   25.26 +#define LV2_URI_MAP_URI "http://lv2plug.in/ns/ext/uri-map"
   25.27 +
   25.28 +#include <stdint.h>
   25.29 +
   25.30 +/** @file
   25.31 + * This header defines the LV2 URI Map extension with the URI
   25.32 + * <http://lv2plug.in/ns/ext/uri-map> (preferred prefix 'lv2urimap').
   25.33 + *
   25.34 + * This extension defines a simple mechanism for plugins to map URIs to
   25.35 + * integers, usually for performance reasons (e.g. processing events
   25.36 + * typed by URIs in real time).  The expected use case is for plugins to
   25.37 + * map URIs to integers for things they 'understand' at instantiation time,
   25.38 + * and store those values for use in the audio thread without doing any string
   25.39 + * comparison.  This allows the extensibility of RDF with the performance of
   25.40 + * integers (or centrally defined enumerations).
   25.41 + */
   25.42 +
   25.43 +
   25.44 +/** Opaque pointer to host data. */
   25.45 +typedef void* LV2_URI_Map_Callback_Data;
   25.46 +
   25.47 +
   25.48 +/** The data field of the LV2_Feature for this extension.
   25.49 + *
   25.50 + * To support this feature the host must pass an LV2_Feature struct to the
   25.51 + * plugin's instantiate method with URI "http://lv2plug.in/ns/ext/uri-map"
   25.52 + * and data pointed to an instance of this struct.
   25.53 + */
   25.54 +typedef struct {
   25.55 +
   25.56 +	/** Opaque pointer to host data.
   25.57 +	 *
   25.58 +	 * The plugin MUST pass this to any call to functions in this struct.
   25.59 +	 * Otherwise, it must not be interpreted in any way.
   25.60 +	 */
   25.61 +	LV2_URI_Map_Callback_Data callback_data;
   25.62 +
   25.63 +	/** Get the numeric ID of a URI from the host.
   25.64 +	 *
   25.65 +	 * @param callback_data Must be the callback_data member of this struct.
   25.66 +	 * @param map The 'context' of this URI.  Certain extensions may define a
   25.67 +	 *        URI that must be passed here with certain restrictions on the
   25.68 +	 *        return value (e.g. limited range).  This value may be NULL if
   25.69 +	 *        the plugin needs an ID for a URI in general.
   25.70 +	 * @param uri The URI to be mapped to an integer ID.
   25.71 +	 *
   25.72 +	 * This function is referentially transparent - any number of calls with
   25.73 +	 * the same arguments is guaranteed to return the same value over the life
   25.74 +	 * of a plugin instance (though the same URI may return different values
   25.75 +	 * with a different map parameter).  However, this function is not
   25.76 +	 * necessarily very fast: plugins should cache any IDs they might need in
   25.77 +	 * performance critical situations.
   25.78 +	 * The return value 0 is reserved and means an ID for that URI could not
   25.79 +	 * be created for whatever reason.  Extensions may define more precisely
   25.80 +	 * what this means, but in general plugins should gracefully handle 0
   25.81 +	 * and consider whatever they wanted the URI for "unsupported".
   25.82 +	 */
   25.83 +	uint32_t (*uri_to_id)(LV2_URI_Map_Callback_Data callback_data,
   25.84 +	                      const char*               map,
   25.85 +	                      const char*               uri);
   25.86 +
   25.87 +} LV2_URI_Map_Feature;
   25.88 +
   25.89 +
   25.90 +#endif // LV2_URI_MAP_H
   25.91 +
    26.1 --- a/naspro-bridges-bad/ladspa/Makefile	Fri Mar 26 18:54:24 2010 +0200
    26.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.3 @@ -1,63 +0,0 @@
    26.4 -.POSIX:
    26.5 -
    26.6 -.SUFFIXES:
    26.7 -
    26.8 -### Change this...
    26.9 -
   26.10 -DESTDIR =
   26.11 -PREFIX = /usr/local
   26.12 -LIB_DIR = $(PREFIX)/lib
   26.13 -
   26.14 -LV2_DIR = $(LIB_DIR)/lv2
   26.15 -
   26.16 -LADSPA_BRIDGE_BUNDLE_DIR = $(LV2_DIR)/naspro-ladspa.lv2
   26.17 -
   26.18 -CC = gcc
   26.19 -CFLAGS = -O2 -ansi -pedantic -Wall -fPIC
   26.20 -
   26.21 -DL_LDFLAGS = -ldl
   26.22 -LDFLAGS = -shared $(DL_LDFLAGS)
   26.23 -
   26.24 -SO_FILE_EXT = .so
   26.25 -
   26.26 -LADSPA_DEFAULT_SYSTEM_PATH = /usr/local/lib/ladspa:/usr/lib/ladspa
   26.27 -LADSPA_DEFAULT_HOME_PATH = .ladspa
   26.28 -LRDF_DEFAULT_SYSTEM_PATH = /usr/local/share/ladspa/rdf:/usr/share/ladspa/rdf
   26.29 -LRDF_DEFAULT_HOME_PATH = .ladspa/rdf
   26.30 -
   26.31 -### ... but not this
   26.32 -
   26.33 -TARGETS = ladspa$(SO_FILE_EXT) manifest.ttl
   26.34 -
   26.35 -LADSPA_BRIDGE_SOURCES = descriptor.c \
   26.36 -			descriptor.h \
   26.37 -			lrdf.c \
   26.38 -			lrdf.h \
   26.39 -			lv2api.c \
   26.40 -			lv2api.h \
   26.41 -			manifest.c \
   26.42 -			pluglib.c \
   26.43 -			pluglib.h
   26.44 -LADSPA_BRIDGE_LIBS = -lnacore -lrdf
   26.45 -
   26.46 -DEFS = -DLRDF_DEFAULT_SYSTEM_PATH="\"$(LRDF_DEFAULT_SYSTEM_PATH)\"" \
   26.47 -       -DLRDF_DEFAULT_HOME_PATH="\"$(LRDF_DEFAULT_HOME_PATH)\"" \
   26.48 -       -DLADSPA_DEFAULT_SYSTEM_PATH="\"$(LADSPA_DEFAULT_SYSTEM_PATH)\"" \
   26.49 -       -DLADSPA_DEFAULT_HOME_PATH="\"$(LADSPA_DEFAULT_HOME_PATH)\""
   26.50 -
   26.51 -all: $(TARGETS)
   26.52 -
   26.53 -ladspa$(SO_FILE_EXT): $(LADSPA_BRIDGE_SOURCES)
   26.54 -	$(CC) $(CFLAGS) $(DEFS) $(LDFLAGS) $(LADSPA_BRIDGE_SOURCES) \
   26.55 -		$(LADSPA_BRIDGE_LIBS) -o $@
   26.56 -
   26.57 -manifest.ttl: manifest.ttl.in
   26.58 -	sed 's/@SO_FILE_EXT@/$(SO_FILE_EXT)/g' manifest.ttl.in > manifest.ttl
   26.59 -
   26.60 -install: $(TARGETS) manifest.ttl
   26.61 -	mkdir -p $(DESTDIR)$(LADSPA_BRIDGE_BUNDLE_DIR)
   26.62 -	cp ladspa$(SO_FILE_EXT) manifest.ttl \
   26.63 -		$(DESTDIR)$(LADSPA_BRIDGE_BUNDLE_DIR)
   26.64 -
   26.65 -clean:
   26.66 -	rm -f $(TARGETS)
    27.1 --- a/naspro-bridges-bad/ladspa/Makefile.haiku	Fri Mar 26 18:54:24 2010 +0200
    27.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.3 @@ -1,35 +0,0 @@
    27.4 -.POSIX:
    27.5 -
    27.6 -.SUFFIXES:
    27.7 -
    27.8 -### Change this...
    27.9 -
   27.10 -PREFIX = /boot/common
   27.11 -ADDONS_DIR = $(PREFIX)/add-ons
   27.12 -
   27.13 -LV2_DIR = $(ADDONS_DIR)/lv2
   27.14 -
   27.15 -DL_LDFLAGS =
   27.16 -
   27.17 -LADSPA_DEFAULT_SYSTEM_PATH = $(ADDONS_DIR)/ladspa
   27.18 -LADSPA_DEFAULT_HOME_PATH = .ladspa
   27.19 -LRDF_DEFAULT_SYSTEM_PATH = $(ADDONS_DIR)/ladspa/rdf
   27.20 -LRDF_DEFAULT_HOME_PATH = .ladspa/rdf
   27.21 -
   27.22 -### ... but not this
   27.23 -
   27.24 -MAKE_VARS = PREFIX="$(PREFIX)" LV2_DIR="$(LV2_DIR)" \
   27.25 -	    DL_LDFLAGS="$(DL_LDFLAGS)" \
   27.26 -	    LADSPA_DEFAULT_SYSTEM_PATH="$(LADSPA_DEFAULT_SYSTEM_PATH)" \
   27.27 -	    LADSPA_DEFAULT_HOME_PATH="$(LADSPA_DEFAULT_HOME_PATH)" \
   27.28 -	    LRDF_DEFAULT_SYSTEM_PATH="$(LRDF_DEFAULT_SYSTEM_PATH)" \
   27.29 -	    LRDF_DEFAULT_HOME_PATH="$(LRDF_DEFAULT_HOME_PATH)"
   27.30 -
   27.31 -all:
   27.32 -	$(MAKE) $(MAKE_VARS) all 
   27.33 -
   27.34 -install:
   27.35 -	$(MAKE) $(MAKE_VARS) install
   27.36 -
   27.37 -clean:
   27.38 -	$(MAKE) $(MAKE_VARS) clean
    28.1 --- a/naspro-bridges-bad/ladspa/Makefile.osx	Fri Mar 26 18:54:24 2010 +0200
    28.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.3 @@ -1,36 +0,0 @@
    28.4 -.POSIX:
    28.5 -
    28.6 -.SUFFIXES:
    28.7 -
    28.8 -### Change this...
    28.9 -
   28.10 -PREFIX = 
   28.11 -LIB_DIR = $(PREFIX)/Library
   28.12 -
   28.13 -LV2_DIR = $(LIB_DIR)/Audio/Plug-Ins/LV2
   28.14 -
   28.15 -SO_FILE_EXT = .dylib
   28.16 -
   28.17 -LADSPA_DEFAULT_SYSTEM_PATH = \
   28.18 -	/Library/Audio/Plug-Ins/LADSPA:/usr/local/lib/ladspa:/usr/lib/ladspa
   28.19 -LADSPA_DEFAULT_HOME_PATH = Library/Audio/Plug-Ins/LADSPA:.ladspa
   28.20 -LRDF_DEFAULT_SYSTEM_PATH = /Library/Audio/Plug-Ins/LADSPA/rdf:/usr/local/share/ladspa/rdf:/usr/share/ladspa/rdf
   28.21 -LRDF_DEFAULT_HOME_PATH = Library/Audio/Plug-Ins/LADSPA/rdf:.ladspa/rdf
   28.22 -
   28.23 -### ... but not this
   28.24 -
   28.25 -MAKE_VARS = PREFIX="$(PREFIX)" LIB_DIR="$(LIB_DIR)" LV2_DIR="$(LV2_DIR)" \
   28.26 -	    SO_FILE_EXT="$(SO_FILE_EXT)" \
   28.27 -	    LADSPA_DEFAULT_SYSTEM_PATH="$(LADSPA_DEFAULT_SYSTEM_PATH)" \
   28.28 -	    LADSPA_DEFAULT_HOME_PATH="$(LADSPA_DEFAULT_HOME_PATH)" \
   28.29 -	    LRDF_DEFAULT_SYSTEM_PATH="$(LRDF_DEFAULT_SYSTEM_PATH)" \
   28.30 -	    LRDF_DEFAULT_HOME_PATH="$(LRDF_DEFAULT_HOME_PATH)"
   28.31 -
   28.32 -all:
   28.33 -	$(MAKE) $(MAKE_VARS) all 
   28.34 -
   28.35 -install:
   28.36 -	$(MAKE) $(MAKE_VARS) install
   28.37 -
   28.38 -clean:
   28.39 -	$(MAKE) $(MAKE_VARS) clean
    29.1 --- a/naspro-bridges-bad/ladspa/descriptor.c	Fri Mar 26 18:54:24 2010 +0200
    29.2 +++ b/naspro-bridges-bad/ladspa/descriptor.c	Sat May 01 21:51:33 2010 +0300
    29.3 @@ -2,7 +2,7 @@
    29.4   * NASPRO - NASPRO Architecture for Sound Processing
    29.5   * LADSPA bridge
    29.6   *
    29.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    29.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    29.9   *
   29.10   * See the COPYING file for license conditions.
   29.11   */
    30.1 --- a/naspro-bridges-bad/ladspa/descriptor.h	Fri Mar 26 18:54:24 2010 +0200
    30.2 +++ b/naspro-bridges-bad/ladspa/descriptor.h	Sat May 01 21:51:33 2010 +0300
    30.3 @@ -2,7 +2,7 @@
    30.4   * NASPRO - NASPRO Architecture for Sound Processing
    30.5   * LADSPA bridge
    30.6   *
    30.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    30.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    30.9   *
   30.10   * See the COPYING file for license conditions.
   30.11   */
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/naspro-bridges-bad/ladspa/dyn-manifest.h	Sat May 01 21:51:33 2010 +0300
    31.3 @@ -0,0 +1,245 @@
    31.4 +/* Dynamic manifest specification for LV2
    31.5 + * Revision 2
    31.6 + *
    31.7 + * Copyright (C) 2008-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    31.8 + * All rights reserved.
    31.9 + *
   31.10 + * Redistribution and use in source and binary forms, with or without
   31.11 + * modification, are permitted provided that the following conditions
   31.12 + * are met:
   31.13 + * 1. Redistributions of source code must retain the above copyright
   31.14 + *    notice, this list of conditions and the following disclaimer.
   31.15 + * 2. Redistributions in binary form must reproduce the above copyright
   31.16 + *    notice, this list of conditions and the following disclaimer in the
   31.17 + *    documentation and/or other materials provided with the distribution.
   31.18 + * 3. The name of the author may not be used to endorse or promote products
   31.19 + *    derived from this software without specific prior written permission.
   31.20 + *
   31.21 + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   31.22 + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   31.23 + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   31.24 + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   31.25 + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   31.26 + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   31.27 + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   31.28 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   31.29 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   31.30 + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   31.31 + */
   31.32 +
   31.33 +#ifndef LV2_DYN_MANIFEST_H_INCLUDED
   31.34 +#define LV2_DYN_MANIFEST_H_INCLUDED
   31.35 +
   31.36 +#include <stdio.h>
   31.37 +#include <lv2.h>
   31.38 +
   31.39 +#define LV2_DYN_MANIFEST_URI "http://lv2plug.in/ns/ext/dyn-manifest"
   31.40 +
   31.41 +#ifdef __cplusplus
   31.42 +extern "C" {
   31.43 +#endif
   31.44 +
   31.45 +
   31.46 +/* ************************************************************************* */
   31.47 +
   31.48 +
   31.49 +/** @file
   31.50 + *
   31.51 + * Revision: 2
   31.52 + *
   31.53 + * == Overview ==
   31.54 + *
   31.55 + * The LV2 API, on its own, cannot be used to write plugin libraries where
   31.56 + * data is dynamically generated at runtime (e.g. API wrappers), since LV2
   31.57 + * requires needed information to be provided in one or more static data (RDF)
   31.58 + * files. This API addresses this limitation by extending the LV2 API.
   31.59 + *
   31.60 + * A host implementing support for this API should first detect that the plugin
   31.61 + * library implements a dynamic manifest generator by examining its static
   31.62 + * manifest file, then fetch data from the shared object file by accessing it as
   31.63 + * usual (dlopen() and family) and using this API.
   31.64 + *
   31.65 + * The host is allowed to request regeneration of the dynamic manifest multiple
   31.66 + * times, and the plugin library is expected to provide updated data if/when
   31.67 + * possible. All data and references provided via this API before the last
   31.68 + * regeneration of the dynamic manifest is to be considered invalid by the
   31.69 + * host, including plugin descriptors whose URIs were discovered using this API.
   31.70 + *
   31.71 + * This API is extensible in a similar fashion as the LV2 plugin API.
   31.72 + *
   31.73 + * == Accessing data ==
   31.74 + *
   31.75 + * Whenever a host wants to access data using this API, it could:
   31.76 + *
   31.77 + *  -# Call lv2_dyn_manifest_open();
   31.78 + *  -# Create an empty resource identified by a FILE *;
   31.79 + *  -# Get a "list" of exposed subject URIs using
   31.80 + *     lv2_dyn_manifest_get_subjects();
   31.81 + *  -# Call lv2_dyn_manifest_get_data() for each URI of interest, in order to
   31.82 + *     get data related to that URI (either by calling the function subsequently
   31.83 + *     with the same FILE * resource, or by creating more FILE * resources to
   31.84 + *     perform parallel calls);
   31.85 + *  -# Call lv2_dyn_manifest_close();
   31.86 + *  -# Parse the content of the FILE * resource(s).
   31.87 + *  -# Free/delete/unlink the FILE * resource(s).
   31.88 + *
   31.89 + * The content of the FILE * resources has to be interpreted by the host as a
   31.90 + * regular file in Turtle syntax. This also means that each FILE * resource
   31.91 + * should also contain needed prefix definitions, in case any are used.
   31.92 + *
   31.93 + * Each call to lv2_dyn_manifest_open() automatically implies the (re)generation
   31.94 + * of the dynamic manifest on the library side.
   31.95 + *
   31.96 + * When such calls are made, data fetched from the involved library using this
   31.97 + * API before such call is to be considered no more valid.
   31.98 + *
   31.99 + * In case the library uses this same API to access other dynamic manifests, it
  31.100 + * MUST implement some mechanism to avoid potentially endless loops (such as A
  31.101 + * loads B, B loads A, etc.) in functions from the Dynamic manifest open class
  31.102 + * (the open-like operation MUST fail). For this purpose, use of a static
  31.103 + * boolean flag is suggested.
  31.104 + *
  31.105 + * == Threading rules ==
  31.106 + *
  31.107 + * This specification defines threading rule classes, similarly to the LV2
  31.108 + * specification.
  31.109 + *
  31.110 + * The functions defined by this API belong to:
  31.111 + *
  31.112 + *  - Dynamic manifest open class:  lv2_dyn_manifest_open()
  31.113 + *  - Dynamic manifest close class: lv2_dyn_manifest_close()
  31.114 + *  - Dynamic manifest file class:  lv2_dyn_manifest_get_subjects(),
  31.115 + *                                  lv2_dyn_manifest_get_data()
  31.116 + *
  31.117 + * The rules that hosts must follow are these:
  31.118 + *
  31.119 + *  - When a function from the Dynamic manifest open or the Dynamic manifest
  31.120 + *    close class is running, no other functions in the same shared object file
  31.121 + *    may run.
  31.122 + *  - When a function from the Dynamic manifest file class is called, no other
  31.123 + *    functions from the same class may run if they are given at least one
  31.124 + *    FILE * argument with the same value.
  31.125 + *  - A function from the Dynamic manifest open class may not run after a
  31.126 + *    successful call to a function from the same class, in case a function from
  31.127 + *    the Dynamic manifest close class was not successfully called in the
  31.128 + *    meanwhile.
  31.129 + *  - A function from the Dynamic manifest close class may only run after a
  31.130 + *    successful call to a function from the Dynamic manifest open class.
  31.131 + *  - A function from the Dynamic manifest file class may only run beetween a
  31.132 + *    successful call to a function from the Dynamic manifest open class and the
  31.133 + *    following successful call to a function from the Dynamic manifest close
  31.134 + *    class.
  31.135 + *
  31.136 + * Extensions to this specification which add new functions MUST declare in
  31.137 + * which of these classes the functions belong, or define new classes for them;
  31.138 + * furthermore, classes defined by such extensions MUST only allow calls after
  31.139 + * a successful call to a function from the Dynamic manifest open class and
  31.140 + * before the following successful call to a function from the Dynamic manifest
  31.141 + * close class.
  31.142 + *
  31.143 + * Any simultaneous calls that are not explicitly forbidden by these rules are
  31.144 + * allowed.
  31.145 + */
  31.146 +
  31.147 +
  31.148 +/* ************************************************************************* */
  31.149 +
  31.150 +
  31.151 +/** Dynamic manifest generator handle.
  31.152 + *
  31.153 + * This handle indicates a particular status of a dynamic manifest generator.
  31.154 + * The host MUST NOT attempt to interpret it and, unlikely LV2_Handle, it is NOT
  31.155 + * even valid to compare this to NULL. The dynamic manifest generator may use it
  31.156 + * to reference internal data. */
  31.157 +typedef void * LV2_Dyn_Manifest_Handle;
  31.158 +
  31.159 +
  31.160 +/* ************************************************************************* */
  31.161 +
  31.162 +
  31.163 +/** Function that (re)generates the dynamic manifest.
  31.164 + *
  31.165 + * handle is a pointer to an uninitialized dynamic manifest generator handle.
  31.166 + *
  31.167 + * features is a NULL terminated array of LV2_Feature structs which
  31.168 + * represent the features the host supports. The dynamic manifest geenrator may
  31.169 + * refuse to (re)generate the dynamic manifest if required features are not
  31.170 + * found here (however hosts SHOULD NOT use this as a discovery mechanism,
  31.171 + * instead of reading the static manifest file). This array must always exist;
  31.172 + * if a host has no features, it MUST pass a single element array containing
  31.173 + * NULL.
  31.174 + *
  31.175 + * This function MUST return 0 on success, otherwise a non-zero error code, and
  31.176 + * the host SHOULD evaluate the result of the operation by examining the
  31.177 + * returned value, rather than try to interpret the value of handle.
  31.178 + */
  31.179 +int lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle *  handle,
  31.180 +                          const LV2_Feature *const * features);
  31.181 +
  31.182 +/** Function that fetches a "list" of subject URIs exposed by the dynamic
  31.183 + *  manifest generator.
  31.184 + *
  31.185 + * handle is the dynamic manifest generator handle.
  31.186 + *
  31.187 + * fp is the FILE * identifying the resource the host has to set up for the
  31.188 + * dynamic manifest generator. The host MUST pass a writable, empty resource to
  31.189 + * this function, and the dynamic manifest generator MUST ONLY perform write
  31.190 + * operations on it at the end of the stream (e.g. use only fprintf(), fwrite()
  31.191 + * and similar).
  31.192 + *
  31.193 + * The dynamic manifest generator has to fill the resource only with the needed
  31.194 + * triples to make the host aware of the "objects" it wants to expose. For
  31.195 + * example, if the library exposes a regular LV2 plugin, it should output only a
  31.196 + * triple like the following:
  31.197 + *
  31.198 + *   <http://www.example.com/plugin/uri> a lv2:Plugin;
  31.199 + *
  31.200 + * This function MUST return 0 on success, otherwise a non-zero error code.
  31.201 + */
  31.202 +int lv2_dyn_manifest_get_subjects(LV2_Dyn_Manifest_Handle handle,
  31.203 +                                  FILE *                  fp);
  31.204 +
  31.205 +/** Function that fetches data related to a specific URI.
  31.206 + *
  31.207 + * handle is the dynamic manifest generator handle.
  31.208 + *
  31.209 + * fp is the FILE * identifying the resource the host has to set up for the
  31.210 + * dynamic manifest generator. The host MUST pass a writable resource to this
  31.211 + * function, and the dynamic manifest generator MUST ONLY perform write
  31.212 + * operations on it at the current position of the stream (e.g. use only
  31.213 + * fprintf(), fwrite() and similar).
  31.214 + *
  31.215 + * uri is the URI to get data about (in the "plain" form, a.k.a. without RDF
  31.216 + * prefixes).
  31.217 + *
  31.218 + * The dynamic manifest generator has to fill the resource with data related to
  31.219 + * the URI. For example, if the library exposes a regular LV2 plugin whose URI,
  31.220 + * as retrieved by the host using lv2_dyn_manifest_get_subjects() is
  31.221 + * http://www.example.com/plugin/uri, it should output something like:
  31.222 + *
  31.223 + *   <http://www.example.com/plugin/uri> a lv2:Plugin;
  31.224 + *       lv2:binary <mylib.so>;
  31.225 + *       doap:name "My Plugin";
  31.226 + *       ... etc...
  31.227 + *
  31.228 + * This function MUST return 0 on success, otherwise a non-zero error code.
  31.229 + */
  31.230 +int lv2_dyn_manifest_get_data(LV2_Dyn_Manifest_Handle handle,
  31.231 +                              FILE *                  fp,
  31.232 +                              const char *            uri);
  31.233 +
  31.234 +/** Function that ends the operations on the dynamic manifest generator.
  31.235 + *
  31.236 + * handle is the dynamic manifest generator handle.
  31.237 + *
  31.238 + * This function should be used by the dynamic manifest generator to perform
  31.239 + * cleanup operations, etc.
  31.240 + */
  31.241 +void lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle);
  31.242 +
  31.243 +#ifdef __cplusplus
  31.244 +}
  31.245 +#endif
  31.246 +
  31.247 +#endif /* LV2_DYN_MANIFEST_H_INCLUDED */
  31.248 +
    32.1 --- a/naspro-bridges-bad/ladspa/lrdf.c	Fri Mar 26 18:54:24 2010 +0200
    32.2 +++ b/naspro-bridges-bad/ladspa/lrdf.c	Sat May 01 21:51:33 2010 +0300
    32.3 @@ -2,7 +2,7 @@
    32.4   * NASPRO - NASPRO Architecture for Sound Processing
    32.5   * LADSPA bridge
    32.6   *
    32.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    32.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    32.9   *
   32.10   * See the COPYING file for license conditions.
   32.11   */
   32.12 @@ -91,10 +91,32 @@
   32.13  	lrdf_path = nacore_env_get_var("LADSPA_RDF_PATH");
   32.14  	if (NACORE_STRING_IS_NULL_OR_EMPTY(lrdf_path))
   32.15  	  {
   32.16 -		nacore_path_home_for_each(LRDF_DEFAULT_HOME_PATH, parse_file,
   32.17 +#ifdef __APPLE__
   32.18 +		nacore_path_home_for_each("Library/Audio/Plug-Ins/LADSPA/rdf"
   32.19 +					  ":.ladspa/rdf", parse_file,
   32.20  					  rdf_filter, NULL);
   32.21 -		nacore_path_for_each(LRDF_DEFAULT_SYSTEM_PATH, parse_file,
   32.22 +		nacore_path_for_each("/Library/Audio/Plug-Ins/LADSPA/rdf"
   32.23 +				     ":/usr/local/share/ladspa/rdf"
   32.24 +				     ":/usr/share/ladspa/rdf", parse_file,
   32.25  				     rdf_filter, NULL);
   32.26 +#elif defined (__HAIKU__)
   32.27 +		/* FIXME: find_directory() should be used */
   32.28 +		nacore_path_home_for_each("config/add-ons/ladspa/rdf",
   32.29 +					  parse_file, rdf_filter, NULL);
   32.30 +		nacore_path_for_each("/boot/common/add-ons/ladspa/rdf",
   32.31 +				     parse_file, rdf_filter, NULL);
   32.32 +#elif defined (__SYLLABLE__)
   32.33 +		nacore_path_home_for_each("extensions/ladspa/rdf",
   32.34 +					  parse_file, rdf_filter, NULL);
   32.35 +		nacore_path_for_each("/system/extensions/ladspa/rdf",
   32.36 +				     parse_file, rdf_filter, NULL);
   32.37 +#else
   32.38 +		nacore_path_home_for_each(".ladspa/rdf", parse_file, rdf_filter,
   32.39 +					  NULL);
   32.40 +		nacore_path_for_each("/usr/local/share/ladspa/rdf"
   32.41 +				     ":/usr/share/ladspa/rdf",
   32.42 +				     parse_file, rdf_filter, NULL);
   32.43 +#endif
   32.44  	  }
   32.45  	else
   32.46  		nacore_path_for_each(lrdf_path, parse_file, rdf_filter, NULL);
    33.1 --- a/naspro-bridges-bad/ladspa/lrdf.h	Fri Mar 26 18:54:24 2010 +0200
    33.2 +++ b/naspro-bridges-bad/ladspa/lrdf.h	Sat May 01 21:51:33 2010 +0300
    33.3 @@ -2,7 +2,7 @@
    33.4   * NASPRO - NASPRO Architecture for Sound Processing
    33.5   * LADSPA bridge
    33.6   *
    33.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    33.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    33.9   *
   33.10   * See the COPYING file for license conditions.
   33.11   */
    34.1 --- a/naspro-bridges-bad/ladspa/lv2api.c	Fri Mar 26 18:54:24 2010 +0200
    34.2 +++ b/naspro-bridges-bad/ladspa/lv2api.c	Sat May 01 21:51:33 2010 +0300
    34.3 @@ -2,7 +2,7 @@
    34.4   * NASPRO - NASPRO Architecture for Sound Processing
    34.5   * LADSPA bridge
    34.6   *
    34.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    34.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    34.9   *
   34.10   * See the COPYING file for license conditions.
   34.11   */
    35.1 --- a/naspro-bridges-bad/ladspa/lv2api.h	Fri Mar 26 18:54:24 2010 +0200
    35.2 +++ b/naspro-bridges-bad/ladspa/lv2api.h	Sat May 01 21:51:33 2010 +0300
    35.3 @@ -2,7 +2,7 @@
    35.4   * NASPRO - NASPRO Architecture for Sound Processing
    35.5   * LADSPA bridge
    35.6   *
    35.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    35.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    35.9   *
   35.10   * See the COPYING file for license conditions.
   35.11   */
    36.1 --- a/naspro-bridges-bad/ladspa/manifest.c	Fri Mar 26 18:54:24 2010 +0200
    36.2 +++ b/naspro-bridges-bad/ladspa/manifest.c	Sat May 01 21:51:33 2010 +0300
    36.3 @@ -2,14 +2,14 @@
    36.4   * NASPRO - NASPRO Architecture for Sound Processing
    36.5   * LADSPA bridge
    36.6   *
    36.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    36.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    36.9   *
   36.10   * See the COPYING file for license conditions.
   36.11   */
   36.12  
   36.13  #include <stdio.h>
   36.14  
   36.15 -#include <lv2_dyn_manifest.h>
   36.16 +#include "dyn-manifest.h"
   36.17  
   36.18  #include <NASPRO/core/lib.h>
   36.19  
    37.1 --- a/naspro-bridges-bad/ladspa/manifest.ttl.in	Fri Mar 26 18:54:24 2010 +0200
    37.2 +++ b/naspro-bridges-bad/ladspa/manifest.ttl.in	Sat May 01 21:51:33 2010 +0300
    37.3 @@ -2,7 +2,7 @@
    37.4  # NASPRO - NASPRO Architecture for Sound Processing
    37.5  # LADSPA bridge
    37.6  #
    37.7 -# Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    37.8 +# Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    37.9  #
   37.10  # See the COPYING file for license conditions.
   37.11  #
    38.1 --- a/naspro-bridges-bad/ladspa/pluglib.c	Fri Mar 26 18:54:24 2010 +0200
    38.2 +++ b/naspro-bridges-bad/ladspa/pluglib.c	Sat May 01 21:51:33 2010 +0300
    38.3 @@ -2,7 +2,7 @@
    38.4   * NASPRO - NASPRO Architecture for Sound Processing
    38.5   * LADSPA bridge
    38.6   *
    38.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    38.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    38.9   *
   38.10   * See the COPYING file for license conditions.
   38.11   */
   38.12 @@ -221,12 +221,34 @@
   38.13  	ladspa_path = nacore_env_get_var("LADSPA_PATH");
   38.14  	if (NACORE_STRING_IS_NULL_OR_EMPTY(ladspa_path))
   38.15  	  {
   38.16 -		nacore_path_home_for_each(LADSPA_DEFAULT_HOME_PATH,
   38.17 -					  pluglib_load,
   38.18 +#ifdef __APPLE__
   38.19 +		nacore_path_home_for_each("Library/Audio/Plug-Ins/LADSPA"
   38.20 +					  ":.ladspa", pluglib_load,
   38.21  					  nacore_dl_filename_filter, NULL);
   38.22 -		nacore_path_for_each(LADSPA_DEFAULT_SYSTEM_PATH,
   38.23 +		nacore_path_for_each("/Library/Audio/Plug-Ins/LADSPA"
   38.24 +				     ":/usr/local/lib/ladspa:/usr/lib/ladspa",
   38.25  				     pluglib_load, nacore_dl_filename_filter,
   38.26  				     NULL);
   38.27 +#elif defined (__HAIKU__)
   38.28 +		/* FIXME: find_directory() should be used */
   38.29 +		nacore_path_home_for_each(".ladspa", pluglib_load,
   38.30 +					  nacore_dl_filename_filter, NULL);
   38.31 +		nacore_path_for_each("/usr/local/lib/ladspa:/usr/lib/ladspa",
   38.32 +				     pluglib_load, nacore_dl_filename_filter,
   38.33 +				     NULL);
   38.34 +#elif defined (__SYLLABLE__)
   38.35 +		nacore_path_home_for_each("extensions/ladspa", pluglib_load,
   38.36 +					  nacore_dl_filename_filter, NULL);
   38.37 +		nacore_path_for_each("/system/extensions/ladspa",
   38.38 +				     pluglib_load, nacore_dl_filename_filter,
   38.39 +				     NULL);
   38.40 +#else
   38.41 +		nacore_path_home_for_each(".ladspa", pluglib_load,
   38.42 +					  nacore_dl_filename_filter, NULL);
   38.43 +		nacore_path_for_each("/usr/local/lib/ladspa:/usr/lib/ladspa",
   38.44 +				     pluglib_load, nacore_dl_filename_filter,
   38.45 +				     NULL);
   38.46 +#endif
   38.47  	  }
   38.48  	else
   38.49  		nacore_path_for_each(ladspa_path, pluglib_load,
    39.1 --- a/naspro-bridges-bad/ladspa/pluglib.h	Fri Mar 26 18:54:24 2010 +0200
    39.2 +++ b/naspro-bridges-bad/ladspa/pluglib.h	Sat May 01 21:51:33 2010 +0300
    39.3 @@ -2,7 +2,7 @@
    39.4   * NASPRO - NASPRO Architecture for Sound Processing
    39.5   * LADSPA bridge
    39.6   *
    39.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    39.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    39.9   *
   39.10   * See the COPYING file for license conditions.
   39.11   */
    40.1 --- a/naspro-core/CMakeLists.txt	Fri Mar 26 18:54:24 2010 +0200
    40.2 +++ b/naspro-core/CMakeLists.txt	Sat May 01 21:51:33 2010 +0300
    40.3 @@ -5,21 +5,32 @@
    40.4  set(NACORE_VERSION 0.2.0)
    40.5  
    40.6  set(NACORE_SOURCES src/avl.c src/init.c src/lv2api.c src/manifest.c)
    40.7 -if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
    40.8 -	set(NACORE_SOURCES ${NACORE_SOURCES} src/posix/dl.c src/posix/env.c src/posix/path.c)
    40.9 -	set(LIBS_DL -ldl)
   40.10 -endif ()
   40.11 +set(NACORE_SOURCES ${NACORE_SOURCES} src/posix/dl.c src/posix/env.c src/posix/path.c)
   40.12 +
   40.13 +include(FindPkgConfig)
   40.14 +pkg_check_modules(LV2 REQUIRED lv2core)
   40.15 +
   40.16 +include_directories(. ${LV2_INCLUDE_DIRS})
   40.17  
   40.18  include_directories("${NACORE_SOURCE_DIR}" "${NACORE_SOURCE_DIR}/include")
   40.19  add_library(nacore SHARED ${NACORE_SOURCES})
   40.20  set_target_properties(nacore PROPERTIES VERSION 2.0.0 SOVERSION 2)
   40.21 +find_library(LIBDL dl)
   40.22 +if (NOT "${LIBDL}" MATCHES LIBDL-NOTFOUND)
   40.23 +	set(LIBS ${LIBDL})
   40.24 +endif ()
   40.25 +if ("${CMAKE_SYSTEM_NAME}" MATCHES Haiku)
   40.26 +	find_library(LIBROOT root)
   40.27 +	set(LIBS ${LIBS} ${LIBROOT})
   40.28 +endif ()
   40.29 +target_link_libraries(nacore ${LIBS})
   40.30  
   40.31  if (NOT DEFINED LIBDIR_INSTALL)
   40.32 -	set(LIBDIR_INSTALL "${CMAKE_INSTALL_PREFIX}/lib")
   40.33 +	set(LIBDIR_INSTALL lib)
   40.34  endif ()
   40.35  
   40.36  if (NOT DEFINED INCLUDEDIR_INSTALL)
   40.37 -	set(INCLUDEDIR_INSTALL "${CMAKE_INSTALL_PREFIX}/include")
   40.38 +	set(INCLUDEDIR_INSTALL include)
   40.39  endif ()
   40.40  
   40.41  if (NOT DEFINED PKGCONFIGDIR_INSTALL)
   40.42 @@ -30,18 +41,14 @@
   40.43  configure_file("${NACORE_SOURCE_DIR}/config.h.in" "${NACORE_BINARY_DIR}/config.h" @ONLY)
   40.44  configure_file("${NACORE_SOURCE_DIR}/nacore.pc.in" "${NACORE_BINARY_DIR}/nacore.pc" @ONLY)
   40.45  
   40.46 -install(TARGETS nacore DESTINATION ${LIBDIR_INSTALL})
   40.47 -install(DIRECTORY include/NASPRO DESTINATION ${INCLUDEDIR_INSTALL})
   40.48 -install(FILES nacore.pc DESTINATION ${PKGCONFIGDIR_INSTALL})
   40.49 +install(TARGETS nacore DESTINATION "${LIBDIR_INSTALL}")
   40.50 +install(DIRECTORY include/NASPRO DESTINATION "${INCLUDEDIR_INSTALL}")
   40.51 +install(FILES nacore.pc DESTINATION "${PKGCONFIGDIR_INSTALL}")
   40.52  
   40.53 -set(CPACK_PACKAGE_DESCRIPTION_FILE ${NACORE_SOURCE_DIR}/README)
   40.54 -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The NASPRO core library")
   40.55 -set(CPACK_PACKAGE_NAME "NASPRO core")
   40.56  set(CPACK_PACKAGE_VERSION_MAJOR 0)
   40.57  set(CPACK_PACKAGE_VERSION_MINOR 2)
   40.58  set(CPACK_PACKAGE_VERSION_PATCH 0)
   40.59  set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
   40.60 -set(CPACK_PACKAGE_FILE_NAME naspro-core-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM})
   40.61  set(CPACK_SOURCE_GENERATOR TGZ)
   40.62  set(CPACK_SOURCE_PACKAGE_FILE_NAME naspro-core-${CPACK_PACKAGE_VERSION})
   40.63  set(CPACK_SOURCE_IGNORE_FILES
   40.64 @@ -58,7 +65,5 @@
   40.65  	"^${NACORE_BINARY_DIR}/.*\\\\.o$"
   40.66  	"^${NACORE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}nacore.*${CMAKE_SHARED_LIBRARY_SUFFIX}.*$"
   40.67  )
   40.68 -set(CPACK_RESOURCE_FILE_LICENSE ${NACORE_SOURCE_DIR}/COPYING)
   40.69 -set(CPACK_RESOURCE_FILE_README ${NACORE_SOURCE_DIR}/README)
   40.70  
   40.71  include(CPack)
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/naspro-core/INSTALL	Sat May 01 21:51:33 2010 +0300
    41.3 @@ -0,0 +1,50 @@
    41.4 +Build and installation instructions
    41.5 +===================================
    41.6 +
    41.7 +Build-time requirements
    41.8 +-----------------------
    41.9 +
   41.10 +* CMake >= 2.8.0 (http://www.cmake.org)
   41.11 +* pkg-config (http://pkg-config.freedesktop.org/wiki/)
   41.12 +* LV2 core (http://lv2plug.in)
   41.13 +* Some C compiler (only tested with gcc)
   41.14 +
   41.15 +Runtime requirements
   41.16 +--------------------
   41.17 +
   41.18 +A POSIX-compliant OS.
   41.19 +
   41.20 +Building
   41.21 +--------
   41.22 +
   41.23 +To configure the package use:
   41.24 +
   41.25 + $ cmake .
   41.26 +
   41.27 +or, if building in some other directory:
   41.28 +
   41.29 + $ cmake <top-level sources directory>
   41.30 +
   41.31 +You can specify installation directories like this:
   41.32 +
   41.33 + $ cmake -DVAR1=VALUE1 -DVAR2=VALUE2 ...
   41.34 +
   41.35 +If VALUE is a relative path, it is considered as relative to the prefix
   41.36 +directory (CMAKE_INSTALL_PREFIX).
   41.37 +
   41.38 +The build system understands the following variables VARx:
   41.39 +
   41.40 + * CMAKE_INSTALL_PREFIX   Installation prefix (the default value is determined
   41.41 +                                               by CMake)
   41.42 + * LIBDIR_INSTALL         Where to put library files (the default is lib)
   41.43 + * INCLUDEDIR_INSTALL     Where to put header files (the default is include)
   41.44 + * PKGCONFIGDIR_INSTALL   Where to put pkg-config files
   41.45 +                            (the default is LIBDIR_INSTALL/pkgconfig)
   41.46 +
   41.47 +Then, build with:
   41.48 +
   41.49 + $ make
   41.50 +
   41.51 +And install with:
   41.52 +
   41.53 + $ make install
    42.1 --- a/naspro-core/README	Fri Mar 26 18:54:24 2010 +0200
    42.2 +++ b/naspro-core/README	Sat May 01 21:51:33 2010 +0300
    42.3 @@ -12,9 +12,12 @@
    42.4   * OS-independent dynamic loading;
    42.5   * AVL trees.
    42.6  
    42.7 -It supports the LV2 core specification (r3) and the following extensions:
    42.8 +It supports the LV2 core specification (r3) and the following
    42.9 +specifications/extensions:
   42.10  
   42.11 - * LV2 Units extension (http://lv2plug.in/ns/extensions/units);
   42.12 + * LV2 Dynamic Manifest (http://lv2plug.in/ns/ext/dyn-manifest);
   42.13 + * LV2 Units (http://lv2plug.in/ns/extensions/units);
   42.14 + * LV2 URI Map (http://lv2plug.in/ns/ext/uri-map);
   42.15   * LV2 Events (http://lv2plug.in/ns/ext/event);
   42.16   * LV2 MIDI Events (http://lv2plug.in/ns/ext/midi);
   42.17   * LV2 Extended Port Information (http://lv2plug.in/ns/dev/extportinfo) - only
    43.1 --- a/naspro-core/include/NASPRO/core/avl.h	Fri Mar 26 18:54:24 2010 +0200
    43.2 +++ b/naspro-core/include/NASPRO/core/avl.h	Sat May 01 21:51:33 2010 +0300
    43.3 @@ -2,7 +2,7 @@
    43.4   * NASPRO - NASPRO Architecture for Sound Processing
    43.5   * Core library
    43.6   *
    43.7 - * Copyright (C) 2007-2010  Stefano D'Angelo  <zanga.mail@gmail.com>
    43.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    43.9   *
   43.10   * See the COPYING file for license conditions.
   43.11   */
    44.1 --- a/naspro-core/include/NASPRO/core/bridge.h	Fri Mar 26 18:54:24 2010 +0200
    44.2 +++ b/naspro-core/include/NASPRO/core/bridge.h	Sat May 01 21:51:33 2010 +0300
    44.3 @@ -2,7 +2,7 @@
    44.4   * NASPRO - NASPRO Architecture for Sound Processing
    44.5   * Core library
    44.6   *
    44.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    44.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    44.9   *
   44.10   * See the COPYING file for license conditions.
   44.11   */
    45.1 --- a/naspro-core/include/NASPRO/core/dl.h	Fri Mar 26 18:54:24 2010 +0200
    45.2 +++ b/naspro-core/include/NASPRO/core/dl.h	Sat May 01 21:51:33 2010 +0300
    45.3 @@ -2,7 +2,7 @@
    45.4   * NASPRO - NASPRO Architecture for Sound Processing
    45.5   * Core library
    45.6   *
    45.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    45.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    45.9   *
   45.10   * See the COPYING file for license conditions.
   45.11   */
    46.1 --- a/naspro-core/include/NASPRO/core/env.h	Fri Mar 26 18:54:24 2010 +0200
    46.2 +++ b/naspro-core/include/NASPRO/core/env.h	Sat May 01 21:51:33 2010 +0300
    46.3 @@ -2,7 +2,7 @@
    46.4   * NASPRO - NASPRO Architecture for Sound Processing
    46.5   * Core library
    46.6   *
    46.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    46.8 + * Copyright (C) 2007-2009 Stefano D'Angelo <zanga.mail@gmail.com>
    46.9   *
   46.10   * See the COPYING file for license conditions.
   46.11   */
    47.1 --- a/naspro-core/include/NASPRO/core/lib.h	Fri Mar 26 18:54:24 2010 +0200
    47.2 +++ b/naspro-core/include/NASPRO/core/lib.h	Sat May 01 21:51:33 2010 +0300
    47.3 @@ -2,7 +2,7 @@
    47.4   * NASPRO - NASPRO Architecture for Sound Processing
    47.5   * Core library
    47.6   *
    47.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    47.8 + * Copyright (C) 2007-2009 Stefano D'Angelo <zanga.mail@gmail.com>
    47.9   *
   47.10   * See the COPYING file for license conditions.
   47.11   */
    48.1 --- a/naspro-core/include/NASPRO/core/lv2api.h	Fri Mar 26 18:54:24 2010 +0200
    48.2 +++ b/naspro-core/include/NASPRO/core/lv2api.h	Sat May 01 21:51:33 2010 +0300
    48.3 @@ -2,7 +2,7 @@
    48.4   * NASPRO - NASPRO Architecture for Sound Processing
    48.5   * Core library
    48.6   *
    48.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    48.8 + * Copyright (C) 2007-2009 Stefano D'Angelo <zanga.mail@gmail.com>
    48.9   *
   48.10   * See the COPYING file for license conditions.
   48.11   */
    49.1 --- a/naspro-core/include/NASPRO/core/manifest.h	Fri Mar 26 18:54:24 2010 +0200
    49.2 +++ b/naspro-core/include/NASPRO/core/manifest.h	Sat May 01 21:51:33 2010 +0300
    49.3 @@ -2,7 +2,7 @@
    49.4   * NASPRO - NASPRO Architecture for Sound Processing
    49.5   * Core library
    49.6   *
    49.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    49.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    49.9   *
   49.10   * See the COPYING file for license conditions.
   49.11   */
    50.1 --- a/naspro-core/include/NASPRO/core/path.h	Fri Mar 26 18:54:24 2010 +0200
    50.2 +++ b/naspro-core/include/NASPRO/core/path.h	Sat May 01 21:51:33 2010 +0300
    50.3 @@ -2,7 +2,7 @@
    50.4   * NASPRO - NASPRO Architecture for Sound Processing
    50.5   * Core library
    50.6   *
    50.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    50.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    50.9   *
   50.10   * See the COPYING file for license conditions.
   50.11   */
    51.1 --- a/naspro-core/include/NASPRO/core/string.h	Fri Mar 26 18:54:24 2010 +0200
    51.2 +++ b/naspro-core/include/NASPRO/core/string.h	Sat May 01 21:51:33 2010 +0300
    51.3 @@ -2,7 +2,7 @@
    51.4   * NASPRO - NASPRO Architecture for Sound Processing
    51.5   * Core library
    51.6   *
    51.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    51.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    51.9   *
   51.10   * See the COPYING file for license conditions.
   51.11   */
    52.1 --- a/naspro-core/nacore.pc.in	Fri Mar 26 18:54:24 2010 +0200
    52.2 +++ b/naspro-core/nacore.pc.in	Sat May 01 21:51:33 2010 +0300
    52.3 @@ -1,5 +1,6 @@
    52.4 -libdir=@LIBDIR_INSTALL@
    52.5 -includedir=@INCLUDEDIR_INSTALL@
    52.6 +prefix=@CMAKE_INSTALL_PREFIX@
    52.7 +libdir=${prefix}/@LIBDIR_INSTALL@
    52.8 +includedir=${prefix}/@INCLUDEDIR_INSTALL@
    52.9  
   52.10  Name: NASPRO core
   52.11  Description: The NASPRO core library
   52.12 @@ -7,5 +8,6 @@
   52.13  Requires:
   52.14  Conflicts:
   52.15  Version: @NACORE_VERSION@
   52.16 -Libs: -L${libdir} -lnacore @LIBS_DL@
   52.17 +Libs: -L${libdir} -lnacore
   52.18 +Libs.private: @LIBS@
   52.19  Cflags: -I${includedir}
    53.1 --- a/naspro-core/src/avl.c	Fri Mar 26 18:54:24 2010 +0200
    53.2 +++ b/naspro-core/src/avl.c	Sat May 01 21:51:33 2010 +0300
    53.3 @@ -2,7 +2,7 @@
    53.4   * NASPRO - NASPRO Architecture for Sound Processing
    53.5   * Core library
    53.6   *
    53.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    53.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    53.9   *
   53.10   * See the COPYING file for license conditions.
   53.11   */
    54.1 --- a/naspro-core/src/dl.h	Fri Mar 26 18:54:24 2010 +0200
    54.2 +++ b/naspro-core/src/dl.h	Sat May 01 21:51:33 2010 +0300
    54.3 @@ -2,7 +2,7 @@
    54.4   * NASPRO - NASPRO Architecture for Sound Processing
    54.5   * Core library
    54.6   *
    54.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    54.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    54.9   *
   54.10   * See the COPYING file for license conditions.
   54.11   */
    55.1 --- a/naspro-core/src/init.c	Fri Mar 26 18:54:24 2010 +0200
    55.2 +++ b/naspro-core/src/init.c	Sat May 01 21:51:33 2010 +0300
    55.3 @@ -2,7 +2,7 @@
    55.4   * NASPRO - NASPRO Architecture for Sound Processing
    55.5   * Core library
    55.6   *
    55.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    55.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    55.9   *
   55.10   * See the COPYING file for license conditions.
   55.11   */
    56.1 --- a/naspro-core/src/lv2api.c	Fri Mar 26 18:54:24 2010 +0200
    56.2 +++ b/naspro-core/src/lv2api.c	Sat May 01 21:51:33 2010 +0300
    56.3 @@ -2,11 +2,13 @@
    56.4   * NASPRO - NASPRO Architecture for Sound Processing
    56.5   * Core library
    56.6   *
    56.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    56.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    56.9   *
   56.10   * See the COPYING file for license conditions.
   56.11   */
   56.12  
   56.13 +#include <lv2.h>
   56.14 +
   56.15  #include <NASPRO/core/lib.h>
   56.16  
   56.17  void
    57.1 --- a/naspro-core/src/manifest.c	Fri Mar 26 18:54:24 2010 +0200
    57.2 +++ b/naspro-core/src/manifest.c	Sat May 01 21:51:33 2010 +0300
    57.3 @@ -2,7 +2,7 @@
    57.4   * NASPRO - NASPRO Architecture for Sound Processing
    57.5   * Core library
    57.6   *
    57.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    57.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    57.9   *
   57.10   * See the COPYING file for license conditions.
   57.11   */
    58.1 --- a/naspro-core/src/path.h	Fri Mar 26 18:54:24 2010 +0200
    58.2 +++ b/naspro-core/src/path.h	Sat May 01 21:51:33 2010 +0300
    58.3 @@ -2,7 +2,7 @@
    58.4   * NASPRO - NASPRO Architecture for Sound Processing
    58.5   * Core library
    58.6   *
    58.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    58.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    58.9   *
   58.10   * See the COPYING file for license conditions.
   58.11   */
    59.1 --- a/naspro-core/src/posix/dl.c	Fri Mar 26 18:54:24 2010 +0200
    59.2 +++ b/naspro-core/src/posix/dl.c	Sat May 01 21:51:33 2010 +0300
    59.3 @@ -2,7 +2,7 @@
    59.4   * NASPRO - NASPRO Architecture for Sound Processing
    59.5   * Core library
    59.6   *
    59.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    59.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    59.9   *
   59.10   * See the COPYING file for license conditions.
   59.11   */
    60.1 --- a/naspro-core/src/posix/env.c	Fri Mar 26 18:54:24 2010 +0200
    60.2 +++ b/naspro-core/src/posix/env.c	Sat May 01 21:51:33 2010 +0300
    60.3 @@ -2,7 +2,7 @@
    60.4   * NASPRO - NASPRO Architecture for Sound Processing
    60.5   * Core library
    60.6   *
    60.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    60.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    60.9   *
   60.10   * See the COPYING file for license conditions.
   60.11   */
    61.1 --- a/naspro-core/src/posix/path.c	Fri Mar 26 18:54:24 2010 +0200
    61.2 +++ b/naspro-core/src/posix/path.c	Sat May 01 21:51:33 2010 +0300
    61.3 @@ -2,7 +2,7 @@
    61.4   * NASPRO - NASPRO Architecture for Sound Processing
    61.5   * Core library
    61.6   *
    61.7 - * Copyright (C) 2007-2009  Stefano D'Angelo  <zanga.mail@gmail.com>
    61.8 + * Copyright (C) 2007-2010 Stefano D'Angelo <zanga.mail@gmail.com>
    61.9   *
   61.10   * See the COPYING file for license conditions.
   61.11   */