diff --git a/Makefile.in b/Makefile.in index d73b18f59..1f7135323 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -166,7 +166,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/audacity.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -237,7 +238,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -510,7 +511,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -633,8 +633,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -701,7 +701,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -908,7 +914,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -1140,7 +1149,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/audacity.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags @@ -1189,7 +1198,7 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/audacity.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -1212,25 +1221,25 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dist_docDATA \ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-binPROGRAMS \ - clean-cscope clean-generic clean-libtool cscope cscopelist-am \ - ctags ctags-am dist dist-all dist-bzip2 dist-gzip dist-lzip \ - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am \ - install-dist_docDATA install-dist_pkgdataDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-nobase_dist_pkgdataDATA install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-dist_docDATA uninstall-dist_pkgdataDATA \ - uninstall-nobase_dist_pkgdataDATA + am--depfiles am--refresh check check-am clean \ + clean-binPROGRAMS clean-cscope clean-generic clean-libtool \ + cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dist_docDATA install-dist_pkgdataDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-nobase_dist_pkgdataDATA install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-dist_docDATA \ + uninstall-dist_pkgdataDATA uninstall-nobase_dist_pkgdataDATA .PRECIOUS: Makefile diff --git a/configure b/configure index e9f23be54..6b497c626 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for audacity 2.3.3. +# Generated by GNU Autoconf 2.69 for audacity 2.4.0. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='audacity' PACKAGE_TARNAME='audacity' -PACKAGE_VERSION='2.3.3' -PACKAGE_STRING='audacity 2.3.3' +PACKAGE_VERSION='2.4.0' +PACKAGE_STRING='audacity 2.4.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -833,7 +833,6 @@ am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -902,7 +901,6 @@ infodir docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -921,7 +919,8 @@ PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -1086,7 +1085,6 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1339,15 +1337,6 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1485,7 +1474,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1598,7 +1587,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures audacity 2.3.3 to adapt to many kinds of systems. +\`configure' configures audacity 2.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1638,7 +1627,6 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1669,7 +1657,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of audacity 2.3.3:";; + short | recursive ) echo "Configuration of audacity 2.4.0:";; esac cat <<\_ACEOF @@ -1897,7 +1885,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -audacity configure 2.3.3 +audacity configure 2.4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2535,7 +2523,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by audacity $as_me 2.3.3, which was +It was created by audacity $as_me 2.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2918,7 +2906,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -am__api_version='1.15' +am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3404,7 +3392,7 @@ fi # Define the identity of the package. PACKAGE='audacity' - VERSION='2.3.3' + VERSION='2.4.0' cat >>confdefs.h <<_ACEOF @@ -3434,8 +3422,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -3602,7 +3590,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3965,45 +3953,45 @@ DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -22240,12 +22228,12 @@ if test -n "$LV2_CFLAGS"; then pkg_cv_LV2_CFLAGS="$LV2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LV2_CFLAGS=`$PKG_CONFIG --cflags "lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2" 2>/dev/null` + pkg_cv_LV2_CFLAGS=`$PKG_CONFIG --cflags "lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4" 2>/dev/null` else pkg_failed=yes fi @@ -22256,12 +22244,12 @@ if test -n "$LV2_LIBS"; then pkg_cv_LV2_LIBS="$LV2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LV2_LIBS=`$PKG_CONFIG --libs "lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2" 2>/dev/null` + pkg_cv_LV2_LIBS=`$PKG_CONFIG --libs "lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4" 2>/dev/null` else pkg_failed=yes fi @@ -22279,9 +22267,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LV2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2" 2>&1` + LV2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4" 2>&1` else - LV2_PKG_ERRORS=`$PKG_CONFIG --print-errors "lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2" 2>&1` + LV2_PKG_ERRORS=`$PKG_CONFIG --print-errors "lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LV2_PKG_ERRORS" >&5 @@ -22299,7 +22287,6 @@ $as_echo "yes" >&6; } LV2_SYSTEM_AVAILABLE="yes" fi - if test "$LV2_SYSTEM_AVAILABLE" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: LV2 libraries are available as system libraries" >&5 $as_echo "$as_me: LV2 libraries are available as system libraries" >&6;} @@ -23430,8 +23417,10 @@ $as_echo "#define USE_LIBVORBIS 1" >>confdefs.h if test "$LV2_USE_LOCAL" = yes; then - LV2_CFLAGS='-I$(top_srcdir)/lib-src/lv2/include -I$(top_builddir)/lib-src/lv2/include' - LV2_LIBS='$(top_builddir)/lib-src/lv2/liblv2.a' + LV2_CFLAGS+=' -I$(top_builddir)/lib-src/lv2/build/include' + LV2_CFLAGS+=' -I$(top_builddir)/lib-src/lv2/build/include/lilv-0' + LV2_CFLAGS+=' -I$(top_builddir)/lib-src/lv2/build/include/suil-0' + LV2_LIBS='$(top_builddir)/lib-src/lv2/build/lib/lib*.a' subdirs="$subdirs lib-src/lv2" fi @@ -24970,7 +24959,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by audacity $as_me 2.3.3, which was +This file was extended by audacity $as_me 2.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25036,7 +25025,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -audacity config.status 2.3.3 +audacity config.status 2.4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -25162,7 +25151,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout @@ -26273,29 +26262,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -26313,53 +26308,48 @@ $as_echo X"$mf" | q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)[^/].*/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "libtool":C) diff --git a/help/Makefile.in b/help/Makefile.in index d0eb6aee4..6c48c2b26 100644 --- a/help/Makefile.in +++ b/help/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -389,7 +389,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -422,8 +421,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -511,7 +510,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/images/Makefile.in b/images/Makefile.in index c395d6b42..ef8a7f4bc 100644 --- a/images/Makefile.in +++ b/images/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -393,7 +393,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -504,8 +503,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -697,7 +696,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index 8d29ec9e0..b2e5a370a 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -189,7 +189,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -434,7 +434,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -984,8 +983,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(srcdir)/dist-libsoxr.mk $(srcdir)/dist-libvamp.mk $(srcdir)/dist-portaudio.mk $(am__empty): @@ -1103,7 +1102,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/lib-src/libogg/macosx/Ogg.xcodeproj/project.pbxproj b/lib-src/libogg/macosx/Ogg.xcodeproj/project.pbxproj index 596ccda37..03549ff8f 100644 --- a/lib-src/libogg/macosx/Ogg.xcodeproj/project.pbxproj +++ b/lib-src/libogg/macosx/Ogg.xcodeproj/project.pbxproj @@ -168,11 +168,21 @@ /* Begin PBXProject section */ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; + attributes = { + }; buildConfigurationList = 730F235809181A3A00AB638C /* Build configuration list for PBXProject "Ogg" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = en; hasScannedForEncodings = 1; + knownRegions = ( + en, + Base, + English, + ); mainGroup = 0867D691FE84028FC02AAC07 /* Ogg */; productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */; projectDirPath = ""; + projectRoot = ""; targets = ( 8D07F2BC0486CC7A007CD1D0 /* Ogg */, 734FB2E40B18B33E00D561D7 /* libogg (static) */, diff --git a/lib-src/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj b/lib-src/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj index 12f5392a5..689d43e75 100644 --- a/lib-src/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj +++ b/lib-src/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj @@ -524,11 +524,21 @@ /* Begin PBXProject section */ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; + attributes = { + }; buildConfigurationList = 730F23F3091827B200AB638C /* Build configuration list for PBXProject "Vorbis" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = en; hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + English, + ); mainGroup = 0867D691FE84028FC02AAC07 /* vorbis */; productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; projectDirPath = ""; + projectRoot = ""; targets = ( 730F23A1091827B100AB638C /* Vorbis */, 738835E30B18F870005C7A69 /* libvorbis (static) */, diff --git a/lib-src/lv2/Makefile b/lib-src/lv2/Makefile index 2c6c7eada..27a6dd520 100644 --- a/lib-src/lv2/Makefile +++ b/lib-src/lv2/Makefile @@ -1,1919 +1,20 @@ -include srcdir.mk +#include srcdir.mk all: - ./build --srcdir=$(srcdir) + ./configure --build check: clean: - rm -rf include lv2/build serd/build sord/build sratom/build lilv/build suil/build - rm -f liblv2.a + ./configure --clean distclean: clean - rm -rf lv2/.waf-* serd/.waf-* sord/.waf-* sratom/.waf-* lilv/.waf-* suil/.waf-* - rm -rf lv2/.lock-* serd/.lock-* sord/.lock-* sratom/.lock-* lilv/.lock-* suil/.lock-* + find . -name __pycache__ \ + -o -name \*.pyc \ + -o -name .lock\* \ + -o -name build | xargs rm -rf -EXTRA_DIST = \ - ./Makefile \ - ./build \ - ./configure \ - ./lilv/AUTHORS \ - ./lilv/COPYING \ - ./lilv/INSTALL \ - ./lilv/NEWS \ - ./lilv/PACKAGING \ - ./lilv/README \ - ./lilv/bindings/lilv.i \ - ./lilv/bindings/numpy.i \ - ./lilv/bindings/python/lv2_apply.py \ - ./lilv/bindings/python/lv2_list.py \ - ./lilv/bindings/test/bindings_test_plugin.c \ - ./lilv/bindings/test/bindings_test_plugin.ttl.in \ - ./lilv/bindings/test/manifest.ttl.in \ - ./lilv/bindings/test/python/test_api.py \ - ./lilv/bindings/test/python/test_api_mm.py \ - ./lilv/doc/layout.xml \ - ./lilv/doc/lv2info.1 \ - ./lilv/doc/lv2ls.1 \ - ./lilv/doc/reference.doxygen.in \ - ./lilv/doc/style.css \ - ./lilv/lilv-0.20.0.tar.bz2.sig \ - ./lilv/lilv.pc.in \ - ./lilv/lilv.ttl \ - ./lilv/lilv/lilv.h \ - ./lilv/lilv/lilvmm.hpp \ - ./lilv/src/collections.c \ - ./lilv/src/instance.c \ - ./lilv/src/lib.c \ - ./lilv/src/lilv_internal.h \ - ./lilv/src/node.c \ - ./lilv/src/plugin.c \ - ./lilv/src/pluginclass.c \ - ./lilv/src/port.c \ - ./lilv/src/query.c \ - ./lilv/src/scalepoint.c \ - ./lilv/src/state.c \ - ./lilv/src/ui.c \ - ./lilv/src/util.c \ - ./lilv/src/world.c \ - ./lilv/src/zix/common.h \ - ./lilv/src/zix/tree.c \ - ./lilv/src/zix/tree.h \ - ./lilv/test/lilv_test.c \ - ./lilv/test/manifest.ttl.in \ - ./lilv/test/test_plugin.c \ - ./lilv/test/test_plugin.ttl.in \ - ./lilv/utils/bench.h \ - ./lilv/utils/lilv-bench.c \ - ./lilv/utils/lilv.bash_completion \ - ./lilv/utils/lv2bench.c \ - ./lilv/utils/lv2info.c \ - ./lilv/utils/lv2ls.c \ - ./lilv/utils/uri_table.h \ - ./lilv/waf \ - ./lilv/waflib/Build.py \ - ./lilv/waflib/ConfigSet.py \ - ./lilv/waflib/Configure.py \ - ./lilv/waflib/Context.py \ - ./lilv/waflib/Errors.py \ - ./lilv/waflib/Logs.py \ - ./lilv/waflib/Node.py \ - ./lilv/waflib/Options.py \ - ./lilv/waflib/Runner.py \ - ./lilv/waflib/Scripting.py \ - ./lilv/waflib/Task.py \ - ./lilv/waflib/TaskGen.py \ - ./lilv/waflib/Tools/__init__.py \ - ./lilv/waflib/Tools/ar.py \ - ./lilv/waflib/Tools/asm.py \ - ./lilv/waflib/Tools/bison.py \ - ./lilv/waflib/Tools/c.py \ - ./lilv/waflib/Tools/c_aliases.py \ - ./lilv/waflib/Tools/c_config.py \ - ./lilv/waflib/Tools/c_osx.py \ - ./lilv/waflib/Tools/c_preproc.py \ - ./lilv/waflib/Tools/c_tests.py \ - ./lilv/waflib/Tools/ccroot.py \ - ./lilv/waflib/Tools/compiler_c.py \ - ./lilv/waflib/Tools/compiler_cxx.py \ - ./lilv/waflib/Tools/compiler_d.py \ - ./lilv/waflib/Tools/compiler_fc.py \ - ./lilv/waflib/Tools/cs.py \ - ./lilv/waflib/Tools/cxx.py \ - ./lilv/waflib/Tools/d.py \ - ./lilv/waflib/Tools/d_config.py \ - ./lilv/waflib/Tools/d_scan.py \ - ./lilv/waflib/Tools/dbus.py \ - ./lilv/waflib/Tools/dmd.py \ - ./lilv/waflib/Tools/errcheck.py \ - ./lilv/waflib/Tools/fc.py \ - ./lilv/waflib/Tools/fc_config.py \ - ./lilv/waflib/Tools/fc_scan.py \ - ./lilv/waflib/Tools/flex.py \ - ./lilv/waflib/Tools/g95.py \ - ./lilv/waflib/Tools/gas.py \ - ./lilv/waflib/Tools/gcc.py \ - ./lilv/waflib/Tools/gdc.py \ - ./lilv/waflib/Tools/gfortran.py \ - ./lilv/waflib/Tools/glib2.py \ - ./lilv/waflib/Tools/gnu_dirs.py \ - ./lilv/waflib/Tools/gxx.py \ - ./lilv/waflib/Tools/icc.py \ - ./lilv/waflib/Tools/icpc.py \ - ./lilv/waflib/Tools/ifort.py \ - ./lilv/waflib/Tools/intltool.py \ - ./lilv/waflib/Tools/irixcc.py \ - ./lilv/waflib/Tools/javaw.py \ - ./lilv/waflib/Tools/kde4.py \ - ./lilv/waflib/Tools/ldc2.py \ - ./lilv/waflib/Tools/lua.py \ - ./lilv/waflib/Tools/msvc.py \ - ./lilv/waflib/Tools/nasm.py \ - ./lilv/waflib/Tools/perl.py \ - ./lilv/waflib/Tools/python.py \ - ./lilv/waflib/Tools/qt4.py \ - ./lilv/waflib/Tools/ruby.py \ - ./lilv/waflib/Tools/suncc.py \ - ./lilv/waflib/Tools/suncxx.py \ - ./lilv/waflib/Tools/tex.py \ - ./lilv/waflib/Tools/vala.py \ - ./lilv/waflib/Tools/waf_unit_test.py \ - ./lilv/waflib/Tools/winres.py \ - ./lilv/waflib/Tools/xlc.py \ - ./lilv/waflib/Tools/xlcxx.py \ - ./lilv/waflib/Utils.py \ - ./lilv/waflib/__init__.py \ - ./lilv/waflib/ansiterm.py \ - ./lilv/waflib/extras/__init__.py \ - ./lilv/waflib/extras/autowaf.py \ - ./lilv/waflib/extras/doxygen.py \ - ./lilv/waflib/extras/swig.py \ - ./lilv/waflib/fixpy2.py \ - ./lilv/wscript \ - ./lv2/COPYING \ - ./lv2/NEWS \ - ./lv2/README \ - ./lv2/doc/asciidoc.css \ - ./lv2/doc/doxy-style.css \ - ./lv2/doc/header.html \ - ./lv2/doc/htaccess.in \ - ./lv2/doc/mainpage.dox \ - ./lv2/doc/pygments.css \ - ./lv2/doc/reference.doxygen.in \ - ./lv2/doc/style.css \ - ./lv2/lv2-1.10.0.tar.bz2.sig \ - ./lv2/lv2.pc.in \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/atom-test.c \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/atom.h \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/atom.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/forge.h \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/lv2-atom.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/atom/util.h \ - ./lv2/lv2/lv2plug.in/ns/ext/buf-size/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/buf-size/buf-size.h \ - ./lv2/lv2/lv2plug.in/ns/ext/buf-size/buf-size.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/buf-size/lv2-buf-size.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/buf-size/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/data-access/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/data-access/data-access.h \ - ./lv2/lv2/lv2plug.in/ns/ext/data-access/data-access.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/data-access/lv2-data-access.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/data-access/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/dynmanifest/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/dynmanifest/dynmanifest.h \ - ./lv2/lv2/lv2plug.in/ns/ext/dynmanifest/dynmanifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/dynmanifest/lv2-dynmanifest.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/dynmanifest/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/event/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/event/event-helpers.h \ - ./lv2/lv2/lv2plug.in/ns/ext/event/event.h \ - ./lv2/lv2/lv2plug.in/ns/ext/event/event.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/event/lv2-event.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/event/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/instance-access/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/instance-access/instance-access.h \ - ./lv2/lv2/lv2plug.in/ns/ext/instance-access/instance-access.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/instance-access/lv2-instance-access.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/instance-access/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/log/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/log/log.h \ - ./lv2/lv2/lv2plug.in/ns/ext/log/log.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/log/logger.h \ - ./lv2/lv2/lv2plug.in/ns/ext/log/lv2-log.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/log/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/midi/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/midi/lv2-midi.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/midi/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/midi/midi.h \ - ./lv2/lv2/lv2plug.in/ns/ext/midi/midi.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/morph/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/morph/lv2-morph.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/morph/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/morph/morph.h \ - ./lv2/lv2/lv2plug.in/ns/ext/morph/morph.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/options/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/options/lv2-options.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/options/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/options/options.h \ - ./lv2/lv2/lv2plug.in/ns/ext/options/options.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/parameters/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/parameters/lv2-parameters.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/parameters/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/parameters/parameters.h \ - ./lv2/lv2/lv2plug.in/ns/ext/parameters/parameters.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/patch/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/patch/lv2-patch.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/patch/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/patch/patch.h \ - ./lv2/lv2/lv2plug.in/ns/ext/patch/patch.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/port-groups/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/port-groups/lv2-port-groups.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/port-groups/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/port-groups/port-groups.h \ - ./lv2/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/port-props/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/port-props/lv2-port-props.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/port-props/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/port-props/port-props.h \ - ./lv2/lv2/lv2plug.in/ns/ext/port-props/port-props.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/presets/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/presets/lv2-presets.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/presets/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/presets/presets.h \ - ./lv2/lv2/lv2plug.in/ns/ext/presets/presets.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/resize-port/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/resize-port/lv2-resize-port.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/resize-port/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/resize-port/resize-port.h \ - ./lv2/lv2/lv2plug.in/ns/ext/resize-port/resize-port.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/state/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/state/lv2-state.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/state/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/state/state.h \ - ./lv2/lv2/lv2plug.in/ns/ext/state/state.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/time/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/time/lv2-time.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/time/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/time/time.h \ - ./lv2/lv2/lv2plug.in/ns/ext/time/time.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/uri-map/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/uri-map/lv2-uri-map.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/uri-map/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/uri-map/uri-map.h \ - ./lv2/lv2/lv2plug.in/ns/ext/uri-map/uri-map.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/urid/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/urid/lv2-urid.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/urid/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/urid/urid.h \ - ./lv2/lv2/lv2plug.in/ns/ext/urid/urid.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/worker/NEWS \ - ./lv2/lv2/lv2plug.in/ns/ext/worker/lv2-worker.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/worker/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/ext/worker/worker.h \ - ./lv2/lv2/lv2plug.in/ns/ext/worker/worker.ttl \ - ./lv2/lv2/lv2plug.in/ns/extensions/ui/NEWS \ - ./lv2/lv2/lv2plug.in/ns/extensions/ui/lv2-ui.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/extensions/ui/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/extensions/ui/ui.h \ - ./lv2/lv2/lv2plug.in/ns/extensions/ui/ui.ttl \ - ./lv2/lv2/lv2plug.in/ns/extensions/units/NEWS \ - ./lv2/lv2/lv2plug.in/ns/extensions/units/lv2-units.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/extensions/units/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/extensions/units/units.h \ - ./lv2/lv2/lv2plug.in/ns/extensions/units/units.ttl \ - ./lv2/lv2/lv2plug.in/ns/index.html.in \ - ./lv2/lv2/lv2plug.in/ns/lv2core/NEWS \ - ./lv2/lv2/lv2plug.in/ns/lv2core/README \ - ./lv2/lv2/lv2plug.in/ns/lv2core/lv2.h \ - ./lv2/lv2/lv2plug.in/ns/lv2core/lv2core.doap.ttl \ - ./lv2/lv2/lv2plug.in/ns/lv2core/lv2core.pc.in \ - ./lv2/lv2/lv2plug.in/ns/lv2core/lv2core.ttl \ - ./lv2/lv2/lv2plug.in/ns/lv2core/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/lv2core/wscript \ - ./lv2/lv2/lv2plug.in/ns/meta/manifest.ttl \ - ./lv2/lv2/lv2plug.in/ns/meta/meta.ttl \ - ./lv2/lv2specgen/DTD/xhtml-attribs-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-base-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-basic-table-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-basic11-model-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-basic11.dtd \ - ./lv2/lv2specgen/DTD/xhtml-bdo-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-blkphras-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-blkpres-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-blkstruct-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-charent-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-csismap-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-datatypes-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-edit-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-events-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-form-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-framework-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-hypertext-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-image-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-inlphras-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-inlpres-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-inlstruct-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-inlstyle-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-inputmode-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-lat1.ent \ - ./lv2/lv2specgen/DTD/xhtml-legacy-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-link-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-list-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-meta-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-object-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-param-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-pres-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-qname-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-script-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-special.ent \ - ./lv2/lv2specgen/DTD/xhtml-ssismap-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-struct-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-style-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-symbol.ent \ - ./lv2/lv2specgen/DTD/xhtml-table-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-target-1.mod \ - ./lv2/lv2specgen/DTD/xhtml-text-1.mod \ - ./lv2/lv2specgen/lv2docgen.py \ - ./lv2/lv2specgen/lv2specgen.py \ - ./lv2/lv2specgen/style.css \ - ./lv2/lv2specgen/template.html \ - ./lv2/plugins/README.txt \ - ./lv2/plugins/eg-amp.lv2/README.txt \ - ./lv2/plugins/eg-amp.lv2/amp.c \ - ./lv2/plugins/eg-amp.lv2/amp.ttl \ - ./lv2/plugins/eg-amp.lv2/manifest.ttl.in \ - ./lv2/plugins/eg-amp.lv2/waf \ - ./lv2/plugins/eg-amp.lv2/waflib/Build.py \ - ./lv2/plugins/eg-amp.lv2/waflib/ConfigSet.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Configure.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Context.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Errors.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Logs.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Node.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Options.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Runner.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Scripting.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Task.py \ - ./lv2/plugins/eg-amp.lv2/waflib/TaskGen.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/__init__.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/ar.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/asm.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/bison.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/c.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/c_aliases.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/c_config.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/c_osx.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/c_preproc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/c_tests.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/ccroot.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/compiler_c.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/compiler_cxx.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/compiler_d.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/compiler_fc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/cs.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/cxx.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/d.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/d_config.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/d_scan.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/dbus.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/dmd.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/errcheck.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/fc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/fc_config.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/fc_scan.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/flex.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/g95.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/gas.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/gcc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/gdc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/gfortran.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/glib2.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/gnu_dirs.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/gxx.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/icc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/icpc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/ifort.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/intltool.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/irixcc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/javaw.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/kde4.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/ldc2.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/lua.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/msvc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/nasm.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/perl.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/python.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/qt4.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/ruby.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/suncc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/suncxx.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/tex.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/vala.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/waf_unit_test.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/winres.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/xlc.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Tools/xlcxx.py \ - ./lv2/plugins/eg-amp.lv2/waflib/Utils.py \ - ./lv2/plugins/eg-amp.lv2/waflib/__init__.py \ - ./lv2/plugins/eg-amp.lv2/waflib/ansiterm.py \ - ./lv2/plugins/eg-amp.lv2/waflib/extras/__init__.py \ - ./lv2/plugins/eg-amp.lv2/waflib/extras/autowaf.py \ - ./lv2/plugins/eg-amp.lv2/waflib/extras/doxygen.py \ - ./lv2/plugins/eg-amp.lv2/waflib/fixpy2.py \ - ./lv2/plugins/eg-amp.lv2/wscript \ - ./lv2/plugins/eg-fifths.lv2/README.txt \ - ./lv2/plugins/eg-fifths.lv2/fifths.c \ - ./lv2/plugins/eg-fifths.lv2/fifths.ttl \ - ./lv2/plugins/eg-fifths.lv2/manifest.ttl.in \ - ./lv2/plugins/eg-fifths.lv2/uris.h \ - ./lv2/plugins/eg-fifths.lv2/waf \ - ./lv2/plugins/eg-fifths.lv2/waflib/Build.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/ConfigSet.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Configure.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Context.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Errors.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Logs.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Node.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Options.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Runner.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Scripting.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Task.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/TaskGen.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/__init__.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/ar.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/asm.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/bison.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/c.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/c_aliases.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/c_config.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/c_osx.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/c_preproc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/c_tests.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/ccroot.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/compiler_c.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/compiler_cxx.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/compiler_d.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/compiler_fc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/cs.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/cxx.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/d.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/d_config.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/d_scan.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/dbus.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/dmd.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/errcheck.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/fc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/fc_config.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/fc_scan.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/flex.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/g95.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/gas.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/gcc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/gdc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/gfortran.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/glib2.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/gnu_dirs.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/gxx.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/icc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/icpc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/ifort.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/intltool.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/irixcc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/javaw.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/kde4.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/ldc2.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/lua.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/msvc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/nasm.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/perl.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/python.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/qt4.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/ruby.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/suncc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/suncxx.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/tex.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/vala.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/waf_unit_test.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/winres.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/xlc.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Tools/xlcxx.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/Utils.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/__init__.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/ansiterm.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/extras/__init__.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/extras/autowaf.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/extras/doxygen.py \ - ./lv2/plugins/eg-fifths.lv2/waflib/fixpy2.py \ - ./lv2/plugins/eg-fifths.lv2/wscript \ - ./lv2/plugins/eg-metro.lv2/README.txt \ - ./lv2/plugins/eg-metro.lv2/manifest.ttl.in \ - ./lv2/plugins/eg-metro.lv2/metro.c \ - ./lv2/plugins/eg-metro.lv2/metro.ttl \ - ./lv2/plugins/eg-metro.lv2/waf \ - ./lv2/plugins/eg-metro.lv2/waflib/Build.py \ - ./lv2/plugins/eg-metro.lv2/waflib/ConfigSet.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Configure.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Context.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Errors.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Logs.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Node.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Options.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Runner.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Scripting.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Task.py \ - ./lv2/plugins/eg-metro.lv2/waflib/TaskGen.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/__init__.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/ar.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/asm.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/bison.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/c.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/c_aliases.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/c_config.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/c_osx.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/c_preproc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/c_tests.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/ccroot.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/compiler_c.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/compiler_cxx.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/compiler_d.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/compiler_fc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/cs.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/cxx.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/d.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/d_config.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/d_scan.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/dbus.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/dmd.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/errcheck.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/fc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/fc_config.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/fc_scan.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/flex.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/g95.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/gas.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/gcc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/gdc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/gfortran.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/glib2.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/gnu_dirs.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/gxx.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/icc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/icpc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/ifort.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/intltool.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/irixcc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/javaw.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/kde4.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/ldc2.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/lua.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/msvc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/nasm.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/perl.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/python.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/qt4.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/ruby.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/suncc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/suncxx.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/tex.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/vala.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/waf_unit_test.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/winres.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/xlc.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Tools/xlcxx.py \ - ./lv2/plugins/eg-metro.lv2/waflib/Utils.py \ - ./lv2/plugins/eg-metro.lv2/waflib/__init__.py \ - ./lv2/plugins/eg-metro.lv2/waflib/ansiterm.py \ - ./lv2/plugins/eg-metro.lv2/waflib/extras/__init__.py \ - ./lv2/plugins/eg-metro.lv2/waflib/extras/autowaf.py \ - ./lv2/plugins/eg-metro.lv2/waflib/extras/doxygen.py \ - ./lv2/plugins/eg-metro.lv2/waflib/fixpy2.py \ - ./lv2/plugins/eg-metro.lv2/wscript \ - ./lv2/plugins/eg-midigate.lv2/README.txt \ - ./lv2/plugins/eg-midigate.lv2/manifest.ttl.in \ - ./lv2/plugins/eg-midigate.lv2/midigate.c \ - ./lv2/plugins/eg-midigate.lv2/midigate.ttl \ - ./lv2/plugins/eg-midigate.lv2/waf \ - ./lv2/plugins/eg-midigate.lv2/waflib/Build.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/ConfigSet.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Configure.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Context.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Errors.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Logs.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Node.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Options.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Runner.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Scripting.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Task.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/TaskGen.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/__init__.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/ar.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/asm.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/bison.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/c.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/c_aliases.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/c_config.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/c_osx.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/c_preproc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/c_tests.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/ccroot.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/compiler_c.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/compiler_cxx.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/compiler_d.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/compiler_fc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/cs.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/cxx.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/d.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/d_config.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/d_scan.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/dbus.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/dmd.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/errcheck.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/fc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/fc_config.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/fc_scan.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/flex.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/g95.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/gas.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/gcc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/gdc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/gfortran.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/glib2.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/gnu_dirs.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/gxx.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/icc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/icpc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/ifort.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/intltool.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/irixcc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/javaw.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/kde4.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/ldc2.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/lua.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/msvc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/nasm.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/perl.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/python.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/qt4.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/ruby.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/suncc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/suncxx.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/tex.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/vala.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/waf_unit_test.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/winres.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/xlc.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Tools/xlcxx.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/Utils.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/__init__.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/ansiterm.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/extras/__init__.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/extras/autowaf.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/extras/doxygen.py \ - ./lv2/plugins/eg-midigate.lv2/waflib/fixpy2.py \ - ./lv2/plugins/eg-midigate.lv2/wscript \ - ./lv2/plugins/eg-sampler.lv2/README.txt \ - ./lv2/plugins/eg-sampler.lv2/click.wav \ - ./lv2/plugins/eg-sampler.lv2/manifest.ttl.in \ - ./lv2/plugins/eg-sampler.lv2/sampler.c \ - ./lv2/plugins/eg-sampler.lv2/sampler.ttl \ - ./lv2/plugins/eg-sampler.lv2/sampler_ui.c \ - ./lv2/plugins/eg-sampler.lv2/uris.h \ - ./lv2/plugins/eg-sampler.lv2/waf \ - ./lv2/plugins/eg-sampler.lv2/waflib/Build.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/ConfigSet.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Configure.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Context.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Errors.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Logs.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Node.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Options.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Runner.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Scripting.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Task.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/TaskGen.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/__init__.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/ar.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/asm.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/bison.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/c.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/c_aliases.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/c_config.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/c_osx.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/c_preproc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/c_tests.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/ccroot.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/compiler_c.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/compiler_cxx.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/compiler_d.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/compiler_fc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/cs.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/cxx.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/d.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/d_config.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/d_scan.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/dbus.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/dmd.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/errcheck.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/fc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/fc_config.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/fc_scan.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/flex.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/g95.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/gas.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/gcc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/gdc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/gfortran.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/glib2.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/gnu_dirs.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/gxx.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/icc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/icpc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/ifort.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/intltool.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/irixcc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/javaw.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/kde4.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/ldc2.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/lua.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/msvc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/nasm.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/perl.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/python.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/qt4.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/ruby.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/suncc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/suncxx.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/tex.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/vala.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/waf_unit_test.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/winres.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/xlc.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Tools/xlcxx.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/Utils.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/__init__.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/ansiterm.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/extras/__init__.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/extras/autowaf.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/extras/doxygen.py \ - ./lv2/plugins/eg-sampler.lv2/waflib/fixpy2.py \ - ./lv2/plugins/eg-sampler.lv2/wscript \ - ./lv2/plugins/eg-scope.lv2/README.txt \ - ./lv2/plugins/eg-scope.lv2/examploscope.c \ - ./lv2/plugins/eg-scope.lv2/examploscope.ttl.in \ - ./lv2/plugins/eg-scope.lv2/examploscope_ui.c \ - ./lv2/plugins/eg-scope.lv2/manifest.ttl.in \ - ./lv2/plugins/eg-scope.lv2/uris.h \ - ./lv2/plugins/eg-scope.lv2/wscript \ - ./lv2/plugins/literasc.py \ - ./lv2/plugins/wscript \ - ./lv2/schemas/README \ - ./lv2/schemas/aboutdcmi.ttl \ - ./lv2/schemas/dc.ttl \ - ./lv2/schemas/dcam.ttl \ - ./lv2/schemas/dcs.ttl \ - ./lv2/schemas/dct.ttl \ - ./lv2/schemas/dctype.ttl \ - ./lv2/schemas/doap.ttl \ - ./lv2/schemas/foaf.ttl \ - ./lv2/schemas/owl.ttl \ - ./lv2/schemas/rdf.ttl \ - ./lv2/schemas/rdfs.ttl \ - ./lv2/schemas/skos.ttl \ - ./lv2/schemas/xsd.ttl \ - ./lv2/waf \ - ./lv2/waflib/Build.py \ - ./lv2/waflib/ConfigSet.py \ - ./lv2/waflib/Configure.py \ - ./lv2/waflib/Context.py \ - ./lv2/waflib/Errors.py \ - ./lv2/waflib/Logs.py \ - ./lv2/waflib/Node.py \ - ./lv2/waflib/Options.py \ - ./lv2/waflib/Runner.py \ - ./lv2/waflib/Scripting.py \ - ./lv2/waflib/Task.py \ - ./lv2/waflib/TaskGen.py \ - ./lv2/waflib/Tools/__init__.py \ - ./lv2/waflib/Tools/ar.py \ - ./lv2/waflib/Tools/asm.py \ - ./lv2/waflib/Tools/bison.py \ - ./lv2/waflib/Tools/c.py \ - ./lv2/waflib/Tools/c_aliases.py \ - ./lv2/waflib/Tools/c_config.py \ - ./lv2/waflib/Tools/c_osx.py \ - ./lv2/waflib/Tools/c_preproc.py \ - ./lv2/waflib/Tools/c_tests.py \ - ./lv2/waflib/Tools/ccroot.py \ - ./lv2/waflib/Tools/compiler_c.py \ - ./lv2/waflib/Tools/compiler_cxx.py \ - ./lv2/waflib/Tools/compiler_d.py \ - ./lv2/waflib/Tools/compiler_fc.py \ - ./lv2/waflib/Tools/cs.py \ - ./lv2/waflib/Tools/cxx.py \ - ./lv2/waflib/Tools/d.py \ - ./lv2/waflib/Tools/d_config.py \ - ./lv2/waflib/Tools/d_scan.py \ - ./lv2/waflib/Tools/dbus.py \ - ./lv2/waflib/Tools/dmd.py \ - ./lv2/waflib/Tools/errcheck.py \ - ./lv2/waflib/Tools/fc.py \ - ./lv2/waflib/Tools/fc_config.py \ - ./lv2/waflib/Tools/fc_scan.py \ - ./lv2/waflib/Tools/flex.py \ - ./lv2/waflib/Tools/g95.py \ - ./lv2/waflib/Tools/gas.py \ - ./lv2/waflib/Tools/gcc.py \ - ./lv2/waflib/Tools/gdc.py \ - ./lv2/waflib/Tools/gfortran.py \ - ./lv2/waflib/Tools/glib2.py \ - ./lv2/waflib/Tools/gnu_dirs.py \ - ./lv2/waflib/Tools/gxx.py \ - ./lv2/waflib/Tools/icc.py \ - ./lv2/waflib/Tools/icpc.py \ - ./lv2/waflib/Tools/ifort.py \ - ./lv2/waflib/Tools/intltool.py \ - ./lv2/waflib/Tools/irixcc.py \ - ./lv2/waflib/Tools/javaw.py \ - ./lv2/waflib/Tools/kde4.py \ - ./lv2/waflib/Tools/ldc2.py \ - ./lv2/waflib/Tools/lua.py \ - ./lv2/waflib/Tools/msvc.py \ - ./lv2/waflib/Tools/nasm.py \ - ./lv2/waflib/Tools/perl.py \ - ./lv2/waflib/Tools/python.py \ - ./lv2/waflib/Tools/qt4.py \ - ./lv2/waflib/Tools/ruby.py \ - ./lv2/waflib/Tools/suncc.py \ - ./lv2/waflib/Tools/suncxx.py \ - ./lv2/waflib/Tools/tex.py \ - ./lv2/waflib/Tools/vala.py \ - ./lv2/waflib/Tools/waf_unit_test.py \ - ./lv2/waflib/Tools/winres.py \ - ./lv2/waflib/Tools/xlc.py \ - ./lv2/waflib/Tools/xlcxx.py \ - ./lv2/waflib/Utils.py \ - ./lv2/waflib/__init__.py \ - ./lv2/waflib/ansiterm.py \ - ./lv2/waflib/extras/__init__.py \ - ./lv2/waflib/extras/autowaf.py \ - ./lv2/waflib/extras/doxygen.py \ - ./lv2/waflib/fixpy2.py \ - ./lv2/wscript \ - ./msinttypes/inttypes.h \ - ./msinttypes/stdint.h \ - ./serd/AUTHORS \ - ./serd/COPYING \ - ./serd/INSTALL \ - ./serd/NEWS \ - ./serd/PACKAGING \ - ./serd/README \ - ./serd/doc/layout.xml \ - ./serd/doc/reference.doxygen.in \ - ./serd/doc/serdi.1 \ - ./serd/doc/style.css \ - ./serd/serd-0.20.0.tar.bz2.sig \ - ./serd/serd.pc.in \ - ./serd/serd.ttl \ - ./serd/serd/serd.h \ - ./serd/src/env.c \ - ./serd/src/reader.c \ - ./serd/src/serd_internal.h \ - ./serd/src/serdi.c \ - ./serd/src/serdnode.c \ - ./serd/src/string.c \ - ./serd/src/uri.c \ - ./serd/src/writer.c \ - ./serd/tests/TurtleTests/HYPHEN_MINUS_in_localName.nt \ - ./serd/tests/TurtleTests/HYPHEN_MINUS_in_localName.ttl \ - ./serd/tests/TurtleTests/IRIREF_datatype.nt \ - ./serd/tests/TurtleTests/IRIREF_datatype.ttl \ - ./serd/tests/TurtleTests/IRI_spo.nt \ - ./serd/tests/TurtleTests/IRI_subject.ttl \ - ./serd/tests/TurtleTests/IRI_with_all_punctuation.nt \ - ./serd/tests/TurtleTests/IRI_with_all_punctuation.ttl \ - ./serd/tests/TurtleTests/IRI_with_eight_digit_numeric_escape.ttl \ - ./serd/tests/TurtleTests/IRI_with_four_digit_numeric_escape.ttl \ - ./serd/tests/TurtleTests/LICENSE \ - ./serd/tests/TurtleTests/LITERAL1.nt \ - ./serd/tests/TurtleTests/LITERAL1.ttl \ - ./serd/tests/TurtleTests/LITERAL1_all_controls.nt \ - ./serd/tests/TurtleTests/LITERAL1_all_controls.ttl \ - ./serd/tests/TurtleTests/LITERAL1_all_punctuation.nt \ - ./serd/tests/TurtleTests/LITERAL1_all_punctuation.ttl \ - ./serd/tests/TurtleTests/LITERAL1_ascii_boundaries.nt \ - ./serd/tests/TurtleTests/LITERAL1_ascii_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL1_with_UTF8_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL2.ttl \ - ./serd/tests/TurtleTests/LITERAL2_ascii_boundaries.nt \ - ./serd/tests/TurtleTests/LITERAL2_ascii_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL2_with_UTF8_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG1.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG1_ascii_boundaries.nt \ - ./serd/tests/TurtleTests/LITERAL_LONG1_ascii_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG1_with_1_squote.nt \ - ./serd/tests/TurtleTests/LITERAL_LONG1_with_1_squote.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG1_with_2_squotes.nt \ - ./serd/tests/TurtleTests/LITERAL_LONG1_with_2_squotes.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG1_with_UTF8_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG2.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG2_ascii_boundaries.nt \ - ./serd/tests/TurtleTests/LITERAL_LONG2_ascii_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG2_with_1_squote.nt \ - ./serd/tests/TurtleTests/LITERAL_LONG2_with_1_squote.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG2_with_2_squotes.nt \ - ./serd/tests/TurtleTests/LITERAL_LONG2_with_2_squotes.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG2_with_REVERSE_SOLIDUS.nt \ - ./serd/tests/TurtleTests/LITERAL_LONG2_with_REVERSE_SOLIDUS.ttl \ - ./serd/tests/TurtleTests/LITERAL_LONG2_with_UTF8_boundaries.ttl \ - ./serd/tests/TurtleTests/LITERAL_with_UTF8_boundaries.nt \ - ./serd/tests/TurtleTests/README \ - ./serd/tests/TurtleTests/SPARQL_style_base.ttl \ - ./serd/tests/TurtleTests/SPARQL_style_prefix.ttl \ - ./serd/tests/TurtleTests/anonymous_blank_node_object.nt \ - ./serd/tests/TurtleTests/anonymous_blank_node_object.ttl \ - ./serd/tests/TurtleTests/anonymous_blank_node_subject.nt \ - ./serd/tests/TurtleTests/anonymous_blank_node_subject.ttl \ - ./serd/tests/TurtleTests/bareword_a_predicate.nt \ - ./serd/tests/TurtleTests/bareword_a_predicate.ttl \ - ./serd/tests/TurtleTests/bareword_decimal.nt \ - ./serd/tests/TurtleTests/bareword_decimal.ttl \ - ./serd/tests/TurtleTests/bareword_double.nt \ - ./serd/tests/TurtleTests/bareword_double.ttl \ - ./serd/tests/TurtleTests/bareword_integer.ttl \ - ./serd/tests/TurtleTests/blankNodePropertyList_as_object.nt \ - ./serd/tests/TurtleTests/blankNodePropertyList_as_object.ttl \ - ./serd/tests/TurtleTests/blankNodePropertyList_as_subject.nt \ - ./serd/tests/TurtleTests/blankNodePropertyList_as_subject.ttl \ - ./serd/tests/TurtleTests/blankNodePropertyList_containing_collection.nt \ - ./serd/tests/TurtleTests/blankNodePropertyList_containing_collection.ttl \ - ./serd/tests/TurtleTests/blankNodePropertyList_with_multiple_triples.nt \ - ./serd/tests/TurtleTests/blankNodePropertyList_with_multiple_triples.ttl \ - ./serd/tests/TurtleTests/collection_object.nt \ - ./serd/tests/TurtleTests/collection_object.ttl \ - ./serd/tests/TurtleTests/collection_subject.nt \ - ./serd/tests/TurtleTests/collection_subject.ttl \ - ./serd/tests/TurtleTests/comment_following_PNAME_NS.nt \ - ./serd/tests/TurtleTests/comment_following_PNAME_NS.ttl \ - ./serd/tests/TurtleTests/comment_following_localName.ttl \ - ./serd/tests/TurtleTests/default_namespace_IRI.ttl \ - ./serd/tests/TurtleTests/double_lower_case_e.nt \ - ./serd/tests/TurtleTests/double_lower_case_e.ttl \ - ./serd/tests/TurtleTests/empty_collection.nt \ - ./serd/tests/TurtleTests/empty_collection.ttl \ - ./serd/tests/TurtleTests/first.nt \ - ./serd/tests/TurtleTests/first.ttl \ - ./serd/tests/TurtleTests/labeled_blank_node_object.nt \ - ./serd/tests/TurtleTests/labeled_blank_node_object.ttl \ - ./serd/tests/TurtleTests/labeled_blank_node_subject.nt \ - ./serd/tests/TurtleTests/labeled_blank_node_subject.ttl \ - ./serd/tests/TurtleTests/labeled_blank_node_with_PN_CHARS_BASE_character_boundaries.nt \ - ./serd/tests/TurtleTests/labeled_blank_node_with_PN_CHARS_BASE_character_boundaries.ttl \ - ./serd/tests/TurtleTests/labeled_blank_node_with_leading_digit.nt \ - ./serd/tests/TurtleTests/labeled_blank_node_with_leading_digit.ttl \ - ./serd/tests/TurtleTests/labeled_blank_node_with_leading_underscore.nt \ - ./serd/tests/TurtleTests/labeled_blank_node_with_leading_underscore.ttl \ - ./serd/tests/TurtleTests/labeled_blank_node_with_non_leading_extras.nt \ - ./serd/tests/TurtleTests/labeled_blank_node_with_non_leading_extras.ttl \ - ./serd/tests/TurtleTests/langtagged_LONG.ttl \ - ./serd/tests/TurtleTests/langtagged_LONG_with_subtag.nt \ - ./serd/tests/TurtleTests/langtagged_LONG_with_subtag.ttl \ - ./serd/tests/TurtleTests/langtagged_non_LONG.nt \ - ./serd/tests/TurtleTests/langtagged_non_LONG.ttl \ - ./serd/tests/TurtleTests/lantag_with_subtag.nt \ - ./serd/tests/TurtleTests/lantag_with_subtag.ttl \ - ./serd/tests/TurtleTests/last.nt \ - ./serd/tests/TurtleTests/last.ttl \ - ./serd/tests/TurtleTests/literal_false.nt \ - ./serd/tests/TurtleTests/literal_false.ttl \ - ./serd/tests/TurtleTests/literal_true.nt \ - ./serd/tests/TurtleTests/literal_true.ttl \ - ./serd/tests/TurtleTests/literal_with_BACKSPACE.nt \ - ./serd/tests/TurtleTests/literal_with_BACKSPACE.ttl \ - ./serd/tests/TurtleTests/literal_with_CARRIAGE_RETURN.nt \ - ./serd/tests/TurtleTests/literal_with_CARRIAGE_RETURN.ttl \ - ./serd/tests/TurtleTests/literal_with_CHARACTER_TABULATION.nt \ - ./serd/tests/TurtleTests/literal_with_CHARACTER_TABULATION.ttl \ - ./serd/tests/TurtleTests/literal_with_FORM_FEED.nt \ - ./serd/tests/TurtleTests/literal_with_FORM_FEED.ttl \ - ./serd/tests/TurtleTests/literal_with_LINE_FEED.nt \ - ./serd/tests/TurtleTests/literal_with_LINE_FEED.ttl \ - ./serd/tests/TurtleTests/literal_with_REVERSE_SOLIDUS.nt \ - ./serd/tests/TurtleTests/literal_with_REVERSE_SOLIDUS.ttl \ - ./serd/tests/TurtleTests/literal_with_escaped_BACKSPACE.ttl \ - ./serd/tests/TurtleTests/literal_with_escaped_CARRIAGE_RETURN.ttl \ - ./serd/tests/TurtleTests/literal_with_escaped_CHARACTER_TABULATION.ttl \ - ./serd/tests/TurtleTests/literal_with_escaped_FORM_FEED.ttl \ - ./serd/tests/TurtleTests/literal_with_escaped_LINE_FEED.ttl \ - ./serd/tests/TurtleTests/literal_with_numeric_escape4.nt \ - ./serd/tests/TurtleTests/literal_with_numeric_escape4.ttl \ - ./serd/tests/TurtleTests/literal_with_numeric_escape8.ttl \ - ./serd/tests/TurtleTests/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.nt \ - ./serd/tests/TurtleTests/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.ttl \ - ./serd/tests/TurtleTests/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.nt \ - ./serd/tests/TurtleTests/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.ttl \ - ./serd/tests/TurtleTests/localName_with_leading_digit.nt \ - ./serd/tests/TurtleTests/localName_with_leading_digit.ttl \ - ./serd/tests/TurtleTests/localName_with_leading_underscore.nt \ - ./serd/tests/TurtleTests/localName_with_leading_underscore.ttl \ - ./serd/tests/TurtleTests/localName_with_nfc_PN_CHARS_BASE_character_boundaries.nt \ - ./serd/tests/TurtleTests/localName_with_nfc_PN_CHARS_BASE_character_boundaries.ttl \ - ./serd/tests/TurtleTests/localName_with_non_leading_extras.nt \ - ./serd/tests/TurtleTests/localName_with_non_leading_extras.ttl \ - ./serd/tests/TurtleTests/localname_with_COLON.nt \ - ./serd/tests/TurtleTests/localname_with_COLON.ttl \ - ./serd/tests/TurtleTests/manifest.ttl \ - ./serd/tests/TurtleTests/negative_numeric.nt \ - ./serd/tests/TurtleTests/negative_numeric.ttl \ - ./serd/tests/TurtleTests/nested_blankNodePropertyLists.nt \ - ./serd/tests/TurtleTests/nested_blankNodePropertyLists.ttl \ - ./serd/tests/TurtleTests/nested_collection.nt \ - ./serd/tests/TurtleTests/nested_collection.ttl \ - ./serd/tests/TurtleTests/number_sign_following_PNAME_NS.nt \ - ./serd/tests/TurtleTests/number_sign_following_PNAME_NS.ttl \ - ./serd/tests/TurtleTests/number_sign_following_PNAME_NS.ttl.thru \ - ./serd/tests/TurtleTests/number_sign_following_localName.nt \ - ./serd/tests/TurtleTests/number_sign_following_localName.ttl \ - ./serd/tests/TurtleTests/numeric_with_leading_0.nt \ - ./serd/tests/TurtleTests/numeric_with_leading_0.ttl \ - ./serd/tests/TurtleTests/objectList_with_two_objects.nt \ - ./serd/tests/TurtleTests/objectList_with_two_objects.ttl \ - ./serd/tests/TurtleTests/old_style_base.ttl \ - ./serd/tests/TurtleTests/old_style_prefix.ttl \ - ./serd/tests/TurtleTests/percent_escaped_localName.nt \ - ./serd/tests/TurtleTests/percent_escaped_localName.ttl \ - ./serd/tests/TurtleTests/positive_numeric.nt \ - ./serd/tests/TurtleTests/positive_numeric.ttl \ - ./serd/tests/TurtleTests/predicateObjectList_with_two_objectLists.nt \ - ./serd/tests/TurtleTests/predicateObjectList_with_two_objectLists.ttl \ - ./serd/tests/TurtleTests/prefix_only_IRI.ttl \ - ./serd/tests/TurtleTests/prefix_reassigned_and_used.nt \ - ./serd/tests/TurtleTests/prefix_reassigned_and_used.ttl \ - ./serd/tests/TurtleTests/prefix_with_PN_CHARS_BASE_character_boundaries.ttl \ - ./serd/tests/TurtleTests/prefix_with_non_leading_extras.ttl \ - ./serd/tests/TurtleTests/prefixed_IRI_object.ttl \ - ./serd/tests/TurtleTests/prefixed_IRI_predicate.ttl \ - ./serd/tests/TurtleTests/prefixed_name_datatype.ttl \ - ./serd/tests/TurtleTests/repeated_semis_at_end.ttl \ - ./serd/tests/TurtleTests/repeated_semis_not_at_end.nt \ - ./serd/tests/TurtleTests/repeated_semis_not_at_end.ttl \ - ./serd/tests/TurtleTests/reserved_escaped_localName.nt \ - ./serd/tests/TurtleTests/reserved_escaped_localName.ttl \ - ./serd/tests/TurtleTests/reserved_escaped_localName.ttl.thru \ - ./serd/tests/TurtleTests/sole_blankNodePropertyList.nt \ - ./serd/tests/TurtleTests/sole_blankNodePropertyList.ttl \ - ./serd/tests/TurtleTests/turtle-eval-bad-01.ttl \ - ./serd/tests/TurtleTests/turtle-eval-bad-02.ttl \ - ./serd/tests/TurtleTests/turtle-eval-bad-03.ttl \ - ./serd/tests/TurtleTests/turtle-eval-bad-04.ttl \ - ./serd/tests/TurtleTests/turtle-eval-struct-01.nt \ - ./serd/tests/TurtleTests/turtle-eval-struct-01.ttl \ - ./serd/tests/TurtleTests/turtle-eval-struct-02.nt \ - ./serd/tests/TurtleTests/turtle-eval-struct-02.ttl \ - ./serd/tests/TurtleTests/turtle-subm-01.nt \ - ./serd/tests/TurtleTests/turtle-subm-01.ttl \ - ./serd/tests/TurtleTests/turtle-subm-02.nt \ - ./serd/tests/TurtleTests/turtle-subm-02.ttl \ - ./serd/tests/TurtleTests/turtle-subm-03.nt \ - ./serd/tests/TurtleTests/turtle-subm-03.ttl \ - ./serd/tests/TurtleTests/turtle-subm-04.nt \ - ./serd/tests/TurtleTests/turtle-subm-04.ttl \ - ./serd/tests/TurtleTests/turtle-subm-05.nt \ - ./serd/tests/TurtleTests/turtle-subm-05.ttl \ - ./serd/tests/TurtleTests/turtle-subm-06.nt \ - ./serd/tests/TurtleTests/turtle-subm-06.ttl \ - ./serd/tests/TurtleTests/turtle-subm-07.nt \ - ./serd/tests/TurtleTests/turtle-subm-07.ttl \ - ./serd/tests/TurtleTests/turtle-subm-08.nt \ - ./serd/tests/TurtleTests/turtle-subm-08.ttl \ - ./serd/tests/TurtleTests/turtle-subm-09.nt \ - ./serd/tests/TurtleTests/turtle-subm-09.ttl \ - ./serd/tests/TurtleTests/turtle-subm-10.nt \ - ./serd/tests/TurtleTests/turtle-subm-10.ttl \ - ./serd/tests/TurtleTests/turtle-subm-11.nt \ - ./serd/tests/TurtleTests/turtle-subm-11.ttl \ - ./serd/tests/TurtleTests/turtle-subm-12.nt \ - ./serd/tests/TurtleTests/turtle-subm-12.ttl \ - ./serd/tests/TurtleTests/turtle-subm-13.nt \ - ./serd/tests/TurtleTests/turtle-subm-13.ttl \ - ./serd/tests/TurtleTests/turtle-subm-14.nt \ - ./serd/tests/TurtleTests/turtle-subm-14.ttl \ - ./serd/tests/TurtleTests/turtle-subm-15.nt \ - ./serd/tests/TurtleTests/turtle-subm-15.ttl \ - ./serd/tests/TurtleTests/turtle-subm-16.nt \ - ./serd/tests/TurtleTests/turtle-subm-16.ttl \ - ./serd/tests/TurtleTests/turtle-subm-17.nt \ - ./serd/tests/TurtleTests/turtle-subm-17.ttl \ - ./serd/tests/TurtleTests/turtle-subm-18.nt \ - ./serd/tests/TurtleTests/turtle-subm-18.ttl \ - ./serd/tests/TurtleTests/turtle-subm-19.nt \ - ./serd/tests/TurtleTests/turtle-subm-19.ttl \ - ./serd/tests/TurtleTests/turtle-subm-20.nt \ - ./serd/tests/TurtleTests/turtle-subm-20.ttl \ - ./serd/tests/TurtleTests/turtle-subm-21.nt \ - ./serd/tests/TurtleTests/turtle-subm-21.ttl \ - ./serd/tests/TurtleTests/turtle-subm-22.nt \ - ./serd/tests/TurtleTests/turtle-subm-22.ttl \ - ./serd/tests/TurtleTests/turtle-subm-23.nt \ - ./serd/tests/TurtleTests/turtle-subm-23.ttl \ - ./serd/tests/TurtleTests/turtle-subm-24.nt \ - ./serd/tests/TurtleTests/turtle-subm-24.ttl \ - ./serd/tests/TurtleTests/turtle-subm-25.nt \ - ./serd/tests/TurtleTests/turtle-subm-25.ttl \ - ./serd/tests/TurtleTests/turtle-subm-26.nt \ - ./serd/tests/TurtleTests/turtle-subm-26.ttl \ - ./serd/tests/TurtleTests/turtle-subm-27.nt \ - ./serd/tests/TurtleTests/turtle-subm-27.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-LITERAL2_with_langtag_and_datatype.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-base-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-base-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-base-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-blank-label-dot-end.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-esc-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-esc-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-esc-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-esc-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-kw-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-kw-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-kw-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-kw-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-kw-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-lang-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-ln-dash-start.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-ln-escape-start.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-ln-escape.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-missing-ns-dot-end.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-missing-ns-dot-start.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-06.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-07.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-08.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-09.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-10.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-11.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-12.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-n3-extras-13.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-ns-dot-end.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-ns-dot-start.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-num-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-num-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-num-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-num-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-num-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-number-dot-in-anon.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-pname-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-pname-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-pname-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-prefix-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-prefix-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-prefix-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-prefix-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-prefix-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-string-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-string-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-string-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-string-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-string-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-string-06.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-string-07.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-06.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-07.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-08.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-09.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-10.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-11.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-12.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-13.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-14.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-15.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-16.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-struct-17.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-uri-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-uri-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-uri-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-uri-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bad-uri-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-base-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-base-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-base-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-base-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-blank-label.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-06.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-07.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-08.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-09.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-bnode-10.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-datatypes-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-datatypes-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-file-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-file-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-file-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-kw-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-kw-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-kw-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-lists-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-lists-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-lists-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-lists-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-lists-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-ln-colons.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-ln-dots.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-ns-dots.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-06.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-07.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-08.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-09.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-10.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-number-11.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-pname-esc-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-pname-esc-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-pname-esc-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-06.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-07.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-08.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-prefix-09.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-str-esc-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-str-esc-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-str-esc-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-06.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-07.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-08.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-09.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-10.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-string-11.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-struct-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-struct-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-struct-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-struct-04.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-struct-05.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-uri-01.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-uri-02.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-uri-03.ttl \ - ./serd/tests/TurtleTests/turtle-syntax-uri-04.ttl \ - ./serd/tests/TurtleTests/two_LITERAL_LONG2s.nt \ - ./serd/tests/TurtleTests/two_LITERAL_LONG2s.ttl \ - ./serd/tests/TurtleTests/underscore_in_localName.nt \ - ./serd/tests/TurtleTests/underscore_in_localName.ttl \ - ./serd/tests/bad/bad-00.ttl \ - ./serd/tests/bad/bad-01.ttl \ - ./serd/tests/bad/bad-02.ttl \ - ./serd/tests/bad/bad-03.ttl \ - ./serd/tests/bad/bad-04.ttl \ - ./serd/tests/bad/bad-05.ttl \ - ./serd/tests/bad/bad-06.ttl \ - ./serd/tests/bad/bad-07.ttl \ - ./serd/tests/bad/bad-08.ttl \ - ./serd/tests/bad/bad-09.ttl \ - ./serd/tests/bad/bad-10.ttl \ - ./serd/tests/bad/bad-11.ttl \ - ./serd/tests/bad/bad-12.ttl \ - ./serd/tests/bad/bad-13.ttl \ - ./serd/tests/bad/bad-14.ttl \ - ./serd/tests/bad/bad-base.ttl \ - ./serd/tests/bad/bad-blank.ttl \ - ./serd/tests/bad/bad-datatype.ttl \ - ./serd/tests/bad/bad-eof-in-blank.ttl \ - ./serd/tests/bad/bad-eof-in-escape.ttl \ - ./serd/tests/bad/bad-eof-in-lang-suffix.ttl \ - ./serd/tests/bad/bad-eof-in-lang.ttl \ - ./serd/tests/bad/bad-eof-in-list.ttl \ - ./serd/tests/bad/bad-eof-in-object-list.ttl \ - ./serd/tests/bad/bad-eof-in-object-list2.ttl \ - ./serd/tests/bad/bad-eof-in-predicate-list.ttl \ - ./serd/tests/bad/bad-eof-in-string.ttl \ - ./serd/tests/bad/bad-eof-in-triple-quote.ttl \ - ./serd/tests/bad/bad-eof-in-uri.ttl \ - ./serd/tests/bad/bad-escape.ttl \ - ./serd/tests/bad/bad-hex-digit.ttl \ - ./serd/tests/bad/bad-id-clash.ttl \ - ./serd/tests/bad/bad-lang.ttl \ - ./serd/tests/bad/bad-list.ttl \ - ./serd/tests/bad/bad-list2.ttl \ - ./serd/tests/bad/bad-namespace.ttl \ - ./serd/tests/bad/bad-ns.ttl \ - ./serd/tests/bad/bad-num.ttl \ - ./serd/tests/bad/bad-object.ttl \ - ./serd/tests/bad/bad-object2.ttl \ - ./serd/tests/bad/bad-prefix.ttl \ - ./serd/tests/bad/bad-string.ttl \ - ./serd/tests/bad/bad-subject.ttl \ - ./serd/tests/bad/bad-uri-escape.ttl \ - ./serd/tests/bad/bad-verb.ttl \ - ./serd/tests/good/README.txt \ - ./serd/tests/good/UTF-8.nt \ - ./serd/tests/good/UTF-8.ttl \ - ./serd/tests/good/base.nt \ - ./serd/tests/good/base.ttl \ - ./serd/tests/good/manifest.nt \ - ./serd/tests/good/manifest.ttl \ - ./serd/tests/good/rdf-schema.nt \ - ./serd/tests/good/rdf-schema.ttl \ - ./serd/tests/good/rdfs-namespace.nt \ - ./serd/tests/good/rdfs-namespace.ttl \ - ./serd/tests/good/test-00.nt \ - ./serd/tests/good/test-00.ttl \ - ./serd/tests/good/test-01.nt \ - ./serd/tests/good/test-01.ttl \ - ./serd/tests/good/test-02.nt \ - ./serd/tests/good/test-02.ttl \ - ./serd/tests/good/test-03.nt \ - ./serd/tests/good/test-03.ttl \ - ./serd/tests/good/test-04.nt \ - ./serd/tests/good/test-04.ttl \ - ./serd/tests/good/test-05.nt \ - ./serd/tests/good/test-05.ttl \ - ./serd/tests/good/test-06.nt \ - ./serd/tests/good/test-06.ttl \ - ./serd/tests/good/test-07.nt \ - ./serd/tests/good/test-07.ttl \ - ./serd/tests/good/test-08.nt \ - ./serd/tests/good/test-08.ttl \ - ./serd/tests/good/test-09.nt \ - ./serd/tests/good/test-09.ttl \ - ./serd/tests/good/test-10.nt \ - ./serd/tests/good/test-10.ttl \ - ./serd/tests/good/test-11.nt \ - ./serd/tests/good/test-11.ttl \ - ./serd/tests/good/test-12.nt \ - ./serd/tests/good/test-12.ttl \ - ./serd/tests/good/test-13.nt \ - ./serd/tests/good/test-13.ttl \ - ./serd/tests/good/test-14.nt \ - ./serd/tests/good/test-14.ttl \ - ./serd/tests/good/test-15.nt \ - ./serd/tests/good/test-15.ttl \ - ./serd/tests/good/test-16.nt \ - ./serd/tests/good/test-16.ttl \ - ./serd/tests/good/test-17.nt \ - ./serd/tests/good/test-17.ttl \ - ./serd/tests/good/test-18.nt \ - ./serd/tests/good/test-18.ttl \ - ./serd/tests/good/test-19.nt \ - ./serd/tests/good/test-19.ttl \ - ./serd/tests/good/test-20.nt \ - ./serd/tests/good/test-20.ttl \ - ./serd/tests/good/test-21.nt \ - ./serd/tests/good/test-21.ttl \ - ./serd/tests/good/test-22.nt \ - ./serd/tests/good/test-22.ttl \ - ./serd/tests/good/test-23.nt \ - ./serd/tests/good/test-23.ttl \ - ./serd/tests/good/test-24.nt \ - ./serd/tests/good/test-24.ttl \ - ./serd/tests/good/test-25.nt \ - ./serd/tests/good/test-25.ttl \ - ./serd/tests/good/test-26.nt \ - ./serd/tests/good/test-26.ttl \ - ./serd/tests/good/test-27.nt \ - ./serd/tests/good/test-27.ttl \ - ./serd/tests/good/test-30.nt \ - ./serd/tests/good/test-30.ttl \ - ./serd/tests/good/test-backspace.nt \ - ./serd/tests/good/test-backspace.ttl \ - ./serd/tests/good/test-bad-utf8.nt \ - ./serd/tests/good/test-bad-utf8.ttl \ - ./serd/tests/good/test-base-query.nt \ - ./serd/tests/good/test-base-query.ttl \ - ./serd/tests/good/test-blank-cont.nt \ - ./serd/tests/good/test-blank-cont.ttl \ - ./serd/tests/good/test-blank-in-list.nt \ - ./serd/tests/good/test-blank-in-list.ttl \ - ./serd/tests/good/test-bom.nt \ - ./serd/tests/good/test-bom.ttl \ - ./serd/tests/good/test-cr.nt \ - ./serd/tests/good/test-cr.ttl \ - ./serd/tests/good/test-delete.nt \ - ./serd/tests/good/test-delete.ttl \ - ./serd/tests/good/test-digit-start-pname.nt \ - ./serd/tests/good/test-digit-start-pname.ttl \ - ./serd/tests/good/test-eof-at-page-end.nt \ - ./serd/tests/good/test-eof-at-page-end.ttl \ - ./serd/tests/good/test-escapes.nt \ - ./serd/tests/good/test-escapes.ttl \ - ./serd/tests/good/test-id.nt \ - ./serd/tests/good/test-id.ttl \ - ./serd/tests/good/test-lang.nt \ - ./serd/tests/good/test-lang.ttl \ - ./serd/tests/good/test-list-in-blank.nt \ - ./serd/tests/good/test-list-in-blank.ttl \ - ./serd/tests/good/test-list-subject.nt \ - ./serd/tests/good/test-list-subject.ttl \ - ./serd/tests/good/test-list.nt \ - ./serd/tests/good/test-list.ttl \ - ./serd/tests/good/test-long-string.nt \ - ./serd/tests/good/test-long-string.ttl \ - ./serd/tests/good/test-no-spaces.nt \ - ./serd/tests/good/test-no-spaces.ttl \ - ./serd/tests/good/test-num.nt \ - ./serd/tests/good/test-num.ttl \ - ./serd/tests/good/test-out-of-range-unicode.nt \ - ./serd/tests/good/test-out-of-range-unicode.ttl \ - ./serd/tests/good/test-prefix.nt \ - ./serd/tests/good/test-prefix.ttl \ - ./serd/tests/good/test-pretty.nt \ - ./serd/tests/good/test-pretty.ttl \ - ./serd/tests/good/test-rel.nt \ - ./serd/tests/good/test-rel.ttl \ - ./serd/tests/good/test-semi-dot.nt \ - ./serd/tests/good/test-semi-dot.ttl \ - ./serd/tests/good/test-uri-escape.nt \ - ./serd/tests/good/test-uri-escape.ttl \ - ./serd/tests/good/test-uri.nt \ - ./serd/tests/good/test-uri.ttl \ - ./serd/tests/good/test-utf8-uri.nt \ - ./serd/tests/good/test-utf8-uri.ttl \ - ./serd/tests/serd_test.c \ - ./serd/waf \ - ./serd/waflib/Build.py \ - ./serd/waflib/ConfigSet.py \ - ./serd/waflib/Configure.py \ - ./serd/waflib/Context.py \ - ./serd/waflib/Errors.py \ - ./serd/waflib/Logs.py \ - ./serd/waflib/Node.py \ - ./serd/waflib/Options.py \ - ./serd/waflib/Runner.py \ - ./serd/waflib/Scripting.py \ - ./serd/waflib/Task.py \ - ./serd/waflib/TaskGen.py \ - ./serd/waflib/Tools/__init__.py \ - ./serd/waflib/Tools/ar.py \ - ./serd/waflib/Tools/asm.py \ - ./serd/waflib/Tools/bison.py \ - ./serd/waflib/Tools/c.py \ - ./serd/waflib/Tools/c_aliases.py \ - ./serd/waflib/Tools/c_config.py \ - ./serd/waflib/Tools/c_osx.py \ - ./serd/waflib/Tools/c_preproc.py \ - ./serd/waflib/Tools/c_tests.py \ - ./serd/waflib/Tools/ccroot.py \ - ./serd/waflib/Tools/compiler_c.py \ - ./serd/waflib/Tools/compiler_cxx.py \ - ./serd/waflib/Tools/compiler_d.py \ - ./serd/waflib/Tools/compiler_fc.py \ - ./serd/waflib/Tools/cs.py \ - ./serd/waflib/Tools/cxx.py \ - ./serd/waflib/Tools/d.py \ - ./serd/waflib/Tools/d_config.py \ - ./serd/waflib/Tools/d_scan.py \ - ./serd/waflib/Tools/dbus.py \ - ./serd/waflib/Tools/dmd.py \ - ./serd/waflib/Tools/errcheck.py \ - ./serd/waflib/Tools/fc.py \ - ./serd/waflib/Tools/fc_config.py \ - ./serd/waflib/Tools/fc_scan.py \ - ./serd/waflib/Tools/flex.py \ - ./serd/waflib/Tools/g95.py \ - ./serd/waflib/Tools/gas.py \ - ./serd/waflib/Tools/gcc.py \ - ./serd/waflib/Tools/gdc.py \ - ./serd/waflib/Tools/gfortran.py \ - ./serd/waflib/Tools/glib2.py \ - ./serd/waflib/Tools/gnu_dirs.py \ - ./serd/waflib/Tools/gxx.py \ - ./serd/waflib/Tools/icc.py \ - ./serd/waflib/Tools/icpc.py \ - ./serd/waflib/Tools/ifort.py \ - ./serd/waflib/Tools/intltool.py \ - ./serd/waflib/Tools/irixcc.py \ - ./serd/waflib/Tools/javaw.py \ - ./serd/waflib/Tools/kde4.py \ - ./serd/waflib/Tools/ldc2.py \ - ./serd/waflib/Tools/lua.py \ - ./serd/waflib/Tools/msvc.py \ - ./serd/waflib/Tools/nasm.py \ - ./serd/waflib/Tools/perl.py \ - ./serd/waflib/Tools/python.py \ - ./serd/waflib/Tools/qt4.py \ - ./serd/waflib/Tools/ruby.py \ - ./serd/waflib/Tools/suncc.py \ - ./serd/waflib/Tools/suncxx.py \ - ./serd/waflib/Tools/tex.py \ - ./serd/waflib/Tools/vala.py \ - ./serd/waflib/Tools/waf_unit_test.py \ - ./serd/waflib/Tools/winres.py \ - ./serd/waflib/Tools/xlc.py \ - ./serd/waflib/Tools/xlcxx.py \ - ./serd/waflib/Utils.py \ - ./serd/waflib/__init__.py \ - ./serd/waflib/ansiterm.py \ - ./serd/waflib/extras/__init__.py \ - ./serd/waflib/extras/autowaf.py \ - ./serd/waflib/extras/doxygen.py \ - ./serd/waflib/extras/swig.py \ - ./serd/waflib/fixpy2.py \ - ./serd/wscript \ - ./serdnode.patch \ - ./sord/AUTHORS \ - ./sord/COPYING \ - ./sord/INSTALL \ - ./sord/NEWS \ - ./sord/PACKAGING \ - ./sord/README \ - ./sord/doc/layout.xml \ - ./sord/doc/reference.doxygen.in \ - ./sord/doc/sord_validate.1 \ - ./sord/doc/sordi.1 \ - ./sord/doc/style.css \ - ./sord/sord-0.12.2.tar.bz2.sig \ - ./sord/sord.pc.in \ - ./sord/sord/sord.h \ - ./sord/sord/sordmm.hpp \ - ./sord/src/sord.c \ - ./sord/src/sord_internal.h \ - ./sord/src/sord_test.c \ - ./sord/src/sord_validate.c \ - ./sord/src/sordi.c \ - ./sord/src/sordmm_test.cpp \ - ./sord/src/syntax.c \ - ./sord/src/zix/common.h \ - ./sord/src/zix/digest.c \ - ./sord/src/zix/digest.h \ - ./sord/src/zix/hash.c \ - ./sord/src/zix/hash.h \ - ./sord/src/zix/tree.c \ - ./sord/src/zix/tree.h \ - ./sord/tests/README.txt \ - ./sord/tests/UTF-8.ttl \ - ./sord/tests/manifest.ttl \ - ./sord/tests/rdf-schema.out \ - ./sord/tests/rdf-schema.ttl \ - ./sord/tests/rdfq-results.out \ - ./sord/tests/rdfq-results.ttl \ - ./sord/tests/rdfs-namespace.out \ - ./sord/tests/rdfs-namespace.ttl \ - ./sord/tests/test-00.out \ - ./sord/tests/test-00.ttl \ - ./sord/tests/test-01.out \ - ./sord/tests/test-01.ttl \ - ./sord/tests/test-02.out \ - ./sord/tests/test-02.ttl \ - ./sord/tests/test-03.out \ - ./sord/tests/test-03.ttl \ - ./sord/tests/test-04.out \ - ./sord/tests/test-04.ttl \ - ./sord/tests/test-05.out \ - ./sord/tests/test-05.ttl \ - ./sord/tests/test-06.out \ - ./sord/tests/test-06.ttl \ - ./sord/tests/test-07.out \ - ./sord/tests/test-07.ttl \ - ./sord/tests/test-08.out \ - ./sord/tests/test-08.ttl \ - ./sord/tests/test-09.out \ - ./sord/tests/test-09.ttl \ - ./sord/tests/test-10.out \ - ./sord/tests/test-10.ttl \ - ./sord/tests/test-11.out \ - ./sord/tests/test-11.ttl \ - ./sord/tests/test-12.out \ - ./sord/tests/test-12.ttl \ - ./sord/tests/test-13.out \ - ./sord/tests/test-13.ttl \ - ./sord/tests/test-14.out \ - ./sord/tests/test-14.ttl \ - ./sord/tests/test-15.out \ - ./sord/tests/test-15.ttl \ - ./sord/tests/test-16.out \ - ./sord/tests/test-16.ttl \ - ./sord/tests/test-17.out \ - ./sord/tests/test-17.ttl \ - ./sord/tests/test-18.out \ - ./sord/tests/test-18.ttl \ - ./sord/tests/test-19.out \ - ./sord/tests/test-19.ttl \ - ./sord/tests/test-20.out \ - ./sord/tests/test-20.ttl \ - ./sord/tests/test-21.out \ - ./sord/tests/test-21.ttl \ - ./sord/tests/test-22.out \ - ./sord/tests/test-22.ttl \ - ./sord/tests/test-23.out \ - ./sord/tests/test-23.ttl \ - ./sord/tests/test-24.out \ - ./sord/tests/test-24.ttl \ - ./sord/tests/test-25.out \ - ./sord/tests/test-25.ttl \ - ./sord/tests/test-26.out \ - ./sord/tests/test-26.ttl \ - ./sord/tests/test-27.out \ - ./sord/tests/test-27.ttl \ - ./sord/tests/test-30.out \ - ./sord/tests/test-30.ttl \ - ./sord/tests/test-id.out \ - ./sord/tests/test-id.ttl \ - ./sord/tests/test-lang.out \ - ./sord/tests/test-lang.ttl \ - ./sord/tests/test-num.out \ - ./sord/tests/test-num.ttl \ - ./sord/waf \ - ./sord/waflib/Build.py \ - ./sord/waflib/ConfigSet.py \ - ./sord/waflib/Configure.py \ - ./sord/waflib/Context.py \ - ./sord/waflib/Errors.py \ - ./sord/waflib/Logs.py \ - ./sord/waflib/Node.py \ - ./sord/waflib/Options.py \ - ./sord/waflib/Runner.py \ - ./sord/waflib/Scripting.py \ - ./sord/waflib/Task.py \ - ./sord/waflib/TaskGen.py \ - ./sord/waflib/Tools/__init__.py \ - ./sord/waflib/Tools/ar.py \ - ./sord/waflib/Tools/asm.py \ - ./sord/waflib/Tools/bison.py \ - ./sord/waflib/Tools/c.py \ - ./sord/waflib/Tools/c_aliases.py \ - ./sord/waflib/Tools/c_config.py \ - ./sord/waflib/Tools/c_osx.py \ - ./sord/waflib/Tools/c_preproc.py \ - ./sord/waflib/Tools/c_tests.py \ - ./sord/waflib/Tools/ccroot.py \ - ./sord/waflib/Tools/compiler_c.py \ - ./sord/waflib/Tools/compiler_cxx.py \ - ./sord/waflib/Tools/compiler_d.py \ - ./sord/waflib/Tools/compiler_fc.py \ - ./sord/waflib/Tools/cs.py \ - ./sord/waflib/Tools/cxx.py \ - ./sord/waflib/Tools/d.py \ - ./sord/waflib/Tools/d_config.py \ - ./sord/waflib/Tools/d_scan.py \ - ./sord/waflib/Tools/dbus.py \ - ./sord/waflib/Tools/dmd.py \ - ./sord/waflib/Tools/errcheck.py \ - ./sord/waflib/Tools/fc.py \ - ./sord/waflib/Tools/fc_config.py \ - ./sord/waflib/Tools/fc_scan.py \ - ./sord/waflib/Tools/flex.py \ - ./sord/waflib/Tools/g95.py \ - ./sord/waflib/Tools/gas.py \ - ./sord/waflib/Tools/gcc.py \ - ./sord/waflib/Tools/gdc.py \ - ./sord/waflib/Tools/gfortran.py \ - ./sord/waflib/Tools/glib2.py \ - ./sord/waflib/Tools/gnu_dirs.py \ - ./sord/waflib/Tools/gxx.py \ - ./sord/waflib/Tools/icc.py \ - ./sord/waflib/Tools/icpc.py \ - ./sord/waflib/Tools/ifort.py \ - ./sord/waflib/Tools/intltool.py \ - ./sord/waflib/Tools/irixcc.py \ - ./sord/waflib/Tools/javaw.py \ - ./sord/waflib/Tools/kde4.py \ - ./sord/waflib/Tools/ldc2.py \ - ./sord/waflib/Tools/lua.py \ - ./sord/waflib/Tools/msvc.py \ - ./sord/waflib/Tools/nasm.py \ - ./sord/waflib/Tools/perl.py \ - ./sord/waflib/Tools/python.py \ - ./sord/waflib/Tools/qt4.py \ - ./sord/waflib/Tools/ruby.py \ - ./sord/waflib/Tools/suncc.py \ - ./sord/waflib/Tools/suncxx.py \ - ./sord/waflib/Tools/tex.py \ - ./sord/waflib/Tools/vala.py \ - ./sord/waflib/Tools/waf_unit_test.py \ - ./sord/waflib/Tools/winres.py \ - ./sord/waflib/Tools/xlc.py \ - ./sord/waflib/Tools/xlcxx.py \ - ./sord/waflib/Utils.py \ - ./sord/waflib/__init__.py \ - ./sord/waflib/ansiterm.py \ - ./sord/waflib/extras/__init__.py \ - ./sord/waflib/extras/autowaf.py \ - ./sord/waflib/extras/doxygen.py \ - ./sord/waflib/extras/swig.py \ - ./sord/waflib/fixpy2.py \ - ./sord/wscript \ - ./sratom/COPYING \ - ./sratom/NEWS \ - ./sratom/README \ - ./sratom/doc/layout.xml \ - ./sratom/doc/reference.doxygen.in \ - ./sratom/doc/style.css \ - ./sratom/sratom.pc.in \ - ./sratom/sratom/sratom.h \ - ./sratom/src/sratom.c \ - ./sratom/tests/sratom_test.c \ - ./sratom/waf \ - ./sratom/waflib/Build.py \ - ./sratom/waflib/ConfigSet.py \ - ./sratom/waflib/Configure.py \ - ./sratom/waflib/Context.py \ - ./sratom/waflib/Errors.py \ - ./sratom/waflib/Logs.py \ - ./sratom/waflib/Node.py \ - ./sratom/waflib/Options.py \ - ./sratom/waflib/Runner.py \ - ./sratom/waflib/Scripting.py \ - ./sratom/waflib/Task.py \ - ./sratom/waflib/TaskGen.py \ - ./sratom/waflib/Tools/__init__.py \ - ./sratom/waflib/Tools/ar.py \ - ./sratom/waflib/Tools/asm.py \ - ./sratom/waflib/Tools/bison.py \ - ./sratom/waflib/Tools/c.py \ - ./sratom/waflib/Tools/c_aliases.py \ - ./sratom/waflib/Tools/c_config.py \ - ./sratom/waflib/Tools/c_osx.py \ - ./sratom/waflib/Tools/c_preproc.py \ - ./sratom/waflib/Tools/c_tests.py \ - ./sratom/waflib/Tools/ccroot.py \ - ./sratom/waflib/Tools/compiler_c.py \ - ./sratom/waflib/Tools/compiler_cxx.py \ - ./sratom/waflib/Tools/compiler_d.py \ - ./sratom/waflib/Tools/compiler_fc.py \ - ./sratom/waflib/Tools/cs.py \ - ./sratom/waflib/Tools/cxx.py \ - ./sratom/waflib/Tools/d.py \ - ./sratom/waflib/Tools/d_config.py \ - ./sratom/waflib/Tools/d_scan.py \ - ./sratom/waflib/Tools/dbus.py \ - ./sratom/waflib/Tools/dmd.py \ - ./sratom/waflib/Tools/errcheck.py \ - ./sratom/waflib/Tools/fc.py \ - ./sratom/waflib/Tools/fc_config.py \ - ./sratom/waflib/Tools/fc_scan.py \ - ./sratom/waflib/Tools/flex.py \ - ./sratom/waflib/Tools/g95.py \ - ./sratom/waflib/Tools/gas.py \ - ./sratom/waflib/Tools/gcc.py \ - ./sratom/waflib/Tools/gdc.py \ - ./sratom/waflib/Tools/gfortran.py \ - ./sratom/waflib/Tools/glib2.py \ - ./sratom/waflib/Tools/gnu_dirs.py \ - ./sratom/waflib/Tools/gxx.py \ - ./sratom/waflib/Tools/icc.py \ - ./sratom/waflib/Tools/icpc.py \ - ./sratom/waflib/Tools/ifort.py \ - ./sratom/waflib/Tools/intltool.py \ - ./sratom/waflib/Tools/irixcc.py \ - ./sratom/waflib/Tools/javaw.py \ - ./sratom/waflib/Tools/kde4.py \ - ./sratom/waflib/Tools/ldc2.py \ - ./sratom/waflib/Tools/lua.py \ - ./sratom/waflib/Tools/msvc.py \ - ./sratom/waflib/Tools/nasm.py \ - ./sratom/waflib/Tools/perl.py \ - ./sratom/waflib/Tools/python.py \ - ./sratom/waflib/Tools/qt4.py \ - ./sratom/waflib/Tools/ruby.py \ - ./sratom/waflib/Tools/suncc.py \ - ./sratom/waflib/Tools/suncxx.py \ - ./sratom/waflib/Tools/tex.py \ - ./sratom/waflib/Tools/vala.py \ - ./sratom/waflib/Tools/waf_unit_test.py \ - ./sratom/waflib/Tools/winres.py \ - ./sratom/waflib/Tools/xlc.py \ - ./sratom/waflib/Tools/xlcxx.py \ - ./sratom/waflib/Utils.py \ - ./sratom/waflib/__init__.py \ - ./sratom/waflib/ansiterm.py \ - ./sratom/waflib/extras/__init__.py \ - ./sratom/waflib/extras/autowaf.py \ - ./sratom/waflib/extras/doxygen.py \ - ./sratom/waflib/extras/swig.py \ - ./sratom/waflib/fixpy2.py \ - ./sratom/wscript \ - ./suil/AUTHORS \ - ./suil/COPYING \ - ./suil/INSTALL \ - ./suil/NEWS \ - ./suil/PACKAGING \ - ./suil/README \ - ./suil/doc/layout.xml \ - ./suil/doc/reference.doxygen.in \ - ./suil/doc/style.css \ - ./suil/multi_qt.diff \ - ./suil/src/gtk2_in_qt4.cpp \ - ./suil/src/host.c \ - ./suil/src/qt4_in_gtk2.cpp \ - ./suil/src/suil_instance.c \ - ./suil/src/suil_internal.h \ - ./suil/src/win_in_gtk2.cpp \ - ./suil/src/x11_in_gtk2.c \ - ./suil/src/x11_in_qt4.cpp \ - ./suil/suil.pc.in \ - ./suil/suil/suil.h \ - ./suil/waf \ - ./suil/waflib/Build.py \ - ./suil/waflib/ConfigSet.py \ - ./suil/waflib/Configure.py \ - ./suil/waflib/Context.py \ - ./suil/waflib/Errors.py \ - ./suil/waflib/Logs.py \ - ./suil/waflib/Node.py \ - ./suil/waflib/Options.py \ - ./suil/waflib/Runner.py \ - ./suil/waflib/Scripting.py \ - ./suil/waflib/Task.py \ - ./suil/waflib/TaskGen.py \ - ./suil/waflib/Tools/__init__.py \ - ./suil/waflib/Tools/ar.py \ - ./suil/waflib/Tools/asm.py \ - ./suil/waflib/Tools/bison.py \ - ./suil/waflib/Tools/c.py \ - ./suil/waflib/Tools/c_aliases.py \ - ./suil/waflib/Tools/c_config.py \ - ./suil/waflib/Tools/c_osx.py \ - ./suil/waflib/Tools/c_preproc.py \ - ./suil/waflib/Tools/c_tests.py \ - ./suil/waflib/Tools/ccroot.py \ - ./suil/waflib/Tools/compiler_c.py \ - ./suil/waflib/Tools/compiler_cxx.py \ - ./suil/waflib/Tools/compiler_d.py \ - ./suil/waflib/Tools/compiler_fc.py \ - ./suil/waflib/Tools/cs.py \ - ./suil/waflib/Tools/cxx.py \ - ./suil/waflib/Tools/d.py \ - ./suil/waflib/Tools/d_config.py \ - ./suil/waflib/Tools/d_scan.py \ - ./suil/waflib/Tools/dbus.py \ - ./suil/waflib/Tools/dmd.py \ - ./suil/waflib/Tools/errcheck.py \ - ./suil/waflib/Tools/fc.py \ - ./suil/waflib/Tools/fc_config.py \ - ./suil/waflib/Tools/fc_scan.py \ - ./suil/waflib/Tools/flex.py \ - ./suil/waflib/Tools/g95.py \ - ./suil/waflib/Tools/gas.py \ - ./suil/waflib/Tools/gcc.py \ - ./suil/waflib/Tools/gdc.py \ - ./suil/waflib/Tools/gfortran.py \ - ./suil/waflib/Tools/glib2.py \ - ./suil/waflib/Tools/gnu_dirs.py \ - ./suil/waflib/Tools/gxx.py \ - ./suil/waflib/Tools/icc.py \ - ./suil/waflib/Tools/icpc.py \ - ./suil/waflib/Tools/ifort.py \ - ./suil/waflib/Tools/intltool.py \ - ./suil/waflib/Tools/irixcc.py \ - ./suil/waflib/Tools/javaw.py \ - ./suil/waflib/Tools/kde4.py \ - ./suil/waflib/Tools/ldc2.py \ - ./suil/waflib/Tools/lua.py \ - ./suil/waflib/Tools/msvc.py \ - ./suil/waflib/Tools/nasm.py \ - ./suil/waflib/Tools/perl.py \ - ./suil/waflib/Tools/python.py \ - ./suil/waflib/Tools/qt4.py \ - ./suil/waflib/Tools/ruby.py \ - ./suil/waflib/Tools/suncc.py \ - ./suil/waflib/Tools/suncxx.py \ - ./suil/waflib/Tools/tex.py \ - ./suil/waflib/Tools/vala.py \ - ./suil/waflib/Tools/waf_unit_test.py \ - ./suil/waflib/Tools/winres.py \ - ./suil/waflib/Tools/xlc.py \ - ./suil/waflib/Tools/xlcxx.py \ - ./suil/waflib/Utils.py \ - ./suil/waflib/__init__.py \ - ./suil/waflib/ansiterm.py \ - ./suil/waflib/extras/__init__.py \ - ./suil/waflib/extras/autowaf.py \ - ./suil/waflib/extras/doxygen.py \ - ./suil/waflib/extras/swig.py \ - ./suil/waflib/fixpy2.py \ - ./suil/wscript \ - ./unpack-waf \ - ./usegetprocaddress.patch \ - ./windows/lilv_config.h \ - ./windows/serd_config.h \ - ./windows/sord_config.h \ - ./windows/sratom_config.h \ - ./windows/suil_config.h \ - $(NULL) +EXTRA_DIST = $(shell find -type f) distdir: $(EXTRA_DIST) @for file in $^; do \ diff --git a/lib-src/lv2/build b/lib-src/lv2/build deleted file mode 100755 index 3ef13a095..000000000 --- a/lib-src/lv2/build +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -srcdir=. -while [ $# -gt 0 ] -do - if [[ "$1" =~ --srcdir=.* ]] - then - srcdir=${1#*=} - break - fi - shift -done - -function waf -{ - pkg=$1 - pushd >/dev/null ${pkg} - shift - $(which python python2 | tail -1) waf --prefix="." --include="." $@ build || exit 1 - popd >/dev/null - - . .buildvars - - if [ -e ${pkg}/build/*.a ] - then - mkdir -p obj - pushd obj - ar vx ../${pkg}/build/*.a - ar vq ../liblv2.a * - popd - rm -rf obj - fi -} - -[ -e liblv2.a ] && exit 0 - -waf lv2 --no-plugins -waf serd --static --no-shared --no-utils -waf sord --static --no-shared --no-utils -waf sratom --static --no-shared -waf lilv --static --no-shared --no-utils -waf suil --static --no-shared --no-qt - -exit 0 diff --git a/lib-src/lv2/configure b/lib-src/lv2/configure index 05ddb59cd..86288835d 100755 --- a/lib-src/lv2/configure +++ b/lib-src/lv2/configure @@ -1,13 +1,30 @@ #!/bin/bash +# Search for python +python=$(which python python2 python3 | tail -1) + +# Define the target build directory +prefix=$(pwd)/build + +bypass= +clean= + srcdir=. while [ $# -gt 0 ] do - if [[ "$1" =~ --srcdir=.* ]] - then - srcdir=${1#*=} - break - fi + case "${1}" in + --srcdir=*) + srcdir=${1#*=} + ;; + + --build) + bypass=":" + ;; + + --clean) + clean="yes" + ;; + esac shift done @@ -15,75 +32,55 @@ function waf { pkg="$1" shift + mkdir -p ${pkg} pushd >/dev/null ${pkg} - if [ ! -e "waflib" ] + if [ ! -e "waf" ] then - cp -a "../${srcdir}/${pkg}"/waflib . + cp -pr "../${srcdir}/${pkg}"/{waf,waflib} . fi for f in "../${srcdir}/${pkg}"/* do - if [ ! -e "${f##*/}" ] - then - ln -s "${f}" - fi + [ ! -e "${f##*/}" ] && ln -s "${f}" done - $(which python python2 | tail -1) waf --prefix="." --include="." $@ configure || exit 1 - popd >/dev/null + export PKG_CONFIG_PATH="${prefix}/lib/pkgconfig" + export LDFLAGS="${LDFLAGS} -ldl -lm" - if [ "${pkg}" == "lv2" ] + common="--prefix=${prefix} --out=build --destdir=/" + + if [ "${clean}" = "yes" ] then - eval $(sed -e '/^VERSION/!d;s/ //g;s/.*VERSION/version/' ${pkg}/wscript) - major="" - lib="" + ${python} waf clean ${common} || exit 1 else - eval $(sed -e '/^[A-Z]*_VERSION/!d;s/ //g;s/.*VERSION/version/' ${pkg}/wscript) - major="-${version%%.*}" - lib="-l${pkg}${major}" + ${bypass} ${python} waf configure ${common} $@ || exit 1 + + trap "rm -f .build-timestamp" EXIT + touch .build-timestamp + + ${python} waf build ${common} $@ || exit 1 + if [ -n "$(find . -newer .build-timestamp -type f ! -name compile_commands.json)" ] + then + ${python} waf install ${common} $@ || exit 1 + fi + + rm .build-timestamp + trap - EXIT fi - cat <${pkg}/build/${pkg}${major}.pc -prefix=$(pwd)/${pkg} -exec_prefix=\${prefix} -libdir=\${exec_prefix}/lib -includedir=. - -Name: ${pkg} -Version: ${version} -Description: Temporary fake config file -Libs: -L\${libdir} ${lib} -ldl -lm -Cflags: -I\${includedir}/${pkg}${major} -EOF - - export PKG_CONFIG_PATH="$(pwd)/${pkg}/build:${PKG_CONFIG_PATH}" - export CFLAGS="-I$(pwd)/${pkg} -I$(pwd)/${pkg}/build ${CFLAGS}" - export LDFLAGS="-L$(pwd)/${pkg}/build ${lib} ${LDFLAGS}" - - ln -s ../${pkg}/${pkg} include + popd >/dev/null } -rm -rf include -mkdir -p include - [ ! -e Makefile ] && ln -s "${srcdir}/Makefile" -[ ! -e build ] && ln -s "${srcdir}/build" -echo >srcdir.mk "srcdir = ${srcdir}" +[ ! -e configure ] && ln -s "${srcdir}/configure" -waf lv2 --no-plugins -waf serd --static --no-shared --no-utils -waf sord --static --no-shared --no-utils -waf sratom --static --no-shared -waf lilv --static --no-shared --no-utils -waf suil --static --no-shared --no-qt -sed -i'' -e "s@suil/lib/suil-0@suil/build@" suil/build/suil_config.h - -cat >.buildvars < -+ -+ Permission to use, copy, modify, and/or distribute this software for any -+ purpose with or without fee is hereby granted, provided that the above -+ copyright notice and this permission notice appear in all copies. -+ -+ THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+*/ -+ -+#include "serd_internal.h" -+ -+#include -+#include -+ -+#include -+#include -+ -+#ifdef _WIN32 -+# define isnan(x) _isnan(x) -+# define isinf(x) (!_finite(x)) -+#endif -+ -+SERD_API -+SerdNode -+serd_node_from_string(SerdType type, const uint8_t* buf) -+{ -+ if (!buf) { -+ return SERD_NODE_NULL; -+ } -+ -+ uint32_t flags = 0; -+ size_t buf_n_bytes = 0; -+ const size_t buf_n_chars = serd_strlen(buf, &buf_n_bytes, &flags); -+ SerdNode ret = { buf, buf_n_bytes, buf_n_chars, flags, type }; -+ return ret; -+} -+ -+SERD_API -+SerdNode -+serd_node_copy(const SerdNode* node) -+{ -+ if (!node || !node->buf) { -+ return SERD_NODE_NULL; -+ } -+ -+ SerdNode copy = *node; -+ uint8_t* buf = (uint8_t*)malloc(copy.n_bytes + 1); -+ memcpy(buf, node->buf, copy.n_bytes + 1); -+ copy.buf = buf; -+ return copy; -+} -+ -+SERD_API -+bool -+serd_node_equals(const SerdNode* a, const SerdNode* b) -+{ -+ return (a == b) -+ || (a->type == b->type -+ && a->n_bytes == b->n_bytes -+ && a->n_chars == b->n_chars -+ && ((a->buf == b->buf) || !memcmp((const char*)a->buf, -+ (const char*)b->buf, -+ a->n_bytes + 1))); -+} -+ -+static size_t -+serd_uri_string_length(const SerdURI* uri) -+{ -+ size_t len = uri->path_base.len; -+ -+#define ADD_LEN(field, n_delims) \ -+ if ((field).len) { len += (field).len + (n_delims); } -+ -+ ADD_LEN(uri->path, 1); // + possible leading `/' -+ ADD_LEN(uri->scheme, 1); // + trailing `:' -+ ADD_LEN(uri->authority, 2); // + leading `//' -+ ADD_LEN(uri->query, 1); // + leading `?' -+ ADD_LEN(uri->fragment, 1); // + leading `#' -+ -+ return len + 2; // + 2 for authority `//' -+} -+ -+static size_t -+string_sink(const void* buf, size_t len, void* stream) -+{ -+ uint8_t** ptr = (uint8_t**)stream; -+ memcpy(*ptr, buf, len); -+ *ptr += len; -+ return len; -+} -+ -+SERD_API -+SerdNode -+serd_node_new_uri_from_node(const SerdNode* uri_node, -+ const SerdURI* base, -+ SerdURI* out) -+{ -+ return (uri_node->type == SERD_URI) -+ ? serd_node_new_uri_from_string(uri_node->buf, base, out) -+ : SERD_NODE_NULL; -+} -+ -+SERD_API -+SerdNode -+serd_node_new_uri_from_string(const uint8_t* str, -+ const SerdURI* base, -+ SerdURI* out) -+{ -+ if (!str || str[0] == '\0') { -+ return serd_node_new_uri(base, NULL, out); // Empty URI => Base URI -+ } -+ SerdURI uri; -+ serd_uri_parse(str, &uri); -+ return serd_node_new_uri(&uri, base, out); // Resolve/Serialise -+} -+ -+static inline bool -+is_uri_path_char(const uint8_t c) -+{ -+ if (is_alpha(c) || is_digit(c)) { -+ return true; -+ } -+ switch (c) { -+ case '-': case '.': case '_': case '~': // unreserved -+ case ':': case '@': // pchar -+ case '/': // separator -+ // sub-delims -+ case '!': case '$': case '&': case '\'': case '(': case ')': -+ case '*': case '+': case ',': case ';': case '=': -+ return true; -+ default: -+ return false; -+ } -+} -+ -+SERD_API -+SerdNode -+serd_node_new_file_uri(const uint8_t* path, -+ const uint8_t* hostname, -+ SerdURI* out, -+ bool escape) -+{ -+ const size_t path_len = strlen((const char*)path); -+ const size_t hostname_len = hostname ? strlen((const char*)hostname) : 0; -+ const bool evil = is_windows_path(path); -+ size_t uri_len = 0; -+ uint8_t* uri = NULL; -+ -+ if (path[0] == '/' || is_windows_path(path)) { -+ uri_len = strlen("file://") + hostname_len + evil; -+ uri = (uint8_t*)malloc(uri_len + 1); -+ snprintf((char*)uri, uri_len + 1, "file://%s%s", -+ hostname ? (const char*)hostname : "", -+ evil ? "/" : ""); -+ } -+ -+ SerdChunk chunk = { uri, uri_len }; -+ for (size_t i = 0; i < path_len; ++i) { -+ if (evil && path[i] == '\\') { -+ serd_chunk_sink("/", 1, &chunk); -+ } else if (path[i] == '%') { -+ serd_chunk_sink("%%", 2, &chunk); -+ } else if (!escape || is_uri_path_char(path[i])) { -+ serd_chunk_sink(path + i, 1, &chunk); -+ } else { -+ char escape_str[4] = { '%', 0, 0, 0 }; -+ snprintf(escape_str + 1, sizeof(escape_str) - 1, "%X", path[i]); -+ serd_chunk_sink(escape_str, 3, &chunk); -+ } -+ } -+ serd_chunk_sink_finish(&chunk); -+ -+ if (out) { -+ serd_uri_parse(chunk.buf, out); -+ } -+ -+ return serd_node_from_string(SERD_URI, chunk.buf); -+} -+ -+SERD_API -+SerdNode -+serd_node_new_uri(const SerdURI* uri, const SerdURI* base, SerdURI* out) -+{ -+ SerdURI abs_uri = *uri; -+ if (base) { -+ serd_uri_resolve(uri, base, &abs_uri); -+ } -+ -+ const size_t len = serd_uri_string_length(&abs_uri); -+ uint8_t* buf = (uint8_t*)malloc(len + 1); -+ -+ SerdNode node = { buf, len, len, 0, SERD_URI }; // FIXME: UTF-8 -+ -+ uint8_t* ptr = buf; -+ const size_t actual_len = serd_uri_serialise(&abs_uri, string_sink, &ptr); -+ -+ buf[actual_len] = '\0'; -+ node.n_bytes = actual_len; -+ node.n_chars = actual_len; -+ -+ if (out) { -+ serd_uri_parse(buf, out); // TODO: cleverly avoid double parse -+ } -+ -+ return node; -+} -+ -+SERD_API -+SerdNode -+serd_node_new_decimal(double d, unsigned frac_digits) -+{ -+ if (isnan(d) || isinf(d)) { -+ return SERD_NODE_NULL; -+ } -+ -+ const double abs_d = fabs(d); -+ const unsigned int_digits = (unsigned)fmax(1.0, ceil(log10(abs_d + 1))); -+ char* buf = (char*)calloc(int_digits + frac_digits + 3, 1); -+ SerdNode node = { (const uint8_t*)buf, 0, 0, 0, SERD_LITERAL }; -+ const double int_part = floor(abs_d); -+ -+ // Point s to decimal point location -+ char* s = buf + int_digits; -+ if (d < 0.0) { -+ *buf = '-'; -+ ++s; -+ } -+ -+ // Write integer part (right to left) -+ char* t = s - 1; -+ uint64_t dec = (uint64_t)int_part; -+ do { -+ *t-- = '0' + (dec % 10); -+ } while ((dec /= 10) > 0); -+ -+ *s++ = '.'; -+ -+ // Write fractional part (right to left) -+ double frac_part = fabs(d - int_part); -+ if (frac_part < DBL_EPSILON) { -+ *s++ = '0'; -+ node.n_bytes = node.n_chars = (s - buf); -+ } else { -+ uint64_t frac = frac_part * pow(10.0, (int)frac_digits) + 0.5; -+ s += frac_digits - 1; -+ unsigned i = 0; -+ -+ // Skip trailing zeros -+ for (; i < frac_digits - 1 && !(frac % 10); ++i, --s, frac /= 10) {} -+ -+ node.n_bytes = node.n_chars = (s - buf) + 1; -+ -+ // Write digits from last trailing zero to decimal point -+ for (; i < frac_digits; ++i) { -+ *s-- = '0' + (frac % 10); -+ frac /= 10; -+ } -+ } -+ -+ return node; -+} -+ -+SERD_API -+SerdNode -+serd_node_new_integer(int64_t i) -+{ -+ int64_t abs_i = (i < 0) ? -i : i; -+ const unsigned digits = fmax(1.0, ceil(log10((double)abs_i + 1))); -+ char* buf = (char*)calloc(digits + 2, 1); -+ SerdNode node = { (const uint8_t*)buf, 0, 0, 0, SERD_LITERAL }; -+ -+ // Point s to the end -+ char* s = buf + digits - 1; -+ if (i < 0) { -+ *buf = '-'; -+ ++s; -+ } -+ -+ node.n_bytes = node.n_chars = (s - buf) + 1; -+ -+ // Write integer part (right to left) -+ do { -+ *s-- = '0' + (abs_i % 10); -+ } while ((abs_i /= 10) > 0); -+ -+ return node; -+} -+ -+/** -+ Base64 encoding table. -+ @see RFC3986 S3. -+*/ -+static const uint8_t b64_map[] = -+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -+ -+/** -+ Encode 3 raw bytes to 4 base64 characters. -+*/ -+static inline void -+encode_chunk(uint8_t out[4], const uint8_t in[3], size_t n_in) -+{ -+ out[0] = b64_map[in[0] >> 2]; -+ out[1] = b64_map[((in[0] & 0x03) << 4) | ((in[1] & 0xF0) >> 4)]; -+ out[2] = ((n_in > 1) -+ ? (b64_map[((in[1] & 0x0F) << 2) | ((in[2] & 0xC0) >> 6)]) -+ : (uint8_t)'='); -+ out[3] = ((n_in > 2) ? b64_map[in[2] & 0x3F] : (uint8_t)'='); -+} -+ -+SERD_API -+SerdNode -+serd_node_new_blob(const void* buf, size_t size, bool wrap_lines) -+{ -+ const size_t len = ((size + 2) / 3) * 4 + (wrap_lines ? (size / 57) : 0); -+ uint8_t* str = (uint8_t*)calloc(1, len + 2); -+ SerdNode node = { str, len, len, 0, SERD_LITERAL }; -+ for (size_t i = 0, j = 0; i < size; i += 3, j += 4) { -+ uint8_t in[4] = { 0, 0, 0, 0 }; -+ size_t n_in = MIN(3, size - i); -+ memcpy(in, (const uint8_t*)buf + i, n_in); -+ -+ if (wrap_lines && i > 0 && (i % 57) == 0) { -+ str[j++] = '\n'; -+ node.flags |= SERD_HAS_NEWLINE; -+ } -+ -+ encode_chunk(str + j, in, n_in); -+ } -+ return node; -+} -+ -+SERD_API -+void -+serd_node_free(SerdNode* node) -+{ -+ if (node->buf) { -+ free((uint8_t*)node->buf); -+ node->buf = NULL; -+ } -+} diff --git a/lib-src/lv2/unpack-waf b/lib-src/lv2/unpack-waf index f9913186a..965bd486d 100755 --- a/lib-src/lv2/unpack-waf +++ b/lib-src/lv2/unpack-waf @@ -1,15 +1,20 @@ #!/bin/sh set -e -for dir in $(find . -type f -name waf); do - pushd "${dir%/*}" - ./waf --help > /dev/null - mv .waf-*/* . - sed -i '/^#==>$/,$d' waf - rmdir .waf-* - find waflib -name "*.pyc" -delete - popd +for waf in $(find . -type f -name waf); do + if grep -q '^#==>$' "${waf}" + then + pushd "${waf%/*}" + python3 ./waf --help > /dev/null + if [ -e .waf* ] + then + mv .waf*/* . + sed -i '/^#==>$/,$d' waf + rmdir .waf* + fi + find waflib -name "*.pyc" -o -name "__pycache__" | xargs rm -rf + popd + fi done -#find . -name waf | xargs svn propset svn:mime-type "text/x-python" echo "All waf scripts extracted successfully." diff --git a/lib-src/lv2/usegetprocaddress.patch b/lib-src/lv2/usegetprocaddress.patch deleted file mode 100644 index ecac0dd2d..000000000 --- a/lib-src/lv2/usegetprocaddress.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- lilv/src/orig_lilv_internal.h 2012-11-23 00:00:15.000000000 -0600 -+++ lilv/src/lilv_internal.h 2013-10-27 05:18:03.970327900 -0500 -@@ -30,7 +30,6 @@ - # include - # define dlopen(path, flags) LoadLibrary(path) - # define dlclose(lib) FreeLibrary((HMODULE)lib) --# define dlsym GetProcAddress - # ifdef _MSC_VER - # define __func__ __FUNCTION__ - # define INFINITY DBL_MAX + DBL_MAX -@@ -363,9 +362,13 @@ - static inline VoidFunc - lilv_dlfunc(void* handle, const char* symbol) - { -+#ifdef _WIN32 -+ return (VoidFunc)GetProcAddress((HMODULE)handle, symbol); -+#else - typedef VoidFunc (*VoidFuncGetter)(void*, const char*); - VoidFuncGetter dlfunc = (VoidFuncGetter)dlsym; - return dlfunc(handle, symbol); -+#endif - } - - #ifdef LILV_DYN_MANIFEST diff --git a/m4/audacity_checklib_lv2.m4 b/m4/audacity_checklib_lv2.m4 index 920c2dc09..78a279a7b 100644 --- a/m4/audacity_checklib_lv2.m4 +++ b/m4/audacity_checklib_lv2.m4 @@ -1,7 +1,6 @@ dnl Please increment the serial number below whenever you alter this macro dnl for the benefit of automatic macro update systems -# audacity_checklib_lv2.m4 serial 2 - +# audacity_checklib_lv2.m4 serial 3 AC_DEFUN([AUDACITY_CHECKLIB_LV2], [ AC_ARG_WITH(lv2, @@ -12,11 +11,10 @@ AC_DEFUN([AUDACITY_CHECKLIB_LV2], [ dnl see if lv2 is installed on the system - PKG_CHECK_MODULES(LV2, [lv2 lilv-0 >= 0.16 suil-0 >= 0.8.2], + PKG_CHECK_MODULES(LV2, [lv2 >= 1.16 lilv-0 >= 0.24.4 suil-0 >= 0.10.4], LV2_SYSTEM_AVAILABLE="yes", LV2_SYSTEM_AVAILABLE="no") - if test "$LV2_SYSTEM_AVAILABLE" = "yes"; then AC_MSG_NOTICE([LV2 libraries are available as system libraries]) else @@ -39,8 +37,10 @@ AC_DEFUN([AUDACITY_CHECKLIB_LV2], [ AC_DEFUN([AUDACITY_CONFIG_LV2], [ if test "$LV2_USE_LOCAL" = yes; then - LV2_CFLAGS='-I$(top_srcdir)/lib-src/lv2/include -I$(top_builddir)/lib-src/lv2/include' - LV2_LIBS='$(top_builddir)/lib-src/lv2/liblv2.a' + LV2_CFLAGS+=' -I$(top_builddir)/lib-src/lv2/build/include' + LV2_CFLAGS+=' -I$(top_builddir)/lib-src/lv2/build/include/lilv-0' + LV2_CFLAGS+=' -I$(top_builddir)/lib-src/lv2/build/include/suil-0' + LV2_LIBS='$(top_builddir)/lib-src/lv2/build/lib/lib*.a' AC_CONFIG_SUBDIRS([lib-src/lv2]) fi diff --git a/mac/Audacity.xcodeproj/project.pbxproj b/mac/Audacity.xcodeproj/project.pbxproj index 075a4040b..75144d310 100644 --- a/mac/Audacity.xcodeproj/project.pbxproj +++ b/mac/Audacity.xcodeproj/project.pbxproj @@ -498,17 +498,6 @@ 2840CF860AEB83DB00F49FC3 /* ExportMP2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2840CF840AEB83DB00F49FC3 /* ExportMP2.cpp */; }; 2840CFA80AEB883500F49FC3 /* libtwolame.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2840CF220AEB803C00F49FC3 /* libtwolame.a */; }; 28456AC20A2C180E00C23C1E /* ThemePrefs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28456AC00A2C180E00C23C1E /* ThemePrefs.cpp */; }; - 284750541AD4EB84000AD751 /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = 2847504D1AD4EB84000AD751 /* common.h */; }; - 284750551AD4EB84000AD751 /* digest.c in Sources */ = {isa = PBXBuildFile; fileRef = 2847504E1AD4EB84000AD751 /* digest.c */; }; - 284750561AD4EB84000AD751 /* digest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2847504F1AD4EB84000AD751 /* digest.h */; }; - 284750571AD4EB84000AD751 /* hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 284750501AD4EB84000AD751 /* hash.c */; }; - 284750581AD4EB84000AD751 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 284750511AD4EB84000AD751 /* hash.h */; }; - 284750591AD4EB84000AD751 /* tree.c in Sources */ = {isa = PBXBuildFile; fileRef = 284750521AD4EB84000AD751 /* tree.c */; }; - 2847505A1AD4EB84000AD751 /* tree.h in Headers */ = {isa = PBXBuildFile; fileRef = 284750531AD4EB84000AD751 /* tree.h */; }; - 2847505E1AD4EBE1000AD751 /* host.c in Sources */ = {isa = PBXBuildFile; fileRef = 2847505B1AD4EBE1000AD751 /* host.c */; }; - 2847505F1AD4EBE1000AD751 /* suil_instance.c in Sources */ = {isa = PBXBuildFile; fileRef = 2847505C1AD4EBE1000AD751 /* suil_instance.c */; }; - 284750601AD4EBE1000AD751 /* suil_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2847505D1AD4EBE1000AD751 /* suil_internal.h */; }; - 284750621AD4EC28000AD751 /* suil.h in Headers */ = {isa = PBXBuildFile; fileRef = 284750611AD4EC28000AD751 /* suil.h */; }; 2849A42017F8BEC2005C653F /* KeyView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2849A41E17F8BEC2005C653F /* KeyView.cpp */; }; 2849B4620A7444BE00ECF12D /* Dependencies.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2849B4600A7444BE00ECF12D /* Dependencies.cpp */; }; 284A7B920F31571C001D7A67 /* nyx.c in Sources */ = {isa = PBXBuildFile; fileRef = 284A7B8F0F31571B001D7A67 /* nyx.c */; }; @@ -742,33 +731,6 @@ 2860BA240E0F0D8600A13878 /* SoundActivatedRecord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2860BA200E0F0D8600A13878 /* SoundActivatedRecord.cpp */; }; 2860BA250E0F0D8600A13878 /* TimerRecordDialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2860BA220E0F0D8600A13878 /* TimerRecordDialog.cpp */; }; 2860BA280E0F0DD800A13878 /* ExportFFmpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2860BA260E0F0DD800A13878 /* ExportFFmpeg.cpp */; }; - 286229C3181CE51800E1AD1A /* lilv.h in Headers */ = {isa = PBXBuildFile; fileRef = 286229B1181CE51800E1AD1A /* lilv.h */; }; - 286229C4181CE51800E1AD1A /* collections.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229B2181CE51800E1AD1A /* collections.c */; }; - 286229C5181CE51800E1AD1A /* instance.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229B3181CE51800E1AD1A /* instance.c */; }; - 286229C6181CE51800E1AD1A /* lib.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229B4181CE51800E1AD1A /* lib.c */; }; - 286229C7181CE51800E1AD1A /* lilv_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 286229B5181CE51800E1AD1A /* lilv_internal.h */; }; - 286229C8181CE51800E1AD1A /* node.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229B6181CE51800E1AD1A /* node.c */; }; - 286229C9181CE51800E1AD1A /* plugin.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229B7181CE51800E1AD1A /* plugin.c */; }; - 286229CA181CE51800E1AD1A /* pluginclass.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229B8181CE51800E1AD1A /* pluginclass.c */; }; - 286229CB181CE51800E1AD1A /* port.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229B9181CE51800E1AD1A /* port.c */; }; - 286229CC181CE51800E1AD1A /* query.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229BA181CE51800E1AD1A /* query.c */; }; - 286229CD181CE51800E1AD1A /* scalepoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229BB181CE51800E1AD1A /* scalepoint.c */; }; - 286229CE181CE51800E1AD1A /* state.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229BC181CE51800E1AD1A /* state.c */; }; - 286229CF181CE51800E1AD1A /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229BD181CE51800E1AD1A /* ui.c */; }; - 286229D0181CE51800E1AD1A /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229BE181CE51800E1AD1A /* util.c */; }; - 286229D1181CE51800E1AD1A /* world.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229BF181CE51800E1AD1A /* world.c */; }; - 286229DD181CE5EC00E1AD1A /* serd.h in Headers */ = {isa = PBXBuildFile; fileRef = 286229D5181CE5EC00E1AD1A /* serd.h */; }; - 286229DE181CE5EC00E1AD1A /* env.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229D6181CE5EC00E1AD1A /* env.c */; }; - 286229DF181CE5EC00E1AD1A /* node.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229D7181CE5EC00E1AD1A /* node.c */; }; - 286229E0181CE5EC00E1AD1A /* reader.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229D8181CE5EC00E1AD1A /* reader.c */; }; - 286229E1181CE5EC00E1AD1A /* serd_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 286229D9181CE5EC00E1AD1A /* serd_internal.h */; }; - 286229E2181CE5EC00E1AD1A /* string.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229DA181CE5EC00E1AD1A /* string.c */; }; - 286229E3181CE5EC00E1AD1A /* uri.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229DB181CE5EC00E1AD1A /* uri.c */; }; - 286229E4181CE5EC00E1AD1A /* writer.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229DC181CE5EC00E1AD1A /* writer.c */; }; - 286229E9181CE62A00E1AD1A /* sord.h in Headers */ = {isa = PBXBuildFile; fileRef = 286229E5181CE62A00E1AD1A /* sord.h */; }; - 286229EA181CE62A00E1AD1A /* sord_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 286229E6181CE62A00E1AD1A /* sord_internal.h */; }; - 286229EB181CE62A00E1AD1A /* sord.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229E7181CE62A00E1AD1A /* sord.c */; }; - 286229EC181CE62A00E1AD1A /* syntax.c in Sources */ = {isa = PBXBuildFile; fileRef = 286229E8181CE62A00E1AD1A /* syntax.c */; }; 28624C0F181CE65700E1AD1A /* sratom.h in Headers */ = {isa = PBXBuildFile; fileRef = 286243A0181CE65500E1AD1A /* sratom.h */; }; 28624C10181CE65700E1AD1A /* sratom.c in Sources */ = {isa = PBXBuildFile; fileRef = 286243A1181CE65500E1AD1A /* sratom.c */; }; 2872DFEA1B5EEC15004385B1 /* hy.po in Sources */ = {isa = PBXBuildFile; fileRef = 28ECC1911A66CC5000EECC53 /* hy.po */; }; @@ -892,6 +854,55 @@ 28A96DC10E28642200F3CE01 /* mfmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 28F3A3FF0E28289500729866 /* mfmidi.h */; }; 28A96DC20E28642300F3CE01 /* strparse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28F3A4000E28289500729866 /* strparse.cpp */; }; 28A96DC30E28642300F3CE01 /* strparse.h in Headers */ = {isa = PBXBuildFile; fileRef = 28F3A4010E28289500729866 /* strparse.h */; }; + 28AF132623A82F680084A82E /* sord_test.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF131723A82F660084A82E /* sord_test.c */; }; + 28AF132723A82F680084A82E /* sordi.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF131823A82F660084A82E /* sordi.c */; }; + 28AF132823A82F680084A82E /* sord_validate.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF131923A82F660084A82E /* sord_validate.c */; }; + 28AF132923A82F680084A82E /* sordmm_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28AF131A23A82F670084A82E /* sordmm_test.cpp */; }; + 28AF132A23A82F680084A82E /* sord.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF131B23A82F670084A82E /* sord.c */; }; + 28AF132B23A82F680084A82E /* btree.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF131D23A82F670084A82E /* btree.c */; }; + 28AF132C23A82F680084A82E /* digest.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF131E23A82F670084A82E /* digest.h */; }; + 28AF132D23A82F680084A82E /* hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF131F23A82F670084A82E /* hash.c */; }; + 28AF132E23A82F680084A82E /* btree.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF132023A82F670084A82E /* btree.h */; }; + 28AF132F23A82F680084A82E /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF132123A82F670084A82E /* common.h */; }; + 28AF133023A82F680084A82E /* digest.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF132223A82F670084A82E /* digest.c */; }; + 28AF133123A82F680084A82E /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF132323A82F670084A82E /* hash.h */; }; + 28AF133223A82F680084A82E /* syntax.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF132423A82F670084A82E /* syntax.c */; }; + 28AF133323A82F680084A82E /* sord_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF132523A82F670084A82E /* sord_internal.h */; }; + 28AF133F23A830120084A82E /* reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF133423A830100084A82E /* reader.h */; }; + 28AF134023A830120084A82E /* uri.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133523A830100084A82E /* uri.c */; }; + 28AF134123A830120084A82E /* env.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133623A830100084A82E /* env.c */; }; + 28AF134223A830120084A82E /* string.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133723A830100084A82E /* string.c */; }; + 28AF134323A830120084A82E /* n3.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133823A830100084A82E /* n3.c */; }; + 28AF134423A830120084A82E /* writer.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133923A830110084A82E /* writer.c */; }; + 28AF134523A830120084A82E /* serd_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF133A23A830110084A82E /* serd_internal.h */; }; + 28AF134623A830120084A82E /* serdi.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133B23A830110084A82E /* serdi.c */; }; + 28AF134723A830120084A82E /* reader.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133C23A830110084A82E /* reader.c */; }; + 28AF134823A830120084A82E /* node.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133D23A830110084A82E /* node.c */; }; + 28AF134923A830120084A82E /* byte_source.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF133E23A830120084A82E /* byte_source.c */; }; + 28AF135C23A830310084A82E /* lib.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF134A23A8302E0084A82E /* lib.c */; }; + 28AF135D23A830310084A82E /* query.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF134B23A8302E0084A82E /* query.c */; }; + 28AF135E23A830310084A82E /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF134C23A8302E0084A82E /* util.c */; }; + 28AF135F23A830310084A82E /* plugin.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF134D23A8302E0084A82E /* plugin.c */; }; + 28AF136023A830310084A82E /* port.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF134E23A8302F0084A82E /* port.c */; }; + 28AF136123A830310084A82E /* lilv_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF134F23A8302F0084A82E /* lilv_internal.h */; }; + 28AF136223A830310084A82E /* scalepoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135023A8302F0084A82E /* scalepoint.c */; }; + 28AF136323A830310084A82E /* tree.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF135223A8302F0084A82E /* tree.h */; }; + 28AF136423A830310084A82E /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF135323A8302F0084A82E /* common.h */; }; + 28AF136523A830310084A82E /* tree.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135423A8302F0084A82E /* tree.c */; }; + 28AF136623A830310084A82E /* pluginclass.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135523A8302F0084A82E /* pluginclass.c */; }; + 28AF136723A830310084A82E /* node.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135623A830300084A82E /* node.c */; }; + 28AF136823A830310084A82E /* world.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135723A830300084A82E /* world.c */; }; + 28AF136923A830310084A82E /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135823A830300084A82E /* ui.c */; }; + 28AF136A23A830310084A82E /* state.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135923A830300084A82E /* state.c */; }; + 28AF136B23A830310084A82E /* collections.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135A23A830300084A82E /* collections.c */; }; + 28AF136C23A830310084A82E /* instance.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF135B23A830310084A82E /* instance.c */; }; + 28AF136E23A8306B0084A82E /* sord.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF136D23A8306B0084A82E /* sord.h */; }; + 28AF137023A8307E0084A82E /* serd.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF136F23A8307E0084A82E /* serd.h */; }; + 28AF137223A830950084A82E /* lilv.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF137123A830950084A82E /* lilv.h */; }; + 28AF137723A831080084A82E /* suil_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF137323A831070084A82E /* suil_internal.h */; }; + 28AF137823A831080084A82E /* host.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF137423A831070084A82E /* host.c */; }; + 28AF137923A831080084A82E /* instance.c in Sources */ = {isa = PBXBuildFile; fileRef = 28AF137523A831070084A82E /* instance.c */; }; + 28AF137A23A831080084A82E /* suil.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AF137623A831070084A82E /* suil.h */; }; 28B97B890FBF771A0076CF28 /* VSTEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28B97B850FBF771A0076CF28 /* VSTEffect.cpp */; }; 28BB98051A15BE6800D1CC80 /* NoiseReduction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28BB98031A15BE6800D1CC80 /* NoiseReduction.cpp */; }; 28BD8AB1101DF4C700686679 /* BatchEvalCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28BD8AA9101DF4C600686679 /* BatchEvalCommand.cpp */; }; @@ -2392,17 +2403,6 @@ 2844163A1B82D6BC0000574D /* WaveTrackLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaveTrackLocation.h; sourceTree = ""; }; 28456AC00A2C180E00C23C1E /* ThemePrefs.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = ThemePrefs.cpp; sourceTree = ""; tabWidth = 3; }; 28456AC10A2C180E00C23C1E /* ThemePrefs.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = ThemePrefs.h; sourceTree = ""; tabWidth = 3; }; - 2847504D1AD4EB84000AD751 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = common.h; path = lv2/sord/src/zix/common.h; sourceTree = ""; }; - 2847504E1AD4EB84000AD751 /* digest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = digest.c; path = lv2/sord/src/zix/digest.c; sourceTree = ""; }; - 2847504F1AD4EB84000AD751 /* digest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = digest.h; path = lv2/sord/src/zix/digest.h; sourceTree = ""; }; - 284750501AD4EB84000AD751 /* hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hash.c; path = lv2/sord/src/zix/hash.c; sourceTree = ""; }; - 284750511AD4EB84000AD751 /* hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hash.h; path = lv2/sord/src/zix/hash.h; sourceTree = ""; }; - 284750521AD4EB84000AD751 /* tree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tree.c; path = lv2/sord/src/zix/tree.c; sourceTree = ""; }; - 284750531AD4EB84000AD751 /* tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tree.h; path = lv2/sord/src/zix/tree.h; sourceTree = ""; }; - 2847505B1AD4EBE1000AD751 /* host.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = host.c; path = lv2/suil/src/host.c; sourceTree = ""; }; - 2847505C1AD4EBE1000AD751 /* suil_instance.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = suil_instance.c; path = lv2/suil/src/suil_instance.c; sourceTree = ""; }; - 2847505D1AD4EBE1000AD751 /* suil_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = suil_internal.h; path = lv2/suil/src/suil_internal.h; sourceTree = ""; }; - 284750611AD4EC28000AD751 /* suil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = suil.h; path = lv2/suil/suil/suil.h; sourceTree = ""; }; 2849A41E17F8BEC2005C653F /* KeyView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KeyView.cpp; sourceTree = ""; }; 2849A41F17F8BEC2005C653F /* KeyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyView.h; sourceTree = ""; }; 2849B4600A7444BE00ECF12D /* Dependencies.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = Dependencies.cpp; sourceTree = ""; tabWidth = 3; }; @@ -2659,33 +2659,6 @@ 2860BA230E0F0D8600A13878 /* TimerRecordDialog.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = TimerRecordDialog.h; sourceTree = ""; tabWidth = 3; }; 2860BA260E0F0DD800A13878 /* ExportFFmpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = ExportFFmpeg.cpp; sourceTree = ""; tabWidth = 3; }; 286229B0181CE4B600E1AD1A /* liblv2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblv2.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 286229B1181CE51800E1AD1A /* lilv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lilv.h; path = lv2/lilv/lilv/lilv.h; sourceTree = ""; }; - 286229B2181CE51800E1AD1A /* collections.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = collections.c; path = lv2/lilv/src/collections.c; sourceTree = ""; }; - 286229B3181CE51800E1AD1A /* instance.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = instance.c; path = lv2/lilv/src/instance.c; sourceTree = ""; }; - 286229B4181CE51800E1AD1A /* lib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lib.c; path = lv2/lilv/src/lib.c; sourceTree = ""; }; - 286229B5181CE51800E1AD1A /* lilv_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lilv_internal.h; path = lv2/lilv/src/lilv_internal.h; sourceTree = ""; }; - 286229B6181CE51800E1AD1A /* node.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = node.c; path = lv2/lilv/src/node.c; sourceTree = ""; }; - 286229B7181CE51800E1AD1A /* plugin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = plugin.c; path = lv2/lilv/src/plugin.c; sourceTree = ""; }; - 286229B8181CE51800E1AD1A /* pluginclass.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pluginclass.c; path = lv2/lilv/src/pluginclass.c; sourceTree = ""; }; - 286229B9181CE51800E1AD1A /* port.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = port.c; path = lv2/lilv/src/port.c; sourceTree = ""; }; - 286229BA181CE51800E1AD1A /* query.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = query.c; path = lv2/lilv/src/query.c; sourceTree = ""; }; - 286229BB181CE51800E1AD1A /* scalepoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scalepoint.c; path = lv2/lilv/src/scalepoint.c; sourceTree = ""; }; - 286229BC181CE51800E1AD1A /* state.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = state.c; path = lv2/lilv/src/state.c; sourceTree = ""; }; - 286229BD181CE51800E1AD1A /* ui.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ui.c; path = lv2/lilv/src/ui.c; sourceTree = ""; }; - 286229BE181CE51800E1AD1A /* util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = util.c; path = lv2/lilv/src/util.c; sourceTree = ""; }; - 286229BF181CE51800E1AD1A /* world.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = world.c; path = lv2/lilv/src/world.c; sourceTree = ""; }; - 286229D5181CE5EC00E1AD1A /* serd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = serd.h; path = lv2/serd/serd/serd.h; sourceTree = ""; }; - 286229D6181CE5EC00E1AD1A /* env.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = env.c; path = lv2/serd/src/env.c; sourceTree = ""; }; - 286229D7181CE5EC00E1AD1A /* node.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = node.c; path = lv2/serd/src/node.c; sourceTree = ""; }; - 286229D8181CE5EC00E1AD1A /* reader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = reader.c; path = lv2/serd/src/reader.c; sourceTree = ""; }; - 286229D9181CE5EC00E1AD1A /* serd_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = serd_internal.h; path = lv2/serd/src/serd_internal.h; sourceTree = ""; }; - 286229DA181CE5EC00E1AD1A /* string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = string.c; path = lv2/serd/src/string.c; sourceTree = ""; }; - 286229DB181CE5EC00E1AD1A /* uri.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = uri.c; path = lv2/serd/src/uri.c; sourceTree = ""; }; - 286229DC181CE5EC00E1AD1A /* writer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = writer.c; path = lv2/serd/src/writer.c; sourceTree = ""; }; - 286229E5181CE62A00E1AD1A /* sord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sord.h; path = lv2/sord/sord/sord.h; sourceTree = ""; }; - 286229E6181CE62A00E1AD1A /* sord_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sord_internal.h; path = lv2/sord/src/sord_internal.h; sourceTree = ""; }; - 286229E7181CE62A00E1AD1A /* sord.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sord.c; path = lv2/sord/src/sord.c; sourceTree = ""; }; - 286229E8181CE62A00E1AD1A /* syntax.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = syntax.c; path = lv2/sord/src/syntax.c; sourceTree = ""; }; 286243A0181CE65500E1AD1A /* sratom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sratom.h; path = lv2/sratom/sratom/sratom.h; sourceTree = ""; }; 286243A1181CE65500E1AD1A /* sratom.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sratom.c; path = lv2/sratom/src/sratom.c; sourceTree = ""; }; 2862CECE1AD3900000A53194 /* test.lsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = test.lsp; path = ../nyquist/test.lsp; sourceTree = SOURCE_ROOT; }; @@ -2843,6 +2816,55 @@ 28AA281E0F267A2D008AED9E /* SilenceMarker.ny */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 5; name = SilenceMarker.ny; path = "../plug-ins/SilenceMarker.ny"; sourceTree = SOURCE_ROOT; }; 28AA281F0F267A2D008AED9E /* tremolo.ny */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 5; name = tremolo.ny; path = "../plug-ins/tremolo.ny"; sourceTree = SOURCE_ROOT; }; 28AA28210F267A2D008AED9E /* vocoder.ny */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 5; name = vocoder.ny; path = "../plug-ins/vocoder.ny"; sourceTree = SOURCE_ROOT; }; + 28AF131723A82F660084A82E /* sord_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sord_test.c; path = lv2/sord/src/sord_test.c; sourceTree = ""; }; + 28AF131823A82F660084A82E /* sordi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sordi.c; path = lv2/sord/src/sordi.c; sourceTree = ""; }; + 28AF131923A82F660084A82E /* sord_validate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sord_validate.c; path = lv2/sord/src/sord_validate.c; sourceTree = ""; }; + 28AF131A23A82F670084A82E /* sordmm_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sordmm_test.cpp; path = lv2/sord/src/sordmm_test.cpp; sourceTree = ""; }; + 28AF131B23A82F670084A82E /* sord.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sord.c; path = lv2/sord/src/sord.c; sourceTree = ""; }; + 28AF131D23A82F670084A82E /* btree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = btree.c; sourceTree = ""; }; + 28AF131E23A82F670084A82E /* digest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = digest.h; sourceTree = ""; }; + 28AF131F23A82F670084A82E /* hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hash.c; sourceTree = ""; }; + 28AF132023A82F670084A82E /* btree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = btree.h; sourceTree = ""; }; + 28AF132123A82F670084A82E /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + 28AF132223A82F670084A82E /* digest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = digest.c; sourceTree = ""; }; + 28AF132323A82F670084A82E /* hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash.h; sourceTree = ""; }; + 28AF132423A82F670084A82E /* syntax.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = syntax.c; path = lv2/sord/src/syntax.c; sourceTree = ""; }; + 28AF132523A82F670084A82E /* sord_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sord_internal.h; path = lv2/sord/src/sord_internal.h; sourceTree = ""; }; + 28AF133423A830100084A82E /* reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = reader.h; path = lv2/serd/src/reader.h; sourceTree = ""; }; + 28AF133523A830100084A82E /* uri.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = uri.c; path = lv2/serd/src/uri.c; sourceTree = ""; }; + 28AF133623A830100084A82E /* env.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = env.c; path = lv2/serd/src/env.c; sourceTree = ""; }; + 28AF133723A830100084A82E /* string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = string.c; path = lv2/serd/src/string.c; sourceTree = ""; }; + 28AF133823A830100084A82E /* n3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = n3.c; path = lv2/serd/src/n3.c; sourceTree = ""; }; + 28AF133923A830110084A82E /* writer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = writer.c; path = lv2/serd/src/writer.c; sourceTree = ""; }; + 28AF133A23A830110084A82E /* serd_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = serd_internal.h; path = lv2/serd/src/serd_internal.h; sourceTree = ""; }; + 28AF133B23A830110084A82E /* serdi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = serdi.c; path = lv2/serd/src/serdi.c; sourceTree = ""; }; + 28AF133C23A830110084A82E /* reader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = reader.c; path = lv2/serd/src/reader.c; sourceTree = ""; }; + 28AF133D23A830110084A82E /* node.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = node.c; path = lv2/serd/src/node.c; sourceTree = ""; }; + 28AF133E23A830120084A82E /* byte_source.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = byte_source.c; path = lv2/serd/src/byte_source.c; sourceTree = ""; }; + 28AF134A23A8302E0084A82E /* lib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lib.c; path = lv2/lilv/src/lib.c; sourceTree = ""; }; + 28AF134B23A8302E0084A82E /* query.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = query.c; path = lv2/lilv/src/query.c; sourceTree = ""; }; + 28AF134C23A8302E0084A82E /* util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = util.c; path = lv2/lilv/src/util.c; sourceTree = ""; }; + 28AF134D23A8302E0084A82E /* plugin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = plugin.c; path = lv2/lilv/src/plugin.c; sourceTree = ""; }; + 28AF134E23A8302F0084A82E /* port.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = port.c; path = lv2/lilv/src/port.c; sourceTree = ""; }; + 28AF134F23A8302F0084A82E /* lilv_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lilv_internal.h; path = lv2/lilv/src/lilv_internal.h; sourceTree = ""; }; + 28AF135023A8302F0084A82E /* scalepoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scalepoint.c; path = lv2/lilv/src/scalepoint.c; sourceTree = ""; }; + 28AF135223A8302F0084A82E /* tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tree.h; sourceTree = ""; }; + 28AF135323A8302F0084A82E /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + 28AF135423A8302F0084A82E /* tree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tree.c; sourceTree = ""; }; + 28AF135523A8302F0084A82E /* pluginclass.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pluginclass.c; path = lv2/lilv/src/pluginclass.c; sourceTree = ""; }; + 28AF135623A830300084A82E /* node.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = node.c; path = lv2/lilv/src/node.c; sourceTree = ""; }; + 28AF135723A830300084A82E /* world.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = world.c; path = lv2/lilv/src/world.c; sourceTree = ""; }; + 28AF135823A830300084A82E /* ui.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ui.c; path = lv2/lilv/src/ui.c; sourceTree = ""; }; + 28AF135923A830300084A82E /* state.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = state.c; path = lv2/lilv/src/state.c; sourceTree = ""; }; + 28AF135A23A830300084A82E /* collections.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = collections.c; path = lv2/lilv/src/collections.c; sourceTree = ""; }; + 28AF135B23A830310084A82E /* instance.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = instance.c; path = lv2/lilv/src/instance.c; sourceTree = ""; }; + 28AF136D23A8306B0084A82E /* sord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sord.h; path = lv2/sord/sord/sord.h; sourceTree = ""; }; + 28AF136F23A8307E0084A82E /* serd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = serd.h; path = lv2/serd/serd/serd.h; sourceTree = ""; }; + 28AF137123A830950084A82E /* lilv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lilv.h; path = lv2/lilv/lilv/lilv.h; sourceTree = ""; }; + 28AF137323A831070084A82E /* suil_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = suil_internal.h; path = lv2/suil/src/suil_internal.h; sourceTree = ""; }; + 28AF137423A831070084A82E /* host.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = host.c; path = lv2/suil/src/host.c; sourceTree = ""; }; + 28AF137523A831070084A82E /* instance.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = instance.c; path = lv2/suil/src/instance.c; sourceTree = ""; }; + 28AF137623A831070084A82E /* suil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = suil.h; path = lv2/suil/suil/suil.h; sourceTree = ""; }; 28B97B850FBF771A0076CF28 /* VSTEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; name = VSTEffect.cpp; path = VST/VSTEffect.cpp; sourceTree = ""; tabWidth = 3; }; 28B97B860FBF771A0076CF28 /* VSTEffect.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = VSTEffect.h; path = VST/VSTEffect.h; sourceTree = ""; tabWidth = 3; }; 28BB98031A15BE6800D1CC80 /* NoiseReduction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NoiseReduction.cpp; sourceTree = ""; }; @@ -5303,28 +5325,14 @@ 2847504B1AD4EB41000AD751 /* suil */ = { isa = PBXGroup; children = ( - 284750611AD4EC28000AD751 /* suil.h */, - 2847505B1AD4EBE1000AD751 /* host.c */, - 2847505C1AD4EBE1000AD751 /* suil_instance.c */, - 2847505D1AD4EBE1000AD751 /* suil_internal.h */, + 28AF137423A831070084A82E /* host.c */, + 28AF137523A831070084A82E /* instance.c */, + 28AF137323A831070084A82E /* suil_internal.h */, + 28AF137623A831070084A82E /* suil.h */, ); name = suil; sourceTree = ""; }; - 2847504C1AD4EB5A000AD751 /* zix */ = { - isa = PBXGroup; - children = ( - 2847504D1AD4EB84000AD751 /* common.h */, - 2847504E1AD4EB84000AD751 /* digest.c */, - 2847504F1AD4EB84000AD751 /* digest.h */, - 284750501AD4EB84000AD751 /* hash.c */, - 284750511AD4EB84000AD751 /* hash.h */, - 284750521AD4EB84000AD751 /* tree.c */, - 284750531AD4EB84000AD751 /* tree.h */, - ); - name = zix; - sourceTree = ""; - }; 284A7B8E0F3156B4001D7A67 /* nyquist */ = { isa = PBXGroup; children = ( @@ -5782,21 +5790,22 @@ 28622999181CE37800E1AD1A /* lilv */ = { isa = PBXGroup; children = ( - 286229B1181CE51800E1AD1A /* lilv.h */, - 286229B2181CE51800E1AD1A /* collections.c */, - 286229B3181CE51800E1AD1A /* instance.c */, - 286229B4181CE51800E1AD1A /* lib.c */, - 286229B5181CE51800E1AD1A /* lilv_internal.h */, - 286229B6181CE51800E1AD1A /* node.c */, - 286229B7181CE51800E1AD1A /* plugin.c */, - 286229B8181CE51800E1AD1A /* pluginclass.c */, - 286229B9181CE51800E1AD1A /* port.c */, - 286229BA181CE51800E1AD1A /* query.c */, - 286229BB181CE51800E1AD1A /* scalepoint.c */, - 286229BC181CE51800E1AD1A /* state.c */, - 286229BD181CE51800E1AD1A /* ui.c */, - 286229BE181CE51800E1AD1A /* util.c */, - 286229BF181CE51800E1AD1A /* world.c */, + 28AF135A23A830300084A82E /* collections.c */, + 28AF135B23A830310084A82E /* instance.c */, + 28AF134A23A8302E0084A82E /* lib.c */, + 28AF137123A830950084A82E /* lilv.h */, + 28AF134F23A8302F0084A82E /* lilv_internal.h */, + 28AF135623A830300084A82E /* node.c */, + 28AF134D23A8302E0084A82E /* plugin.c */, + 28AF135523A8302F0084A82E /* pluginclass.c */, + 28AF134E23A8302F0084A82E /* port.c */, + 28AF134B23A8302E0084A82E /* query.c */, + 28AF135023A8302F0084A82E /* scalepoint.c */, + 28AF135923A830300084A82E /* state.c */, + 28AF135823A830300084A82E /* ui.c */, + 28AF134C23A8302E0084A82E /* util.c */, + 28AF135723A830300084A82E /* world.c */, + 28AF135123A8302F0084A82E /* zix */, ); name = lilv; sourceTree = ""; @@ -5804,14 +5813,18 @@ 2862299A181CE3AE00E1AD1A /* serd */ = { isa = PBXGroup; children = ( - 286229D5181CE5EC00E1AD1A /* serd.h */, - 286229D6181CE5EC00E1AD1A /* env.c */, - 286229D7181CE5EC00E1AD1A /* node.c */, - 286229D8181CE5EC00E1AD1A /* reader.c */, - 286229D9181CE5EC00E1AD1A /* serd_internal.h */, - 286229DA181CE5EC00E1AD1A /* string.c */, - 286229DB181CE5EC00E1AD1A /* uri.c */, - 286229DC181CE5EC00E1AD1A /* writer.c */, + 28AF133E23A830120084A82E /* byte_source.c */, + 28AF133623A830100084A82E /* env.c */, + 28AF133823A830100084A82E /* n3.c */, + 28AF133D23A830110084A82E /* node.c */, + 28AF133C23A830110084A82E /* reader.c */, + 28AF133423A830100084A82E /* reader.h */, + 28AF133A23A830110084A82E /* serd_internal.h */, + 28AF136F23A8307E0084A82E /* serd.h */, + 28AF133B23A830110084A82E /* serdi.c */, + 28AF133723A830100084A82E /* string.c */, + 28AF133523A830100084A82E /* uri.c */, + 28AF133923A830110084A82E /* writer.c */, ); name = serd; sourceTree = ""; @@ -5819,11 +5832,15 @@ 2862299B181CE3B400E1AD1A /* sord */ = { isa = PBXGroup; children = ( - 2847504C1AD4EB5A000AD751 /* zix */, - 286229E5181CE62A00E1AD1A /* sord.h */, - 286229E6181CE62A00E1AD1A /* sord_internal.h */, - 286229E7181CE62A00E1AD1A /* sord.c */, - 286229E8181CE62A00E1AD1A /* syntax.c */, + 28AF132523A82F670084A82E /* sord_internal.h */, + 28AF131723A82F660084A82E /* sord_test.c */, + 28AF131923A82F660084A82E /* sord_validate.c */, + 28AF131B23A82F670084A82E /* sord.c */, + 28AF136D23A8306B0084A82E /* sord.h */, + 28AF131823A82F660084A82E /* sordi.c */, + 28AF131A23A82F670084A82E /* sordmm_test.cpp */, + 28AF132423A82F670084A82E /* syntax.c */, + 28AF131C23A82F670084A82E /* zix */, ); name = sord; sourceTree = ""; @@ -6039,6 +6056,32 @@ name = nyquist; sourceTree = ""; }; + 28AF131C23A82F670084A82E /* zix */ = { + isa = PBXGroup; + children = ( + 28AF131D23A82F670084A82E /* btree.c */, + 28AF131E23A82F670084A82E /* digest.h */, + 28AF131F23A82F670084A82E /* hash.c */, + 28AF132023A82F670084A82E /* btree.h */, + 28AF132123A82F670084A82E /* common.h */, + 28AF132223A82F670084A82E /* digest.c */, + 28AF132323A82F670084A82E /* hash.h */, + ); + name = zix; + path = lv2/sord/src/zix; + sourceTree = ""; + }; + 28AF135123A8302F0084A82E /* zix */ = { + isa = PBXGroup; + children = ( + 28AF135223A8302F0084A82E /* tree.h */, + 28AF135323A8302F0084A82E /* common.h */, + 28AF135423A8302F0084A82E /* tree.c */, + ); + name = zix; + path = lv2/lilv/src/zix; + sourceTree = ""; + }; 28B97B800FBF77030076CF28 /* vst */ = { isa = PBXGroup; children = ( @@ -7164,19 +7207,22 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 286229C3181CE51800E1AD1A /* lilv.h in Headers */, - 286229C7181CE51800E1AD1A /* lilv_internal.h in Headers */, - 286229DD181CE5EC00E1AD1A /* serd.h in Headers */, - 286229E1181CE5EC00E1AD1A /* serd_internal.h in Headers */, - 286229E9181CE62A00E1AD1A /* sord.h in Headers */, - 286229EA181CE62A00E1AD1A /* sord_internal.h in Headers */, + 28AF137023A8307E0084A82E /* serd.h in Headers */, + 28AF132F23A82F680084A82E /* common.h in Headers */, + 28AF137723A831080084A82E /* suil_internal.h in Headers */, + 28AF133123A82F680084A82E /* hash.h in Headers */, + 28AF137223A830950084A82E /* lilv.h in Headers */, + 28AF133F23A830120084A82E /* reader.h in Headers */, + 28AF132E23A82F680084A82E /* btree.h in Headers */, + 28AF136323A830310084A82E /* tree.h in Headers */, + 28AF136423A830310084A82E /* common.h in Headers */, + 28AF137A23A831080084A82E /* suil.h in Headers */, 28624C0F181CE65700E1AD1A /* sratom.h in Headers */, - 284750541AD4EB84000AD751 /* common.h in Headers */, - 284750561AD4EB84000AD751 /* digest.h in Headers */, - 284750581AD4EB84000AD751 /* hash.h in Headers */, - 2847505A1AD4EB84000AD751 /* tree.h in Headers */, - 284750601AD4EBE1000AD751 /* suil_internal.h in Headers */, - 284750621AD4EC28000AD751 /* suil.h in Headers */, + 28AF133323A82F680084A82E /* sord_internal.h in Headers */, + 28AF132C23A82F680084A82E /* digest.h in Headers */, + 28AF136E23A8306B0084A82E /* sord.h in Headers */, + 28AF136123A830310084A82E /* lilv_internal.h in Headers */, + 28AF134523A830120084A82E /* serd_internal.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7650,6 +7696,7 @@ isa = PBXNativeTarget; buildConfigurationList = 286229AB181CE4B600E1AD1A /* Build configuration list for PBXNativeTarget "lv2" */; buildPhases = ( + 28AF137C23A832AC0084A82E /* Run Script */, 2862299F181CE4B600E1AD1A /* Headers */, 286229A0181CE4B600E1AD1A /* Sources */, ); @@ -8060,6 +8107,25 @@ shellPath = /bin/sh; shellScript = "\"${PROJECT_DIR}/scripts/install_manual.sh\""; }; + 28AF137C23A832AC0084A82E /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/newInputFile", + ); + name = "Run Script"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "LV2=\"${CONFIGURATION_BUILD_DIR}/include/lv2/lv2plug.in/ns\"\n[ -e \"${LV2}\" ] && exit 0\n\nTOP=\"${SRCROOT}/${TOPLEVEL}\"\nmkdir -p \"${LV2}\"/{ext,extensions,lv2core}\n\npushd \"${LV2}/ext\"\nfor src in \"${TOP}\"/lib-src/lv2/lv2/lv2/*\ndo\n ln -s \"${src}\"\ndone\npopd\n \npushd \"${LV2}/extensions\"\nfor src in \"${TOP}\"/lib-src/lv2/lv2/lv2/{ui,units}\ndo\n ln -s \"${src}\"\ndone\npopd\n \npushd \"${LV2}/lv2core\"\nfor src in \"${TOP}\"/lib-src/lv2/lv2/lv2/core/*.h\ndo\n ln -s \"${src}\"\ndone\npopd\n"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -9038,33 +9104,41 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 286229C4181CE51800E1AD1A /* collections.c in Sources */, - 286229C5181CE51800E1AD1A /* instance.c in Sources */, - 286229C6181CE51800E1AD1A /* lib.c in Sources */, - 286229C8181CE51800E1AD1A /* node.c in Sources */, - 286229C9181CE51800E1AD1A /* plugin.c in Sources */, - 286229CA181CE51800E1AD1A /* pluginclass.c in Sources */, - 286229CB181CE51800E1AD1A /* port.c in Sources */, - 286229CC181CE51800E1AD1A /* query.c in Sources */, - 286229CD181CE51800E1AD1A /* scalepoint.c in Sources */, - 286229CE181CE51800E1AD1A /* state.c in Sources */, - 286229CF181CE51800E1AD1A /* ui.c in Sources */, - 286229D0181CE51800E1AD1A /* util.c in Sources */, - 286229D1181CE51800E1AD1A /* world.c in Sources */, - 286229DE181CE5EC00E1AD1A /* env.c in Sources */, - 286229DF181CE5EC00E1AD1A /* node.c in Sources */, - 286229E0181CE5EC00E1AD1A /* reader.c in Sources */, - 286229E2181CE5EC00E1AD1A /* string.c in Sources */, - 286229E3181CE5EC00E1AD1A /* uri.c in Sources */, - 286229E4181CE5EC00E1AD1A /* writer.c in Sources */, - 286229EB181CE62A00E1AD1A /* sord.c in Sources */, - 286229EC181CE62A00E1AD1A /* syntax.c in Sources */, + 28AF136023A830310084A82E /* port.c in Sources */, + 28AF135F23A830310084A82E /* plugin.c in Sources */, + 28AF136223A830310084A82E /* scalepoint.c in Sources */, + 28AF136923A830310084A82E /* ui.c in Sources */, + 28AF136523A830310084A82E /* tree.c in Sources */, + 28AF134623A830120084A82E /* serdi.c in Sources */, + 28AF136723A830310084A82E /* node.c in Sources */, + 28AF134123A830120084A82E /* env.c in Sources */, + 28AF135D23A830310084A82E /* query.c in Sources */, + 28AF134223A830120084A82E /* string.c in Sources */, + 28AF134823A830120084A82E /* node.c in Sources */, + 28AF135E23A830310084A82E /* util.c in Sources */, + 28AF136A23A830310084A82E /* state.c in Sources */, + 28AF134923A830120084A82E /* byte_source.c in Sources */, + 28AF137923A831080084A82E /* instance.c in Sources */, + 28AF136C23A830310084A82E /* instance.c in Sources */, + 28AF134723A830120084A82E /* reader.c in Sources */, + 28AF134323A830120084A82E /* n3.c in Sources */, + 28AF132923A82F680084A82E /* sordmm_test.cpp in Sources */, + 28AF136B23A830310084A82E /* collections.c in Sources */, + 28AF132723A82F680084A82E /* sordi.c in Sources */, + 28AF134023A830120084A82E /* uri.c in Sources */, + 28AF132823A82F680084A82E /* sord_validate.c in Sources */, + 28AF135C23A830310084A82E /* lib.c in Sources */, + 28AF133023A82F680084A82E /* digest.c in Sources */, + 28AF132623A82F680084A82E /* sord_test.c in Sources */, + 28AF132A23A82F680084A82E /* sord.c in Sources */, 28624C10181CE65700E1AD1A /* sratom.c in Sources */, - 284750551AD4EB84000AD751 /* digest.c in Sources */, - 284750571AD4EB84000AD751 /* hash.c in Sources */, - 284750591AD4EB84000AD751 /* tree.c in Sources */, - 2847505E1AD4EBE1000AD751 /* host.c in Sources */, - 2847505F1AD4EBE1000AD751 /* suil_instance.c in Sources */, + 28AF133223A82F680084A82E /* syntax.c in Sources */, + 28AF136823A830310084A82E /* world.c in Sources */, + 28AF132B23A82F680084A82E /* btree.c in Sources */, + 28AF134423A830120084A82E /* writer.c in Sources */, + 28AF137823A831080084A82E /* host.c in Sources */, + 28AF132D23A82F680084A82E /* hash.c in Sources */, + 28AF136623A830310084A82E /* pluginclass.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -9375,7 +9449,6 @@ "$(TOPLEVEL)/lib-src/lv2/sratom", "$(TOPLEVEL)/lib-src/lv2/sratom/src/**", "$(TOPLEVEL)/lib-src/lv2/suil", - "$(TOPLEVEL)/lib-src/lv2/suil/build/**", "$(TOPLEVEL)/lib-src/lv2/suil/src/**", ); PRODUCT_NAME = lv2; @@ -9401,7 +9474,6 @@ "$(TOPLEVEL)/lib-src/lv2/sratom", "$(TOPLEVEL)/lib-src/lv2/sratom/src/**", "$(TOPLEVEL)/lib-src/lv2/suil", - "$(TOPLEVEL)/lib-src/lv2/suil/build/**", "$(TOPLEVEL)/lib-src/lv2/suil/src/**", ); PRODUCT_NAME = lv2; @@ -10424,7 +10496,6 @@ "$(TOPLEVEL)/lib-src/lv2/sratom", "$(TOPLEVEL)/lib-src/lv2/sratom/src/**", "$(TOPLEVEL)/lib-src/lv2/suil", - "$(TOPLEVEL)/lib-src/lv2/suil/build/**", "$(TOPLEVEL)/lib-src/lv2/suil/src/**", ); PRODUCT_NAME = lv2; @@ -10887,7 +10958,6 @@ "$(TOPLEVEL)/lib-src/lv2/sratom", "$(TOPLEVEL)/lib-src/lv2/sratom/src/**", "$(TOPLEVEL)/lib-src/lv2/suil", - "$(TOPLEVEL)/lib-src/lv2/suil/build/**", "$(TOPLEVEL)/lib-src/lv2/suil/src/**", ); PRODUCT_NAME = lv2; diff --git a/mac/config/i386/lib-src/lv2/lilv/lilv_config.h b/mac/config/i386/lib-src/lv2/lilv/lilv_config.h index 4c159c577..0c3b10f65 100644 --- a/mac/config/i386/lib-src/lv2/lilv/lilv_config.h +++ b/mac/config/i386/lib-src/lv2/lilv/lilv_config.h @@ -3,15 +3,18 @@ #ifndef W_LILV_CONFIG_H_WAF #define W_LILV_CONFIG_H_WAF +/* #undef HAVE_GCOV */ #define HAVE_LV2 1 #define HAVE_SERD 1 #define HAVE_SORD 1 #define HAVE_SRATOM 1 -#define LILV_NEW_LV2 1 -/* #undef HAVE_FLOCK */ -/* #undef HAVE_FILENO */ -/* #undef HAVE_CLOCK_GETTIME */ -#define LILV_VERSION "0.20.0" +#define HAVE_SNDFILE 1 +#define HAVE_LSTAT 1 +#define HAVE_FLOCK 1 +#define HAVE_FILENO 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_LIBDL 1 +#define LILV_VERSION "0.24.6" #define LILV_PATH_SEP ":" #define LILV_DIR_SEP "/" #define LILV_DEFAULT_LV2_PATH "~/Library/Audio/Plug-Ins/LV2:~/.lv2:/usr/local/lib/lv2:/usr/lib/lv2:/Library/Audio/Plug-Ins/LV2" diff --git a/mac/config/i386/lib-src/lv2/serd/serd_config.h b/mac/config/i386/lib-src/lv2/serd/serd_config.h index 38200b064..844f2f26b 100644 --- a/mac/config/i386/lib-src/lv2/serd/serd_config.h +++ b/mac/config/i386/lib-src/lv2/serd/serd_config.h @@ -3,10 +3,10 @@ #ifndef W_SERD_CONFIG_H_WAF #define W_SERD_CONFIG_H_WAF -#define HAVE_FMAX 1 -#define HAVE_POSIX_MEMALIGN 1 -/* #undef HAVE_POSIX_FADVISE */ +/* #undef HAVE_GCOV */ #define HAVE_FILENO 1 -#define SERD_VERSION "0.20.0" +/* #undef HAVE_POSIX_FADVISE */ +#define HAVE_POSIX_MEMALIGN 1 +#define SERD_VERSION "0.30.2" #endif /* W_SERD_CONFIG_H_WAF */ diff --git a/mac/config/i386/lib-src/lv2/sord/sord_config.h b/mac/config/i386/lib-src/lv2/sord/sord_config.h index 7f33112dd..b92721e52 100644 --- a/mac/config/i386/lib-src/lv2/sord/sord_config.h +++ b/mac/config/i386/lib-src/lv2/sord/sord_config.h @@ -3,8 +3,9 @@ #ifndef W_SORD_CONFIG_H_WAF #define W_SORD_CONFIG_H_WAF +/* #undef HAVE_GCOV */ #define HAVE_SERD 1 -#define HAVE_PCRE 1 -#define SORD_VERSION "0.12.2" +/* #undef HAVE_PCRE */ +#define SORD_VERSION "0.16.4" #endif /* W_SORD_CONFIG_H_WAF */ diff --git a/mac/config/i386/lib-src/lv2/sratom/sratom_config.h b/mac/config/i386/lib-src/lv2/sratom/sratom_config.h index 19a941f7d..46615a86c 100644 --- a/mac/config/i386/lib-src/lv2/sratom/sratom_config.h +++ b/mac/config/i386/lib-src/lv2/sratom/sratom_config.h @@ -3,9 +3,10 @@ #ifndef W_SRATOM_CONFIG_H_WAF #define W_SRATOM_CONFIG_H_WAF +/* #undef HAVE_GCOV */ #define HAVE_LV2 1 #define HAVE_SERD 1 #define HAVE_SORD 1 -#define SRATOM_VERSION "0.4.6" +#define SRATOM_VERSION "0.6.4" #endif /* W_SRATOM_CONFIG_H_WAF */ diff --git a/mac/config/x86_64/lib-src/lv2/sratom/suil_config.h b/mac/config/i386/lib-src/lv2/suil/suil_config.h similarity index 51% rename from mac/config/x86_64/lib-src/lv2/sratom/suil_config.h rename to mac/config/i386/lib-src/lv2/suil/suil_config.h index d54e0f970..05c49365b 100644 --- a/mac/config/x86_64/lib-src/lv2/sratom/suil_config.h +++ b/mac/config/i386/lib-src/lv2/suil/suil_config.h @@ -3,14 +3,17 @@ #ifndef W_SUIL_CONFIG_H_WAF #define W_SUIL_CONFIG_H_WAF +#define SUIL_VERSION "0.10.6" #define HAVE_LV2 1 -#define HAVE_LV2_1_6_0 1 -/* #undef HAVE_LIBDL */ -#define SUIL_VERSION "0.8.2" -#define SUIL_MODULE_DIR "/Users/yam/o/audacity/lib-src/lv2/suil/build" +#define HAVE_X11 1 +/* #undef HAVE_QMACCOCOAVIEWCONTAINER */ +#define HAVE_LIBDL 1 +#define SUIL_MODULE_DIR "/usr/local/lib/suil-0" #define SUIL_DIR_SEP "/" #define SUIL_GTK2_LIB_NAME "libgtk-x11-2.0.so.0" +#define SUIL_GTK3_LIB_NAME "libgtk-x11-3.0.so.0" +#define SUIL_WITH_X11 1 #define SUIL_MODULE_PREFIX "lib" -#define SUIL_MODULE_EXT ".so" +#define SUIL_MODULE_EXT ".dylib" #endif /* W_SUIL_CONFIG_H_WAF */ diff --git a/mac/config/x86_64/lib-src/lv2/lilv/lilv_config.h b/mac/config/x86_64/lib-src/lv2/lilv/lilv_config.h index 81a4ea361..46f5a27c7 100644 --- a/mac/config/x86_64/lib-src/lv2/lilv/lilv_config.h +++ b/mac/config/x86_64/lib-src/lv2/lilv/lilv_config.h @@ -3,15 +3,18 @@ #ifndef W_LILV_CONFIG_H_WAF #define W_LILV_CONFIG_H_WAF +/* #undef HAVE_GCOV */ #define HAVE_LV2 1 #define HAVE_SERD 1 #define HAVE_SORD 1 #define HAVE_SRATOM 1 -#define LILV_NEW_LV2 1 +#define HAVE_SNDFILE 1 +#define HAVE_LSTAT 1 #define HAVE_FLOCK 1 #define HAVE_FILENO 1 -/* #undef HAVE_CLOCK_GETTIME */ -#define LILV_VERSION "0.20.0" +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_LIBDL 1 +#define LILV_VERSION "0.24.4" #define LILV_PATH_SEP ":" #define LILV_DIR_SEP "/" #define LILV_DEFAULT_LV2_PATH "~/Library/Audio/Plug-Ins/LV2:~/.lv2:/usr/local/lib/lv2:/usr/lib/lv2:/Library/Audio/Plug-Ins/LV2" diff --git a/mac/config/x86_64/lib-src/lv2/serd/serd_config.h b/mac/config/x86_64/lib-src/lv2/serd/serd_config.h index 38200b064..e6ff8d459 100644 --- a/mac/config/x86_64/lib-src/lv2/serd/serd_config.h +++ b/mac/config/x86_64/lib-src/lv2/serd/serd_config.h @@ -3,10 +3,10 @@ #ifndef W_SERD_CONFIG_H_WAF #define W_SERD_CONFIG_H_WAF -#define HAVE_FMAX 1 -#define HAVE_POSIX_MEMALIGN 1 -/* #undef HAVE_POSIX_FADVISE */ +/* #undef HAVE_GCOV */ #define HAVE_FILENO 1 -#define SERD_VERSION "0.20.0" +/* #undef HAVE_POSIX_FADVISE */ +#define HAVE_POSIX_MEMALIGN 1 +#define SERD_VERSION "0.30.0" #endif /* W_SERD_CONFIG_H_WAF */ diff --git a/mac/config/x86_64/lib-src/lv2/sord/sord_config.h b/mac/config/x86_64/lib-src/lv2/sord/sord_config.h index 7f33112dd..386a54730 100644 --- a/mac/config/x86_64/lib-src/lv2/sord/sord_config.h +++ b/mac/config/x86_64/lib-src/lv2/sord/sord_config.h @@ -3,8 +3,9 @@ #ifndef W_SORD_CONFIG_H_WAF #define W_SORD_CONFIG_H_WAF +/* #undef HAVE_GCOV */ #define HAVE_SERD 1 -#define HAVE_PCRE 1 -#define SORD_VERSION "0.12.2" +/* #undef HAVE_PCRE */ +#define SORD_VERSION "0.16.2" #endif /* W_SORD_CONFIG_H_WAF */ diff --git a/mac/config/x86_64/lib-src/lv2/sratom/sratom_config.h b/mac/config/x86_64/lib-src/lv2/sratom/sratom_config.h index 19a941f7d..0c5699f79 100644 --- a/mac/config/x86_64/lib-src/lv2/sratom/sratom_config.h +++ b/mac/config/x86_64/lib-src/lv2/sratom/sratom_config.h @@ -3,9 +3,10 @@ #ifndef W_SRATOM_CONFIG_H_WAF #define W_SRATOM_CONFIG_H_WAF +/* #undef HAVE_GCOV */ #define HAVE_LV2 1 #define HAVE_SERD 1 #define HAVE_SORD 1 -#define SRATOM_VERSION "0.4.6" +#define SRATOM_VERSION "0.6.2" #endif /* W_SRATOM_CONFIG_H_WAF */ diff --git a/mac/config/i386/lib-src/lv2/sratom/suil_config.h b/mac/config/x86_64/lib-src/lv2/suil/suil_config.h similarity index 51% rename from mac/config/i386/lib-src/lv2/sratom/suil_config.h rename to mac/config/x86_64/lib-src/lv2/suil/suil_config.h index d54e0f970..6485b7dc2 100644 --- a/mac/config/i386/lib-src/lv2/sratom/suil_config.h +++ b/mac/config/x86_64/lib-src/lv2/suil/suil_config.h @@ -3,14 +3,17 @@ #ifndef W_SUIL_CONFIG_H_WAF #define W_SUIL_CONFIG_H_WAF +#define SUIL_VERSION "0.10.4" #define HAVE_LV2 1 -#define HAVE_LV2_1_6_0 1 -/* #undef HAVE_LIBDL */ -#define SUIL_VERSION "0.8.2" -#define SUIL_MODULE_DIR "/Users/yam/o/audacity/lib-src/lv2/suil/build" +#define HAVE_X11 1 +/* #undef HAVE_QMACCOCOAVIEWCONTAINER */ +#define HAVE_LIBDL 1 +#define SUIL_MODULE_DIR "/usr/local/lib/suil-0" #define SUIL_DIR_SEP "/" #define SUIL_GTK2_LIB_NAME "libgtk-x11-2.0.so.0" +#define SUIL_GTK3_LIB_NAME "libgtk-x11-3.0.so.0" +#define SUIL_WITH_X11 1 #define SUIL_MODULE_PREFIX "lib" -#define SUIL_MODULE_EXT ".so" +#define SUIL_MODULE_EXT ".dylib" #endif /* W_SUIL_CONFIG_H_WAF */ diff --git a/src/Makefile.am b/src/Makefile.am index bcc12184a..c8eea3d23 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -895,6 +895,11 @@ audacity_SOURCES += \ effects/lv2/LoadLV2.h \ effects/lv2/LV2Effect.cpp \ effects/lv2/LV2Effect.h \ + effects/lv2/NativeWindow.h \ + effects/lv2/lv2_external_ui.h \ + effects/lv2/zix/common.h \ + effects/lv2/zix/ring.cpp \ + effects/lv2/zix/ring.h \ $(NULL) endif diff --git a/src/Makefile.in b/src/Makefile.in index b28fc1684..c00ce1409 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -155,6 +155,11 @@ bin_PROGRAMS = audacity$(EXEEXT) @USE_LV2_TRUE@ effects/lv2/LoadLV2.h \ @USE_LV2_TRUE@ effects/lv2/LV2Effect.cpp \ @USE_LV2_TRUE@ effects/lv2/LV2Effect.h \ +@USE_LV2_TRUE@ effects/lv2/NativeWindow.h \ +@USE_LV2_TRUE@ effects/lv2/lv2_external_ui.h \ +@USE_LV2_TRUE@ effects/lv2/zix/common.h \ +@USE_LV2_TRUE@ effects/lv2/zix/ring.cpp \ +@USE_LV2_TRUE@ effects/lv2/zix/ring.h \ @USE_LV2_TRUE@ $(NULL) @USE_PORTSMF_TRUE@am__append_34 = $(PORTSMF_CFLAGS) @@ -244,6 +249,9 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = configwin.h configunix.h CONFIG_CLEAN_FILES = audacity.desktop CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" \ + "$(DESTDIR)$(mimedir)" +PROGRAMS = $(bin_PROGRAMS) am__DEPENDENCIES_1 = libaudacity_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am__dirstamp = $(am__leading_dot)dirstamp @@ -266,9 +274,6 @@ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" \ - "$(DESTDIR)$(mimedir)" -PROGRAMS = $(bin_PROGRAMS) am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \ DirManager.h Dither.cpp Dither.h FileFormats.cpp FileFormats.h \ Internat.cpp Internat.h Prefs.cpp Prefs.h SampleFormat.cpp \ @@ -614,13 +619,15 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \ effects/nyquist/LoadNyquist.h effects/nyquist/Nyquist.cpp \ effects/nyquist/Nyquist.h effects/lv2/LoadLV2.cpp \ effects/lv2/LoadLV2.h effects/lv2/LV2Effect.cpp \ - effects/lv2/LV2Effect.h NoteTrack.cpp NoteTrack.h \ - import/ImportMIDI.cpp import/ImportMIDI.h import/ImportQT.cpp \ - effects/vamp/LoadVamp.cpp effects/vamp/LoadVamp.h \ - effects/vamp/VampEffect.cpp effects/vamp/VampEffect.h \ - effects/VST/aeffectx.h effects/VST/VSTEffect.cpp \ - effects/VST/VSTEffect.h effects/VST/VSTControlGTK.cpp \ - effects/VST/VSTControlGTK.h + effects/lv2/LV2Effect.h effects/lv2/NativeWindow.h \ + effects/lv2/lv2_external_ui.h effects/lv2/zix/common.h \ + effects/lv2/zix/ring.cpp effects/lv2/zix/ring.h NoteTrack.cpp \ + NoteTrack.h import/ImportMIDI.cpp import/ImportMIDI.h \ + import/ImportQT.cpp effects/vamp/LoadVamp.cpp \ + effects/vamp/LoadVamp.h effects/vamp/VampEffect.cpp \ + effects/vamp/VampEffect.h effects/VST/aeffectx.h \ + effects/VST/VSTEffect.cpp effects/VST/VSTEffect.h \ + effects/VST/VSTControlGTK.cpp effects/VST/VSTControlGTK.h am__objects_1 = audacity-BlockFile.$(OBJEXT) \ audacity-DirManager.$(OBJEXT) audacity-Dither.$(OBJEXT) \ audacity-FileFormats.$(OBJEXT) audacity-Internat.$(OBJEXT) \ @@ -647,7 +654,8 @@ am__objects_1 = audacity-BlockFile.$(OBJEXT) \ @USE_LIBNYQUIST_TRUE@am__objects_7 = effects/nyquist/audacity-LoadNyquist.$(OBJEXT) \ @USE_LIBNYQUIST_TRUE@ effects/nyquist/audacity-Nyquist.$(OBJEXT) @USE_LV2_TRUE@am__objects_8 = effects/lv2/audacity-LoadLV2.$(OBJEXT) \ -@USE_LV2_TRUE@ effects/lv2/audacity-LV2Effect.$(OBJEXT) +@USE_LV2_TRUE@ effects/lv2/audacity-LV2Effect.$(OBJEXT) \ +@USE_LV2_TRUE@ effects/lv2/zix/audacity-ring.$(OBJEXT) @USE_PORTSMF_TRUE@am__objects_9 = audacity-NoteTrack.$(OBJEXT) \ @USE_PORTSMF_TRUE@ import/audacity-ImportMIDI.$(OBJEXT) @USE_QUICKTIME_TRUE@am__objects_10 = \ @@ -1020,7 +1028,399 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/audacity-AColor.Po \ + ./$(DEPDIR)/audacity-AboutDialog.Po \ + ./$(DEPDIR)/audacity-AdornedRulerPanel.Po \ + ./$(DEPDIR)/audacity-AudacityApp.Po \ + ./$(DEPDIR)/audacity-AudacityException.Po \ + ./$(DEPDIR)/audacity-AudacityLogger.Po \ + ./$(DEPDIR)/audacity-AudioIO.Po \ + ./$(DEPDIR)/audacity-AudioIOBase.Po \ + ./$(DEPDIR)/audacity-AutoRecovery.Po \ + ./$(DEPDIR)/audacity-AutoRecoveryDialog.Po \ + ./$(DEPDIR)/audacity-BatchCommandDialog.Po \ + ./$(DEPDIR)/audacity-BatchCommands.Po \ + ./$(DEPDIR)/audacity-BatchProcessDialog.Po \ + ./$(DEPDIR)/audacity-Benchmark.Po \ + ./$(DEPDIR)/audacity-BlockFile.Po \ + ./$(DEPDIR)/audacity-CellularPanel.Po \ + ./$(DEPDIR)/audacity-Clipboard.Po \ + ./$(DEPDIR)/audacity-CommonCommandFlags.Po \ + ./$(DEPDIR)/audacity-CrashReport.Po \ + ./$(DEPDIR)/audacity-Dependencies.Po \ + ./$(DEPDIR)/audacity-DeviceChange.Po \ + ./$(DEPDIR)/audacity-DeviceManager.Po \ + ./$(DEPDIR)/audacity-Diags.Po \ + ./$(DEPDIR)/audacity-DirManager.Po \ + ./$(DEPDIR)/audacity-Dither.Po \ + ./$(DEPDIR)/audacity-Envelope.Po \ + ./$(DEPDIR)/audacity-EnvelopeEditor.Po \ + ./$(DEPDIR)/audacity-FFT.Po ./$(DEPDIR)/audacity-FFmpeg.Po \ + ./$(DEPDIR)/audacity-FileException.Po \ + ./$(DEPDIR)/audacity-FileFormats.Po \ + ./$(DEPDIR)/audacity-FileIO.Po \ + ./$(DEPDIR)/audacity-FileNames.Po \ + ./$(DEPDIR)/audacity-FreqWindow.Po \ + ./$(DEPDIR)/audacity-HelpText.Po \ + ./$(DEPDIR)/audacity-HistoryWindow.Po \ + ./$(DEPDIR)/audacity-ImageManipulation.Po \ + ./$(DEPDIR)/audacity-InconsistencyException.Po \ + ./$(DEPDIR)/audacity-Internat.Po \ + ./$(DEPDIR)/audacity-InterpolateAudio.Po \ + ./$(DEPDIR)/audacity-KeyboardCapture.Po \ + ./$(DEPDIR)/audacity-LabelDialog.Po \ + ./$(DEPDIR)/audacity-LabelTrack.Po \ + ./$(DEPDIR)/audacity-LangChoice.Po \ + ./$(DEPDIR)/audacity-Languages.Po \ + ./$(DEPDIR)/audacity-Legacy.Po ./$(DEPDIR)/audacity-Lyrics.Po \ + ./$(DEPDIR)/audacity-LyricsWindow.Po \ + ./$(DEPDIR)/audacity-Matrix.Po ./$(DEPDIR)/audacity-Menus.Po \ + ./$(DEPDIR)/audacity-MissingAliasFileDialog.Po \ + ./$(DEPDIR)/audacity-Mix.Po ./$(DEPDIR)/audacity-MixerBoard.Po \ + ./$(DEPDIR)/audacity-ModuleManager.Po \ + ./$(DEPDIR)/audacity-NoteTrack.Po \ + ./$(DEPDIR)/audacity-PitchName.Po \ + ./$(DEPDIR)/audacity-PlatformCompatibility.Po \ + ./$(DEPDIR)/audacity-PluginManager.Po \ + ./$(DEPDIR)/audacity-Prefs.Po ./$(DEPDIR)/audacity-Printing.Po \ + ./$(DEPDIR)/audacity-Profiler.Po \ + ./$(DEPDIR)/audacity-Project.Po \ + ./$(DEPDIR)/audacity-ProjectAudioIO.Po \ + ./$(DEPDIR)/audacity-ProjectAudioManager.Po \ + ./$(DEPDIR)/audacity-ProjectFSCK.Po \ + ./$(DEPDIR)/audacity-ProjectFileIO.Po \ + ./$(DEPDIR)/audacity-ProjectFileIORegistry.Po \ + ./$(DEPDIR)/audacity-ProjectFileManager.Po \ + ./$(DEPDIR)/audacity-ProjectHistory.Po \ + ./$(DEPDIR)/audacity-ProjectManager.Po \ + ./$(DEPDIR)/audacity-ProjectSelectionManager.Po \ + ./$(DEPDIR)/audacity-ProjectSettings.Po \ + ./$(DEPDIR)/audacity-ProjectStatus.Po \ + ./$(DEPDIR)/audacity-ProjectWindow.Po \ + ./$(DEPDIR)/audacity-RealFFTf.Po \ + ./$(DEPDIR)/audacity-RealFFTf48x.Po \ + ./$(DEPDIR)/audacity-Resample.Po \ + ./$(DEPDIR)/audacity-RingBuffer.Po \ + ./$(DEPDIR)/audacity-SampleFormat.Po \ + ./$(DEPDIR)/audacity-Screenshot.Po \ + ./$(DEPDIR)/audacity-SelectUtilities.Po \ + ./$(DEPDIR)/audacity-SelectedRegion.Po \ + ./$(DEPDIR)/audacity-SelectionState.Po \ + ./$(DEPDIR)/audacity-Sequence.Po \ + ./$(DEPDIR)/audacity-Shuttle.Po \ + ./$(DEPDIR)/audacity-ShuttleGetDefinition.Po \ + ./$(DEPDIR)/audacity-ShuttleGui.Po \ + ./$(DEPDIR)/audacity-ShuttlePrefs.Po \ + ./$(DEPDIR)/audacity-Snap.Po \ + ./$(DEPDIR)/audacity-SoundActivatedRecord.Po \ + ./$(DEPDIR)/audacity-Spectrum.Po \ + ./$(DEPDIR)/audacity-SplashDialog.Po \ + ./$(DEPDIR)/audacity-SseMathFuncs.Po \ + ./$(DEPDIR)/audacity-Tags.Po ./$(DEPDIR)/audacity-Theme.Po \ + ./$(DEPDIR)/audacity-TimeDialog.Po \ + ./$(DEPDIR)/audacity-TimeTrack.Po \ + ./$(DEPDIR)/audacity-TimerRecordDialog.Po \ + ./$(DEPDIR)/audacity-Track.Po \ + ./$(DEPDIR)/audacity-TrackArtist.Po \ + ./$(DEPDIR)/audacity-TrackInfo.Po \ + ./$(DEPDIR)/audacity-TrackPanel.Po \ + ./$(DEPDIR)/audacity-TrackPanelAx.Po \ + ./$(DEPDIR)/audacity-TrackPanelResizeHandle.Po \ + ./$(DEPDIR)/audacity-TrackPanelResizerCell.Po \ + ./$(DEPDIR)/audacity-TrackUtilities.Po \ + ./$(DEPDIR)/audacity-UIHandle.Po \ + ./$(DEPDIR)/audacity-UndoManager.Po \ + ./$(DEPDIR)/audacity-UserException.Po \ + ./$(DEPDIR)/audacity-ViewInfo.Po \ + ./$(DEPDIR)/audacity-VoiceKey.Po \ + ./$(DEPDIR)/audacity-WaveClip.Po \ + ./$(DEPDIR)/audacity-WaveTrack.Po \ + ./$(DEPDIR)/audacity-WrappedType.Po \ + ./$(DEPDIR)/audacity-ZoomInfo.Po \ + ./$(DEPDIR)/libaudacity_la-BlockFile.Plo \ + ./$(DEPDIR)/libaudacity_la-DirManager.Plo \ + ./$(DEPDIR)/libaudacity_la-Dither.Plo \ + ./$(DEPDIR)/libaudacity_la-FileFormats.Plo \ + ./$(DEPDIR)/libaudacity_la-Internat.Plo \ + ./$(DEPDIR)/libaudacity_la-Prefs.Plo \ + ./$(DEPDIR)/libaudacity_la-SampleFormat.Plo \ + ./$(DEPDIR)/libaudacity_la-Sequence.Plo \ + blockfile/$(DEPDIR)/audacity-LegacyAliasBlockFile.Po \ + blockfile/$(DEPDIR)/audacity-LegacyBlockFile.Po \ + blockfile/$(DEPDIR)/audacity-NotYetAvailableException.Po \ + blockfile/$(DEPDIR)/audacity-ODDecodeBlockFile.Po \ + blockfile/$(DEPDIR)/audacity-ODPCMAliasBlockFile.Po \ + blockfile/$(DEPDIR)/audacity-PCMAliasBlockFile.Po \ + blockfile/$(DEPDIR)/audacity-SilentBlockFile.Po \ + blockfile/$(DEPDIR)/audacity-SimpleBlockFile.Po \ + blockfile/$(DEPDIR)/libaudacity_la-LegacyAliasBlockFile.Plo \ + blockfile/$(DEPDIR)/libaudacity_la-LegacyBlockFile.Plo \ + blockfile/$(DEPDIR)/libaudacity_la-NotYetAvailableException.Plo \ + blockfile/$(DEPDIR)/libaudacity_la-ODDecodeBlockFile.Plo \ + blockfile/$(DEPDIR)/libaudacity_la-ODPCMAliasBlockFile.Plo \ + blockfile/$(DEPDIR)/libaudacity_la-PCMAliasBlockFile.Plo \ + blockfile/$(DEPDIR)/libaudacity_la-SilentBlockFile.Plo \ + blockfile/$(DEPDIR)/libaudacity_la-SimpleBlockFile.Plo \ + commands/$(DEPDIR)/audacity-AppCommandEvent.Po \ + commands/$(DEPDIR)/audacity-AudacityCommand.Po \ + commands/$(DEPDIR)/audacity-BatchEvalCommand.Po \ + commands/$(DEPDIR)/audacity-Command.Po \ + commands/$(DEPDIR)/audacity-CommandBuilder.Po \ + commands/$(DEPDIR)/audacity-CommandContext.Po \ + commands/$(DEPDIR)/audacity-CommandDirectory.Po \ + commands/$(DEPDIR)/audacity-CommandHandler.Po \ + commands/$(DEPDIR)/audacity-CommandManager.Po \ + commands/$(DEPDIR)/audacity-CommandSignature.Po \ + commands/$(DEPDIR)/audacity-CommandTargets.Po \ + commands/$(DEPDIR)/audacity-CommandType.Po \ + commands/$(DEPDIR)/audacity-CompareAudioCommand.Po \ + commands/$(DEPDIR)/audacity-Demo.Po \ + commands/$(DEPDIR)/audacity-DragCommand.Po \ + commands/$(DEPDIR)/audacity-GetInfoCommand.Po \ + commands/$(DEPDIR)/audacity-GetTrackInfoCommand.Po \ + commands/$(DEPDIR)/audacity-HelpCommand.Po \ + commands/$(DEPDIR)/audacity-ImportExportCommands.Po \ + commands/$(DEPDIR)/audacity-Keyboard.Po \ + commands/$(DEPDIR)/audacity-LoadCommands.Po \ + commands/$(DEPDIR)/audacity-MessageCommand.Po \ + commands/$(DEPDIR)/audacity-OpenSaveCommands.Po \ + commands/$(DEPDIR)/audacity-PreferenceCommands.Po \ + commands/$(DEPDIR)/audacity-ResponseQueue.Po \ + commands/$(DEPDIR)/audacity-ScreenshotCommand.Po \ + commands/$(DEPDIR)/audacity-ScriptCommandRelay.Po \ + commands/$(DEPDIR)/audacity-SelectCommand.Po \ + commands/$(DEPDIR)/audacity-SetClipCommand.Po \ + commands/$(DEPDIR)/audacity-SetEnvelopeCommand.Po \ + commands/$(DEPDIR)/audacity-SetLabelCommand.Po \ + commands/$(DEPDIR)/audacity-SetProjectCommand.Po \ + commands/$(DEPDIR)/audacity-SetTrackInfoCommand.Po \ + effects/$(DEPDIR)/audacity-Amplify.Po \ + effects/$(DEPDIR)/audacity-AutoDuck.Po \ + effects/$(DEPDIR)/audacity-BassTreble.Po \ + effects/$(DEPDIR)/audacity-Biquad.Po \ + effects/$(DEPDIR)/audacity-ChangePitch.Po \ + effects/$(DEPDIR)/audacity-ChangeSpeed.Po \ + effects/$(DEPDIR)/audacity-ChangeTempo.Po \ + effects/$(DEPDIR)/audacity-ClickRemoval.Po \ + effects/$(DEPDIR)/audacity-Compressor.Po \ + effects/$(DEPDIR)/audacity-Contrast.Po \ + effects/$(DEPDIR)/audacity-Distortion.Po \ + effects/$(DEPDIR)/audacity-DtmfGen.Po \ + effects/$(DEPDIR)/audacity-EBUR128.Po \ + effects/$(DEPDIR)/audacity-Echo.Po \ + effects/$(DEPDIR)/audacity-Effect.Po \ + effects/$(DEPDIR)/audacity-EffectManager.Po \ + effects/$(DEPDIR)/audacity-EffectRack.Po \ + effects/$(DEPDIR)/audacity-Equalization.Po \ + effects/$(DEPDIR)/audacity-Equalization48x.Po \ + effects/$(DEPDIR)/audacity-Fade.Po \ + effects/$(DEPDIR)/audacity-FindClipping.Po \ + effects/$(DEPDIR)/audacity-Generator.Po \ + effects/$(DEPDIR)/audacity-Invert.Po \ + effects/$(DEPDIR)/audacity-LoadEffects.Po \ + effects/$(DEPDIR)/audacity-Loudness.Po \ + effects/$(DEPDIR)/audacity-Noise.Po \ + effects/$(DEPDIR)/audacity-NoiseReduction.Po \ + effects/$(DEPDIR)/audacity-NoiseRemoval.Po \ + effects/$(DEPDIR)/audacity-Normalize.Po \ + effects/$(DEPDIR)/audacity-Paulstretch.Po \ + effects/$(DEPDIR)/audacity-Phaser.Po \ + effects/$(DEPDIR)/audacity-RealtimeEffectManager.Po \ + effects/$(DEPDIR)/audacity-Repair.Po \ + effects/$(DEPDIR)/audacity-Repeat.Po \ + effects/$(DEPDIR)/audacity-Reverb.Po \ + effects/$(DEPDIR)/audacity-Reverse.Po \ + effects/$(DEPDIR)/audacity-SBSMSEffect.Po \ + effects/$(DEPDIR)/audacity-ScienFilter.Po \ + effects/$(DEPDIR)/audacity-Silence.Po \ + effects/$(DEPDIR)/audacity-SimpleMono.Po \ + effects/$(DEPDIR)/audacity-SoundTouchEffect.Po \ + effects/$(DEPDIR)/audacity-StereoToMono.Po \ + effects/$(DEPDIR)/audacity-TimeScale.Po \ + effects/$(DEPDIR)/audacity-TimeWarper.Po \ + effects/$(DEPDIR)/audacity-ToneGen.Po \ + effects/$(DEPDIR)/audacity-TruncSilence.Po \ + effects/$(DEPDIR)/audacity-TwoPassSimpleMono.Po \ + effects/$(DEPDIR)/audacity-Wahwah.Po \ + effects/VST/$(DEPDIR)/audacity-VSTControlGTK.Po \ + effects/VST/$(DEPDIR)/audacity-VSTEffect.Po \ + effects/audiounits/$(DEPDIR)/audacity-AudioUnitEffect.Po \ + effects/ladspa/$(DEPDIR)/audacity-LadspaEffect.Po \ + effects/lv2/$(DEPDIR)/audacity-LV2Effect.Po \ + effects/lv2/$(DEPDIR)/audacity-LoadLV2.Po \ + effects/lv2/zix/$(DEPDIR)/audacity-ring.Po \ + effects/nyquist/$(DEPDIR)/audacity-LoadNyquist.Po \ + effects/nyquist/$(DEPDIR)/audacity-Nyquist.Po \ + effects/vamp/$(DEPDIR)/audacity-LoadVamp.Po \ + effects/vamp/$(DEPDIR)/audacity-VampEffect.Po \ + export/$(DEPDIR)/audacity-Export.Po \ + export/$(DEPDIR)/audacity-ExportCL.Po \ + export/$(DEPDIR)/audacity-ExportFFmpeg.Po \ + export/$(DEPDIR)/audacity-ExportFFmpegDialogs.Po \ + export/$(DEPDIR)/audacity-ExportFLAC.Po \ + export/$(DEPDIR)/audacity-ExportMP2.Po \ + export/$(DEPDIR)/audacity-ExportMP3.Po \ + export/$(DEPDIR)/audacity-ExportMultiple.Po \ + export/$(DEPDIR)/audacity-ExportOGG.Po \ + export/$(DEPDIR)/audacity-ExportPCM.Po \ + import/$(DEPDIR)/audacity-FormatClassifier.Po \ + import/$(DEPDIR)/audacity-Import.Po \ + import/$(DEPDIR)/audacity-ImportFFmpeg.Po \ + import/$(DEPDIR)/audacity-ImportFLAC.Po \ + import/$(DEPDIR)/audacity-ImportGStreamer.Po \ + import/$(DEPDIR)/audacity-ImportLOF.Po \ + import/$(DEPDIR)/audacity-ImportMIDI.Po \ + import/$(DEPDIR)/audacity-ImportMP3.Po \ + import/$(DEPDIR)/audacity-ImportOGG.Po \ + import/$(DEPDIR)/audacity-ImportPCM.Po \ + import/$(DEPDIR)/audacity-ImportQT.Po \ + import/$(DEPDIR)/audacity-ImportRaw.Po \ + import/$(DEPDIR)/audacity-MultiFormatReader.Po \ + import/$(DEPDIR)/audacity-RawAudioGuess.Po \ + import/$(DEPDIR)/audacity-SpecPowerMeter.Po \ + menus/$(DEPDIR)/audacity-ClipMenus.Po \ + menus/$(DEPDIR)/audacity-EditMenus.Po \ + menus/$(DEPDIR)/audacity-ExtraMenus.Po \ + menus/$(DEPDIR)/audacity-FileMenus.Po \ + menus/$(DEPDIR)/audacity-HelpMenus.Po \ + menus/$(DEPDIR)/audacity-LabelMenus.Po \ + menus/$(DEPDIR)/audacity-NavigationMenus.Po \ + menus/$(DEPDIR)/audacity-PluginMenus.Po \ + menus/$(DEPDIR)/audacity-SelectMenus.Po \ + menus/$(DEPDIR)/audacity-ToolbarMenus.Po \ + menus/$(DEPDIR)/audacity-TrackMenus.Po \ + menus/$(DEPDIR)/audacity-TransportMenus.Po \ + menus/$(DEPDIR)/audacity-ViewMenus.Po \ + menus/$(DEPDIR)/audacity-WindowMenus.Po \ + ondemand/$(DEPDIR)/audacity-ODComputeSummaryTask.Po \ + ondemand/$(DEPDIR)/audacity-ODDecodeFFmpegTask.Po \ + ondemand/$(DEPDIR)/audacity-ODDecodeFlacTask.Po \ + ondemand/$(DEPDIR)/audacity-ODDecodeTask.Po \ + ondemand/$(DEPDIR)/audacity-ODManager.Po \ + ondemand/$(DEPDIR)/audacity-ODTask.Po \ + ondemand/$(DEPDIR)/audacity-ODTaskThread.Po \ + ondemand/$(DEPDIR)/audacity-ODWaveTrackTaskQueue.Po \ + prefs/$(DEPDIR)/audacity-BatchPrefs.Po \ + prefs/$(DEPDIR)/audacity-DevicePrefs.Po \ + prefs/$(DEPDIR)/audacity-DirectoriesPrefs.Po \ + prefs/$(DEPDIR)/audacity-EffectsPrefs.Po \ + prefs/$(DEPDIR)/audacity-ExtImportPrefs.Po \ + prefs/$(DEPDIR)/audacity-GUIPrefs.Po \ + prefs/$(DEPDIR)/audacity-ImportExportPrefs.Po \ + prefs/$(DEPDIR)/audacity-KeyConfigPrefs.Po \ + prefs/$(DEPDIR)/audacity-LibraryPrefs.Po \ + prefs/$(DEPDIR)/audacity-MidiIOPrefs.Po \ + prefs/$(DEPDIR)/audacity-ModulePrefs.Po \ + prefs/$(DEPDIR)/audacity-MousePrefs.Po \ + prefs/$(DEPDIR)/audacity-PlaybackPrefs.Po \ + prefs/$(DEPDIR)/audacity-PrefsDialog.Po \ + prefs/$(DEPDIR)/audacity-ProjectsPrefs.Po \ + prefs/$(DEPDIR)/audacity-QualityPrefs.Po \ + prefs/$(DEPDIR)/audacity-RecordingPrefs.Po \ + prefs/$(DEPDIR)/audacity-SpectrogramSettings.Po \ + prefs/$(DEPDIR)/audacity-SpectrumPrefs.Po \ + prefs/$(DEPDIR)/audacity-ThemePrefs.Po \ + prefs/$(DEPDIR)/audacity-TracksBehaviorsPrefs.Po \ + prefs/$(DEPDIR)/audacity-TracksPrefs.Po \ + prefs/$(DEPDIR)/audacity-WarningsPrefs.Po \ + prefs/$(DEPDIR)/audacity-WaveformPrefs.Po \ + prefs/$(DEPDIR)/audacity-WaveformSettings.Po \ + toolbars/$(DEPDIR)/audacity-ControlToolBar.Po \ + toolbars/$(DEPDIR)/audacity-DeviceToolBar.Po \ + toolbars/$(DEPDIR)/audacity-EditToolBar.Po \ + toolbars/$(DEPDIR)/audacity-MeterToolBar.Po \ + toolbars/$(DEPDIR)/audacity-MixerToolBar.Po \ + toolbars/$(DEPDIR)/audacity-ScrubbingToolBar.Po \ + toolbars/$(DEPDIR)/audacity-SelectionBar.Po \ + toolbars/$(DEPDIR)/audacity-SpectralSelectionBar.Po \ + toolbars/$(DEPDIR)/audacity-ToolBar.Po \ + toolbars/$(DEPDIR)/audacity-ToolDock.Po \ + toolbars/$(DEPDIR)/audacity-ToolManager.Po \ + toolbars/$(DEPDIR)/audacity-ToolsToolBar.Po \ + toolbars/$(DEPDIR)/audacity-TranscriptionToolBar.Po \ + tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelDefaultClickHandle.Po \ + tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelGlyphHandle.Po \ + tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTextHandle.Po \ + tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackControls.Po \ + tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackVRulerControls.Po \ + tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackView.Po \ + tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackButtonHandle.Po \ + tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackControls.Po \ + tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackSliderHandles.Po \ + tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVRulerControls.Po \ + tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVZoomHandle.Po \ + tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackView.Po \ + tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-StretchHandle.Po \ + tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackButtonHandles.Po \ + tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackControls.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-CutlineHandle.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SampleHandle.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVRulerControls.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVZoomHandle.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumView.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackControls.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackSliderHandles.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVRulerControls.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVZoomHandle.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackView.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackViewConstants.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVRulerControls.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVZoomHandle.Po \ + tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformView.Po \ + tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackControls.Po \ + tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackVRulerControls.Po \ + tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackView.Po \ + tracks/ui/$(DEPDIR)/audacity-BackgroundCell.Po \ + tracks/ui/$(DEPDIR)/audacity-ButtonHandle.Po \ + tracks/ui/$(DEPDIR)/audacity-CommonTrackControls.Po \ + tracks/ui/$(DEPDIR)/audacity-CommonTrackPanelCell.Po \ + tracks/ui/$(DEPDIR)/audacity-CommonTrackView.Po \ + tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po \ + tracks/ui/$(DEPDIR)/audacity-EnvelopeHandle.Po \ + tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po \ + tracks/ui/$(DEPDIR)/audacity-ScrubUI.Po \ + tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po \ + tracks/ui/$(DEPDIR)/audacity-SelectHandle.Po \ + tracks/ui/$(DEPDIR)/audacity-SliderHandle.Po \ + tracks/ui/$(DEPDIR)/audacity-TimeShiftHandle.Po \ + tracks/ui/$(DEPDIR)/audacity-TrackButtonHandles.Po \ + tracks/ui/$(DEPDIR)/audacity-TrackControls.Po \ + tracks/ui/$(DEPDIR)/audacity-TrackSelectHandle.Po \ + tracks/ui/$(DEPDIR)/audacity-TrackVRulerControls.Po \ + tracks/ui/$(DEPDIR)/audacity-TrackView.Po \ + tracks/ui/$(DEPDIR)/audacity-ZoomHandle.Po \ + widgets/$(DEPDIR)/audacity-AButton.Po \ + widgets/$(DEPDIR)/audacity-ASlider.Po \ + widgets/$(DEPDIR)/audacity-AttachableScrollBar.Po \ + widgets/$(DEPDIR)/audacity-AudacityMessageBox.Po \ + widgets/$(DEPDIR)/audacity-BackedPanel.Po \ + widgets/$(DEPDIR)/audacity-ErrorDialog.Po \ + widgets/$(DEPDIR)/audacity-ExpandingToolBar.Po \ + widgets/$(DEPDIR)/audacity-FileHistory.Po \ + widgets/$(DEPDIR)/audacity-Grabber.Po \ + widgets/$(DEPDIR)/audacity-Grid.Po \ + widgets/$(DEPDIR)/audacity-HelpSystem.Po \ + widgets/$(DEPDIR)/audacity-HtmlWindow.Po \ + widgets/$(DEPDIR)/audacity-ImageRoll.Po \ + widgets/$(DEPDIR)/audacity-KeyView.Po \ + widgets/$(DEPDIR)/audacity-Meter.Po \ + widgets/$(DEPDIR)/audacity-MeterPanelBase.Po \ + widgets/$(DEPDIR)/audacity-MultiDialog.Po \ + widgets/$(DEPDIR)/audacity-NumericTextCtrl.Po \ + widgets/$(DEPDIR)/audacity-Overlay.Po \ + widgets/$(DEPDIR)/audacity-OverlayPanel.Po \ + widgets/$(DEPDIR)/audacity-PopupMenuTable.Po \ + widgets/$(DEPDIR)/audacity-ProgressDialog.Po \ + widgets/$(DEPDIR)/audacity-Ruler.Po \ + widgets/$(DEPDIR)/audacity-Warning.Po \ + widgets/$(DEPDIR)/audacity-numformatter.Po \ + widgets/$(DEPDIR)/audacity-valnum.Po \ + widgets/$(DEPDIR)/audacity-wxPanelWrapper.Po \ + xml/$(DEPDIR)/audacity-XMLFileReader.Po \ + xml/$(DEPDIR)/audacity-XMLTagHandler.Po \ + xml/$(DEPDIR)/audacity-XMLWriter.Po \ + xml/$(DEPDIR)/libaudacity_la-XMLTagHandler.Plo am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -1313,7 +1713,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -1766,8 +2165,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1803,50 +2202,6 @@ distclean-hdr: -rm -f configwin.h stamp-h1 configunix.h stamp-h2 audacity.desktop: $(top_builddir)/config.status $(srcdir)/audacity.desktop.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -clean-checkLTLIBRARIES: - -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) - @list='$(check_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } -blockfile/$(am__dirstamp): - @$(MKDIR_P) blockfile - @: > blockfile/$(am__dirstamp) -blockfile/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) blockfile/$(DEPDIR) - @: > blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-LegacyAliasBlockFile.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-LegacyBlockFile.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-NotYetAvailableException.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-ODDecodeBlockFile.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-ODPCMAliasBlockFile.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-PCMAliasBlockFile.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-SilentBlockFile.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -blockfile/libaudacity_la-SimpleBlockFile.lo: \ - blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) -xml/$(am__dirstamp): - @$(MKDIR_P) xml - @: > xml/$(am__dirstamp) -xml/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) xml/$(DEPDIR) - @: > xml/$(DEPDIR)/$(am__dirstamp) -xml/libaudacity_la-XMLTagHandler.lo: xml/$(am__dirstamp) \ - xml/$(DEPDIR)/$(am__dirstamp) - -libaudacity.la: $(libaudacity_la_OBJECTS) $(libaudacity_la_DEPENDENCIES) $(EXTRA_libaudacity_la_DEPENDENCIES) - $(AM_V_CXXLD)$(CXXLINK) $(libaudacity_la_OBJECTS) $(libaudacity_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ @@ -1896,6 +2251,50 @@ clean-binPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + +clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +blockfile/$(am__dirstamp): + @$(MKDIR_P) blockfile + @: > blockfile/$(am__dirstamp) +blockfile/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) blockfile/$(DEPDIR) + @: > blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-LegacyAliasBlockFile.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-LegacyBlockFile.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-NotYetAvailableException.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-ODDecodeBlockFile.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-ODPCMAliasBlockFile.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-PCMAliasBlockFile.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-SilentBlockFile.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +blockfile/libaudacity_la-SimpleBlockFile.lo: \ + blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) +xml/$(am__dirstamp): + @$(MKDIR_P) xml + @: > xml/$(am__dirstamp) +xml/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) xml/$(DEPDIR) + @: > xml/$(DEPDIR)/$(am__dirstamp) +xml/libaudacity_la-XMLTagHandler.lo: xml/$(am__dirstamp) \ + xml/$(DEPDIR)/$(am__dirstamp) + +libaudacity.la: $(libaudacity_la_OBJECTS) $(libaudacity_la_DEPENDENCIES) $(EXTRA_libaudacity_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libaudacity_la_OBJECTS) $(libaudacity_la_LIBADD) $(LIBS) blockfile/audacity-LegacyAliasBlockFile.$(OBJEXT): \ blockfile/$(am__dirstamp) blockfile/$(DEPDIR)/$(am__dirstamp) blockfile/audacity-LegacyBlockFile.$(OBJEXT): \ @@ -2564,6 +2963,15 @@ effects/lv2/audacity-LoadLV2.$(OBJEXT): effects/lv2/$(am__dirstamp) \ effects/lv2/$(DEPDIR)/$(am__dirstamp) effects/lv2/audacity-LV2Effect.$(OBJEXT): effects/lv2/$(am__dirstamp) \ effects/lv2/$(DEPDIR)/$(am__dirstamp) +effects/lv2/zix/$(am__dirstamp): + @$(MKDIR_P) effects/lv2/zix + @: > effects/lv2/zix/$(am__dirstamp) +effects/lv2/zix/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) effects/lv2/zix/$(DEPDIR) + @: > effects/lv2/zix/$(DEPDIR)/$(am__dirstamp) +effects/lv2/zix/audacity-ring.$(OBJEXT): \ + effects/lv2/zix/$(am__dirstamp) \ + effects/lv2/zix/$(DEPDIR)/$(am__dirstamp) import/audacity-ImportMIDI.$(OBJEXT): import/$(am__dirstamp) \ import/$(DEPDIR)/$(am__dirstamp) import/audacity-ImportQT.$(OBJEXT): import/$(am__dirstamp) \ @@ -2606,6 +3014,7 @@ mostlyclean-compile: -rm -f effects/audiounits/*.$(OBJEXT) -rm -f effects/ladspa/*.$(OBJEXT) -rm -f effects/lv2/*.$(OBJEXT) + -rm -f effects/lv2/zix/*.$(OBJEXT) -rm -f effects/nyquist/*.$(OBJEXT) -rm -f effects/vamp/*.$(OBJEXT) -rm -f export/*.$(OBJEXT) @@ -2627,403 +3036,410 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AColor.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AboutDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AdornedRulerPanel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudacityApp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudacityException.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudacityLogger.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudioIO.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudioIOBase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AutoRecovery.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AutoRecoveryDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BatchCommandDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BatchCommands.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BatchProcessDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Benchmark.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-CellularPanel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Clipboard.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-CommonCommandFlags.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-CrashReport.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Dependencies.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DeviceChange.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DeviceManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Diags.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DirManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Dither.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Envelope.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-EnvelopeEditor.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FFT.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FFmpeg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileException.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileFormats.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileIO.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileNames.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FreqWindow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-HelpText.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-HistoryWindow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ImageManipulation.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-InconsistencyException.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Internat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-InterpolateAudio.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-KeyboardCapture.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LabelDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LabelTrack.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LangChoice.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Languages.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Legacy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Lyrics.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LyricsWindow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Matrix.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Menus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-MissingAliasFileDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Mix.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-MixerBoard.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ModuleManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-NoteTrack.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-PitchName.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-PlatformCompatibility.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-PluginManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Prefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Printing.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Profiler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Project.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectAudioIO.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectAudioManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFSCK.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileIO.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileIORegistry.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectHistory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectSelectionManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectSettings.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectStatus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectWindow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RealFFTf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RealFFTf48x.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Resample.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RingBuffer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SampleFormat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Screenshot.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SelectUtilities.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SelectedRegion.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SelectionState.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Sequence.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Shuttle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ShuttleGetDefinition.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ShuttleGui.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ShuttlePrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Snap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SoundActivatedRecord.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Spectrum.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SplashDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SseMathFuncs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Tags.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Theme.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TimeDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TimeTrack.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TimerRecordDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Track.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackArtist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackInfo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelAx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelResizeHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelResizerCell.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackUtilities.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-UIHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-UndoManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-UserException.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ViewInfo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-VoiceKey.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-WaveClip.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-WaveTrack.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-WrappedType.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ZoomInfo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-BlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-DirManager.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Dither.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-FileFormats.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Internat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Prefs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-SampleFormat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Sequence.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-LegacyAliasBlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-LegacyBlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-NotYetAvailableException.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-ODDecodeBlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-ODPCMAliasBlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-PCMAliasBlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-SilentBlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-SimpleBlockFile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-LegacyAliasBlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-LegacyBlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-NotYetAvailableException.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-ODDecodeBlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-ODPCMAliasBlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-PCMAliasBlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-SilentBlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-SimpleBlockFile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-AppCommandEvent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-AudacityCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-BatchEvalCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-Command.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandBuilder.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandContext.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandDirectory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandHandler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandSignature.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandTargets.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandType.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CompareAudioCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-Demo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-DragCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-GetInfoCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-GetTrackInfoCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-HelpCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ImportExportCommands.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-Keyboard.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-LoadCommands.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-MessageCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-OpenSaveCommands.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-PreferenceCommands.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ResponseQueue.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ScreenshotCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ScriptCommandRelay.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SelectCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetClipCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetEnvelopeCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetLabelCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetProjectCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetTrackInfoCommand.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Amplify.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-AutoDuck.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-BassTreble.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Biquad.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ChangePitch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ChangeSpeed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ChangeTempo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ClickRemoval.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Compressor.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Contrast.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Distortion.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-DtmfGen.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-EBUR128.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Echo.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Effect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-EffectManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-EffectRack.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Equalization.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Equalization48x.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Fade.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-FindClipping.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Generator.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Invert.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-LoadEffects.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Loudness.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Noise.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-NoiseReduction.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-NoiseRemoval.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Normalize.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Paulstretch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Phaser.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-RealtimeEffectManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Repair.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Repeat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Reverb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Reverse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-SBSMSEffect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ScienFilter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Silence.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-SimpleMono.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-SoundTouchEffect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-StereoToMono.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TimeScale.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TimeWarper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ToneGen.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TruncSilence.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TwoPassSimpleMono.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Wahwah.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/VST/$(DEPDIR)/audacity-VSTControlGTK.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/VST/$(DEPDIR)/audacity-VSTEffect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/audiounits/$(DEPDIR)/audacity-AudioUnitEffect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/ladspa/$(DEPDIR)/audacity-LadspaEffect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/lv2/$(DEPDIR)/audacity-LV2Effect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/lv2/$(DEPDIR)/audacity-LoadLV2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/nyquist/$(DEPDIR)/audacity-LoadNyquist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/nyquist/$(DEPDIR)/audacity-Nyquist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/vamp/$(DEPDIR)/audacity-LoadVamp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@effects/vamp/$(DEPDIR)/audacity-VampEffect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-Export.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportCL.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportFFmpeg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportFFmpegDialogs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportFLAC.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportMP2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportMP3.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportMultiple.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportOGG.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportPCM.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-FormatClassifier.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-Import.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportFFmpeg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportFLAC.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportGStreamer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportLOF.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportMIDI.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportMP3.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportOGG.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportPCM.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportQT.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportRaw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-MultiFormatReader.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-RawAudioGuess.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-SpecPowerMeter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ClipMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-EditMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ExtraMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-FileMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-HelpMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-LabelMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-NavigationMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-PluginMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-SelectMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ToolbarMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-TrackMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-TransportMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ViewMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-WindowMenus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODComputeSummaryTask.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODDecodeFFmpegTask.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODDecodeFlacTask.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODDecodeTask.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODTask.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODTaskThread.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODWaveTrackTaskQueue.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-BatchPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-DevicePrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-DirectoriesPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-EffectsPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ExtImportPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-GUIPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ImportExportPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-KeyConfigPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-LibraryPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-MidiIOPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ModulePrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-MousePrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-PlaybackPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-PrefsDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ProjectsPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-QualityPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-RecordingPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-SpectrogramSettings.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-SpectrumPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ThemePrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-TracksBehaviorsPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-TracksPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-WarningsPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-WaveformPrefs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-WaveformSettings.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ControlToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-DeviceToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-EditToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-MeterToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-MixerToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ScrubbingToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-SelectionBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-SpectralSelectionBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolDock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolManager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolsToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-TranscriptionToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelDefaultClickHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelGlyphHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTextHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackVRulerControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackButtonHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackSliderHandles.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVRulerControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVZoomHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-StretchHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackButtonHandles.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-CutlineHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SampleHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVRulerControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVZoomHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackSliderHandles.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVRulerControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVZoomHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackViewConstants.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVRulerControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVZoomHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackVRulerControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-BackgroundCell.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-ButtonHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-CommonTrackControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-CommonTrackPanelCell.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-CommonTrackView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-EnvelopeHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-ScrubUI.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-SelectHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-SliderHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TimeShiftHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackButtonHandles.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackSelectHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackVRulerControls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-ZoomHandle.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AButton.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ASlider.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AttachableScrollBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AudacityMessageBox.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-BackedPanel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ErrorDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ExpandingToolBar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-FileHistory.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Grabber.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Grid.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-HelpSystem.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-HtmlWindow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ImageRoll.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-KeyView.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Meter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-MeterPanelBase.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-MultiDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-NumericTextCtrl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Overlay.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-OverlayPanel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-PopupMenuTable.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ProgressDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Ruler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Warning.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-numformatter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-valnum.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-wxPanelWrapper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/audacity-XMLFileReader.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/audacity-XMLTagHandler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/audacity-XMLWriter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/libaudacity_la-XMLTagHandler.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AColor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AboutDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AdornedRulerPanel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudacityApp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudacityException.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudacityLogger.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudioIO.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AudioIOBase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AutoRecovery.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-AutoRecoveryDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BatchCommandDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BatchCommands.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BatchProcessDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Benchmark.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-CellularPanel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Clipboard.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-CommonCommandFlags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-CrashReport.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Dependencies.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DeviceChange.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DeviceManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Diags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DirManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Dither.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Envelope.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-EnvelopeEditor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FFT.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FFmpeg.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileException.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileFormats.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileIO.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FileNames.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-FreqWindow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-HelpText.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-HistoryWindow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ImageManipulation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-InconsistencyException.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Internat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-InterpolateAudio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-KeyboardCapture.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LabelDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LabelTrack.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LangChoice.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Languages.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Legacy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Lyrics.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LyricsWindow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Matrix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Menus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-MissingAliasFileDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Mix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-MixerBoard.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ModuleManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-NoteTrack.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-PitchName.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-PlatformCompatibility.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-PluginManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Prefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Printing.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Profiler.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Project.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectAudioIO.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectAudioManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFSCK.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileIO.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileIORegistry.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectHistory.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectSelectionManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectSettings.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectStatus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectWindow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RealFFTf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RealFFTf48x.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Resample.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RingBuffer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SampleFormat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Screenshot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SelectUtilities.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SelectedRegion.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SelectionState.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Sequence.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Shuttle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ShuttleGetDefinition.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ShuttleGui.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ShuttlePrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Snap.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SoundActivatedRecord.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Spectrum.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SplashDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-SseMathFuncs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Tags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Theme.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TimeDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TimeTrack.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TimerRecordDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Track.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackArtist.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackInfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelAx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelResizeHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelResizerCell.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackUtilities.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-UIHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-UndoManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-UserException.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ViewInfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-VoiceKey.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-WaveClip.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-WaveTrack.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-WrappedType.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ZoomInfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-BlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-DirManager.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Dither.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-FileFormats.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Internat.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Prefs.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-SampleFormat.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudacity_la-Sequence.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-LegacyAliasBlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-LegacyBlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-NotYetAvailableException.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-ODDecodeBlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-ODPCMAliasBlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-PCMAliasBlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-SilentBlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/audacity-SimpleBlockFile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-LegacyAliasBlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-LegacyBlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-NotYetAvailableException.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-ODDecodeBlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-ODPCMAliasBlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-PCMAliasBlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-SilentBlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@blockfile/$(DEPDIR)/libaudacity_la-SimpleBlockFile.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-AppCommandEvent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-AudacityCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-BatchEvalCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-Command.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandBuilder.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandContext.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandDirectory.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandHandler.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandSignature.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandTargets.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CommandType.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-CompareAudioCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-Demo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-DragCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-GetInfoCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-GetTrackInfoCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-HelpCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ImportExportCommands.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-Keyboard.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-LoadCommands.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-MessageCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-OpenSaveCommands.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-PreferenceCommands.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ResponseQueue.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ScreenshotCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-ScriptCommandRelay.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SelectCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetClipCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetEnvelopeCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetLabelCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetProjectCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@commands/$(DEPDIR)/audacity-SetTrackInfoCommand.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Amplify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-AutoDuck.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-BassTreble.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Biquad.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ChangePitch.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ChangeSpeed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ChangeTempo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ClickRemoval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Compressor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Contrast.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Distortion.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-DtmfGen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-EBUR128.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Echo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Effect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-EffectManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-EffectRack.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Equalization.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Equalization48x.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Fade.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-FindClipping.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Generator.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Invert.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-LoadEffects.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Loudness.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Noise.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-NoiseReduction.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-NoiseRemoval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Normalize.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Paulstretch.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Phaser.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-RealtimeEffectManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Repair.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Repeat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Reverb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Reverse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-SBSMSEffect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ScienFilter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Silence.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-SimpleMono.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-SoundTouchEffect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-StereoToMono.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TimeScale.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TimeWarper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-ToneGen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TruncSilence.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-TwoPassSimpleMono.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Wahwah.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/VST/$(DEPDIR)/audacity-VSTControlGTK.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/VST/$(DEPDIR)/audacity-VSTEffect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/audiounits/$(DEPDIR)/audacity-AudioUnitEffect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/ladspa/$(DEPDIR)/audacity-LadspaEffect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/lv2/$(DEPDIR)/audacity-LV2Effect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/lv2/$(DEPDIR)/audacity-LoadLV2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/lv2/zix/$(DEPDIR)/audacity-ring.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/nyquist/$(DEPDIR)/audacity-LoadNyquist.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/nyquist/$(DEPDIR)/audacity-Nyquist.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/vamp/$(DEPDIR)/audacity-LoadVamp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@effects/vamp/$(DEPDIR)/audacity-VampEffect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-Export.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportCL.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportFFmpeg.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportFFmpegDialogs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportFLAC.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportMP2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportMP3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportMultiple.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportOGG.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@export/$(DEPDIR)/audacity-ExportPCM.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-FormatClassifier.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-Import.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportFFmpeg.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportFLAC.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportGStreamer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportLOF.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportMIDI.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportMP3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportOGG.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportPCM.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportQT.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-ImportRaw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-MultiFormatReader.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-RawAudioGuess.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@import/$(DEPDIR)/audacity-SpecPowerMeter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ClipMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-EditMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ExtraMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-FileMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-HelpMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-LabelMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-NavigationMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-PluginMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-SelectMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ToolbarMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-TrackMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-TransportMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-ViewMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@menus/$(DEPDIR)/audacity-WindowMenus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODComputeSummaryTask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODDecodeFFmpegTask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODDecodeFlacTask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODDecodeTask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODTask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODTaskThread.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@ondemand/$(DEPDIR)/audacity-ODWaveTrackTaskQueue.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-BatchPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-DevicePrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-DirectoriesPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-EffectsPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ExtImportPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-GUIPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ImportExportPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-KeyConfigPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-LibraryPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-MidiIOPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ModulePrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-MousePrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-PlaybackPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-PrefsDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ProjectsPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-QualityPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-RecordingPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-SpectrogramSettings.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-SpectrumPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-ThemePrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-TracksBehaviorsPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-TracksPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-WarningsPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-WaveformPrefs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@prefs/$(DEPDIR)/audacity-WaveformSettings.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ControlToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-DeviceToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-EditToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-MeterToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-MixerToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ScrubbingToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-SelectionBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-SpectralSelectionBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolDock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolManager.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolsToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-TranscriptionToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelDefaultClickHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelGlyphHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTextHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackVRulerControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackButtonHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackSliderHandles.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVRulerControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVZoomHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-StretchHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackButtonHandles.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-CutlineHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SampleHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVRulerControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVZoomHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackSliderHandles.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVRulerControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVZoomHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackViewConstants.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVRulerControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVZoomHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackVRulerControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-BackgroundCell.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-ButtonHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-CommonTrackControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-CommonTrackPanelCell.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-CommonTrackView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-EnvelopeHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-ScrubUI.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-SelectHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-SliderHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TimeShiftHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackButtonHandles.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackSelectHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackVRulerControls.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-TrackView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-ZoomHandle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AButton.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ASlider.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AttachableScrollBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AudacityMessageBox.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-BackedPanel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ErrorDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ExpandingToolBar.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-FileHistory.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Grabber.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Grid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-HelpSystem.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-HtmlWindow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ImageRoll.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-KeyView.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Meter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-MeterPanelBase.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-MultiDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-NumericTextCtrl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Overlay.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-OverlayPanel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-PopupMenuTable.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ProgressDialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Ruler.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Warning.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-numformatter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-valnum.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-wxPanelWrapper.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/audacity-XMLFileReader.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/audacity-XMLTagHandler.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/audacity-XMLWriter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xml/$(DEPDIR)/libaudacity_la-XMLTagHandler.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -8390,6 +8806,20 @@ effects/lv2/audacity-LV2Effect.obj: effects/lv2/LV2Effect.cpp @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o effects/lv2/audacity-LV2Effect.obj `if test -f 'effects/lv2/LV2Effect.cpp'; then $(CYGPATH_W) 'effects/lv2/LV2Effect.cpp'; else $(CYGPATH_W) '$(srcdir)/effects/lv2/LV2Effect.cpp'; fi` +effects/lv2/zix/audacity-ring.o: effects/lv2/zix/ring.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT effects/lv2/zix/audacity-ring.o -MD -MP -MF effects/lv2/zix/$(DEPDIR)/audacity-ring.Tpo -c -o effects/lv2/zix/audacity-ring.o `test -f 'effects/lv2/zix/ring.cpp' || echo '$(srcdir)/'`effects/lv2/zix/ring.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) effects/lv2/zix/$(DEPDIR)/audacity-ring.Tpo effects/lv2/zix/$(DEPDIR)/audacity-ring.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='effects/lv2/zix/ring.cpp' object='effects/lv2/zix/audacity-ring.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o effects/lv2/zix/audacity-ring.o `test -f 'effects/lv2/zix/ring.cpp' || echo '$(srcdir)/'`effects/lv2/zix/ring.cpp + +effects/lv2/zix/audacity-ring.obj: effects/lv2/zix/ring.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT effects/lv2/zix/audacity-ring.obj -MD -MP -MF effects/lv2/zix/$(DEPDIR)/audacity-ring.Tpo -c -o effects/lv2/zix/audacity-ring.obj `if test -f 'effects/lv2/zix/ring.cpp'; then $(CYGPATH_W) 'effects/lv2/zix/ring.cpp'; else $(CYGPATH_W) '$(srcdir)/effects/lv2/zix/ring.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) effects/lv2/zix/$(DEPDIR)/audacity-ring.Tpo effects/lv2/zix/$(DEPDIR)/audacity-ring.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='effects/lv2/zix/ring.cpp' object='effects/lv2/zix/audacity-ring.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o effects/lv2/zix/audacity-ring.obj `if test -f 'effects/lv2/zix/ring.cpp'; then $(CYGPATH_W) 'effects/lv2/zix/ring.cpp'; else $(CYGPATH_W) '$(srcdir)/effects/lv2/zix/ring.cpp'; fi` + audacity-NoteTrack.o: NoteTrack.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-NoteTrack.o -MD -MP -MF $(DEPDIR)/audacity-NoteTrack.Tpo -c -o audacity-NoteTrack.o `test -f 'NoteTrack.cpp' || echo '$(srcdir)/'`NoteTrack.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-NoteTrack.Tpo $(DEPDIR)/audacity-NoteTrack.Po @@ -8590,7 +9020,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -8668,6 +9101,8 @@ distclean-generic: -rm -f effects/ladspa/$(am__dirstamp) -rm -f effects/lv2/$(DEPDIR)/$(am__dirstamp) -rm -f effects/lv2/$(am__dirstamp) + -rm -f effects/lv2/zix/$(DEPDIR)/$(am__dirstamp) + -rm -f effects/lv2/zix/$(am__dirstamp) -rm -f effects/nyquist/$(DEPDIR)/$(am__dirstamp) -rm -f effects/nyquist/$(am__dirstamp) -rm -f effects/vamp/$(DEPDIR)/$(am__dirstamp) @@ -8710,7 +9145,404 @@ clean-am: clean-binPROGRAMS clean-checkLTLIBRARIES clean-generic \ clean-libtool mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) blockfile/$(DEPDIR) commands/$(DEPDIR) effects/$(DEPDIR) effects/VST/$(DEPDIR) effects/audiounits/$(DEPDIR) effects/ladspa/$(DEPDIR) effects/lv2/$(DEPDIR) effects/nyquist/$(DEPDIR) effects/vamp/$(DEPDIR) export/$(DEPDIR) import/$(DEPDIR) menus/$(DEPDIR) ondemand/$(DEPDIR) prefs/$(DEPDIR) toolbars/$(DEPDIR) tracks/labeltrack/ui/$(DEPDIR) tracks/playabletrack/notetrack/ui/$(DEPDIR) tracks/playabletrack/ui/$(DEPDIR) tracks/playabletrack/wavetrack/ui/$(DEPDIR) tracks/timetrack/ui/$(DEPDIR) tracks/ui/$(DEPDIR) widgets/$(DEPDIR) xml/$(DEPDIR) + -rm -f ./$(DEPDIR)/audacity-AColor.Po + -rm -f ./$(DEPDIR)/audacity-AboutDialog.Po + -rm -f ./$(DEPDIR)/audacity-AdornedRulerPanel.Po + -rm -f ./$(DEPDIR)/audacity-AudacityApp.Po + -rm -f ./$(DEPDIR)/audacity-AudacityException.Po + -rm -f ./$(DEPDIR)/audacity-AudacityLogger.Po + -rm -f ./$(DEPDIR)/audacity-AudioIO.Po + -rm -f ./$(DEPDIR)/audacity-AudioIOBase.Po + -rm -f ./$(DEPDIR)/audacity-AutoRecovery.Po + -rm -f ./$(DEPDIR)/audacity-AutoRecoveryDialog.Po + -rm -f ./$(DEPDIR)/audacity-BatchCommandDialog.Po + -rm -f ./$(DEPDIR)/audacity-BatchCommands.Po + -rm -f ./$(DEPDIR)/audacity-BatchProcessDialog.Po + -rm -f ./$(DEPDIR)/audacity-Benchmark.Po + -rm -f ./$(DEPDIR)/audacity-BlockFile.Po + -rm -f ./$(DEPDIR)/audacity-CellularPanel.Po + -rm -f ./$(DEPDIR)/audacity-Clipboard.Po + -rm -f ./$(DEPDIR)/audacity-CommonCommandFlags.Po + -rm -f ./$(DEPDIR)/audacity-CrashReport.Po + -rm -f ./$(DEPDIR)/audacity-Dependencies.Po + -rm -f ./$(DEPDIR)/audacity-DeviceChange.Po + -rm -f ./$(DEPDIR)/audacity-DeviceManager.Po + -rm -f ./$(DEPDIR)/audacity-Diags.Po + -rm -f ./$(DEPDIR)/audacity-DirManager.Po + -rm -f ./$(DEPDIR)/audacity-Dither.Po + -rm -f ./$(DEPDIR)/audacity-Envelope.Po + -rm -f ./$(DEPDIR)/audacity-EnvelopeEditor.Po + -rm -f ./$(DEPDIR)/audacity-FFT.Po + -rm -f ./$(DEPDIR)/audacity-FFmpeg.Po + -rm -f ./$(DEPDIR)/audacity-FileException.Po + -rm -f ./$(DEPDIR)/audacity-FileFormats.Po + -rm -f ./$(DEPDIR)/audacity-FileIO.Po + -rm -f ./$(DEPDIR)/audacity-FileNames.Po + -rm -f ./$(DEPDIR)/audacity-FreqWindow.Po + -rm -f ./$(DEPDIR)/audacity-HelpText.Po + -rm -f ./$(DEPDIR)/audacity-HistoryWindow.Po + -rm -f ./$(DEPDIR)/audacity-ImageManipulation.Po + -rm -f ./$(DEPDIR)/audacity-InconsistencyException.Po + -rm -f ./$(DEPDIR)/audacity-Internat.Po + -rm -f ./$(DEPDIR)/audacity-InterpolateAudio.Po + -rm -f ./$(DEPDIR)/audacity-KeyboardCapture.Po + -rm -f ./$(DEPDIR)/audacity-LabelDialog.Po + -rm -f ./$(DEPDIR)/audacity-LabelTrack.Po + -rm -f ./$(DEPDIR)/audacity-LangChoice.Po + -rm -f ./$(DEPDIR)/audacity-Languages.Po + -rm -f ./$(DEPDIR)/audacity-Legacy.Po + -rm -f ./$(DEPDIR)/audacity-Lyrics.Po + -rm -f ./$(DEPDIR)/audacity-LyricsWindow.Po + -rm -f ./$(DEPDIR)/audacity-Matrix.Po + -rm -f ./$(DEPDIR)/audacity-Menus.Po + -rm -f ./$(DEPDIR)/audacity-MissingAliasFileDialog.Po + -rm -f ./$(DEPDIR)/audacity-Mix.Po + -rm -f ./$(DEPDIR)/audacity-MixerBoard.Po + -rm -f ./$(DEPDIR)/audacity-ModuleManager.Po + -rm -f ./$(DEPDIR)/audacity-NoteTrack.Po + -rm -f ./$(DEPDIR)/audacity-PitchName.Po + -rm -f ./$(DEPDIR)/audacity-PlatformCompatibility.Po + -rm -f ./$(DEPDIR)/audacity-PluginManager.Po + -rm -f ./$(DEPDIR)/audacity-Prefs.Po + -rm -f ./$(DEPDIR)/audacity-Printing.Po + -rm -f ./$(DEPDIR)/audacity-Profiler.Po + -rm -f ./$(DEPDIR)/audacity-Project.Po + -rm -f ./$(DEPDIR)/audacity-ProjectAudioIO.Po + -rm -f ./$(DEPDIR)/audacity-ProjectAudioManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFSCK.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFileIO.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFileIORegistry.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFileManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectHistory.Po + -rm -f ./$(DEPDIR)/audacity-ProjectManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectSelectionManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectSettings.Po + -rm -f ./$(DEPDIR)/audacity-ProjectStatus.Po + -rm -f ./$(DEPDIR)/audacity-ProjectWindow.Po + -rm -f ./$(DEPDIR)/audacity-RealFFTf.Po + -rm -f ./$(DEPDIR)/audacity-RealFFTf48x.Po + -rm -f ./$(DEPDIR)/audacity-Resample.Po + -rm -f ./$(DEPDIR)/audacity-RingBuffer.Po + -rm -f ./$(DEPDIR)/audacity-SampleFormat.Po + -rm -f ./$(DEPDIR)/audacity-Screenshot.Po + -rm -f ./$(DEPDIR)/audacity-SelectUtilities.Po + -rm -f ./$(DEPDIR)/audacity-SelectedRegion.Po + -rm -f ./$(DEPDIR)/audacity-SelectionState.Po + -rm -f ./$(DEPDIR)/audacity-Sequence.Po + -rm -f ./$(DEPDIR)/audacity-Shuttle.Po + -rm -f ./$(DEPDIR)/audacity-ShuttleGetDefinition.Po + -rm -f ./$(DEPDIR)/audacity-ShuttleGui.Po + -rm -f ./$(DEPDIR)/audacity-ShuttlePrefs.Po + -rm -f ./$(DEPDIR)/audacity-Snap.Po + -rm -f ./$(DEPDIR)/audacity-SoundActivatedRecord.Po + -rm -f ./$(DEPDIR)/audacity-Spectrum.Po + -rm -f ./$(DEPDIR)/audacity-SplashDialog.Po + -rm -f ./$(DEPDIR)/audacity-SseMathFuncs.Po + -rm -f ./$(DEPDIR)/audacity-Tags.Po + -rm -f ./$(DEPDIR)/audacity-Theme.Po + -rm -f ./$(DEPDIR)/audacity-TimeDialog.Po + -rm -f ./$(DEPDIR)/audacity-TimeTrack.Po + -rm -f ./$(DEPDIR)/audacity-TimerRecordDialog.Po + -rm -f ./$(DEPDIR)/audacity-Track.Po + -rm -f ./$(DEPDIR)/audacity-TrackArtist.Po + -rm -f ./$(DEPDIR)/audacity-TrackInfo.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanel.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanelAx.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanelResizeHandle.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanelResizerCell.Po + -rm -f ./$(DEPDIR)/audacity-TrackUtilities.Po + -rm -f ./$(DEPDIR)/audacity-UIHandle.Po + -rm -f ./$(DEPDIR)/audacity-UndoManager.Po + -rm -f ./$(DEPDIR)/audacity-UserException.Po + -rm -f ./$(DEPDIR)/audacity-ViewInfo.Po + -rm -f ./$(DEPDIR)/audacity-VoiceKey.Po + -rm -f ./$(DEPDIR)/audacity-WaveClip.Po + -rm -f ./$(DEPDIR)/audacity-WaveTrack.Po + -rm -f ./$(DEPDIR)/audacity-WrappedType.Po + -rm -f ./$(DEPDIR)/audacity-ZoomInfo.Po + -rm -f ./$(DEPDIR)/libaudacity_la-BlockFile.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-DirManager.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Dither.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-FileFormats.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Internat.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Prefs.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-SampleFormat.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Sequence.Plo + -rm -f blockfile/$(DEPDIR)/audacity-LegacyAliasBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-LegacyBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-NotYetAvailableException.Po + -rm -f blockfile/$(DEPDIR)/audacity-ODDecodeBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-ODPCMAliasBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-PCMAliasBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-SilentBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-SimpleBlockFile.Po + -rm -f blockfile/$(DEPDIR)/libaudacity_la-LegacyAliasBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-LegacyBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-NotYetAvailableException.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-ODDecodeBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-ODPCMAliasBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-PCMAliasBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-SilentBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-SimpleBlockFile.Plo + -rm -f commands/$(DEPDIR)/audacity-AppCommandEvent.Po + -rm -f commands/$(DEPDIR)/audacity-AudacityCommand.Po + -rm -f commands/$(DEPDIR)/audacity-BatchEvalCommand.Po + -rm -f commands/$(DEPDIR)/audacity-Command.Po + -rm -f commands/$(DEPDIR)/audacity-CommandBuilder.Po + -rm -f commands/$(DEPDIR)/audacity-CommandContext.Po + -rm -f commands/$(DEPDIR)/audacity-CommandDirectory.Po + -rm -f commands/$(DEPDIR)/audacity-CommandHandler.Po + -rm -f commands/$(DEPDIR)/audacity-CommandManager.Po + -rm -f commands/$(DEPDIR)/audacity-CommandSignature.Po + -rm -f commands/$(DEPDIR)/audacity-CommandTargets.Po + -rm -f commands/$(DEPDIR)/audacity-CommandType.Po + -rm -f commands/$(DEPDIR)/audacity-CompareAudioCommand.Po + -rm -f commands/$(DEPDIR)/audacity-Demo.Po + -rm -f commands/$(DEPDIR)/audacity-DragCommand.Po + -rm -f commands/$(DEPDIR)/audacity-GetInfoCommand.Po + -rm -f commands/$(DEPDIR)/audacity-GetTrackInfoCommand.Po + -rm -f commands/$(DEPDIR)/audacity-HelpCommand.Po + -rm -f commands/$(DEPDIR)/audacity-ImportExportCommands.Po + -rm -f commands/$(DEPDIR)/audacity-Keyboard.Po + -rm -f commands/$(DEPDIR)/audacity-LoadCommands.Po + -rm -f commands/$(DEPDIR)/audacity-MessageCommand.Po + -rm -f commands/$(DEPDIR)/audacity-OpenSaveCommands.Po + -rm -f commands/$(DEPDIR)/audacity-PreferenceCommands.Po + -rm -f commands/$(DEPDIR)/audacity-ResponseQueue.Po + -rm -f commands/$(DEPDIR)/audacity-ScreenshotCommand.Po + -rm -f commands/$(DEPDIR)/audacity-ScriptCommandRelay.Po + -rm -f commands/$(DEPDIR)/audacity-SelectCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetClipCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetEnvelopeCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetLabelCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetProjectCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetTrackInfoCommand.Po + -rm -f effects/$(DEPDIR)/audacity-Amplify.Po + -rm -f effects/$(DEPDIR)/audacity-AutoDuck.Po + -rm -f effects/$(DEPDIR)/audacity-BassTreble.Po + -rm -f effects/$(DEPDIR)/audacity-Biquad.Po + -rm -f effects/$(DEPDIR)/audacity-ChangePitch.Po + -rm -f effects/$(DEPDIR)/audacity-ChangeSpeed.Po + -rm -f effects/$(DEPDIR)/audacity-ChangeTempo.Po + -rm -f effects/$(DEPDIR)/audacity-ClickRemoval.Po + -rm -f effects/$(DEPDIR)/audacity-Compressor.Po + -rm -f effects/$(DEPDIR)/audacity-Contrast.Po + -rm -f effects/$(DEPDIR)/audacity-Distortion.Po + -rm -f effects/$(DEPDIR)/audacity-DtmfGen.Po + -rm -f effects/$(DEPDIR)/audacity-EBUR128.Po + -rm -f effects/$(DEPDIR)/audacity-Echo.Po + -rm -f effects/$(DEPDIR)/audacity-Effect.Po + -rm -f effects/$(DEPDIR)/audacity-EffectManager.Po + -rm -f effects/$(DEPDIR)/audacity-EffectRack.Po + -rm -f effects/$(DEPDIR)/audacity-Equalization.Po + -rm -f effects/$(DEPDIR)/audacity-Equalization48x.Po + -rm -f effects/$(DEPDIR)/audacity-Fade.Po + -rm -f effects/$(DEPDIR)/audacity-FindClipping.Po + -rm -f effects/$(DEPDIR)/audacity-Generator.Po + -rm -f effects/$(DEPDIR)/audacity-Invert.Po + -rm -f effects/$(DEPDIR)/audacity-LoadEffects.Po + -rm -f effects/$(DEPDIR)/audacity-Loudness.Po + -rm -f effects/$(DEPDIR)/audacity-Noise.Po + -rm -f effects/$(DEPDIR)/audacity-NoiseReduction.Po + -rm -f effects/$(DEPDIR)/audacity-NoiseRemoval.Po + -rm -f effects/$(DEPDIR)/audacity-Normalize.Po + -rm -f effects/$(DEPDIR)/audacity-Paulstretch.Po + -rm -f effects/$(DEPDIR)/audacity-Phaser.Po + -rm -f effects/$(DEPDIR)/audacity-RealtimeEffectManager.Po + -rm -f effects/$(DEPDIR)/audacity-Repair.Po + -rm -f effects/$(DEPDIR)/audacity-Repeat.Po + -rm -f effects/$(DEPDIR)/audacity-Reverb.Po + -rm -f effects/$(DEPDIR)/audacity-Reverse.Po + -rm -f effects/$(DEPDIR)/audacity-SBSMSEffect.Po + -rm -f effects/$(DEPDIR)/audacity-ScienFilter.Po + -rm -f effects/$(DEPDIR)/audacity-Silence.Po + -rm -f effects/$(DEPDIR)/audacity-SimpleMono.Po + -rm -f effects/$(DEPDIR)/audacity-SoundTouchEffect.Po + -rm -f effects/$(DEPDIR)/audacity-StereoToMono.Po + -rm -f effects/$(DEPDIR)/audacity-TimeScale.Po + -rm -f effects/$(DEPDIR)/audacity-TimeWarper.Po + -rm -f effects/$(DEPDIR)/audacity-ToneGen.Po + -rm -f effects/$(DEPDIR)/audacity-TruncSilence.Po + -rm -f effects/$(DEPDIR)/audacity-TwoPassSimpleMono.Po + -rm -f effects/$(DEPDIR)/audacity-Wahwah.Po + -rm -f effects/VST/$(DEPDIR)/audacity-VSTControlGTK.Po + -rm -f effects/VST/$(DEPDIR)/audacity-VSTEffect.Po + -rm -f effects/audiounits/$(DEPDIR)/audacity-AudioUnitEffect.Po + -rm -f effects/ladspa/$(DEPDIR)/audacity-LadspaEffect.Po + -rm -f effects/lv2/$(DEPDIR)/audacity-LV2Effect.Po + -rm -f effects/lv2/$(DEPDIR)/audacity-LoadLV2.Po + -rm -f effects/lv2/zix/$(DEPDIR)/audacity-ring.Po + -rm -f effects/nyquist/$(DEPDIR)/audacity-LoadNyquist.Po + -rm -f effects/nyquist/$(DEPDIR)/audacity-Nyquist.Po + -rm -f effects/vamp/$(DEPDIR)/audacity-LoadVamp.Po + -rm -f effects/vamp/$(DEPDIR)/audacity-VampEffect.Po + -rm -f export/$(DEPDIR)/audacity-Export.Po + -rm -f export/$(DEPDIR)/audacity-ExportCL.Po + -rm -f export/$(DEPDIR)/audacity-ExportFFmpeg.Po + -rm -f export/$(DEPDIR)/audacity-ExportFFmpegDialogs.Po + -rm -f export/$(DEPDIR)/audacity-ExportFLAC.Po + -rm -f export/$(DEPDIR)/audacity-ExportMP2.Po + -rm -f export/$(DEPDIR)/audacity-ExportMP3.Po + -rm -f export/$(DEPDIR)/audacity-ExportMultiple.Po + -rm -f export/$(DEPDIR)/audacity-ExportOGG.Po + -rm -f export/$(DEPDIR)/audacity-ExportPCM.Po + -rm -f import/$(DEPDIR)/audacity-FormatClassifier.Po + -rm -f import/$(DEPDIR)/audacity-Import.Po + -rm -f import/$(DEPDIR)/audacity-ImportFFmpeg.Po + -rm -f import/$(DEPDIR)/audacity-ImportFLAC.Po + -rm -f import/$(DEPDIR)/audacity-ImportGStreamer.Po + -rm -f import/$(DEPDIR)/audacity-ImportLOF.Po + -rm -f import/$(DEPDIR)/audacity-ImportMIDI.Po + -rm -f import/$(DEPDIR)/audacity-ImportMP3.Po + -rm -f import/$(DEPDIR)/audacity-ImportOGG.Po + -rm -f import/$(DEPDIR)/audacity-ImportPCM.Po + -rm -f import/$(DEPDIR)/audacity-ImportQT.Po + -rm -f import/$(DEPDIR)/audacity-ImportRaw.Po + -rm -f import/$(DEPDIR)/audacity-MultiFormatReader.Po + -rm -f import/$(DEPDIR)/audacity-RawAudioGuess.Po + -rm -f import/$(DEPDIR)/audacity-SpecPowerMeter.Po + -rm -f menus/$(DEPDIR)/audacity-ClipMenus.Po + -rm -f menus/$(DEPDIR)/audacity-EditMenus.Po + -rm -f menus/$(DEPDIR)/audacity-ExtraMenus.Po + -rm -f menus/$(DEPDIR)/audacity-FileMenus.Po + -rm -f menus/$(DEPDIR)/audacity-HelpMenus.Po + -rm -f menus/$(DEPDIR)/audacity-LabelMenus.Po + -rm -f menus/$(DEPDIR)/audacity-NavigationMenus.Po + -rm -f menus/$(DEPDIR)/audacity-PluginMenus.Po + -rm -f menus/$(DEPDIR)/audacity-SelectMenus.Po + -rm -f menus/$(DEPDIR)/audacity-ToolbarMenus.Po + -rm -f menus/$(DEPDIR)/audacity-TrackMenus.Po + -rm -f menus/$(DEPDIR)/audacity-TransportMenus.Po + -rm -f menus/$(DEPDIR)/audacity-ViewMenus.Po + -rm -f menus/$(DEPDIR)/audacity-WindowMenus.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODComputeSummaryTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODDecodeFFmpegTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODDecodeFlacTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODDecodeTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODManager.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODTaskThread.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODWaveTrackTaskQueue.Po + -rm -f prefs/$(DEPDIR)/audacity-BatchPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-DevicePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-DirectoriesPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-EffectsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ExtImportPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-GUIPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ImportExportPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-KeyConfigPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-LibraryPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-MidiIOPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ModulePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-MousePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-PlaybackPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-PrefsDialog.Po + -rm -f prefs/$(DEPDIR)/audacity-ProjectsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-QualityPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-RecordingPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-SpectrogramSettings.Po + -rm -f prefs/$(DEPDIR)/audacity-SpectrumPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ThemePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-TracksBehaviorsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-TracksPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-WarningsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-WaveformPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-WaveformSettings.Po + -rm -f toolbars/$(DEPDIR)/audacity-ControlToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-DeviceToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-EditToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-MeterToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-MixerToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-ScrubbingToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-SelectionBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-SpectralSelectionBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolDock.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolManager.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolsToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-TranscriptionToolBar.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelDefaultClickHandle.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelGlyphHandle.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTextHandle.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackControls.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackVRulerControls.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackView.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackButtonHandle.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackControls.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackSliderHandles.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVRulerControls.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVZoomHandle.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackView.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-StretchHandle.Po + -rm -f tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackButtonHandles.Po + -rm -f tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-CutlineHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SampleHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVRulerControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVZoomHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumView.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackSliderHandles.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVRulerControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVZoomHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackView.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackViewConstants.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVRulerControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVZoomHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformView.Po + -rm -f tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackControls.Po + -rm -f tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackVRulerControls.Po + -rm -f tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackView.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-BackgroundCell.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-ButtonHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-CommonTrackControls.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-CommonTrackPanelCell.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-CommonTrackView.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-EnvelopeHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-ScrubUI.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-SelectHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-SliderHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TimeShiftHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackButtonHandles.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackControls.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackSelectHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackVRulerControls.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackView.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-ZoomHandle.Po + -rm -f widgets/$(DEPDIR)/audacity-AButton.Po + -rm -f widgets/$(DEPDIR)/audacity-ASlider.Po + -rm -f widgets/$(DEPDIR)/audacity-AttachableScrollBar.Po + -rm -f widgets/$(DEPDIR)/audacity-AudacityMessageBox.Po + -rm -f widgets/$(DEPDIR)/audacity-BackedPanel.Po + -rm -f widgets/$(DEPDIR)/audacity-ErrorDialog.Po + -rm -f widgets/$(DEPDIR)/audacity-ExpandingToolBar.Po + -rm -f widgets/$(DEPDIR)/audacity-FileHistory.Po + -rm -f widgets/$(DEPDIR)/audacity-Grabber.Po + -rm -f widgets/$(DEPDIR)/audacity-Grid.Po + -rm -f widgets/$(DEPDIR)/audacity-HelpSystem.Po + -rm -f widgets/$(DEPDIR)/audacity-HtmlWindow.Po + -rm -f widgets/$(DEPDIR)/audacity-ImageRoll.Po + -rm -f widgets/$(DEPDIR)/audacity-KeyView.Po + -rm -f widgets/$(DEPDIR)/audacity-Meter.Po + -rm -f widgets/$(DEPDIR)/audacity-MeterPanelBase.Po + -rm -f widgets/$(DEPDIR)/audacity-MultiDialog.Po + -rm -f widgets/$(DEPDIR)/audacity-NumericTextCtrl.Po + -rm -f widgets/$(DEPDIR)/audacity-Overlay.Po + -rm -f widgets/$(DEPDIR)/audacity-OverlayPanel.Po + -rm -f widgets/$(DEPDIR)/audacity-PopupMenuTable.Po + -rm -f widgets/$(DEPDIR)/audacity-ProgressDialog.Po + -rm -f widgets/$(DEPDIR)/audacity-Ruler.Po + -rm -f widgets/$(DEPDIR)/audacity-Warning.Po + -rm -f widgets/$(DEPDIR)/audacity-numformatter.Po + -rm -f widgets/$(DEPDIR)/audacity-valnum.Po + -rm -f widgets/$(DEPDIR)/audacity-wxPanelWrapper.Po + -rm -f xml/$(DEPDIR)/audacity-XMLFileReader.Po + -rm -f xml/$(DEPDIR)/audacity-XMLTagHandler.Po + -rm -f xml/$(DEPDIR)/audacity-XMLWriter.Po + -rm -f xml/$(DEPDIR)/libaudacity_la-XMLTagHandler.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags @@ -8756,7 +9588,404 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) blockfile/$(DEPDIR) commands/$(DEPDIR) effects/$(DEPDIR) effects/VST/$(DEPDIR) effects/audiounits/$(DEPDIR) effects/ladspa/$(DEPDIR) effects/lv2/$(DEPDIR) effects/nyquist/$(DEPDIR) effects/vamp/$(DEPDIR) export/$(DEPDIR) import/$(DEPDIR) menus/$(DEPDIR) ondemand/$(DEPDIR) prefs/$(DEPDIR) toolbars/$(DEPDIR) tracks/labeltrack/ui/$(DEPDIR) tracks/playabletrack/notetrack/ui/$(DEPDIR) tracks/playabletrack/ui/$(DEPDIR) tracks/playabletrack/wavetrack/ui/$(DEPDIR) tracks/timetrack/ui/$(DEPDIR) tracks/ui/$(DEPDIR) widgets/$(DEPDIR) xml/$(DEPDIR) + -rm -f ./$(DEPDIR)/audacity-AColor.Po + -rm -f ./$(DEPDIR)/audacity-AboutDialog.Po + -rm -f ./$(DEPDIR)/audacity-AdornedRulerPanel.Po + -rm -f ./$(DEPDIR)/audacity-AudacityApp.Po + -rm -f ./$(DEPDIR)/audacity-AudacityException.Po + -rm -f ./$(DEPDIR)/audacity-AudacityLogger.Po + -rm -f ./$(DEPDIR)/audacity-AudioIO.Po + -rm -f ./$(DEPDIR)/audacity-AudioIOBase.Po + -rm -f ./$(DEPDIR)/audacity-AutoRecovery.Po + -rm -f ./$(DEPDIR)/audacity-AutoRecoveryDialog.Po + -rm -f ./$(DEPDIR)/audacity-BatchCommandDialog.Po + -rm -f ./$(DEPDIR)/audacity-BatchCommands.Po + -rm -f ./$(DEPDIR)/audacity-BatchProcessDialog.Po + -rm -f ./$(DEPDIR)/audacity-Benchmark.Po + -rm -f ./$(DEPDIR)/audacity-BlockFile.Po + -rm -f ./$(DEPDIR)/audacity-CellularPanel.Po + -rm -f ./$(DEPDIR)/audacity-Clipboard.Po + -rm -f ./$(DEPDIR)/audacity-CommonCommandFlags.Po + -rm -f ./$(DEPDIR)/audacity-CrashReport.Po + -rm -f ./$(DEPDIR)/audacity-Dependencies.Po + -rm -f ./$(DEPDIR)/audacity-DeviceChange.Po + -rm -f ./$(DEPDIR)/audacity-DeviceManager.Po + -rm -f ./$(DEPDIR)/audacity-Diags.Po + -rm -f ./$(DEPDIR)/audacity-DirManager.Po + -rm -f ./$(DEPDIR)/audacity-Dither.Po + -rm -f ./$(DEPDIR)/audacity-Envelope.Po + -rm -f ./$(DEPDIR)/audacity-EnvelopeEditor.Po + -rm -f ./$(DEPDIR)/audacity-FFT.Po + -rm -f ./$(DEPDIR)/audacity-FFmpeg.Po + -rm -f ./$(DEPDIR)/audacity-FileException.Po + -rm -f ./$(DEPDIR)/audacity-FileFormats.Po + -rm -f ./$(DEPDIR)/audacity-FileIO.Po + -rm -f ./$(DEPDIR)/audacity-FileNames.Po + -rm -f ./$(DEPDIR)/audacity-FreqWindow.Po + -rm -f ./$(DEPDIR)/audacity-HelpText.Po + -rm -f ./$(DEPDIR)/audacity-HistoryWindow.Po + -rm -f ./$(DEPDIR)/audacity-ImageManipulation.Po + -rm -f ./$(DEPDIR)/audacity-InconsistencyException.Po + -rm -f ./$(DEPDIR)/audacity-Internat.Po + -rm -f ./$(DEPDIR)/audacity-InterpolateAudio.Po + -rm -f ./$(DEPDIR)/audacity-KeyboardCapture.Po + -rm -f ./$(DEPDIR)/audacity-LabelDialog.Po + -rm -f ./$(DEPDIR)/audacity-LabelTrack.Po + -rm -f ./$(DEPDIR)/audacity-LangChoice.Po + -rm -f ./$(DEPDIR)/audacity-Languages.Po + -rm -f ./$(DEPDIR)/audacity-Legacy.Po + -rm -f ./$(DEPDIR)/audacity-Lyrics.Po + -rm -f ./$(DEPDIR)/audacity-LyricsWindow.Po + -rm -f ./$(DEPDIR)/audacity-Matrix.Po + -rm -f ./$(DEPDIR)/audacity-Menus.Po + -rm -f ./$(DEPDIR)/audacity-MissingAliasFileDialog.Po + -rm -f ./$(DEPDIR)/audacity-Mix.Po + -rm -f ./$(DEPDIR)/audacity-MixerBoard.Po + -rm -f ./$(DEPDIR)/audacity-ModuleManager.Po + -rm -f ./$(DEPDIR)/audacity-NoteTrack.Po + -rm -f ./$(DEPDIR)/audacity-PitchName.Po + -rm -f ./$(DEPDIR)/audacity-PlatformCompatibility.Po + -rm -f ./$(DEPDIR)/audacity-PluginManager.Po + -rm -f ./$(DEPDIR)/audacity-Prefs.Po + -rm -f ./$(DEPDIR)/audacity-Printing.Po + -rm -f ./$(DEPDIR)/audacity-Profiler.Po + -rm -f ./$(DEPDIR)/audacity-Project.Po + -rm -f ./$(DEPDIR)/audacity-ProjectAudioIO.Po + -rm -f ./$(DEPDIR)/audacity-ProjectAudioManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFSCK.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFileIO.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFileIORegistry.Po + -rm -f ./$(DEPDIR)/audacity-ProjectFileManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectHistory.Po + -rm -f ./$(DEPDIR)/audacity-ProjectManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectSelectionManager.Po + -rm -f ./$(DEPDIR)/audacity-ProjectSettings.Po + -rm -f ./$(DEPDIR)/audacity-ProjectStatus.Po + -rm -f ./$(DEPDIR)/audacity-ProjectWindow.Po + -rm -f ./$(DEPDIR)/audacity-RealFFTf.Po + -rm -f ./$(DEPDIR)/audacity-RealFFTf48x.Po + -rm -f ./$(DEPDIR)/audacity-Resample.Po + -rm -f ./$(DEPDIR)/audacity-RingBuffer.Po + -rm -f ./$(DEPDIR)/audacity-SampleFormat.Po + -rm -f ./$(DEPDIR)/audacity-Screenshot.Po + -rm -f ./$(DEPDIR)/audacity-SelectUtilities.Po + -rm -f ./$(DEPDIR)/audacity-SelectedRegion.Po + -rm -f ./$(DEPDIR)/audacity-SelectionState.Po + -rm -f ./$(DEPDIR)/audacity-Sequence.Po + -rm -f ./$(DEPDIR)/audacity-Shuttle.Po + -rm -f ./$(DEPDIR)/audacity-ShuttleGetDefinition.Po + -rm -f ./$(DEPDIR)/audacity-ShuttleGui.Po + -rm -f ./$(DEPDIR)/audacity-ShuttlePrefs.Po + -rm -f ./$(DEPDIR)/audacity-Snap.Po + -rm -f ./$(DEPDIR)/audacity-SoundActivatedRecord.Po + -rm -f ./$(DEPDIR)/audacity-Spectrum.Po + -rm -f ./$(DEPDIR)/audacity-SplashDialog.Po + -rm -f ./$(DEPDIR)/audacity-SseMathFuncs.Po + -rm -f ./$(DEPDIR)/audacity-Tags.Po + -rm -f ./$(DEPDIR)/audacity-Theme.Po + -rm -f ./$(DEPDIR)/audacity-TimeDialog.Po + -rm -f ./$(DEPDIR)/audacity-TimeTrack.Po + -rm -f ./$(DEPDIR)/audacity-TimerRecordDialog.Po + -rm -f ./$(DEPDIR)/audacity-Track.Po + -rm -f ./$(DEPDIR)/audacity-TrackArtist.Po + -rm -f ./$(DEPDIR)/audacity-TrackInfo.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanel.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanelAx.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanelResizeHandle.Po + -rm -f ./$(DEPDIR)/audacity-TrackPanelResizerCell.Po + -rm -f ./$(DEPDIR)/audacity-TrackUtilities.Po + -rm -f ./$(DEPDIR)/audacity-UIHandle.Po + -rm -f ./$(DEPDIR)/audacity-UndoManager.Po + -rm -f ./$(DEPDIR)/audacity-UserException.Po + -rm -f ./$(DEPDIR)/audacity-ViewInfo.Po + -rm -f ./$(DEPDIR)/audacity-VoiceKey.Po + -rm -f ./$(DEPDIR)/audacity-WaveClip.Po + -rm -f ./$(DEPDIR)/audacity-WaveTrack.Po + -rm -f ./$(DEPDIR)/audacity-WrappedType.Po + -rm -f ./$(DEPDIR)/audacity-ZoomInfo.Po + -rm -f ./$(DEPDIR)/libaudacity_la-BlockFile.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-DirManager.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Dither.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-FileFormats.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Internat.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Prefs.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-SampleFormat.Plo + -rm -f ./$(DEPDIR)/libaudacity_la-Sequence.Plo + -rm -f blockfile/$(DEPDIR)/audacity-LegacyAliasBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-LegacyBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-NotYetAvailableException.Po + -rm -f blockfile/$(DEPDIR)/audacity-ODDecodeBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-ODPCMAliasBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-PCMAliasBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-SilentBlockFile.Po + -rm -f blockfile/$(DEPDIR)/audacity-SimpleBlockFile.Po + -rm -f blockfile/$(DEPDIR)/libaudacity_la-LegacyAliasBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-LegacyBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-NotYetAvailableException.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-ODDecodeBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-ODPCMAliasBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-PCMAliasBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-SilentBlockFile.Plo + -rm -f blockfile/$(DEPDIR)/libaudacity_la-SimpleBlockFile.Plo + -rm -f commands/$(DEPDIR)/audacity-AppCommandEvent.Po + -rm -f commands/$(DEPDIR)/audacity-AudacityCommand.Po + -rm -f commands/$(DEPDIR)/audacity-BatchEvalCommand.Po + -rm -f commands/$(DEPDIR)/audacity-Command.Po + -rm -f commands/$(DEPDIR)/audacity-CommandBuilder.Po + -rm -f commands/$(DEPDIR)/audacity-CommandContext.Po + -rm -f commands/$(DEPDIR)/audacity-CommandDirectory.Po + -rm -f commands/$(DEPDIR)/audacity-CommandHandler.Po + -rm -f commands/$(DEPDIR)/audacity-CommandManager.Po + -rm -f commands/$(DEPDIR)/audacity-CommandSignature.Po + -rm -f commands/$(DEPDIR)/audacity-CommandTargets.Po + -rm -f commands/$(DEPDIR)/audacity-CommandType.Po + -rm -f commands/$(DEPDIR)/audacity-CompareAudioCommand.Po + -rm -f commands/$(DEPDIR)/audacity-Demo.Po + -rm -f commands/$(DEPDIR)/audacity-DragCommand.Po + -rm -f commands/$(DEPDIR)/audacity-GetInfoCommand.Po + -rm -f commands/$(DEPDIR)/audacity-GetTrackInfoCommand.Po + -rm -f commands/$(DEPDIR)/audacity-HelpCommand.Po + -rm -f commands/$(DEPDIR)/audacity-ImportExportCommands.Po + -rm -f commands/$(DEPDIR)/audacity-Keyboard.Po + -rm -f commands/$(DEPDIR)/audacity-LoadCommands.Po + -rm -f commands/$(DEPDIR)/audacity-MessageCommand.Po + -rm -f commands/$(DEPDIR)/audacity-OpenSaveCommands.Po + -rm -f commands/$(DEPDIR)/audacity-PreferenceCommands.Po + -rm -f commands/$(DEPDIR)/audacity-ResponseQueue.Po + -rm -f commands/$(DEPDIR)/audacity-ScreenshotCommand.Po + -rm -f commands/$(DEPDIR)/audacity-ScriptCommandRelay.Po + -rm -f commands/$(DEPDIR)/audacity-SelectCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetClipCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetEnvelopeCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetLabelCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetProjectCommand.Po + -rm -f commands/$(DEPDIR)/audacity-SetTrackInfoCommand.Po + -rm -f effects/$(DEPDIR)/audacity-Amplify.Po + -rm -f effects/$(DEPDIR)/audacity-AutoDuck.Po + -rm -f effects/$(DEPDIR)/audacity-BassTreble.Po + -rm -f effects/$(DEPDIR)/audacity-Biquad.Po + -rm -f effects/$(DEPDIR)/audacity-ChangePitch.Po + -rm -f effects/$(DEPDIR)/audacity-ChangeSpeed.Po + -rm -f effects/$(DEPDIR)/audacity-ChangeTempo.Po + -rm -f effects/$(DEPDIR)/audacity-ClickRemoval.Po + -rm -f effects/$(DEPDIR)/audacity-Compressor.Po + -rm -f effects/$(DEPDIR)/audacity-Contrast.Po + -rm -f effects/$(DEPDIR)/audacity-Distortion.Po + -rm -f effects/$(DEPDIR)/audacity-DtmfGen.Po + -rm -f effects/$(DEPDIR)/audacity-EBUR128.Po + -rm -f effects/$(DEPDIR)/audacity-Echo.Po + -rm -f effects/$(DEPDIR)/audacity-Effect.Po + -rm -f effects/$(DEPDIR)/audacity-EffectManager.Po + -rm -f effects/$(DEPDIR)/audacity-EffectRack.Po + -rm -f effects/$(DEPDIR)/audacity-Equalization.Po + -rm -f effects/$(DEPDIR)/audacity-Equalization48x.Po + -rm -f effects/$(DEPDIR)/audacity-Fade.Po + -rm -f effects/$(DEPDIR)/audacity-FindClipping.Po + -rm -f effects/$(DEPDIR)/audacity-Generator.Po + -rm -f effects/$(DEPDIR)/audacity-Invert.Po + -rm -f effects/$(DEPDIR)/audacity-LoadEffects.Po + -rm -f effects/$(DEPDIR)/audacity-Loudness.Po + -rm -f effects/$(DEPDIR)/audacity-Noise.Po + -rm -f effects/$(DEPDIR)/audacity-NoiseReduction.Po + -rm -f effects/$(DEPDIR)/audacity-NoiseRemoval.Po + -rm -f effects/$(DEPDIR)/audacity-Normalize.Po + -rm -f effects/$(DEPDIR)/audacity-Paulstretch.Po + -rm -f effects/$(DEPDIR)/audacity-Phaser.Po + -rm -f effects/$(DEPDIR)/audacity-RealtimeEffectManager.Po + -rm -f effects/$(DEPDIR)/audacity-Repair.Po + -rm -f effects/$(DEPDIR)/audacity-Repeat.Po + -rm -f effects/$(DEPDIR)/audacity-Reverb.Po + -rm -f effects/$(DEPDIR)/audacity-Reverse.Po + -rm -f effects/$(DEPDIR)/audacity-SBSMSEffect.Po + -rm -f effects/$(DEPDIR)/audacity-ScienFilter.Po + -rm -f effects/$(DEPDIR)/audacity-Silence.Po + -rm -f effects/$(DEPDIR)/audacity-SimpleMono.Po + -rm -f effects/$(DEPDIR)/audacity-SoundTouchEffect.Po + -rm -f effects/$(DEPDIR)/audacity-StereoToMono.Po + -rm -f effects/$(DEPDIR)/audacity-TimeScale.Po + -rm -f effects/$(DEPDIR)/audacity-TimeWarper.Po + -rm -f effects/$(DEPDIR)/audacity-ToneGen.Po + -rm -f effects/$(DEPDIR)/audacity-TruncSilence.Po + -rm -f effects/$(DEPDIR)/audacity-TwoPassSimpleMono.Po + -rm -f effects/$(DEPDIR)/audacity-Wahwah.Po + -rm -f effects/VST/$(DEPDIR)/audacity-VSTControlGTK.Po + -rm -f effects/VST/$(DEPDIR)/audacity-VSTEffect.Po + -rm -f effects/audiounits/$(DEPDIR)/audacity-AudioUnitEffect.Po + -rm -f effects/ladspa/$(DEPDIR)/audacity-LadspaEffect.Po + -rm -f effects/lv2/$(DEPDIR)/audacity-LV2Effect.Po + -rm -f effects/lv2/$(DEPDIR)/audacity-LoadLV2.Po + -rm -f effects/lv2/zix/$(DEPDIR)/audacity-ring.Po + -rm -f effects/nyquist/$(DEPDIR)/audacity-LoadNyquist.Po + -rm -f effects/nyquist/$(DEPDIR)/audacity-Nyquist.Po + -rm -f effects/vamp/$(DEPDIR)/audacity-LoadVamp.Po + -rm -f effects/vamp/$(DEPDIR)/audacity-VampEffect.Po + -rm -f export/$(DEPDIR)/audacity-Export.Po + -rm -f export/$(DEPDIR)/audacity-ExportCL.Po + -rm -f export/$(DEPDIR)/audacity-ExportFFmpeg.Po + -rm -f export/$(DEPDIR)/audacity-ExportFFmpegDialogs.Po + -rm -f export/$(DEPDIR)/audacity-ExportFLAC.Po + -rm -f export/$(DEPDIR)/audacity-ExportMP2.Po + -rm -f export/$(DEPDIR)/audacity-ExportMP3.Po + -rm -f export/$(DEPDIR)/audacity-ExportMultiple.Po + -rm -f export/$(DEPDIR)/audacity-ExportOGG.Po + -rm -f export/$(DEPDIR)/audacity-ExportPCM.Po + -rm -f import/$(DEPDIR)/audacity-FormatClassifier.Po + -rm -f import/$(DEPDIR)/audacity-Import.Po + -rm -f import/$(DEPDIR)/audacity-ImportFFmpeg.Po + -rm -f import/$(DEPDIR)/audacity-ImportFLAC.Po + -rm -f import/$(DEPDIR)/audacity-ImportGStreamer.Po + -rm -f import/$(DEPDIR)/audacity-ImportLOF.Po + -rm -f import/$(DEPDIR)/audacity-ImportMIDI.Po + -rm -f import/$(DEPDIR)/audacity-ImportMP3.Po + -rm -f import/$(DEPDIR)/audacity-ImportOGG.Po + -rm -f import/$(DEPDIR)/audacity-ImportPCM.Po + -rm -f import/$(DEPDIR)/audacity-ImportQT.Po + -rm -f import/$(DEPDIR)/audacity-ImportRaw.Po + -rm -f import/$(DEPDIR)/audacity-MultiFormatReader.Po + -rm -f import/$(DEPDIR)/audacity-RawAudioGuess.Po + -rm -f import/$(DEPDIR)/audacity-SpecPowerMeter.Po + -rm -f menus/$(DEPDIR)/audacity-ClipMenus.Po + -rm -f menus/$(DEPDIR)/audacity-EditMenus.Po + -rm -f menus/$(DEPDIR)/audacity-ExtraMenus.Po + -rm -f menus/$(DEPDIR)/audacity-FileMenus.Po + -rm -f menus/$(DEPDIR)/audacity-HelpMenus.Po + -rm -f menus/$(DEPDIR)/audacity-LabelMenus.Po + -rm -f menus/$(DEPDIR)/audacity-NavigationMenus.Po + -rm -f menus/$(DEPDIR)/audacity-PluginMenus.Po + -rm -f menus/$(DEPDIR)/audacity-SelectMenus.Po + -rm -f menus/$(DEPDIR)/audacity-ToolbarMenus.Po + -rm -f menus/$(DEPDIR)/audacity-TrackMenus.Po + -rm -f menus/$(DEPDIR)/audacity-TransportMenus.Po + -rm -f menus/$(DEPDIR)/audacity-ViewMenus.Po + -rm -f menus/$(DEPDIR)/audacity-WindowMenus.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODComputeSummaryTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODDecodeFFmpegTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODDecodeFlacTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODDecodeTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODManager.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODTask.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODTaskThread.Po + -rm -f ondemand/$(DEPDIR)/audacity-ODWaveTrackTaskQueue.Po + -rm -f prefs/$(DEPDIR)/audacity-BatchPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-DevicePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-DirectoriesPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-EffectsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ExtImportPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-GUIPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ImportExportPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-KeyConfigPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-LibraryPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-MidiIOPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ModulePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-MousePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-PlaybackPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-PrefsDialog.Po + -rm -f prefs/$(DEPDIR)/audacity-ProjectsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-QualityPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-RecordingPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-SpectrogramSettings.Po + -rm -f prefs/$(DEPDIR)/audacity-SpectrumPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-ThemePrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-TracksBehaviorsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-TracksPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-WarningsPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-WaveformPrefs.Po + -rm -f prefs/$(DEPDIR)/audacity-WaveformSettings.Po + -rm -f toolbars/$(DEPDIR)/audacity-ControlToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-DeviceToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-EditToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-MeterToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-MixerToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-ScrubbingToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-SelectionBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-SpectralSelectionBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolDock.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolManager.Po + -rm -f toolbars/$(DEPDIR)/audacity-ToolsToolBar.Po + -rm -f toolbars/$(DEPDIR)/audacity-TranscriptionToolBar.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelDefaultClickHandle.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelGlyphHandle.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTextHandle.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackControls.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackVRulerControls.Po + -rm -f tracks/labeltrack/ui/$(DEPDIR)/audacity-LabelTrackView.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackButtonHandle.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackControls.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackSliderHandles.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVRulerControls.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackVZoomHandle.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-NoteTrackView.Po + -rm -f tracks/playabletrack/notetrack/ui/$(DEPDIR)/audacity-StretchHandle.Po + -rm -f tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackButtonHandles.Po + -rm -f tracks/playabletrack/ui/$(DEPDIR)/audacity-PlayableTrackControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-CutlineHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SampleHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVRulerControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumVZoomHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-SpectrumView.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackSliderHandles.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVRulerControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackVZoomHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackView.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveTrackViewConstants.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVRulerControls.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformVZoomHandle.Po + -rm -f tracks/playabletrack/wavetrack/ui/$(DEPDIR)/audacity-WaveformView.Po + -rm -f tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackControls.Po + -rm -f tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackVRulerControls.Po + -rm -f tracks/timetrack/ui/$(DEPDIR)/audacity-TimeTrackView.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-BackgroundCell.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-ButtonHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-CommonTrackControls.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-CommonTrackPanelCell.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-CommonTrackView.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-EnvelopeHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-ScrubUI.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-SelectHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-SliderHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TimeShiftHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackButtonHandles.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackControls.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackSelectHandle.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackVRulerControls.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-TrackView.Po + -rm -f tracks/ui/$(DEPDIR)/audacity-ZoomHandle.Po + -rm -f widgets/$(DEPDIR)/audacity-AButton.Po + -rm -f widgets/$(DEPDIR)/audacity-ASlider.Po + -rm -f widgets/$(DEPDIR)/audacity-AttachableScrollBar.Po + -rm -f widgets/$(DEPDIR)/audacity-AudacityMessageBox.Po + -rm -f widgets/$(DEPDIR)/audacity-BackedPanel.Po + -rm -f widgets/$(DEPDIR)/audacity-ErrorDialog.Po + -rm -f widgets/$(DEPDIR)/audacity-ExpandingToolBar.Po + -rm -f widgets/$(DEPDIR)/audacity-FileHistory.Po + -rm -f widgets/$(DEPDIR)/audacity-Grabber.Po + -rm -f widgets/$(DEPDIR)/audacity-Grid.Po + -rm -f widgets/$(DEPDIR)/audacity-HelpSystem.Po + -rm -f widgets/$(DEPDIR)/audacity-HtmlWindow.Po + -rm -f widgets/$(DEPDIR)/audacity-ImageRoll.Po + -rm -f widgets/$(DEPDIR)/audacity-KeyView.Po + -rm -f widgets/$(DEPDIR)/audacity-Meter.Po + -rm -f widgets/$(DEPDIR)/audacity-MeterPanelBase.Po + -rm -f widgets/$(DEPDIR)/audacity-MultiDialog.Po + -rm -f widgets/$(DEPDIR)/audacity-NumericTextCtrl.Po + -rm -f widgets/$(DEPDIR)/audacity-Overlay.Po + -rm -f widgets/$(DEPDIR)/audacity-OverlayPanel.Po + -rm -f widgets/$(DEPDIR)/audacity-PopupMenuTable.Po + -rm -f widgets/$(DEPDIR)/audacity-ProgressDialog.Po + -rm -f widgets/$(DEPDIR)/audacity-Ruler.Po + -rm -f widgets/$(DEPDIR)/audacity-Warning.Po + -rm -f widgets/$(DEPDIR)/audacity-numformatter.Po + -rm -f widgets/$(DEPDIR)/audacity-valnum.Po + -rm -f widgets/$(DEPDIR)/audacity-wxPanelWrapper.Po + -rm -f xml/$(DEPDIR)/audacity-XMLFileReader.Po + -rm -f xml/$(DEPDIR)/audacity-XMLTagHandler.Po + -rm -f xml/$(DEPDIR)/audacity-XMLWriter.Po + -rm -f xml/$(DEPDIR)/libaudacity_la-XMLTagHandler.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -8778,7 +10007,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-desktopDATA \ .MAKE: all check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-checkLTLIBRARIES clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-hdr \ diff --git a/src/effects/lv2/LV2Effect.cpp b/src/effects/lv2/LV2Effect.cpp old mode 100644 new mode 100755 index 301be53f1..1d1ad365d --- a/src/effects/lv2/LV2Effect.cpp +++ b/src/effects/lv2/LV2Effect.cpp @@ -12,6 +12,11 @@ #include "../../Audacity.h" // for USE_* macros #if defined(USE_LV2) + +#if defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wparentheses" +#endif + #include "LV2Effect.h" #include @@ -21,6 +26,9 @@ #include #include #include +#include +#include +#include #ifdef __WXMAC__ #include @@ -42,15 +50,17 @@ #include "lilv/lilv.h" #include "suil/suil.h" -#include "lv2/lv2plug.in/ns/ext/instance-access/instance-access.h" -#include "lv2/lv2plug.in/ns/ext/port-groups/port-groups.h" -#include "lv2/lv2plug.in/ns/ext/buf-size/buf-size.h" -#include "lv2/lv2plug.in/ns/ext/parameters/parameters.h" -#include "lv2/lv2plug.in/ns/extensions/ui/ui.h" +#include "lv2/atom/atom.h" +#include "lv2/atom/forge.h" +#include "lv2/atom/util.h" +#include "lv2/instance-access/instance-access.h" +#include "lv2/port-groups/port-groups.h" +#include "lv2/parameters/parameters.h" +#include "lv2/state/state.h" +#include "lv2/ui/ui.h" #if defined(__WXGTK__) #include -#include "win_gtk.h" #endif #if defined(__WXMSW__) @@ -61,10 +71,24 @@ #include #endif -// Define the static URI nodes -#undef URI -#define URI(n, u) LilvNode *LV2Effect::n = NULL; -URILIST +// Define a maximum block size in number of samples (not bytes) +#define DEFAULT_BLOCKSIZE 1048576 + +// Define a reasonable default sequence size in bytes +#define DEFAULT_SEQSIZE 8192 + +// Define the static URI map +URIDMap LV2Effect::gURIDMap; + +// Define the static LILV URI nodes +#undef NODE +#define NODE(n, u) LilvNode *LV2Effect::node_##n = NULL; +NODELIST + +// Define the static URIDs +#undef URID +#define URID(n, u) LV2_URID LV2Effect::urid_##n = 0; +URIDLIST /////////////////////////////////////////////////////////////////////////////// // @@ -75,17 +99,17 @@ URILIST class LV2EffectMeter final : public wxWindow { public: - LV2EffectMeter(wxWindow *parent, const LV2Port & ctrl); + LV2EffectMeter(wxWindow *parent, const LV2ControlPortPtr ctrl); virtual ~LV2EffectMeter(); private: - void OnErase(wxEraseEvent & evt); - void OnPaint(wxPaintEvent & evt); - void OnIdle(wxIdleEvent & evt); - void OnSize(wxSizeEvent & evt); + void OnErase(wxEraseEvent &evt); + void OnPaint(wxPaintEvent &evt); + void OnIdle(wxIdleEvent &evt); + void OnSize(wxSizeEvent &evt); private: - const LV2Port & mCtrl; + const LV2ControlPortPtr mControlPort; float mLastValue; DECLARE_EVENT_TABLE() @@ -98,11 +122,11 @@ BEGIN_EVENT_TABLE(LV2EffectMeter, wxWindow) EVT_SIZE(LV2EffectMeter::OnSize) END_EVENT_TABLE() -LV2EffectMeter::LV2EffectMeter(wxWindow *parent, const LV2Port & ctrl) +LV2EffectMeter::LV2EffectMeter(wxWindow *parent, const LV2ControlPortPtr port) : wxWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDEFAULT_CONTROL_BORDER), - mCtrl(ctrl) + mControlPort(port) { - mLastValue = -mCtrl.mVal; + mLastValue = -mControlPort->mVal; SetBackgroundColour(*wxWHITE); } @@ -114,20 +138,20 @@ LV2EffectMeter::~LV2EffectMeter() void LV2EffectMeter::OnIdle(wxIdleEvent &evt) { evt.Skip(); - if (mLastValue != mCtrl.mVal) + if (mLastValue != mControlPort->mVal) { Refresh(false); } } -void LV2EffectMeter::OnErase(wxEraseEvent & WXUNUSED(evt)) +void LV2EffectMeter::OnErase(wxEraseEvent &WXUNUSED(evt)) { // Just ignore it to prevent flashing } -void LV2EffectMeter::OnPaint(wxPaintEvent & WXUNUSED(evt)) +void LV2EffectMeter::OnPaint(wxPaintEvent &WXUNUSED(evt)) { - std::unique_ptr dc{ wxAutoBufferedPaintDCFactory(this) }; + std::unique_ptr dc {wxAutoBufferedPaintDCFactory(this)}; // Cache some metrics wxRect r = GetClientRect(); @@ -137,28 +161,28 @@ void LV2EffectMeter::OnPaint(wxPaintEvent & WXUNUSED(evt)) wxCoord h = r.GetHeight(); // These use unscaled value, min, and max - float val = mCtrl.mVal; - if (val > mCtrl.mMax) + float val = mControlPort->mVal; + if (val > mControlPort->mMax) { - val = mCtrl.mMax; + val = mControlPort->mMax; } - if (val < mCtrl.mMin) + if (val < mControlPort->mMin) { - val = mCtrl.mMin; + val = mControlPort->mMin; } - val -= mCtrl.mMin; + val -= mControlPort->mMin; // Setup for erasing the background dc->SetPen(*wxTRANSPARENT_PEN); dc->SetBrush(wxColour(100, 100, 220)); dc->Clear(); - dc->DrawRectangle(x, y, (w * (val / fabs(mCtrl.mMax - mCtrl.mMin))), h); + dc->DrawRectangle(x, y, (w * (val / fabs(mControlPort->mMax - mControlPort->mMin))), h); - mLastValue = mCtrl.mVal; + mLastValue = mControlPort->mVal; } -void LV2EffectMeter::OnSize(wxSizeEvent & WXUNUSED(evt)) +void LV2EffectMeter::OnSize(wxSizeEvent &WXUNUSED(evt)) { Refresh(false); } @@ -175,12 +199,13 @@ public: LV2EffectSettingsDialog(wxWindow *parent, LV2Effect *effect); virtual ~LV2EffectSettingsDialog(); - void PopulateOrExchange(ShuttleGui & S); + void PopulateOrExchange(ShuttleGui &S); - void OnOk(wxCommandEvent & evt); + void OnOk(wxCommandEvent &evt); private: LV2Effect *mEffect; + int mBufferSize; bool mUseLatency; bool mUseGUI; @@ -207,21 +232,50 @@ LV2EffectSettingsDialog::~LV2EffectSettingsDialog() { } -void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui & S) +void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui &S) { S.SetBorder(5); S.StartHorizontalLay(wxEXPAND, 1); { S.StartVerticalLay(false); { + // This really shouldn't be required for LV2 plugins because they have the ability + // to specify their exact requirements in the TTL file and/or to check the host + // supplied min/max values. However, I've run across one (Harrison Consoles XT-EQ) + // that crashed on sizes greater than 8192. + S.StartStatic(_("Buffer Size")); + { + IntegerValidator vld(&mBufferSize); + vld.SetRange(8, DEFAULT_BLOCKSIZE); + + S.AddVariableText(wxString() + + _("The buffer size controls the number of samples sent to the effect ") + + _("on each iteration. Smaller values will cause slower processing and ") + + _("some effects require 8192 samples or less to work properly. However ") + + _("most effects can accept large buffers and using them will greatly ") + + _("reduce processing time."))->Wrap(650); + + S.StartHorizontalLay(wxALIGN_LEFT); + { + wxTextCtrl *t; + t = S.TieNumericTextBox(wxString::Format(_("&Buffer Size (8 to %d) samples):"), DEFAULT_BLOCKSIZE), + mBufferSize, + 12); + t->SetMinSize(wxSize(100, -1)); + t->SetValidator(vld); + } + S.EndHorizontalLay(); + } + S.EndStatic(); + S.StartStatic(_("Latency Compensation")); { S.AddVariableText(wxString() + - _("As part of their processing, some LV2 effects must delay returning ") + - _("audio to Audacity. When not compensating for this delay, you will ") + - _("notice that small silences have been inserted into the audio. ") + - _("Enabling this setting will provide that compensation, but it may ") + - _("not work for all LV2 effects."))->Wrap(650); + _("As part of their processing, some LV2 effects must delay returning ") + + _("audio to Audacity. When not compensating for this delay, you will ") + + _("notice that small silences have been inserted into the audio. ") + + _("Enabling this setting will provide that compensation, but it may ") + + _("not work for all LV2 effects."))->Wrap(650); S.StartHorizontalLay(wxALIGN_LEFT); { @@ -235,9 +289,9 @@ void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui & S) S.StartStatic(_("Graphical Mode")); { S.AddVariableText(wxString() + - _("LV2 effects can have a graphical interface for setting parameter values.") + - _(" A basic text-only method is also available. ") + - _(" Reopen the effect for this to take effect."))->Wrap(650); + _("LV2 effects can have a graphical interface for setting parameter values.") + + _(" A basic text-only method is also available. ") + + _(" Reopen the effect for this to take effect."))->Wrap(650); S.TieCheckBox(_("Enable &graphical interface"), mUseGUI); } @@ -254,7 +308,7 @@ void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui & S) Center(); } -void LV2EffectSettingsDialog::OnOk(wxCommandEvent & WXUNUSED(evt)) +void LV2EffectSettingsDialog::OnOk(wxCommandEvent &WXUNUSED(evt)) { if (!Validate()) { @@ -264,6 +318,7 @@ void LV2EffectSettingsDialog::OnOk(wxCommandEvent & WXUNUSED(evt)) ShuttleGui S(this, eIsGettingFromDialog); PopulateOrExchange(S); + mEffect->mHost->SetSharedConfig(wxT("Settings"), wxT("BufferSize"), mBufferSize); mEffect->mHost->SetSharedConfig(wxT("Settings"), wxT("UseLatency"), mUseLatency); mEffect->mHost->SetSharedConfig(wxT("Settings"), wxT("UseGUI"), mUseGUI); @@ -280,19 +335,21 @@ enum { ID_Duration = 10000, ID_Triggers = 11000, - ID_Toggles = 12000, - ID_Sliders = 13000, - ID_Choices = 14000, - ID_Texts = 15000, + ID_Toggles = 12000, + ID_Sliders = 13000, + ID_Choices = 14000, + ID_Texts = 15000, + ID_TIMER = 20000, }; BEGIN_EVENT_TABLE(LV2Effect, wxEvtHandler) - EVT_COMMAND_RANGE(ID_Triggers, ID_Triggers + 999, wxEVT_COMMAND_BUTTON_CLICKED, LV2Effect::OnTrigger) - EVT_COMMAND_RANGE(ID_Toggles, ID_Toggles + 999, wxEVT_COMMAND_CHECKBOX_CLICKED, LV2Effect::OnToggle) - EVT_COMMAND_RANGE(ID_Sliders, ID_Sliders + 999, wxEVT_COMMAND_SLIDER_UPDATED, LV2Effect::OnSlider) - EVT_COMMAND_RANGE(ID_Choices, ID_Choices + 999, wxEVT_COMMAND_CHOICE_SELECTED, LV2Effect::OnChoice) - EVT_COMMAND_RANGE(ID_Texts, ID_Texts + 999, wxEVT_COMMAND_TEXT_UPDATED, LV2Effect::OnText) + EVT_COMMAND_RANGE(ID_Triggers, ID_Triggers + 999, wxEVT_COMMAND_BUTTON_CLICKED, LV2Effect::OnTrigger) + EVT_COMMAND_RANGE(ID_Toggles, ID_Toggles + 999, wxEVT_COMMAND_CHECKBOX_CLICKED, LV2Effect::OnToggle) + EVT_COMMAND_RANGE(ID_Sliders, ID_Sliders + 999, wxEVT_COMMAND_SLIDER_UPDATED, LV2Effect::OnSlider) + EVT_COMMAND_RANGE(ID_Choices, ID_Choices + 999, wxEVT_COMMAND_CHOICE_SELECTED, LV2Effect::OnChoice) + EVT_COMMAND_RANGE(ID_Texts, ID_Texts + 999, wxEVT_COMMAND_TEXT_UPDATED, LV2Effect::OnText) + EVT_TIMER(ID_TIMER, LV2Effect::OnTimer) EVT_IDLE(LV2Effect::OnIdle) END_EVENT_TABLE() @@ -306,22 +363,57 @@ LV2Effect::LV2Effect(const LilvPlugin *plug) mSuilInstance = NULL; mSampleRate = 44100; - mBlockSize = 512; + mBlockSize = DEFAULT_BLOCKSIZE; + mSeqSize = DEFAULT_SEQSIZE; + + mMinBlockSize = 1; + mMaxBlockSize = mBlockSize; + mUserBlockSize = mBlockSize; mLatencyPort = -1; mLatencyDone = false; - mLatency = 0.0; + mRolling = false; + mActivated = false; mDialog = NULL; - mIdleFeature = NULL; - mOptionsInterface = NULL; + mUIIdleInterface = NULL; + mUIShowInterface = NULL; + + mAudioIn = 0; + mAudioOut = 0; + mMidiIn = 0; + mMidiOut = 0; + + mControlIn.reset(); + mControlOut.reset(); + + mPositionSpeed = 1.0; + mPositionFrame = 0.0; + + mNativeWin = NULL; + mNativeWinInitialSize = wxDefaultSize; + mNativeWinLastSize = wxDefaultSize; + mResizing = false; +#if defined(__WXGTK__) + mResized = false; +#endif + + mExternalUIHost.plugin_human_id = NULL; + mExternalWidget = NULL; + mExternalUIClosed = false; + + mNoResize = false; + + mSupportsNominalBlockLength = false; + mSupportsSampleRate = false; mFactoryPresetsLoaded = false; } LV2Effect::~LV2Effect() { + wxLogDebug(wxT("asdf")); } // ============================================================================ @@ -347,7 +439,7 @@ VendorSymbol LV2Effect::GetVendor() return XO("n/a"); } - return { vendor }; + return {vendor}; } wxString LV2Effect::GetVersion() @@ -391,7 +483,7 @@ EffectFamilySymbol LV2Effect::GetFamily() bool LV2Effect::IsInteractive() { - return mControls.size() != 0; + return mControlPorts.size() != 0; } bool LV2Effect::IsDefault() @@ -417,238 +509,28 @@ bool LV2Effect::SupportsAutomation() // ============================================================================ // EffectClientInterface Implementation // ============================================================================ - bool LV2Effect::SetHost(EffectHostInterface *host) { mHost = host; - auto numPorts = lilv_plugin_get_num_ports(mPlug); + AddOption(urid_SequenceSize, sizeof(mSeqSize), urid_Int, &mSeqSize); + AddOption(urid_MinBlockLength, sizeof(mMinBlockSize), urid_Int, &mMinBlockSize); + AddOption(urid_MaxBlockLength, sizeof(mMaxBlockSize), urid_Int, &mMaxBlockSize); - // Fail if we don't grok the port types - for (size_t i = 0; i < numPorts; i++) - { - const LilvPort *port = lilv_plugin_get_port_by_index(mPlug, i); - - if (!lilv_port_is_a(mPlug, port, gAudio) && - !lilv_port_is_a(mPlug, port, gControl)) - { - // There is no event port support in liblilv - // The workaround below tests for an event port, used - // for example in Calf plug-ins. - // We'll allow an event port, even though we won't use it. - // Otherwise we return false and reject the plug in. - - LilvNode* name = lilv_port_get_name(mPlug, port); - if (!name) - return false; - - if (strcmp(lilv_node_as_string(name), "Events") != 0) - { - lilv_node_free(name); - return false; - } - lilv_node_free(name); - } - } - - { - // Allocate buffers for the port indices and the default control values - Floats minimumVals{ numPorts }; - Floats maximumVals{ numPorts }; - Floats defaultValues{ numPorts }; - - // Retrieve the port ranges for all ports (some values may be NaN) - lilv_plugin_get_port_ranges_float(mPlug, - minimumVals.get(), - maximumVals.get(), - defaultValues.get()); - - // Get info about all ports - for (size_t i = 0; i < numPorts; i++) - { - const LilvPort *port = lilv_plugin_get_port_by_index(mPlug, i); - int index = lilv_port_get_index(mPlug, port); - - // Quick check for audio ports - if (lilv_port_is_a(mPlug, port, gAudio)) - { - if (lilv_port_is_a(mPlug, port, gInput)) - { - mAudioInputs.push_back(index); - } - else if (lilv_port_is_a(mPlug, port, gOutput)) - { - mAudioOutputs.push_back(index); - } - continue; - } - - // Only control ports from this point - if (!lilv_port_is_a(mPlug, port, gControl)) - { - continue; - } - - LV2Port ctrl; - ctrl.mIndex = index; - - // Get the port name - ctrl.mSymbol = LilvString(lilv_port_get_symbol(mPlug, port)); - LilvNode *tmpName = lilv_port_get_name(mPlug, port); - ctrl.mName = LilvString(tmpName); - lilv_node_free(tmpName); - - // Get any unit descriptor - LilvNode *unit = lilv_port_get(mPlug, port, gUnit); - if (unit) - { - ctrl.mUnits = LilvString(lilv_world_get(gWorld, unit, gUnitSymbol, NULL)); - } - - // Get the group to which this port belongs or default to the main group - ctrl.mGroup = wxEmptyString; - LilvNode *group = lilv_port_get(mPlug, port, gGroup); - if (group) - { - ctrl.mGroup = LilvString(lilv_world_get(gWorld, group, gLabel, NULL)); - if (ctrl.mGroup.empty()) - { - ctrl.mGroup = LilvString(lilv_world_get(gWorld, group, gName, NULL)); - } - - if (ctrl.mGroup.empty()) - { - ctrl.mGroup = LilvString(group); - } - } - - // Add it if not previously done - if ( !make_iterator_range( mGroups ).contains( ctrl.mGroup ) ) - { - mGroups.push_back(ctrl.mGroup); - } - - // Get the scale points - LilvScalePoints *points = lilv_port_get_scale_points(mPlug, port); - LILV_FOREACH(scale_points, j, points) - { - const LilvScalePoint *point = lilv_scale_points_get(points, j); - - ctrl.mScaleValues.push_back(lilv_node_as_float(lilv_scale_point_get_value(point))); - ctrl.mScaleLabels.push_back(LilvString(lilv_scale_point_get_label(point))); - } - lilv_scale_points_free(points); - - // Collect the value and range info - ctrl.mHasLo = !std::isnan(minimumVals[i]); - ctrl.mHasHi = !std::isnan(maximumVals[i]); - ctrl.mMin = ctrl.mHasLo ? minimumVals[i] : 0.0; - ctrl.mMax = ctrl.mHasHi ? maximumVals[i] : 1.0; - ctrl.mLo = ctrl.mMin; - ctrl.mHi = ctrl.mMax; - ctrl.mDef = !std::isnan(defaultValues[i]) ? - defaultValues[i] : - ctrl.mHasLo ? - ctrl.mLo : - ctrl.mHasHi ? - ctrl.mHi : - 0.0; - ctrl.mVal = ctrl.mDef; - - // Figure out the type of port we have - if (lilv_port_is_a(mPlug, port, gInput)) - { - ctrl.mInput = true; - if (lilv_port_has_property(mPlug, port, gToggled)) - { - ctrl.mToggle = true; - } - else if (lilv_port_has_property(mPlug, port, gEnumeration)) - { - ctrl.mEnumeration = true; - } - else if (lilv_port_has_property(mPlug, port, gInteger)) - { - ctrl.mInteger = true; - } - else if (lilv_port_has_property(mPlug, port, gSampleRate)) - { - ctrl.mSampleRate = true; - } - - // Trigger properties can be combined with other types, but it - // seems mostly to be combined with toggle. So, we turn the - // checkbox into a button. - if (lilv_port_has_property(mPlug, port, gTrigger)) - { - ctrl.mTrigger = true; - } - - // We'll make the slider logarithmic - if (lilv_port_has_property(mPlug, port, gLogarithmic)) - { - ctrl.mLogarithmic = true; - } - - if (lilv_port_has_property(mPlug, port, gEnumeration)) - { - ctrl.mEnumeration = true; - } - - mControlsMap[ctrl.mIndex] = mControls.size(); - mGroupMap[ctrl.mGroup].push_back(mControls.size()); - mControls.push_back(ctrl); - } - else if (lilv_port_is_a(mPlug, port, gOutput)) - { - ctrl.mInput = false; - if (lilv_port_has_property(mPlug, port, gLatency)) - { - mLatencyPort = i; - } - else - { - mGroupMap[ctrl.mGroup].push_back(mControls.size()); - mControls.push_back(ctrl); - } - } - else - { - // Just ignore it for now - } - } - } - - // mHost will be null during registration - if (mHost) - { - mHost->GetSharedConfig(wxT("Settings"), wxT("UseLatency"), mUseLatency, true); - mHost->GetSharedConfig(wxT("Settings"), wxT("UseGUI"), mUseGUI, true); - - bool haveDefaults; - mHost->GetPrivateConfig(mHost->GetFactoryDefaultsGroup(), wxT("Initialized"), haveDefaults, false); - if (!haveDefaults) - { - SaveParameters(mHost->GetFactoryDefaultsGroup()); - mHost->SetPrivateConfig(mHost->GetFactoryDefaultsGroup(), wxT("Initialized"), true); - } - - LoadParameters(mHost->GetCurrentSettingsGroup()); - } - - AddOption(LV2_BUF_SIZE__minBlockLength, - sizeof(mBlockSize), - LV2_ATOM__Int, - &mBlockSize); - mBlockSizeOption = AddOption(LV2_BUF_SIZE__maxBlockLength, + mBlockSizeOption = AddOption(urid_NominalBlockLength, sizeof(mBlockSize), - LV2_ATOM__Int, + urid_Int, &mBlockSize); - mSampleRateOption = AddOption(LV2_CORE__sampleRate, + mSampleRateOption = AddOption(urid_SampleRate, sizeof(mSampleRate), - LV2_ATOM__Double, + urid_Float, &mSampleRate); - AddOption(NULL, 0, NULL, NULL); + AddOption(0, 0, 0, NULL); + + if (!ValidateOptions(lilv_plugin_get_uri(mPlug))) + { + return false; + } mUriMapFeature.callback_data = this; mUriMapFeature.uri_to_id = LV2Effect::uri_to_id; @@ -662,83 +544,462 @@ bool LV2Effect::SetHost(EffectHostInterface *host) mUIResizeFeature.handle = this; mUIResizeFeature.ui_resize = LV2Effect::ui_resize; - AddFeature(LV2_UI_PREFIX "makeResident", NULL); + mLogFeature.handle = this; + mLogFeature.printf = LV2Effect::log_printf; + mLogFeature.vprintf = LV2Effect::log_vprintf; + + mExternalUIHost.ui_closed = LV2Effect::ui_closed; + + LilvNode *pluginName = lilv_plugin_get_name(mPlug); + mExternalUIHost.plugin_human_id = lilv_node_as_string(pluginName); + lilv_node_free(pluginName); + AddFeature(LV2_UI__noUserResize, NULL); + AddFeature(LV2_UI__fixedSize, NULL); + AddFeature(LV2_UI__idleInterface, NULL); + AddFeature(LV2_UI__makeResident, NULL); AddFeature(LV2_BUF_SIZE__boundedBlockLength, NULL); + AddFeature(LV2_BUF_SIZE__fixedBlockLength, NULL); AddFeature(LV2_OPTIONS__options, mOptions.data()); AddFeature(LV2_URI_MAP_URI, &mUriMapFeature); AddFeature(LV2_URID__map, &mURIDMapFeature); AddFeature(LV2_URID__unmap, &mURIDUnmapFeature); AddFeature(LV2_UI__resize, &mUIResizeFeature); - AddFeature(LV2_DATA_ACCESS_URI, &mExtDataFeature); + AddFeature(LV2_DATA_ACCESS_URI, &mExtensionDataFeature); + AddFeature(LV2_LOG__log, &mLogFeature); + AddFeature(LV2_EXTERNAL_UI__Host, &mExternalUIHost); + AddFeature(LV2_EXTERNAL_UI_DEPRECATED_URI, &mExternalUIHost); + // Some plugins specify this as a feature + AddFeature(LV2_EXTERNAL_UI__Widget, NULL); + mInstanceAccessFeature = AddFeature(LV2_INSTANCE_ACCESS_URI, NULL); mParentFeature = AddFeature(LV2_UI__parent, NULL); + AddFeature(NULL, NULL); - + + if (!ValidateFeatures(lilv_plugin_get_uri(mPlug))) + { + return false; + } + + auto minLength = lilv_world_get(gWorld, lilv_plugin_get_uri(mPlug), node_MinBlockLength, NULL); + if (minLength) + { + if (lilv_node_is_int(minLength)) + { + int val = lilv_node_as_int(minLength); + if (mMinBlockSize < val) + { + mMinBlockSize = val; + } + } + lilv_node_free(minLength); + } + + auto maxLength = lilv_world_get(gWorld, lilv_plugin_get_uri(mPlug), node_MaxBlockLength, NULL); + if (maxLength) + { + if (lilv_node_is_int(maxLength)) + { + int val = lilv_node_as_int(maxLength); + if (mMaxBlockSize > val) + { + mMaxBlockSize = val; + } + } + lilv_node_free(maxLength); + } + + if (mMinBlockSize > mMaxBlockSize) + { + mMaxBlockSize = mMinBlockSize; + } + + auto numPorts = lilv_plugin_get_num_ports(mPlug); + + // Allocate buffers for the port indices and the default control values + Floats minimumVals {numPorts}; + Floats maximumVals {numPorts}; + Floats defaultVals {numPorts}; + + // Retrieve the port ranges for all ports (some values may be NaN) + lilv_plugin_get_port_ranges_float(mPlug, + minimumVals.get(), + maximumVals.get(), + defaultVals.get()); + + // Get info about all ports + for (size_t i = 0; i < numPorts; i++) + { + const LilvPort *port = lilv_plugin_get_port_by_index(mPlug, i); + int index = lilv_port_get_index(mPlug, port); + + // It must be input or output, anything else is bogus + bool isInput; + if (lilv_port_is_a(mPlug, port, node_InputPort)) + { + isInput = true; + } + else if (lilv_port_is_a(mPlug, port, node_OutputPort)) + { + isInput = false; + } + else + { + assert(false); + return false; + } + + // Get the port name and symbol + wxString symbol = LilvString(lilv_port_get_symbol(mPlug, port)); + wxString name = LilvString(lilv_port_get_name(mPlug, port), true); + + // Get the group to which this port belongs or default to the main group + wxString groupName = wxEmptyString; + LilvNode *group = lilv_port_get(mPlug, port, node_Group); + if (group) + { + groupName = LilvString(lilv_world_get(gWorld, group, node_Label, NULL), true); + if (groupName.empty()) + { + groupName = LilvString(lilv_world_get(gWorld, group, node_Name, NULL), true); + } + + if (groupName.empty()) + { + groupName = LilvString(group); + } + + lilv_node_free(group); + } + else + { + groupName = _("Effect Settings"); + } + + // Get the latency port + uint32_t latencyIndex = lilv_plugin_get_latency_port_index(mPlug); + + // Get the ports designation (must be freed) + LilvNode *designation = lilv_port_get(mPlug, port, node_Designation); + + // Check for audio ports + if (lilv_port_is_a(mPlug, port, node_AudioPort)) + { + mAudioPorts.push_back(std::make_shared(port, index, isInput, symbol, name, groupName)); + + isInput ? mAudioIn++ : mAudioOut++; + } + // Check for Control ports + else if (lilv_port_is_a(mPlug, port, node_ControlPort)) + { + // Add group if not previously done + if (mGroupMap.find(groupName) == mGroupMap.end()) + { + mGroups.push_back(groupName); + } + mGroupMap[groupName].push_back(mControlPorts.size()); + + mControlPorts.push_back(std::make_shared(port, index, isInput, symbol, name, groupName)); + LV2ControlPortPtr controlPort = mControlPorts.back(); + + // Get any unit descriptor + LilvNode *unit = lilv_port_get(mPlug, port, node_Unit); + if (unit) + { + // Really should use lilv_world_get_symbol() + controlPort->mUnits = LilvString(lilv_world_get_symbol(gWorld, unit)); + lilv_node_free(unit); + } + + // Get the scale points + LilvScalePoints *points = lilv_port_get_scale_points(mPlug, port); + LILV_FOREACH(scale_points, j, points) + { + const LilvScalePoint *point = lilv_scale_points_get(points, j); + + controlPort->mScaleValues.push_back(lilv_node_as_float(lilv_scale_point_get_value(point))); + controlPort->mScaleLabels.push_back(LilvString(lilv_scale_point_get_label(point))); + } + lilv_scale_points_free(points); + + // Collect the value and range info + controlPort->mHasLo = !std::isnan(minimumVals[i]); + controlPort->mHasHi = !std::isnan(maximumVals[i]); + controlPort->mMin = controlPort->mHasLo ? minimumVals[i] : 0.0; + controlPort->mMax = controlPort->mHasHi ? maximumVals[i] : 1.0; + controlPort->mLo = controlPort->mMin; + controlPort->mHi = controlPort->mMax; + controlPort->mDef = !std::isnan(defaultVals[i]) + ? defaultVals[i] + : controlPort->mHasLo + ? controlPort->mLo + : controlPort->mHasHi + ? controlPort->mHi + : 0.0; + controlPort->mVal = controlPort->mDef; + controlPort->mLst = controlPort->mVal; + + // Figure out the type of port we have + if (isInput) + { + if (lilv_port_has_property(mPlug, port, node_Toggled)) + { + controlPort->mToggle = true; + } + else if (lilv_port_has_property(mPlug, port, node_Enumeration)) + { + controlPort->mEnumeration = true; + } + else if (lilv_port_has_property(mPlug, port, node_Integer)) + { + controlPort->mInteger = true; + } + else if (lilv_port_has_property(mPlug, port, node_SampleRate)) + { + controlPort->mSampleRate = true; + } + + // Trigger properties can be combined with other types, but it + // seems mostly to be combined with toggle. So, we turn the + // checkbox into a button. + if (lilv_port_has_property(mPlug, port, node_Trigger)) + { + controlPort->mTrigger = true; + } + + // We'll make the slider logarithmic + if (lilv_port_has_property(mPlug, port, node_Logarithmic)) + { + controlPort->mLogarithmic = true; + } + + if (lilv_port_has_property(mPlug, port, node_Enumeration)) + { + controlPort->mEnumeration = true; + } + + mControlPortMap[controlPort->mIndex] = controlPort; + } + else + { + if (controlPort->mIndex == latencyIndex) + { + mLatencyPort = i; + } + } + } + // Check for atom ports + else if (lilv_port_is_a(mPlug, port, node_AtomPort)) + { + mAtomPorts.push_back(std::make_shared(port, index, isInput, symbol, name, groupName)); + std::shared_ptr atomPort = mAtomPorts.back(); + + atomPort->mMinimumSize = 8192; + LilvNode *min = lilv_port_get(mPlug, port, node_MinimumSize); + if (min) + { + if (lilv_node_is_int(min)) + { + uint32_t val = lilv_node_as_int(min); + if (atomPort->mMinimumSize < val) + { + atomPort->mMinimumSize = val; + } + } + lilv_node_free(min); + } + + atomPort->mBuffer.resize(atomPort->mMinimumSize); + atomPort->mRing = zix_ring_new(atomPort->mMinimumSize); + zix_ring_mlock(atomPort->mRing); + + if (lilv_port_supports_event(mPlug, port, node_Position)) + { + atomPort->mWantsPosition = true; + } + + if (lilv_port_supports_event(mPlug, port, node_MidiEvent)) + { + atomPort->mIsMidi = true; + (isInput ? mMidiIn : mMidiOut) += 1; + } + + bool isControl = lilv_node_equals(designation, node_Control); + if (isInput) + { + if (!mControlIn || isControl) + { + mControlIn = atomPort; + } + } + else + { + if (!mControlOut || isControl) + { + mControlOut = atomPort; + } + } + } + // Check for CV ports + else if (lilv_port_is_a(mPlug, port, node_CVPort)) + { + mCVPorts.push_back(std::make_shared(port, index, isInput, symbol, name, groupName)); + std::shared_ptr cvPort = mCVPorts.back(); + + // Collect the value and range info + if (!std::isnan(minimumVals[i])) + { + cvPort->mHasLo = true; + cvPort->mMin = minimumVals[i]; + } + + if (!std::isnan(maximumVals[i])) + { + cvPort->mHasHi = true; + cvPort->mMax = maximumVals[i]; + } + + if (!std::isnan(defaultVals[i])) + { + cvPort->mDef = defaultVals[i]; + } + else if (cvPort->mHasLo) + { + cvPort->mDef = cvPort->mMin; + } + else if (cvPort->mHasHi) + { + cvPort->mDef = cvPort->mMax; + } + } + + // Free the designation node + if (designation) + { + lilv_node_free(designation); + } + } + + // Ignore control designation if one of them is missing + if ((mControlIn && !mControlOut) || (!mControlIn && mControlOut)) + { + mControlIn.reset(); + mControlOut.reset(); + } + + // Determine available extensions + mWantsOptionsInterface = false; + mWantsWorkerInterface = false; + mWantsStateInterface = false; + + LilvNodes *extdata = lilv_plugin_get_extension_data(mPlug); + if (extdata) + { + LILV_FOREACH(nodes, i, extdata) + { + const LilvNode *node = lilv_nodes_get(extdata, i); + const char *uri = lilv_node_as_string(node); + + if (strcmp(uri, LV2_OPTIONS__interface) == 0) + { + mWantsOptionsInterface = true; + } + else if (strcmp(uri, LV2_WORKER__interface) == 0) + { + mWantsWorkerInterface = true; + } + else if (strcmp(uri, LV2_STATE__interface) == 0) + { + mWantsStateInterface = true; + } + } + lilv_nodes_free(extdata); + } + + // mHost will be null during registration + if (mHost) + { + int userBlockSize; + mHost->GetSharedConfig(wxT("Settings"), wxT("BufferSize"), userBlockSize, 8192); + mUserBlockSize = std::max(1, userBlockSize); + mHost->GetSharedConfig(wxT("Settings"), wxT("UseLatency"), mUseLatency, true); + mHost->GetSharedConfig(wxT("Settings"), wxT("UseGUI"), mUseGUI, true); + + mBlockSize = mUserBlockSize; + + bool haveDefaults; + mHost->GetPrivateConfig(mHost->GetFactoryDefaultsGroup(), wxT("Initialized"), haveDefaults, false); + if (!haveDefaults) + { + SaveParameters(mHost->GetFactoryDefaultsGroup()); + mHost->SetPrivateConfig(mHost->GetFactoryDefaultsGroup(), wxT("Initialized"), true); + } + + LoadParameters(mHost->GetCurrentSettingsGroup()); + } + + lv2_atom_forge_init(&mForge, &mURIDMapFeature); + return true; } unsigned LV2Effect::GetAudioInCount() { - return mAudioInputs.size(); + return mAudioIn; } unsigned LV2Effect::GetAudioOutCount() { - return mAudioOutputs.size(); + return mAudioOut; } int LV2Effect::GetMidiInCount() { - return 0; + return mMidiIn; } int LV2Effect::GetMidiOutCount() { - return 0; + return mMidiOut; } void LV2Effect::SetSampleRate(double rate) { - mSampleRate = (double) rate; + mSampleRate = (float) rate; - if (mOptionsInterface && mOptionsInterface->set) + if (mMaster) { - LV2_Options_Option options[2]; // 2 for empty terminating option - memset(&options, 0, sizeof(options)); - memcpy(&options, &mOptions[mSampleRateOption], sizeof(mOptions[0])); + mMaster->SetSampleRate(); + } - if (mMaster) - { - mOptionsInterface->set(lilv_instance_get_handle(mMaster), options); - } - - for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++) - { - mOptionsInterface->set(lilv_instance_get_handle(mSlaves[i]), options); - } + for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++) + { + mSlaves[i]->SetSampleRate(); } } size_t LV2Effect::SetBlockSize(size_t maxBlockSize) { - mBlockSize = maxBlockSize; + mBlockSize = std::min(std::min((int)maxBlockSize, mUserBlockSize), mMaxBlockSize); - if (mOptionsInterface && mOptionsInterface->set) + if (mBlockSize < mMinBlockSize) { - LV2_Options_Option options[2]; // 2 for empty terminating option - memset(&options, 0, sizeof(options)); - memcpy(&options, &mOptions[mBlockSizeOption], sizeof(mOptions[0])); + mBlockSize = mMinBlockSize; + } + if (mBlockSize > mMaxBlockSize) + { + mBlockSize = mMaxBlockSize; + } - if (mMaster) - { - mOptionsInterface->set(lilv_instance_get_handle(mMaster), options); - } + if (mMaster) + { + mMaster->SetBlockSize(); + } - for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++) - { - mOptionsInterface->set(lilv_instance_get_handle(mSlaves[i]), options); - } + for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++) + { + mSlaves[i]->SetBlockSize(); } return mBlockSize; @@ -754,7 +1015,7 @@ sampleCount LV2Effect::GetLatency() if (mUseLatency && mLatencyPort >= 0 && !mLatencyDone) { mLatencyDone = true; - return sampleCount( mLatency ); + return sampleCount(mMaster->GetLatency()); } return 0; @@ -778,7 +1039,13 @@ bool LV2Effect::ProcessInitialize(sampleCount WXUNUSED(totalLen), ChannelNames W return false; } - lilv_instance_activate(mProcess); + for (auto & port : mCVPorts) + { + port->mBuffer.reinit((unsigned) mBlockSize, port->mIsInput); + } + + lilv_instance_activate(mProcess->GetInstance()); + mActivated = true; mLatencyDone = false; @@ -789,8 +1056,6 @@ bool LV2Effect::ProcessFinalize() { if (mProcess) { - lilv_instance_deactivate(mProcess); - FreeInstance(mProcess); mProcess = NULL; } @@ -800,132 +1065,372 @@ bool LV2Effect::ProcessFinalize() size_t LV2Effect::ProcessBlock(float **inbuf, float **outbuf, size_t size) { - for (size_t p = 0, cnt = mAudioInputs.size(); p < cnt; p++) + wxASSERT(size <= ( size_t) mBlockSize); + + LilvInstance *instance = mProcess->GetInstance(); + + int i = 0; + int o = 0; + for (auto & port : mAudioPorts) { - lilv_instance_connect_port(mProcess, mAudioInputs[p], inbuf[p]); + lilv_instance_connect_port(instance, + port->mIndex, + (port->mIsInput ? inbuf[i++] : outbuf[o++])); } - for (size_t p = 0, cnt = mAudioOutputs.size(); p < cnt; p++) + // Transfer incoming events from the ring buffer to the event buffer for each + // atom input port. These will be made available to each slave in the chain and + // to the master once all slaves have run. + // + // In addition, reset the output Atom ports. + for (auto & port : mAtomPorts) { - lilv_instance_connect_port(mProcess, mAudioOutputs[p], outbuf[p]); + uint8_t *buf = port->mBuffer.data(); + + if (port->mIsInput) + { + lv2_atom_forge_set_buffer(&mForge, + buf, + port->mBuffer.size()); + + LV2_Atom_Forge_Frame seqFrame; + LV2_Atom_Sequence *seq = ( LV2_Atom_Sequence *) + lv2_atom_forge_sequence_head(&mForge, &seqFrame, 0); + + if (port->mWantsPosition) + { + lv2_atom_forge_frame_time(&mForge, mPositionFrame); + + LV2_Atom_Forge_Frame posFrame; + lv2_atom_forge_object(&mForge, &posFrame, 0, urid_Position); + lv2_atom_forge_key(&mForge, urid_Speed); + lv2_atom_forge_float(&mForge, mPositionSpeed); + lv2_atom_forge_key(&mForge, urid_Frame); + lv2_atom_forge_long(&mForge, mPositionFrame); + lv2_atom_forge_pop(&mForge, &posFrame); + } + + ZixRing *ring = port->mRing; + LV2_Atom atom; + while (zix_ring_read(ring, &atom, sizeof(atom))) + { + if (mForge.offset + sizeof(LV2_Atom_Event) + atom.size < mForge.size) + { + lv2_atom_forge_frame_time(&mForge, mPositionFrame); + + lv2_atom_forge_write(&mForge, &atom, sizeof(atom)); + zix_ring_read(ring, &mForge.buf[mForge.offset], atom.size); + mForge.offset += atom.size; + seq->atom.size += atom.size; + } + else + { + zix_ring_skip(ring, atom.size); + wxLogError(_("LV2 sequence buffer overflow")); + } + } + + lv2_atom_forge_pop(&mForge, &seqFrame); + } + else + { + port->mBuffer.resize(port->mMinimumSize); + *(( LV2_Atom *) buf) = + { + port->mMinimumSize, + urid_Chunk + }; + } } - lilv_instance_run(mProcess, size); + lilv_instance_run(instance, size); + + mProcess->SendResponses(); + + for (auto & port : mAtomPorts) + { + if (!port->mIsInput) + { + port->mBuffer.resize(port->mMinimumSize); + + LV2_Atom *chunk = ( LV2_Atom *) port->mBuffer.data(); + chunk->size = port->mMinimumSize; + chunk->type = urid_Chunk; + } + } return size; } bool LV2Effect::RealtimeInitialize() { - mMasterIn.reinit( mAudioInputs.size(), mBlockSize ); - for (size_t p = 0, cnt = mAudioInputs.size(); p < cnt; p++) - lilv_instance_connect_port(mMaster, mAudioInputs[p], mMasterIn[p].get()); + mMasterIn.reinit(mAudioIn, (unsigned int) mBlockSize); + mMasterOut.reinit(mAudioOut, (unsigned int) mBlockSize); - mMasterOut.reinit( mAudioOutputs.size(), mBlockSize ); - for (size_t p = 0, cnt = mAudioOutputs.size(); p < cnt; p++) - lilv_instance_connect_port(mMaster, mAudioOutputs[p], mMasterOut[p].get()); + for (auto & port : mCVPorts) + { + port->mBuffer.reinit((unsigned) mBlockSize, port->mIsInput); + } - lilv_instance_activate(mMaster); + lilv_instance_activate(mMaster->GetInstance()); + mActivated = true; return true; } bool LV2Effect::RealtimeFinalize() { - for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++) + for (auto & slave : mSlaves) { - lilv_instance_deactivate(mSlaves[i]); - - FreeInstance(mSlaves[i]); + FreeInstance(slave); } mSlaves.clear(); - lilv_instance_deactivate(mMaster); + if (mActivated) + { + lilv_instance_deactivate(mMaster->GetInstance()); + mActivated = false; + } + + for (auto & port : mCVPorts) + { + port->mBuffer.reset(); + } mMasterIn.reset(); - mMasterOut.reset(); return true; } +bool LV2Effect::RealtimeAddProcessor(unsigned WXUNUSED(numChannels), float sampleRate) +{ + LV2Wrapper *slave = InitInstance(sampleRate); + if (!slave) + { + return false; + } + + mSlaves.push_back(slave); + + lilv_instance_activate(slave->GetInstance()); + mActivated = true; + + return true; +} + bool LV2Effect::RealtimeSuspend() { + mPositionSpeed = 0.0; + mPositionFrame = 0.0; + mRolling = false; + return true; } bool LV2Effect::RealtimeResume() { + mPositionSpeed = 1.0; + mPositionFrame = 0.0; + mRolling = true; + return true; } bool LV2Effect::RealtimeProcessStart() { - for (size_t p = 0, cnt = mAudioInputs.size(); p < cnt; p++) - memset(mMasterIn[p].get(), 0, mBlockSize * sizeof(float)); + int i = 0; + for (auto & port : mAudioPorts) + { + if (port->mIsInput) + { + memset(mMasterIn[i++].get(), 0, mBlockSize * sizeof(float)); + } + } mNumSamples = 0; + // Transfer incoming events from the ring buffer to the event buffer for each + // atom input port. These will be made available to each slave in the chain and + // to the master once all slaves have run. + // + // In addition, reset the output Atom ports. + for (auto & port : mAtomPorts) + { + uint8_t *buf = port->mBuffer.data(); + + if (port->mIsInput) + { + lv2_atom_forge_set_buffer(&mForge, + buf, + port->mBuffer.size()); + + LV2_Atom_Forge_Frame seqFrame; + LV2_Atom_Sequence *seq = (LV2_Atom_Sequence *) + lv2_atom_forge_sequence_head(&mForge, &seqFrame, 0); + + if (port->mWantsPosition) + { + lv2_atom_forge_frame_time(&mForge, mPositionFrame); + + LV2_Atom_Forge_Frame posFrame; + lv2_atom_forge_object(&mForge, &posFrame, 0, urid_Position); + lv2_atom_forge_key(&mForge, urid_Speed); + lv2_atom_forge_float(&mForge, mPositionSpeed); + lv2_atom_forge_key(&mForge, urid_Frame); + lv2_atom_forge_long(&mForge, mPositionFrame); + lv2_atom_forge_pop(&mForge, &posFrame); + } + + ZixRing *ring = port->mRing; + LV2_Atom atom; + while (zix_ring_read(ring, &atom, sizeof(atom))) + { + if (mForge.offset + sizeof(LV2_Atom_Event) + atom.size < mForge.size) + { + lv2_atom_forge_frame_time(&mForge, mPositionFrame); + + lv2_atom_forge_write(&mForge, &atom, sizeof(atom)); + zix_ring_read(ring, &mForge.buf[mForge.offset], atom.size); + mForge.offset += atom.size; + seq->atom.size += atom.size; + } + else + { + zix_ring_skip(ring, atom.size); + wxLogError(_("LV2 sequence buffer overflow")); + } + } + lv2_atom_forge_pop(&mForge, &seqFrame); +#if 0 + LV2_ATOM_SEQUENCE_FOREACH(seq, ev) + { + LV2_Atom_Object *o = (LV2_Atom_Object *) &ev->body; + wxLogDebug(wxT("ev = %lld ev.size %d ev.type %d"), ev->time.frames, ev->body.size, ev->body.type); + } +#endif + } + else + { + port->mBuffer.resize(port->mMinimumSize); + *((LV2_Atom *) buf) = + { + port->mMinimumSize, + urid_Chunk + }; + } + } + return true; } -size_t LV2Effect::RealtimeProcess(int group, - float **inbuf, - float **outbuf, - size_t numSamples) +size_t LV2Effect::RealtimeProcess(int group, float **inbuf, float **outbuf, size_t numSamples) { wxASSERT(group >= 0 && group < (int) mSlaves.size()); - wxASSERT(numSamples <= mBlockSize); + wxASSERT(numSamples <= (size_t) mBlockSize); if (group < 0 || group >= (int) mSlaves.size()) { return 0; } - for (size_t p = 0, cnt = mAudioInputs.size(); p < cnt; p++) + LV2Wrapper *slave = mSlaves[group]; + LilvInstance *instance = slave->GetInstance(); + + int i = 0; + int o = 0; + for (auto & port : mAudioPorts) { - for (decltype(numSamples) s = 0; s < numSamples; s++) + if (port->mIsInput) { - mMasterIn[p][s] += inbuf[p][s]; + for (decltype(numSamples) s = 0; s < numSamples; s++) + { + mMasterIn[i][s] += inbuf[i][s]; + } } + + lilv_instance_connect_port(instance, + port->mIndex, + (port->mIsInput ? inbuf[i++] : outbuf[o++])); } + mNumSamples = wxMax(numSamples, mNumSamples); - LilvInstance *slave = mSlaves[group]; - - for (size_t p = 0, cnt = mAudioInputs.size(); p < cnt; p++) + if (mRolling) { - lilv_instance_connect_port(slave, mAudioInputs[p], inbuf[p]); + lilv_instance_run(instance, numSamples); + } + else + { + while (--i >= 0) + { + for (decltype(numSamples) s = 0; s < numSamples; s++) + { + outbuf[i][s] = inbuf[i][s]; + } + } } - for (size_t p = 0, cnt = mAudioOutputs.size(); p < cnt; p++) + slave->SendResponses(); + + for (auto & port : mAtomPorts) { - lilv_instance_connect_port(slave, mAudioOutputs[p], outbuf[p]); + uint8_t *buf = port->mBuffer.data(); + + if (!port->mIsInput) + { + port->mBuffer.resize(port->mMinimumSize); + + LV2_Atom *chunk = ( LV2_Atom *) buf; + chunk->size = port->mMinimumSize; + chunk->type = urid_Chunk; + } } - lilv_instance_run(slave, numSamples); + if (group == 0) + { + mPositionFrame += numSamples; + } return numSamples; } -bool LV2Effect::RealtimeAddProcessor(unsigned WXUNUSED(numChannels), float sampleRate) -{ - LilvInstance *slave = InitInstance(sampleRate); - if (!slave) - { - return false; - } - - lilv_instance_activate(slave); - - mSlaves.push_back(slave); - - return true; -} - bool LV2Effect::RealtimeProcessEnd() { - lilv_instance_run(mMaster, mNumSamples); + // Nothing to do if we did process any samples + if (mNumSamples == 0) + { + return true; + } + + int i = 0; + int o = 0; + for (auto & port : mAudioPorts) + { + lilv_instance_connect_port(mMaster->GetInstance(), + port->mIndex, + (port->mIsInput ? mMasterIn[i++].get() : mMasterOut[o++].get())); + } + + if (mRolling) + { + lilv_instance_run(mMaster->GetInstance(), mNumSamples); + } + + for (auto & port : mAtomPorts) + { + if (!port->mIsInput) + { + ZixRing *ring = port->mRing; + + LV2_ATOM_SEQUENCE_FOREACH((LV2_Atom_Sequence *) port->mBuffer.data(), ev) + { + zix_ring_write(ring, &ev->body, ev->body.size + sizeof(LV2_Atom)); + } + } + } + + mNumSamples = 0; return true; } @@ -934,13 +1439,15 @@ bool LV2Effect::ShowInterface(wxWindow *parent, bool forceModal) { if (mDialog) { - if ( mDialog->Close(true) ) + if (mDialog->Close(true)) + { mDialog = nullptr; + } return false; } // mDialog is null - auto cleanup = valueRestorer( mDialog ); + auto cleanup = valueRestorer(mDialog); mDialog = mHost->CreateUI(parent, this); if (!mDialog) @@ -952,6 +1459,10 @@ bool LV2Effect::ShowInterface(wxWindow *parent, bool forceModal) mDialog->Layout(); mDialog->Fit(); mDialog->SetMinSize(mDialog->GetSize()); + if (mNoResize) + { + mDialog->SetMaxSize(mDialog->GetSize()); + } if ((SupportsRealtime() || GetType() == EffectTypeAnalyze) && !forceModal) { @@ -966,13 +1477,13 @@ bool LV2Effect::ShowInterface(wxWindow *parent, bool forceModal) return res; } -bool LV2Effect::GetAutomationParameters(CommandParameters & parms) +bool LV2Effect::GetAutomationParameters(CommandParameters &parms) { - for (size_t p = 0, cnt = mControls.size(); p < cnt; p++) + for (auto & port : mControlPorts) { - if (mControls[p].mInput) + if (port->mIsInput) { - if (!parms.Write(mControls[p].mName, mControls[p].mVal)) + if (!parms.Write(port->mName, port->mVal)) { return false; } @@ -982,23 +1493,21 @@ bool LV2Effect::GetAutomationParameters(CommandParameters & parms) return true; } -bool LV2Effect::SetAutomationParameters(CommandParameters & parms) +bool LV2Effect::SetAutomationParameters(CommandParameters &parms) { // First pass validates values - for (size_t p = 0, cnt = mControls.size(); p < cnt; p++) + for (auto & port : mControlPorts) { - LV2Port & ctrl = mControls[p]; - - if (ctrl.mInput) + if (port->mIsInput) { double d = 0.0; - if (!parms.Read(ctrl.mName, &d)) + if (!parms.Read(port->mName, &d)) { return false; } // Use unscaled range here - if (d < ctrl.mMin || d > ctrl.mMax) + if (d < port->mMin || d > port->mMax) { return false; } @@ -1006,20 +1515,18 @@ bool LV2Effect::SetAutomationParameters(CommandParameters & parms) } // Second pass actually sets the values - for (size_t p = 0, cnt = mControls.size(); p < cnt; p++) + for (auto & port : mControlPorts) { - LV2Port & ctrl = mControls[p]; - - if (ctrl.mInput) + if (port->mIsInput) { double d = 0.0; - if (!parms.Read(ctrl.mName, &d)) + if (!parms.Read(port->mName, &d)) { return false; } - ctrl.mVal = d; - ctrl.mTmp = ctrl.mVal * (ctrl.mSampleRate ? mSampleRate : 1.0); + port->mVal = d; + port->mTmp = port->mVal * (port->mSampleRate ? mSampleRate : 1.0); } } @@ -1050,7 +1557,7 @@ bool LV2Effect::PopulateUI(wxWindow *parent) AudacityMessageBox(_("Couldn't instantiate effect")); return false; } - + // Determine if the GUI editor is supposed to be used or not mHost->GetSharedConfig(wxT("Settings"), wxT("UseGUI"), @@ -1099,6 +1606,9 @@ bool LV2Effect::ValidateUI() bool LV2Effect::HideUI() { +#if 0 + // Nothing to do yet +#endif return true; } @@ -1112,12 +1622,18 @@ bool LV2Effect::CloseUI() mParent->RemoveEventHandler(this); - mSliders.reset(); - mFields.reset(); - if (mSuilInstance) { - mIdleFeature = NULL; + if (mNativeWin) + { + mNativeWin->Destroy(); + mNativeWin = NULL; + } + + mUIIdleInterface = NULL; + mUIShowInterface = NULL; + mExternalWidget = NULL; + suil_instance_free(mSuilInstance); mSuilInstance = NULL; } @@ -1141,7 +1657,7 @@ bool LV2Effect::CloseUI() return true; } -bool LV2Effect::LoadUserPreset(const RegistryPath & name) +bool LV2Effect::LoadUserPreset(const RegistryPath &name) { if (!LoadParameters(name)) { @@ -1151,7 +1667,7 @@ bool LV2Effect::LoadUserPreset(const RegistryPath & name) return TransferDataToWindow(); } -bool LV2Effect::SaveUserPreset(const RegistryPath & name) +bool LV2Effect::SaveUserPreset(const RegistryPath &name) { return SaveParameters(name); } @@ -1163,7 +1679,7 @@ RegistryPaths LV2Effect::GetFactoryPresets() return mFactoryPresetNames; } - LilvNodes* presets = lilv_plugin_get_related(mPlug, gPreset); + LilvNodes *presets = lilv_plugin_get_related(mPlug, node_Preset); if (presets) { LILV_FOREACH(nodes, i, presets) @@ -1173,8 +1689,8 @@ RegistryPaths LV2Effect::GetFactoryPresets() mFactoryPresetUris.push_back(LilvString(preset)); lilv_world_load_resource(gWorld, preset); - - LilvNodes *labels = lilv_world_find_nodes(gWorld, preset, gLabel, NULL); + + LilvNodes *labels = lilv_world_find_nodes(gWorld, preset, node_Label, NULL); if (labels) { const LilvNode *label = lilv_nodes_get_first(labels); @@ -1188,7 +1704,7 @@ RegistryPaths LV2Effect::GetFactoryPresets() mFactoryPresetNames.push_back(LilvString(preset).AfterLast(wxT('#'))); } } - + lilv_nodes_free(presets); } @@ -1213,10 +1729,10 @@ bool LV2Effect::LoadFactoryPreset(int id) LilvState *state = lilv_state_new_from_world(gWorld, &mURIDMapFeature, preset); if (state) { - lilv_state_restore(state, mMaster, set_value_func, this, 0, NULL); - + lilv_state_restore(state, mMaster->GetInstance(), set_value_func, this, 0, NULL); + lilv_state_free(state); - + TransferDataToWindow(); } @@ -1258,6 +1774,10 @@ void LV2Effect::ShowOptions() LV2EffectSettingsDialog dlg(mParent, this); if (dlg.ShowModal() == wxID_OK) { + // Reinitialize configuration settings + int userBlockSize; + mHost->GetSharedConfig(wxT("Settings"), wxT("BufferSize"), userBlockSize, DEFAULT_BLOCKSIZE); + mUserBlockSize = std::max(1, userBlockSize); mHost->GetSharedConfig(wxT("Settings"), wxT("UseLatency"), mUseLatency, true); } } @@ -1266,7 +1786,7 @@ void LV2Effect::ShowOptions() // LV2Effect Implementation // ============================================================================ -bool LV2Effect::LoadParameters(const RegistryPath & group) +bool LV2Effect::LoadParameters(const RegistryPath &group) { wxString parms; if (!mHost->GetPrivateConfig(group, wxT("Parameters"), parms, wxEmptyString)) @@ -1283,7 +1803,7 @@ bool LV2Effect::LoadParameters(const RegistryPath & group) return SetAutomationParameters(eap); } -bool LV2Effect::SaveParameters(const RegistryPath & group) +bool LV2Effect::SaveParameters(const RegistryPath &group) { CommandParameters eap; if (!GetAutomationParameters(eap)) @@ -1300,20 +1820,20 @@ bool LV2Effect::SaveParameters(const RegistryPath & group) return mHost->SetPrivateConfig(group, wxT("Parameters"), parms); } -size_t LV2Effect::AddOption(const char *key, uint32_t size, const char *type, void *value) +size_t LV2Effect::AddOption(LV2_URID key, uint32_t size, LV2_URID type, const void *value) { int ndx = mOptions.size(); + mOptions.resize(1 + ndx); - mOptions.resize(1 + mOptions.size()); memset(&mOptions[ndx], 0, sizeof(mOptions[ndx])); - if (key != NULL) + if (key != 0) { mOptions[ndx].context = LV2_OPTIONS_INSTANCE; mOptions[ndx].subject = 0; - mOptions[ndx].key = URID_Map(key); + mOptions[ndx].key = key; mOptions[ndx].size = size; - mOptions[ndx].type = URID_Map(type); + mOptions[ndx].type = type; mOptions[ndx].value = value; } @@ -1323,11 +1843,11 @@ size_t LV2Effect::AddOption(const char *key, uint32_t size, const char *type, vo LV2_Feature *LV2Effect::AddFeature(const char *uri, void *data) { size_t ndx = mFeatures.size(); - mFeatures.resize(1 + mFeatures.size()); + mFeatures.resize(1 + ndx); - if (uri != NULL) + if (uri) { - mFeatures[ndx].reset( safenew LV2_Feature ); + mFeatures[ndx].reset(safenew LV2_Feature); mFeatures[ndx]->URI = uri; mFeatures[ndx]->data = data; } @@ -1335,54 +1855,218 @@ LV2_Feature *LV2Effect::AddFeature(const char *uri, void *data) return mFeatures[ndx].get(); } -LilvInstance *LV2Effect::InitInstance(float sampleRate) +bool LV2Effect::ValidateFeatures(const LilvNode *subject) { - LilvInstance *handle = lilv_plugin_instantiate( - mPlug, sampleRate, - reinterpret_cast(mFeatures.data())); - if (!handle) + if (CheckFeatures(subject, node_RequiredFeature, true)) + { + return CheckFeatures(subject, node_OptionalFeature, false); + } + + return false; +} + +bool LV2Effect::CheckFeatures(const LilvNode *subject, const LilvNode *predicate, bool required) +{ + bool supported = true; + + LilvNodes *nodes = lilv_world_find_nodes(gWorld, subject, predicate, NULL); + if (nodes) + { + LILV_FOREACH(nodes, i, nodes) + { + const LilvNode *node = lilv_nodes_get(nodes, i); + const char *uri = lilv_node_as_string(node); + + if ((strcmp(uri, LV2_UI__noUserResize) == 0) || + (strcmp(uri, LV2_UI__fixedSize) == 0)) + { + mNoResize = true; + } + else if (strcmp(uri, LV2_WORKER__schedule) == 0) + { + /* Supported but handled in LV2Wrapper */ + } + else + { + supported = false; + + for (auto & feature : mFeatures) + { + if (feature && strcmp(feature->URI, uri) == 0) + { + supported = true; + break; + } + } + + if (!supported) + { + if (required) + { + wxLogError(_("%s requires unsupported feature %s"), lilv_node_as_string(lilv_plugin_get_uri(mPlug)), uri); + printf(_("%s requires unsupported feature %s\n"), lilv_node_as_string(lilv_plugin_get_uri(mPlug)), uri); + break; + } + supported = true; + } + } + } + + lilv_nodes_free(nodes); + } + + + return supported; +} + +bool LV2Effect::ValidateOptions(const LilvNode *subject) +{ + if (CheckOptions(subject, node_RequiredOption, true)) + { + return CheckOptions(subject, node_SupportedOption, false); + } + + return false; +} + +bool LV2Effect::CheckOptions(const LilvNode *subject, const LilvNode *predicate, bool required) +{ + bool supported = true; + + LilvNodes *nodes = lilv_world_find_nodes(gWorld, subject, predicate, NULL); + if (nodes) + { + LILV_FOREACH(nodes, i, nodes) + { + const LilvNode *node = lilv_nodes_get(nodes, i); + const char *uri = lilv_node_as_string(node); + LV2_URID urid = URID_Map(uri); + + if (urid == urid_NominalBlockLength) + { + mSupportsNominalBlockLength = true; + } + else if (urid == urid_SampleRate) + { + mSupportsSampleRate = true; + } + else + { + supported = false; + + for (auto & option : mOptions) + { + if (option.key == urid) + { + supported = true; + break; + } + } + + if (!supported) + { + if (required) + { + wxLogError(_("%s requires unsupported option %s"), lilv_node_as_string(lilv_plugin_get_uri(mPlug)), uri); + printf(_("%s requires unsupported option %s\n"), lilv_node_as_string(lilv_plugin_get_uri(mPlug)), uri); + break; + } + supported = true; + } + } + } + + lilv_nodes_free(nodes); + } + + return supported; +} + +LV2Wrapper *LV2Effect::InitInstance(float sampleRate) +{ + LV2Wrapper *wrapper = new LV2Wrapper(this); + if (wrapper == NULL) { return NULL; } - - mOptionsInterface = (LV2_Options_Interface *) - lilv_instance_get_extension_data(handle, LV2_OPTIONS__interface); - - SetBlockSize(mBlockSize); - SetSampleRate(sampleRate); - - for (size_t p = 0, cnt = mControls.size(); p < cnt; p++) + + LilvInstance *instance = wrapper->Instantiate(mPlug, sampleRate, mFeatures); + if (!instance) { - lilv_instance_connect_port(handle, - mControls[p].mIndex, - &mControls[p].mVal); + delete wrapper; + return NULL; } - if (mLatencyPort >= 0) + wrapper->SetBlockSize(); + wrapper->SetSampleRate(); + + // Connect all control ports + for (auto & port : mControlPorts) { - lilv_instance_connect_port(handle, mLatencyPort, &mLatency); + // If it's not an input port and master has already been created + // then connect the port to a dummy field since slave output port + // values are unwanted as the master values will be used. + // + // Otherwise, connect it to the real value field. + lilv_instance_connect_port(instance, + port->mIndex, + !port->mIsInput && mMaster + ? &port->mDmy + : &port->mVal); } - return handle; + // Connect all atom ports + for (auto & port : mAtomPorts) + { + lilv_instance_connect_port(instance, port->mIndex, port->mBuffer.data()); + } + + // We don't fully support CV ports, so connect them to dummy buffers for now. + for (auto & port : mCVPorts) + { + lilv_instance_connect_port(instance, port->mIndex, port->mBuffer.get()); + } + + // Give plugin a chance to initialize. The SWH plugins (like AllPass) need + // this before it can be safely deleted. + lilv_instance_activate(instance); + lilv_instance_deactivate(instance); + + for (auto & port : mAtomPorts) + { + if (!port->mIsInput) + { + ZixRing *ring = port->mRing; + + LV2_ATOM_SEQUENCE_FOREACH(( LV2_Atom_Sequence *) port->mBuffer.data(), ev) + { + zix_ring_write(ring, &ev->body, ev->body.size + sizeof(LV2_Atom)); + } + } + } + + return wrapper; } -void LV2Effect::FreeInstance(LilvInstance *handle) +void LV2Effect::FreeInstance(LV2Wrapper *wrapper) { - lilv_instance_free(handle); + delete wrapper; } bool LV2Effect::BuildFancy() { // Set the native UI type const char *nativeType = -#if defined(__WXGTK__) +#if defined(__WXGTK3__) + LV2_UI__Gtk3UI; +#elif defined(__WXGTK__) LV2_UI__GtkUI; #elif defined(__WXMSW__) LV2_UI__WindowsUI; #elif defined(__WXMAC__) LV2_UI__CocoaUI; #endif - + // Determine if the plugin has a supported UI const LilvUI *ui = NULL; const LilvNode *uiType = NULL; @@ -1399,6 +2083,12 @@ bool LV2Effect::BuildFancy() { break; } + if (lilv_ui_is_a(ui, node_Gtk) || lilv_ui_is_a(ui, node_Gtk3)) + { + uiType = node_Gtk; + break; + } + ui = NULL; } @@ -1406,6 +2096,21 @@ bool LV2Effect::BuildFancy() } } + // Check for other supported UIs + if (ui == NULL) + { + LILV_FOREACH(uis, iter, uis) + { + ui = lilv_uis_get(uis, iter); + if (lilv_ui_is_a(ui, node_ExternalUI) || lilv_ui_is_a(ui, node_ExternalUIOld)) + { + uiType = node_ExternalUI; + break; + } + ui = NULL; + } + } + // No usable UI found if (ui == NULL) { @@ -1413,28 +2118,137 @@ bool LV2Effect::BuildFancy() return false; } - // Use a panel to host the plugins GUI - // container is owned by mParent, but we may destroy it if there are - // any errors before completing the build of UI. - auto container = Destroy_ptr{ - safenew wxPanelWrapper{ mParent, wxID_ANY} - }; - if (!container) + const LilvNode *uinode = lilv_ui_get_uri(ui); + lilv_world_load_resource(gWorld, uinode); + if (!ValidateFeatures(uinode)) { lilv_uis_free(uis); return false; } + const char *containerType; + + if (uiType == node_ExternalUI) { - auto vs = std::make_unique(wxVERTICAL); + containerType = LV2_EXTERNAL_UI__Widget; + } + else + { + containerType = nativeType; + mParentFeature->data = mParent->GetHandle(); + +#if defined(__WXGTK__) + // Make sure the parent has a window + if (!gtk_widget_get_window(GTK_WIDGET(mParent->m_wxwindow))) + { + gtk_widget_realize(GTK_WIDGET(mParent->m_wxwindow)); + } +#endif + } + + LilvInstance *instance = mMaster->GetInstance(); + mInstanceAccessFeature->data = lilv_instance_get_handle(instance); + mExtensionDataFeature.data_access = lilv_instance_get_descriptor(instance)->extension_data; + + // Set before creating the UI instance so the initial size (if any) can be captured + mNativeWinInitialSize = wxDefaultSize; + mNativeWinLastSize = wxDefaultSize; + + // Create the suil host + mSuilHost = suil_host_new(LV2Effect::suil_port_write_func, + LV2Effect::suil_port_index_func, + NULL, + NULL); + if (!mSuilHost) + { + lilv_uis_free(uis); + return false; + } + +#if defined(__WXMSW__) + // Plugins may have dependencies that need to be loaded from the same path + // as the main DLL, so add this plugin's path to the DLL search order. + const char *const libPath = lilv_uri_to_path(lilv_node_as_uri(lilv_ui_get_binary_uri(ui))); + wxString path = wxPathOnly(libPath); + SetDllDirectory(path.c_str()); +#endif + + mSuilInstance = suil_instance_new(mSuilHost, + this, + containerType, + lilv_node_as_uri(lilv_plugin_get_uri(mPlug)), + lilv_node_as_uri(lilv_ui_get_uri(ui)), + lilv_node_as_uri(uiType), + lilv_uri_to_path(lilv_node_as_uri(lilv_ui_get_bundle_uri(ui))), + lilv_uri_to_path(lilv_node_as_uri(lilv_ui_get_binary_uri(ui))), + reinterpret_cast(mFeatures.data())); + + lilv_uis_free(uis); + + // Bail if the instance (no compatible UI) couldn't be created + if (!mSuilInstance) + { +#if defined(__WXMSW__) + SetDllDirectory(NULL); +#endif + + suil_host_free(mSuilHost); + mSuilHost = NULL; + + return false; + } + + if (uiType == node_ExternalUI) + { + mParent->SetMinSize(wxDefaultSize); + + mExternalWidget = (LV2_External_UI_Widget *) suil_instance_get_widget(mSuilInstance); + mTimer.SetOwner(this, ID_TIMER); + mTimer.Start(20); + + LV2_EXTERNAL_UI_SHOW(mExternalWidget); + } + else + { + WXWidget widget = (WXWidget) suil_instance_get_widget(mSuilInstance); + +#if defined(__WXGTK__) + // Needed by some plugins (e.g., Invada) to ensure the display is fully + // populated. + gtk_widget_show_all(widget); + + // See note at size_request() + g_signal_connect(widget, "size-request", G_CALLBACK(LV2Effect::size_request), this); +#endif + + mNativeWin = new NativeWindow(); + mNativeWin->Create(mParent, widget); + mNativeWin->Bind(wxEVT_SIZE, &LV2Effect::OnSize, this); + + // The plugin called the LV2UI_Resize::ui_resize function to set the size before + // the native window was created, so set the size now. + if (mNativeWinInitialSize != wxDefaultSize) + { + mNativeWin->SetMinSize(mNativeWinInitialSize); + } + wxSizerItem *si = NULL; + auto vs = std::make_unique(wxVERTICAL); if (vs) { auto hs = std::make_unique(wxHORIZONTAL); if (hs) { - si = hs->Add(container.get(), 1, wxCENTER | wxEXPAND); - vs->Add(hs.release(), 0, wxCENTER); + if (mNoResize) + { + si = hs->Add(mNativeWin, 0, wxCENTER); + vs->Add(hs.release(), 1, wxCENTER); + } + else + { + si = hs->Add(mNativeWin, 1, wxEXPAND); + vs->Add(hs.release(), 1, wxEXPAND); + } } } @@ -1444,88 +2258,20 @@ bool LV2Effect::BuildFancy() return false; } -#if defined(__WXGTK__) - // Make sure the parent has a window - if (!gtk_widget_get_window(GTK_WIDGET(container->m_wxwindow))) - { - gtk_widget_realize(GTK_WIDGET(container->m_wxwindow)); - } - - mParentFeature->data = GTK_WIDGET(container->GetHandle()); -#elif defined(__WXMSW__) - mParentFeature->data = container->GetHandle(); -#elif defined(__WXMAC__) - mParentFeature->data = container->GetHandle(); -#endif - - mInstanceAccessFeature->data = lilv_instance_get_handle(mMaster); - mExtDataFeature.data_access = lilv_instance_get_descriptor(mMaster)->extension_data; - - // Create the suil host - mSuilHost = suil_host_new(LV2Effect::suil_write_func, NULL, NULL, NULL); - if (!mSuilHost) - { - lilv_uis_free(uis); - return false; - } - - mSuilInstance = suil_instance_new(mSuilHost, - this, - nativeType, - lilv_node_as_uri(lilv_plugin_get_uri(mPlug)), - lilv_node_as_uri(lilv_ui_get_uri(ui)), - lilv_node_as_uri(uiType), - lilv_uri_to_path(lilv_node_as_uri(lilv_ui_get_bundle_uri(ui))), - lilv_uri_to_path(lilv_node_as_uri(lilv_ui_get_binary_uri(ui))), - reinterpret_cast(mFeatures.data())); - - lilv_uis_free(uis); - - // Bail if the instance (no compatible UI) couldn't be created - if (!mSuilInstance) - { - suil_host_free(mSuilHost); - mSuilHost = NULL; - - return false; - } - -#if defined(__WXGTK__) - GtkWidget* widget = GTK_WIDGET(suil_instance_get_widget(mSuilInstance)); - gtk_widget_show_all(widget); - - GtkRequisition sz; - gtk_widget_size_request(widget, &sz); - gtk_widget_set_size_request(widget, 1, 1); - gtk_widget_set_size_request(widget, sz.width, sz.height); - - wxPizza *pizza = WX_PIZZA(container->m_wxwindow); - pizza->put(widget, - 0, //gtk_pizza_get_xoffset(pizza), - 0, //gtk_pizza_get_yoffset(pizza), - sz.width, - sz.height); - gtk_widget_show_all(GTK_WIDGET(pizza)); - si->SetMinSize(wxSize(sz.width, sz.height)); -#elif defined(__WXMSW__) - HWND widget = (HWND)suil_instance_get_widget(mSuilInstance); - RECT rect; - GetWindowRect(widget, &rect); - si->SetMinSize(wxSize(rect.right - rect.left, rect.bottom - rect.top)); -#elif defined(__WXMAC__) - NSView *view = (NSView *) suil_instance_get_widget(mSuilInstance); - NSSize sz = [view frame].size; - si->SetMinSize(sz.width, sz.height); -#endif - mParent->SetSizerAndFit(vs.release()); - // mParent will guarantee release of the container now. - container.release(); } - mIdleFeature = (const LV2UI_Idle_Interface *) + mUIIdleInterface = (LV2UI_Idle_Interface *) suil_instance_extension_data(mSuilInstance, LV2_UI__idleInterface); + mUIShowInterface = (LV2UI_Show_Interface *) + suil_instance_extension_data(mSuilInstance, LV2_UI__showInterface); + + if (mUIShowInterface) + { +// mUIShowInterface->show(suil_instance_get_handle(mSuilInstance)); + } + TransferDataToWindow(); #ifdef __WXMAC__ @@ -1534,26 +2280,25 @@ bool LV2Effect::BuildFancy() #endif #endif +#if defined(__WXMSW__) + SetDllDirectory(NULL); +#endif + return true; } bool LV2Effect::BuildPlain() { int numCols = 5; - - // Allocate memory for the user parameter controls - auto ctrlcnt = mControls.size(); - mSliders.reinit(ctrlcnt); - mFields.reinit(ctrlcnt); - wxSizer *innerSizer; wxASSERT(mParent); // To justify safenew - wxScrolledWindow *const w = safenew wxScrolledWindow(mParent, - wxID_ANY, - wxDefaultPosition, - wxDefaultSize, - wxVSCROLL | wxTAB_TRAVERSAL); + wxScrolledWindow *const w = safenew + wxScrolledWindow(mParent, + wxID_ANY, + wxDefaultPosition, + wxDefaultSize, + wxVSCROLL | wxTAB_TRAVERSAL); { auto outerSizer = std::make_unique(wxVERTICAL); @@ -1580,12 +2325,12 @@ bool LV2Effect::BuildPlain() sizer->Add(item, 0, wxALIGN_CENTER | wxALL, 5); mDuration = safenew NumericTextCtrl(w, ID_Duration, - NumericConverter::TIME, - mHost->GetDurationFormat(), - mHost->GetDuration(), - mSampleRate, - NumericTextCtrl::Options{} - .AutoPos(true)); + NumericConverter::TIME, + mHost->GetDurationFormat(), + mHost->GetDuration(), + mSampleRate, + NumericTextCtrl::Options {} + .AutoPos(true)); mDuration->SetName(_("Duration")); sizer->Add(mDuration, 0, wxALIGN_CENTER | wxALL, 5); @@ -1593,38 +2338,39 @@ bool LV2Effect::BuildPlain() innerSizer->Add(groupSizer.release(), 0, wxEXPAND | wxALL, 5); } - std::sort( mGroups.begin(), mGroups.end() ); + std::sort(mGroups.begin(), mGroups.end()); for (size_t i = 0, groupCount = mGroups.size(); i < groupCount; i++) { wxString label = mGroups[i]; - if (label.empty()) - { - label = _("Effect Settings"); - } auto groupSizer = std::make_unique(wxVERTICAL, w, label); auto gridSizer = std::make_unique(numCols, 5, 5); gridSizer->AddGrowableCol(3); - const auto & params = mGroupMap[mGroups[i]]; - for (size_t pi = 0, paramCount = params.size(); pi < paramCount; pi++) + for (auto & p : mGroupMap[mGroups[i]]) { - int p = params[pi]; - LV2Port & ctrl = mControls[p]; - wxString labelText = ctrl.mName; - if (!ctrl.mUnits.empty()) + auto & port = mControlPorts[p]; + + if (port->mNotOnGui) { - labelText += wxT(" (") + ctrl.mUnits + wxT(")"); + continue; } - if (ctrl.mTrigger) + wxString labelText = port->mName; + if (!port->mUnits.empty()) + { + labelText += wxT(" (") + port->mUnits + wxT(")"); + } + + if (port->mTrigger) { gridSizer->Add(1, 1, 0); wxASSERT(w); // To justify safenew wxButton *b = safenew wxButton(w, ID_Triggers + p, labelText); gridSizer->Add(b, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT); + port->mCtrl.button = b; gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); @@ -1632,28 +2378,29 @@ bool LV2Effect::BuildPlain() continue; } - wxWindow *item = safenew wxStaticText(w, wxID_ANY, wxString::Format(_("%s:"), labelText), - wxDefaultPosition, wxDefaultSize, - wxALIGN_RIGHT); + wxWindow *item = safenew wxStaticText(w, wxID_ANY, labelText + wxT(":"), + wxDefaultPosition, wxDefaultSize, + wxALIGN_RIGHT); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT); - if (ctrl.mToggle) + if (port->mToggle) { wxCheckBox *c = safenew wxCheckBox(w, ID_Toggles + p, wxT("")); c->SetName(labelText); - c->SetValue(ctrl.mVal > 0); + c->SetValue(port->mVal > 0); gridSizer->Add(c, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT); + port->mCtrl.checkbox = c; gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); } - else if (ctrl.mEnumeration) // Check before integer + else if (port->mEnumeration) // Check before integer { int s; - for (s = (int)ctrl.mScaleValues.size() - 1; s >= 0; s--) + for (s = (int) port->mScaleValues.size() - 1; s >= 0; s--) { - if (ctrl.mVal >= ctrl.mScaleValues[s]) + if (port->mVal >= port->mScaleValues[s]) { break; } @@ -1666,65 +2413,72 @@ bool LV2Effect::BuildPlain() wxChoice *c = safenew wxChoice(w, ID_Choices + p); c->SetName(labelText); - c->Append(ctrl.mScaleLabels); + c->Append(port->mScaleLabels); c->SetSelection(s); gridSizer->Add(c, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT); + port->mCtrl.choice = c; gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); } - else if (!ctrl.mInput) + else if (!port->mIsInput) { gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); - LV2EffectMeter *m = safenew LV2EffectMeter(w, ctrl); + + LV2EffectMeter *m = safenew LV2EffectMeter(w, port); gridSizer->Add(m, 0, wxALIGN_CENTER_VERTICAL | wxEXPAND); + port->mCtrl.meter = m; + gridSizer->Add(1, 1, 0); } else { - mFields[p] = safenew wxTextCtrl(w, ID_Texts + p, wxT("")); - mFields[p]->SetName(labelText); - gridSizer->Add(mFields[p], 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT); + wxTextCtrl *t = safenew wxTextCtrl(w, ID_Texts + p, wxT("")); + t->SetName(labelText); + gridSizer->Add(t, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT); + port->mText = t; - float rate = ctrl.mSampleRate ? mSampleRate : 1.0; + float rate = port->mSampleRate ? mSampleRate : 1.0; - ctrl.mLo = ctrl.mMin * rate; - ctrl.mHi = ctrl.mMax * rate; - ctrl.mTmp = ctrl.mVal * rate; + port->mLo = port->mMin * rate; + port->mHi = port->mMax * rate; + port->mTmp = port->mVal * rate; - if (ctrl.mInteger) + if (port->mInteger) { - IntegerValidator vld(&ctrl.mTmp); - vld.SetRange(ctrl.mLo, ctrl.mHi); - mFields[p]->SetValidator(vld); + IntegerValidator vld(&port->mTmp); + vld.SetRange(port->mLo, port->mHi); + t->SetValidator(vld); } else { - FloatingPointValidator vld(6, &ctrl.mTmp); - vld.SetRange(ctrl.mLo, ctrl.mHi); + FloatingPointValidator vld(6, &port->mTmp); + vld.SetRange(port->mLo, port->mHi); // Set number of decimal places - float range = ctrl.mHi - ctrl.mLo; - auto style = range < 10 ? NumValidatorStyle::THREE_TRAILING_ZEROES : - range < 100 ? NumValidatorStyle::TWO_TRAILING_ZEROES : - NumValidatorStyle::ONE_TRAILING_ZERO; + float range = port->mHi - port->mLo; + auto style = range < 10 + ? NumValidatorStyle::THREE_TRAILING_ZEROES + : range < 100 + ? NumValidatorStyle::TWO_TRAILING_ZEROES + : NumValidatorStyle::ONE_TRAILING_ZERO; vld.SetStyle(style); - mFields[p]->SetValidator(vld); + t->SetValidator(vld); } - if (ctrl.mHasLo) + if (port->mHasLo) { wxString str; - if (ctrl.mInteger || ctrl.mSampleRate) + if (port->mInteger || port->mSampleRate) { - str.Printf(wxT("%d"), lrintf(ctrl.mLo)); + str.Printf(wxT("%d"), (int) lrintf(port->mLo)); } else { - str = Internat::ToDisplayString(ctrl.mLo); + str = Internat::ToDisplayString(port->mLo); } item = safenew wxStaticText(w, wxID_ANY, str); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT); @@ -1734,23 +2488,24 @@ bool LV2Effect::BuildPlain() gridSizer->Add(1, 1, 0); } - mSliders[p] = safenew wxSliderWrapper(w, ID_Sliders + p, - 0, 0, 1000, - wxDefaultPosition, - wxSize(150, -1)); - mSliders[p]->SetName(labelText); - gridSizer->Add(mSliders[p], 0, wxALIGN_CENTER_VERTICAL | wxEXPAND); + wxSlider *s = safenew wxSliderWrapper(w, ID_Sliders + p, + 0, 0, 1000, + wxDefaultPosition, + wxSize(150, -1)); + s->SetName(labelText); + gridSizer->Add(s, 0, wxALIGN_CENTER_VERTICAL | wxEXPAND); + port->mCtrl.slider = s; - if (ctrl.mHasHi) + if (port->mHasHi) { wxString str; - if (ctrl.mInteger || ctrl.mSampleRate) + if (port->mInteger || port->mSampleRate) { - str.Printf(wxT("%d"), lrintf(ctrl.mHi)); + str.Printf(wxT("%d"), (int) lrintf(port->mHi)); } else { - str = Internat::ToDisplayString(ctrl.mHi); + str = Internat::ToDisplayString(port->mHi); } item = safenew wxStaticText(w, wxID_ANY, str); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT); @@ -1775,7 +2530,7 @@ bool LV2Effect::BuildPlain() for (size_t i = (GetType() == EffectTypeGenerate); i < cnt; i++) { wxSizer *groupSizer = innerSizer->GetItem(i)->GetSizer(); - wxFlexGridSizer *gridSizer = (wxFlexGridSizer *)groupSizer->GetItem((size_t)0)->GetSizer(); + wxFlexGridSizer *gridSizer = (wxFlexGridSizer *) groupSizer->GetItem((size_t) 0)->GetSizer(); size_t items = gridSizer->GetChildren().GetCount(); int cols = gridSizer->GetCols(); @@ -1791,7 +2546,7 @@ bool LV2Effect::BuildPlain() for (size_t i = (GetType() == EffectTypeGenerate); i < cnt; i++) { wxSizer *groupSizer = innerSizer->GetItem(i)->GetSizer(); - wxFlexGridSizer *gridSizer = (wxFlexGridSizer *)groupSizer->GetItem((size_t)0)->GetSizer(); + wxFlexGridSizer *gridSizer = (wxFlexGridSizer *) groupSizer->GetItem((size_t) 0)->GetSizer(); size_t items = gridSizer->GetChildren().GetCount(); int cols = gridSizer->GetCols(); @@ -1845,15 +2600,15 @@ bool LV2Effect::TransferDataToWindow() { if (mSuilInstance) { - for (size_t p = 0, cnt = mControls.size(); p < cnt; p++) + for (auto & port : mControlPorts) { - if (mControls[p].mInput) + if (port->mIsInput) { suil_instance_port_event(mSuilInstance, - mControls[p].mIndex, + port->mIndex, sizeof(float), 0, - &mControls[p].mVal); + &port->mVal); } } } @@ -1861,31 +2616,28 @@ bool LV2Effect::TransferDataToWindow() return true; } - for (size_t i = 0, groupCount = mGroups.size(); i < groupCount; i++) + for (auto & group : mGroups) { - const auto & params = mGroupMap[mGroups[i]]; - for (size_t pi = 0, ParamCount = params.size(); pi < ParamCount; pi++) + const auto & params = mGroupMap[group]; + for (auto & param : params) { - int p = params[pi]; - LV2Port & ctrl = mControls[p]; + auto & port = mControlPorts[param]; - if (ctrl.mTrigger) + if (port->mTrigger) { continue; } - if (ctrl.mToggle) + if (port->mToggle) { - wxCheckBox *c = wxDynamicCast(mParent->FindWindow(ID_Toggles + p), wxCheckBox); - if (c) - c->SetValue(ctrl.mVal > 0); + port->mCtrl.checkbox->SetValue(port->mVal > 0); } - else if (ctrl.mEnumeration) // Check before integer + else if (port->mEnumeration) // Check before integer { int s; - for (s = (int) ctrl.mScaleValues.size() - 1; s >= 0; s--) + for (s = (int) port->mScaleValues.size() - 1; s >= 0; s--) { - if (ctrl.mVal >= ctrl.mScaleValues[s]) + if (port->mVal >= port->mScaleValues[s]) { break; } @@ -1896,15 +2648,12 @@ bool LV2Effect::TransferDataToWindow() s = 0; } - wxChoice *c = wxDynamicCast(mParent->FindWindow(ID_Choices + p), wxChoice); - if (c) - c->SetSelection(s); + port->mCtrl.choice->SetSelection(s); } - else if (ctrl.mInput) + else if (port->mIsInput) { - ctrl.mTmp = ctrl.mVal * (ctrl.mSampleRate ? mSampleRate : 1.0); - if (mSliders && mSliders[p]) - SetSlider(mSliders[p], ctrl); + port->mTmp = port->mVal * (port->mSampleRate ? mSampleRate : 1.0); + SetSlider(port); } } } @@ -1927,88 +2676,226 @@ bool LV2Effect::TransferDataFromWindow() return true; } -void LV2Effect::SetSlider(wxSlider *slider, const LV2Port & ctrl) +void LV2Effect::SetSlider(const LV2ControlPortPtr & port) { - float lo = ctrl.mLo; - float hi = ctrl.mHi; - float val = ctrl.mTmp; + float lo = port->mLo; + float hi = port->mHi; + float val = port->mTmp; - if (ctrl.mLogarithmic) + if (port->mLogarithmic) { lo = logf(lo); hi = logf(hi); val = logf(val); } - slider->SetValue(lrintf((val - lo) / (hi - lo) * 1000.0)); + port->mCtrl.slider->SetValue(lrintf((val - lo) / (hi - lo) * 1000.0)); } -void LV2Effect::OnTrigger(wxCommandEvent & evt) +void LV2Effect::OnTrigger(wxCommandEvent &evt) { - int p = evt.GetId() - ID_Triggers; + auto & port = mControlPorts[evt.GetId() - ID_Triggers]; - mControls[p].mVal = mControls[p].mDef; + port->mVal = port->mDef; } -void LV2Effect::OnToggle(wxCommandEvent & evt) +void LV2Effect::OnToggle(wxCommandEvent &evt) { - int p = evt.GetId() - ID_Toggles; + auto & port = mControlPorts[evt.GetId() - ID_Toggles]; - mControls[p].mVal = evt.GetInt() ? 1.0 : 0.0; + port->mVal = evt.GetInt() ? 1.0 : 0.0; } -void LV2Effect::OnChoice(wxCommandEvent & evt) +void LV2Effect::OnChoice(wxCommandEvent &evt) { - int p = evt.GetId() - ID_Choices; + auto & port = mControlPorts[evt.GetId() - ID_Choices]; - mControls[p].mVal = mControls[p].mScaleValues[evt.GetInt()]; + port->mVal = port->mScaleValues[evt.GetInt()]; } -void LV2Effect::OnText(wxCommandEvent & evt) +void LV2Effect::OnText(wxCommandEvent &evt) { - int p = evt.GetId() - ID_Texts; - LV2Port & ctrl = mControls[p]; + auto & port = mControlPorts[evt.GetId() - ID_Texts]; - if (mParent->FindWindow(ID_Texts + p)->GetValidator()->TransferFromWindow()) + if (port->mText->GetValidator()->TransferFromWindow()) { - ctrl.mVal = ctrl.mSampleRate ? ctrl.mTmp / mSampleRate : ctrl.mTmp; + port->mVal = port->mSampleRate ? port->mTmp / mSampleRate : port->mTmp; - SetSlider(mSliders[p], mControls[p]); - } + SetSlider(port); + } } -void LV2Effect::OnSlider(wxCommandEvent & evt) +void LV2Effect::OnSlider(wxCommandEvent &evt) { - int p = evt.GetId() - ID_Sliders; - LV2Port & ctrl = mControls[p]; + auto & port = mControlPorts[evt.GetId() - ID_Sliders]; - float lo = ctrl.mLo; - float hi = ctrl.mHi; + float lo = port->mLo; + float hi = port->mHi; - if (ctrl.mLogarithmic) + if (port->mLogarithmic) { lo = logf(lo); hi = logf(hi); } - ctrl.mTmp = ((float) evt.GetInt() / 1000.0) * (hi - lo) + lo; - ctrl.mTmp = ctrl.mLogarithmic ? expf(ctrl.mTmp) : ctrl.mTmp; + port->mTmp = (((float) evt.GetInt()) / 1000.0) * (hi - lo) + lo; + port->mTmp = port->mLogarithmic ? expf(port->mTmp) : port->mTmp; - ctrl.mTmp = ctrl.mTmp < ctrl.mLo ? ctrl.mLo : ctrl.mTmp; - ctrl.mTmp = ctrl.mTmp > ctrl.mHi ? ctrl.mHi : ctrl.mTmp; + port->mTmp = port->mTmp < port->mLo ? port->mLo : port->mTmp; + port->mTmp = port->mTmp > port->mHi ? port->mHi : port->mTmp; - ctrl.mVal = ctrl.mSampleRate ? ctrl.mTmp / mSampleRate : ctrl.mTmp; + port->mVal = port->mSampleRate ? port->mTmp / mSampleRate : port->mTmp; - mParent->FindWindow(ID_Texts + p)->GetValidator()->TransferToWindow(); + port->mText->GetValidator()->TransferToWindow(); +} + +void LV2Effect::OnTimer(wxTimerEvent &evt) +{ + evt.Skip(); + + if (mExternalWidget) + { + LV2_EXTERNAL_UI_RUN(mExternalWidget); + } } void LV2Effect::OnIdle(wxIdleEvent &evt) { evt.Skip(); - if (mIdleFeature) + + if (!mSuilInstance) { - mIdleFeature->idle(suil_instance_get_handle(mSuilInstance)); + return; } + + if (mExternalUIClosed) + { + mExternalUIClosed = false; + mDialog->Close(); + return; + } + + if (mUIIdleInterface) + { + SuilHandle handle = suil_instance_get_handle(mSuilInstance); + if (mUIIdleInterface->idle(handle)) + { + if (mUIShowInterface) + { + mUIShowInterface->hide(handle); + } + mDialog->Close(); + return; + } + } + + if (mControlOut) + { + ZixRing *ring = mControlOut->mRing; + + LV2_Atom *atom = (LV2_Atom *) malloc(mControlOut->mMinimumSize); + if (atom) + { + while (zix_ring_read(ring, atom, sizeof(LV2_Atom))) + { + uint32_t size = lv2_atom_total_size(atom); + + if (size < mControlOut->mMinimumSize) + { + zix_ring_read(ring, LV2_ATOM_CONTENTS(LV2_Atom, atom), atom->size); + suil_instance_port_event(mSuilInstance, + mControlOut->mIndex, + size, + urid_EventTransfer, + atom); + } + else + { + zix_ring_skip(ring, atom->size); + wxLogError(_("LV2 sequence buffer overflow")); + } + } + free(atom); + } + } + + for (auto & port : mControlPorts) + { + // Let UI know that a port's value has changed + if (port->mVal != port->mLst) + { + suil_instance_port_event(mSuilInstance, + port->mIndex, + sizeof(port->mVal), + 0, + &port->mVal); + port->mLst = port->mVal; + } + } +} + +void LV2Effect::OnSize(wxSizeEvent & evt) +{ + evt.Skip(); + + // Don't do anything here if we're recursing + if (mResizing) + { + return; + } + + // Indicate resizing is occurring + mResizing = true; + + // Can only resize AFTER the dialog has been completely created and + // there's no need to resize if we're already at the desired size. + if (mDialog && evt.GetSize() != mNativeWinLastSize) + { + // Save the desired size and set the native window to match + mNativeWinLastSize = evt.GetSize(); + mNativeWin->SetMinSize(mNativeWinLastSize); + + // Clear the minimum size of the parent window to allow the following + // Fit() to make proper adjustments + mParent->SetMinSize(wxDefaultSize); + +#if defined(__WXGTK__) + // If the user resized the native window, then we need to also + // clear the dialogs minimum size. If this isn't done, the dialog + // will not resize properly when going from a larger size to a smaller + // size (due to the minimum size constraint). + // + // In this case, mResized has been set by the "size_request()" function + // to indicate that this is a plugin generated resize request. + if (mResized) + { + mDialog->SetMinSize(wxDefaultSize); + } + + // Resize dialog + mDialog->Fit(); + + // Reestablish the minimum (and maximum) now that the dialog + // has is desired size. + if (mResized) + { + mDialog->SetMinSize(mDialog->GetSize()); + if (mNoResize) + { + mDialog->SetMaxSize(mDialog->GetSize()); + } + } + + // Tell size_request() that the native window was just resized. + mResized = true; +#else + // Resize the dialog to fit its content. + mDialog->Fit(); +#endif + } + + // No longer resizing + mResizing = false; } // ============================================================================ @@ -2020,134 +2907,307 @@ uint32_t LV2Effect::uri_to_id(LV2_URI_Map_Callback_Data callback_data, const char *WXUNUSED(map), const char *uri) { - return ((LV2Effect *)callback_data)->URID_Map(uri); + return ((LV2Effect *) callback_data)->URID_Map(uri); } // static callback LV2_URID LV2Effect::urid_map(LV2_URID_Map_Handle handle, const char *uri) { - return ((LV2Effect *)handle)->URID_Map(uri); + return ((LV2Effect *) handle)->URID_Map(uri); } LV2_URID LV2Effect::URID_Map(const char *uri) { - size_t ndx = mURIMap.size(); + LV2_URID urid; + + urid = Lookup_URI(gURIDMap, uri, false); + if (urid > 0) + { + return urid; + } + + urid = Lookup_URI(mURIDMap, uri); + if (urid > 0) + { + return urid + gURIDMap.size(); + } + + return 0; +} + +LV2_URID LV2Effect::Lookup_URI(URIDMap & map, const char *uri, bool add) +{ + size_t ndx = map.size(); for (size_t i = 0; i < ndx; i++) { - if (strcmp(mURIMap[i].get(), uri) == 0) + if (strcmp(map[i].get(), uri) == 0) { return i + 1; } } - mURIMap.resize(1 + mURIMap.size()); - mURIMap[ndx].reset( strdup(uri) ); + if (add) + { + map.push_back(MallocString<>(strdup(uri))); + return ndx + 1; + } - return ndx + 1; + return 0; } // static callback const char *LV2Effect::urid_unmap(LV2_URID_Unmap_Handle handle, LV2_URID urid) { - return ((LV2Effect *)handle)->URID_Unmap(urid); + return ((LV2Effect *) handle)->URID_Unmap(urid); } const char *LV2Effect::URID_Unmap(LV2_URID urid) { - if (urid > 0 && urid <= (LV2_URID) mURIMap.size()) + if (urid > 0) { - return mURIMap[urid - 1].get(); + if (urid <= (LV2_URID) gURIDMap.size()) + { + return mURIDMap[urid - 1].get(); + } + + urid -= gURIDMap.size(); + + if (urid <= (LV2_URID) mURIDMap.size()) + { + return mURIDMap[urid - 1].get(); + } } return NULL; } // static callback -int LV2Effect::ui_resize(LV2UI_Feature_Handle handle, int width, int height) +int LV2Effect::log_printf(LV2_Log_Handle handle, LV2_URID type, const char *fmt, ...) { - return ((LV2Effect *)handle)->UIResize(width, height); -} + va_list ap; + int len; -int LV2Effect::UIResize(int WXUNUSED(width), int WXUNUSED(height)) -{ -#if 0 - // Nothing to do yet -#endif - return 1; + va_start(ap, fmt); + len = ((LV2Effect *) handle)->LogVPrintf(type, fmt, ap); + va_end(ap); + + return len; } // static callback -void LV2Effect::suil_write_func(SuilController controller, - uint32_t port_index, - uint32_t buffer_size, - uint32_t protocol, - const void *buffer) +int LV2Effect::log_vprintf(LV2_Log_Handle handle, LV2_URID type, const char *fmt, va_list ap) { - ((LV2Effect *)controller)->UIWrite(port_index, buffer_size, protocol, buffer); + return ((LV2Effect *) handle)->LogVPrintf(type, fmt, ap); } -void LV2Effect::UIWrite(uint32_t port_index, - uint32_t buffer_size, - uint32_t protocol, - const void *buffer) +int LV2Effect::LogVPrintf(LV2_URID type, const char *fmt, va_list ap) { - if (protocol != 0 || buffer_size != sizeof(float)) + long level = wxLOG_Error; + + if (type == urid_Error) { - return; + level = wxLOG_Error; + } + else if (type == urid_Note) + { + level = wxLOG_Info; + } + else if (type == urid_Trace) + { + level = wxLOG_Trace; + } + else if (type == urid_Warning) + { + level = wxLOG_Warning; + } + else + { + level = wxLOG_Message; } - wxLongToLongHashMap::iterator it = mControlsMap.find(port_index); - if (it != mControlsMap.end()) + char *msg = NULL; + int len = wxCRT_VsnprintfA(msg, 0, fmt, ap); + + msg = (char *) malloc(len + 1); + if (msg) { - mControls[(it->second)].mVal = *((const float *)buffer); + wxCRT_VsnprintfA(msg, len, fmt, ap); + + wxString text(msg); + + wxLogGeneric(level, wxT("%s: %s"), GetSymbol().Msgid().Translation(), text); + + free(msg); } + + return len; +} + +// static callback +int LV2Effect::ui_resize(LV2UI_Feature_Handle handle, int width, int height) +{ + return ((LV2Effect *) handle)->UIResize(width, height); +} + +int LV2Effect::UIResize(int width, int height) +{ + // Queue a wxSizeEvent to resize the plugins UI + if (mNativeWin) + { + wxSizeEvent sw(wxSize(width, height)); + sw.SetEventObject(mNativeWin); + mNativeWin->GetEventHandler()->AddPendingEvent(sw); + } + // The window hasn't been created yet, so record the desired size + else + { + mNativeWinInitialSize = wxSize(width, height); + } + + return 0; +} + +// static callback +void LV2Effect::ui_closed(LV2UI_Controller controller) +{ + return ((LV2Effect *) controller)->UIClosed(); +} + +void LV2Effect::UIClosed() +{ + mExternalUIClosed = true; + + return; +} + +// static callback +void LV2Effect::suil_port_write_func(SuilController controller, + uint32_t port_index, + uint32_t buffer_size, + uint32_t protocol, + const void *buffer) +{ + ((LV2Effect *) controller)->SuilPortWrite(port_index, buffer_size, protocol, buffer); +} + +void LV2Effect::SuilPortWrite(uint32_t port_index, + uint32_t buffer_size, + uint32_t protocol, + const void *buffer) +{ + // Handle implicit floats + if (protocol == 0 && buffer_size == sizeof(float)) + { + auto it = mControlPortMap.find(port_index); + if (it != mControlPortMap.end()) + { + it->second->mVal = *((const float *) buffer); + } + } + // Handle event transfers + else if (protocol == urid_EventTransfer) + { + if (mControlIn && port_index == mControlIn->mIndex) + { + zix_ring_write(mControlIn->mRing, buffer, buffer_size); + } + } + + return; +} + +// static callback +uint32_t LV2Effect::suil_port_index_func(SuilController controller, + const char *port_symbol) +{ + return ((LV2Effect *) controller)->SuilPortIndex(port_symbol); +} + +uint32_t LV2Effect::SuilPortIndex(const char *port_symbol) +{ + for (size_t i = 0, cnt = lilv_plugin_get_num_ports(mPlug); i < cnt; i++) + { + const LilvPort *port = lilv_plugin_get_port_by_index(mPlug, i); + if (strcmp(port_symbol, lilv_node_as_string(lilv_port_get_symbol(mPlug, port))) == 0) + { + return lilv_port_get_index(mPlug, port); + } + } + + return LV2UI_INVALID_PORT_INDEX; +} + +// static callback +const void *LV2Effect::get_value_func(const char *port_symbol, + void *user_data, + uint32_t *size, + uint32_t *type) +{ + return ((LV2Effect *) user_data)->GetPortValue(port_symbol, size, type); +} + +const void *LV2Effect::GetPortValue(const char *port_symbol, + uint32_t *size, + uint32_t *type) +{ + wxString symbol = wxString::FromUTF8(port_symbol); + + for (auto & port : mControlPorts) + { + if (port->mSymbol == symbol) + { + *size = sizeof(float); + *type = urid_Float; + return (void *) &port->mVal; + } + } + + *size = 0; + *type = 0; + + return NULL; } // static callback void LV2Effect::set_value_func(const char *port_symbol, - void *user_data, + void *user_data, const void *value, - uint32_t size, - uint32_t type) + uint32_t size, + uint32_t type) { - ((LV2Effect *)user_data)->SetPortValue(port_symbol, value, size, type); + ((LV2Effect *) user_data)->SetPortValue(port_symbol, value, size, type); } void LV2Effect::SetPortValue(const char *port_symbol, const void *value, - uint32_t size, - uint32_t type) + uint32_t size, + uint32_t type) { wxString symbol = wxString::FromUTF8(port_symbol); - LV2_URID Bool = URID_Map(lilv_node_as_string(gBool)); - LV2_URID Double = URID_Map(lilv_node_as_string(gDouble)); - LV2_URID Float = URID_Map(lilv_node_as_string(gFloat)); - LV2_URID Int = URID_Map(lilv_node_as_string(gInt)); - LV2_URID Long = URID_Map(lilv_node_as_string(gLong)); - for (size_t p = 0, cnt = mControls.size(); p < cnt; p++) + for (auto & port : mControlPorts) { - if (mControls[p].mSymbol == symbol) + if (port->mSymbol == symbol) { - if (type == Bool && size == sizeof(bool)) + if (type == urid_Bool && size == sizeof(bool)) { - mControls[p].mVal = (float) *((const bool *) value) ? 1.0f : 0.0f; + port->mVal = (float) (*((const bool *) value)) ? 1.0f : 0.0f; } - else if (type == Double && size == sizeof(double)) + else if (type == urid_Double && size == sizeof(double)) { - mControls[p].mVal = (float) *((const double *) value); + port->mVal = (float) (*((const double *) value)); } - else if (type == Float && size == sizeof(float)) + else if (type == urid_Float && size == sizeof(float)) { - mControls[p].mVal = (float) *((const float *) value); + port->mVal = (float) (*((const float *) value)); } - else if (type == Int && size == sizeof(int32_t)) + else if (type == urid_Int && size == sizeof(int32_t)) { - mControls[p].mVal = (float) *((const int32_t *) value); + port->mVal = (float) (*((const int32_t *) value)); } - else if (type == Long && size == sizeof(int64_t)) + else if (type == urid_Long && size == sizeof(int64_t)) { - mControls[p].mVal = (float) *((const int64_t *) value); + port->mVal = (float) (*((const int64_t *) value)); } break; @@ -2155,4 +3215,293 @@ void LV2Effect::SetPortValue(const char *port_symbol, } } +#if defined(__WXGTK__) +// static callback +// +// Need to queue a wxSizeEvent when the native window gets resized outside of +// WX control. Many of the x42 LV2 plugins can resize themselves when changing +// the scale factor. (e.g., open "x42-dpl" effect and right click to change scaling) +void LV2Effect::size_request(GtkWidget *widget, GtkRequisition *requisition, LV2Effect *effect) +{ + effect->SizeRequest(widget, requisition); +} + +void LV2Effect::SizeRequest(GtkWidget *widget, GtkRequisition *requisition) +{ + // Don't do anything if the OnSize() method is active + if (!mResizing) + { + // If the OnSize() routine has processed an event, mResized will be true, + // so just set the widgets size. + if (mResized) + { + gtk_widget_set_size_request(widget, mNativeWinLastSize.x, mNativeWinLastSize.y); + mResized = false; + } + // Otherwise, the plugin has resized the widget and we need to let WX know + // about it. + else + { + mResized = true; + wxSizeEvent se(wxSize(requisition->width, requisition->height)); + se.SetEventObject(mNativeWin); + mNativeWin->GetEventHandler()->AddPendingEvent(se); + } + } +} #endif + +LV2Wrapper::LV2Wrapper(LV2Effect *effect) +: mEffect(effect) +{ + mInstance = NULL; + mHandle = NULL; + mOptionsInterface = NULL; + mStateInterface = NULL; + mWorkerInterface = NULL; + mWorkerSchedule = {}; + mFreeWheeling = false; + mLatency = 0.0; + mStopWorker = false; +} + +LV2Wrapper::~LV2Wrapper() +{ + if (mInstance) + { + wxThread *thread = GetThread(); + if (thread && thread->IsAlive()) + { + mStopWorker = true; + + LV2Work work = {0, NULL}; + mRequests.Post(work); + + thread->Wait(); + } + + if (mEffect->mActivated) + { + lilv_instance_deactivate(mInstance); + mEffect->mActivated = false; + } + + lilv_instance_free(mInstance); + mInstance = NULL; + } +} + +LilvInstance *LV2Wrapper::Instantiate(const LilvPlugin *plugin, + double sampleRate, + std::vector> & features) +{ + if (mEffect->mWantsWorkerInterface) + { + // Remove terminator + features.pop_back(); + + mWorkerSchedule.handle = this; + mWorkerSchedule.schedule_work = LV2Wrapper::schedule_work; + mEffect->AddFeature(LV2_WORKER__schedule, &mWorkerSchedule); + + mEffect->AddFeature(NULL, NULL); + } + +#if defined(__WXMSW__) + // Plugins may have dependencies that need to be loaded from the same path + // as the main DLL, so add this plugin's path to the DLL search order. + const LilvNode *const libNode = lilv_plugin_get_library_uri(plugin); + const char *const libUri = lilv_node_as_uri(libNode); + const char *const libPath = lilv_uri_to_path(libUri); + wxString path = wxPathOnly(libPath); + SetDllDirectory(path.c_str()); +#endif + + mInstance = lilv_plugin_instantiate(plugin, + sampleRate, + reinterpret_cast(features.data())); + +#if defined(__WXMSW__) + SetDllDirectory(NULL); +#endif + + if (mEffect->mWantsWorkerInterface) + { + // Remove terminator + features.pop_back(); + + // Remove the worker interface feature + features.pop_back(); + + // Re-add terminator + mEffect->AddFeature(NULL, NULL); + } + + if (!mInstance) + { + return NULL; + } + + mHandle = lilv_instance_get_handle(mInstance); + + mOptionsInterface = (LV2_Options_Interface *) + lilv_instance_get_extension_data(mInstance, LV2_OPTIONS__interface); + + mStateInterface = (LV2_State_Interface *) + lilv_instance_get_extension_data(mInstance, LV2_STATE__interface); + + mWorkerInterface = (LV2_Worker_Interface *) + lilv_instance_get_extension_data(mInstance, LV2_WORKER__interface); + + if (mEffect->mLatencyPort >= 0) + { + lilv_instance_connect_port(mInstance, mEffect->mLatencyPort, &mLatency); + } + + if (mWorkerInterface) + { + if (CreateThread() == wxTHREAD_NO_ERROR) + { + GetThread()->Run(); + } + + } + + return mInstance; +} + +LilvInstance *LV2Wrapper::GetInstance() +{ + return mInstance; +} + +LV2_Handle LV2Wrapper::GetHandle() +{ + return mHandle; +} + +float LV2Wrapper::GetLatency() +{ + return mLatency; +} + +void LV2Wrapper::SetFreeWheeling(bool enable) +{ + mFreeWheeling = enable; +} + +void LV2Wrapper::SetSampleRate() +{ + if (mEffect->mSupportsSampleRate && mOptionsInterface && mOptionsInterface->set) + { + LV2_Options_Option options[2] = {}; + + memcpy(&options, + &mEffect->mOptions[mEffect->mSampleRateOption], + sizeof(mEffect->mOptions[0])); + + mOptionsInterface->set(mHandle, options); + } +} + +void LV2Wrapper::SetBlockSize() +{ + if (mEffect->mSupportsNominalBlockLength && mOptionsInterface && mOptionsInterface->set) + { + LV2_Options_Option options[2] = {}; + memcpy(&options, + &mEffect->mOptions[mEffect->mBlockSizeOption], + sizeof(mEffect->mOptions[0])); + + mOptionsInterface->set(mHandle, options); + } +} + +void LV2Wrapper::ConnectPorts(float **inbuf, float **outbuf) +{ +} + +void *LV2Wrapper::Entry() +{ + LV2Work work; + + while (mRequests.Receive(work) == wxMSGQUEUE_NO_ERROR) + { + if (mStopWorker) + { + break; + } + + mWorkerInterface->work(mHandle, + respond, + this, + work.size, + work.data); + } + + return (void *) 0; +} + +void LV2Wrapper::SendResponses() +{ + if (mWorkerInterface) + { + LV2Work work; + + while (mResponses.ReceiveTimeout(0, work) == wxMSGQUEUE_NO_ERROR) + { + mWorkerInterface->work_response(mHandle, work.size, work.data); + } + + if (mWorkerInterface->end_run) + { + mWorkerInterface->end_run(mHandle); + } + } +} + +// static callback +LV2_Worker_Status LV2Wrapper::schedule_work(LV2_Worker_Schedule_Handle handle, + uint32_t size, + const void *data) +{ + return ((LV2Wrapper *) handle)->ScheduleWork(size, data); +} + +LV2_Worker_Status LV2Wrapper::ScheduleWork(uint32_t size, const void *data) +{ + if (mFreeWheeling) + { + return mWorkerInterface->work(mHandle, + respond, + this, + size, + data); + } + + LV2Work work = {size, data}; + + mRequests.Post(work); + + return LV2_WORKER_SUCCESS; +} + +// static callback +LV2_Worker_Status LV2Wrapper::respond(LV2_Worker_Respond_Handle handle, + uint32_t size, + const void *data) +{ + return ((LV2Wrapper *) handle)->Respond(size, data); +} + +LV2_Worker_Status LV2Wrapper::Respond(uint32_t size, const void *data) +{ + LV2Work work = {size, data}; + + mResponses.Post(work); + + return LV2_WORKER_SUCCESS; +} + +#endif + diff --git a/src/effects/lv2/LV2Effect.h b/src/effects/lv2/LV2Effect.h old mode 100644 new mode 100755 index f6904d266..68b7eab56 --- a/src/effects/lv2/LV2Effect.h +++ b/src/effects/lv2/LV2Effect.h @@ -18,26 +18,38 @@ class wxArrayString; #include #include // to inherit +#include +#include +#include -#include "lv2/lv2plug.in/ns/ext/atom/forge.h" -#include "lv2/lv2plug.in/ns/ext/data-access/data-access.h" -#include "lv2/lv2plug.in/ns/ext/options/options.h" -#include "lv2/lv2plug.in/ns/ext/uri-map/uri-map.h" -#include "lv2/lv2plug.in/ns/ext/urid/urid.h" -#include "lv2/lv2plug.in/ns/extensions/ui/ui.h" +#include "lv2/atom/forge.h" +#include "lv2/data-access/data-access.h" +#include "lv2/log/log.h" +#include "lv2/midi/midi.h" +#include "lv2/options/options.h" +#include "lv2/state/state.h" +#include "lv2/time/time.h" +#include "lv2/uri-map/uri-map.h" +#include "lv2/urid/urid.h" +#include "lv2/worker/worker.h" +#include "lv2/ui/ui.h" #include #include +#include "../../ShuttleGui.h" #include "../../SampleFormat.h" #include "LoadLV2.h" +#include "NativeWindow.h" + +#include "lv2_external_ui.h" +#include "zix/ring.h" #include class wxSlider; class wxTextCtrl; - class NumericTextCtrl; #define LV2EFFECTS_VERSION wxT("1.0.0.0") @@ -45,63 +57,200 @@ class NumericTextCtrl; "Linux Audio Developer's Simple Plugin API (LADSPA) version 2" */ #define LV2EFFECTS_FAMILY XO("LV2") -/** A structure that contains information about a single LV2 plugin port. */ +// DECLARE_LOCAL_EVENT_TYPE(EVT_SIZEWINDOW, -1); + class LV2Port { public: - LV2Port() + LV2Port(const LilvPort *port, + int index, + bool isInput, + const wxString & symbol, + const wxString & name, + const wxString & group) + : mPort(port), + mIndex(index), + mIsInput(isInput), + mSymbol(symbol), + mName(name), + mGroup(group) { - mInput = false; + }; + LV2Port(const LV2Port &) = default; + LV2Port &operator = (const LV2Port &) = default; + + const LilvPort *mPort; + + uint32_t mIndex; + bool mIsInput; + + wxString mSymbol; + wxString mName; + wxString mGroup; +}; + +class LV2AudioPort : public LV2Port +{ +public: + LV2AudioPort(const LilvPort *port, + int index, + bool isInput, + const wxString & symbol, + const wxString & name, + const wxString & group) + : LV2Port(port, index, isInput, symbol, name, group) + { + } +}; +using LV2AudioPortPtr = std::shared_ptr; +using LV2AudioPortArray = std::vector; + +class LV2AtomPort : public LV2Port +{ +public: + LV2AtomPort(const LilvPort *port, + int index, + bool isInput, + const wxString & symbol, + const wxString & name, + const wxString & group) + : LV2Port(port, index, isInput, symbol, name, group) + { + + mIsMidi = false; + mWantsPosition = false; + mMinimumSize = 1024; + mRing = NULL; + } + virtual ~LV2AtomPort() + { + if (mRing) + { + zix_ring_free(mRing); + } + } + + uint32_t mMinimumSize; + bool mIsMidi; + bool mWantsPosition; + + std::vector mBuffer; + ZixRing *mRing; +}; +using LV2AtomPortPtr = std::shared_ptr; +using LV2AtomPortArray = std::vector; + +class LV2CVPort : public LV2Port +{ +public: + LV2CVPort(const LilvPort *port, + int index, + bool isInput, + const wxString & symbol, + const wxString & name, + const wxString & group) + : LV2Port(port, index, isInput, symbol, name, group) + { + mMin = 0.0; + mMax = 1.0; + mDef = 0.0; + mHasLo = false; + mHasHi = false; + }; + + float mMin; + float mMax; + float mDef; + bool mHasLo; + bool mHasHi; + + Floats mBuffer; +}; +using LV2CVPortPtr = std::shared_ptr; +using LV2CVPortArray = std::vector; + +class LV2EffectMeter; + +/** A structure that contains information about a single LV2 plugin port. */ +class LV2ControlPort : public LV2Port +{ +public: + LV2ControlPort(const LilvPort *port, + int index, + bool isInput, + const wxString & symbol, + const wxString & name, + const wxString & group) + : LV2Port(port, index, isInput, symbol, name, group) + { + mMin = 0.0; + mMax = 0.0; + mDef = 0.0; + mVal = 0.0; + mLst = 0.0; + mTmp = 0.0; + mDmy = 0.0; + mLo = 0.0; + mHi = 0.0; + mHasLo = false; + mHasHi = false; mToggle = false; mTrigger = false; mInteger = false; mSampleRate = false; mEnumeration = false; mLogarithmic = false; - mHasLo = false; - mHasHi = false; - } - LV2Port( const LV2Port & ) = default; - LV2Port& operator = ( const LV2Port & ) = default; - //LV2Port( LV2Port && ) = default; - //LV2Port& operator = ( LV2Port && ) = default; - - uint32_t mIndex; - wxString mSymbol; - wxString mName; - wxString mGroup; + mNotOnGui = false; + mCtrl.button = NULL; + mText = NULL; + }; + wxString mUnits; float mMin; float mMax; float mDef; float mVal; + float mLst; float mTmp; + float mDmy; float mLo; float mHi; bool mHasLo; bool mHasHi; - bool mInput; bool mToggle; bool mTrigger; bool mInteger; bool mSampleRate; bool mEnumeration; bool mLogarithmic; - - LilvPort *mPort; + bool mNotOnGui; // ScalePoints std::vector mScaleValues; wxArrayString mScaleLabels; -}; -using LV2GroupMap = std::unordered_map>; + // UI + wxTextCtrl *mText; + union + { + wxButton *button; + wxCheckBox *checkbox; + wxChoice *choice; + LV2EffectMeter *meter; + wxSlider *slider; + } mCtrl; +}; +using LV2ControlPortPtr = std::shared_ptr; +using LV2ControlPortArray = std::vector; class LV2EffectSettingsDialog; +class LV2Wrapper; + +using URIDMap = std::vector>; class LV2Effect final : public wxEvtHandler, - public EffectClientInterface, - public EffectUIClientInterface + public EffectClientInterface, + public EffectUIClientInterface { public: LV2Effect(const LilvPlugin *plug); @@ -153,10 +302,7 @@ public: bool RealtimeSuspend() override; bool RealtimeResume() override; bool RealtimeProcessStart() override; - size_t RealtimeProcess(int group, - float **inbuf, - float **outbuf, - size_t numSamples) override; + size_t RealtimeProcess(int group, float **inbuf, float **outbuf, size_t numSamples) override; bool RealtimeProcessEnd() override; bool ShowInterface(wxWindow *parent, bool forceModal = false) override; @@ -190,21 +336,18 @@ public: // LV2Effect implementation private: - bool Load(); - void Unload(); - bool LoadParameters(const RegistryPath & group); bool SaveParameters(const RegistryPath & group); - LilvInstance *InitInstance(float sampleRate); - void FreeInstance(LilvInstance *handle); + LV2Wrapper *InitInstance(float sampleRate); + void FreeInstance(LV2Wrapper *wrapper); static uint32_t uri_to_id(LV2_URI_Map_Callback_Data callback_data, const char *map, const char *uri); - static LV2_URID urid_map(LV2_URID_Map_Handle handle, const char *uri); LV2_URID URID_Map(const char *uri); + static LV2_URID Lookup_URI(URIDMap & map, const char *uri, bool add = true); static const char *urid_unmap(LV2_URID_Unmap_Handle handle, LV2_URID urid); const char *URID_Unmap(LV2_URID urid); @@ -212,15 +355,32 @@ private: static int ui_resize(LV2UI_Feature_Handle handle, int width, int height); int UIResize(int width, int height); - size_t AddOption(const char *key, uint32_t size, const char *type, void *value); + static void ui_closed(LV2UI_Controller controller); + void UIClosed(); + + static int log_printf(LV2_Log_Handle handle, LV2_URID type, const char *fmt, ...); + static int log_vprintf(LV2_Log_Handle handle, LV2_URID type, const char *fmt, va_list ap); + int LogVPrintf(LV2_URID type, const char *fmt, va_list ap); + +#if defined(__WXGTK__) + static void size_request(GtkWidget *widget, GtkRequisition *requisition, LV2Effect *win); + void SizeRequest(GtkWidget *widget, GtkRequisition *requisition); +#endif + + size_t AddOption(LV2_URID, uint32_t size, LV2_URID, const void *value); + bool ValidateOptions(const LilvNode *subject); + bool CheckOptions(const LilvNode *subject, const LilvNode *predicate, bool required); + LV2_Feature *AddFeature(const char *uri, void *data); + bool ValidateFeatures(const LilvNode *subject); + bool CheckFeatures(const LilvNode *subject, const LilvNode *predicate, bool required); bool BuildFancy(); bool BuildPlain(); bool TransferDataToWindow() /* not override */; bool TransferDataFromWindow() /* not override */; - void SetSlider(wxSlider *slider, const LV2Port & ctrl); + void SetSlider(const LV2ControlPortPtr & port); void OnTrigger(wxCommandEvent & evt); void OnToggle(wxCommandEvent & evt); @@ -228,98 +388,170 @@ private: void OnText(wxCommandEvent & evt); void OnSlider(wxCommandEvent & evt); + void OnTimer(wxTimerEvent & evt); void OnIdle(wxIdleEvent & evt); + void OnSize(wxSizeEvent & evt); + void OnSizeWindow(wxCommandEvent & evt); - static void suil_write_func(SuilController controller, - uint32_t port_index, - uint32_t buffer_size, - uint32_t protocol, - const void *buffer); + static void suil_port_write_func(SuilController controller, + uint32_t port_index, + uint32_t buffer_size, + uint32_t protocol, + const void *buffer); + void SuilPortWrite(uint32_t port_index, + uint32_t buffer_size, + uint32_t protocol, + const void *buffer); - void UIWrite(uint32_t port_index, - uint32_t buffer_size, - uint32_t protocol, - const void *buffer); + static uint32_t suil_port_index_func(SuilController controller, + const char *port_symbol); + uint32_t SuilPortIndex(const char *port_symbol); + + static const void *get_value_func(const char *port_symbol, + void *user_data, + uint32_t *size, + uint32_t *type); + const void *GetPortValue(const char *port_symbol, + uint32_t *size, + uint32_t *type); static void set_value_func(const char *port_symbol, - void *user_data, + void *user_data, const void *value, - uint32_t size, - uint32_t type); - + uint32_t size, + uint32_t type); void SetPortValue(const char *port_symbol, const void *value, - uint32_t size, - uint32_t type); + uint32_t size, + uint32_t type); private: - // Declare the static URI nodes - #undef URI - #define URI(n, u) static LilvNode *n; - URILIST + + // Declare the global and local URI maps + static URIDMap gURIDMap; + URIDMap mURIDMap; + + // Declare the static LILV URI nodes +#undef NODE +#define NODE(n, u) static LilvNode *node_##n; + NODELIST + + // Declare the static URIDs +#undef URID +#define URID(n, u) static LV2_URID urid_##n; + URIDLIST const LilvPlugin *mPlug; EffectHostInterface *mHost; - size_t mBlockSize; - double mSampleRate; + float mSampleRate; + int mBlockSize; + int mSeqSize; - wxLongToLongHashMap mControlsMap; - std::vector mControls; - std::vector mAudioInputs; - std::vector mAudioOutputs; + int mMinBlockSize; + int mMaxBlockSize; + int mUserBlockSize; - LV2GroupMap mGroupMap; + std::unordered_map mControlPortMap; + LV2ControlPortArray mControlPorts; + + LV2AudioPortArray mAudioPorts; + unsigned mAudioIn; + unsigned mAudioOut; + + LV2AtomPortArray mAtomPorts; + LV2AtomPortPtr mControlIn; + LV2AtomPortPtr mControlOut; + unsigned mMidiIn; + unsigned mMidiOut; + + LV2CVPortArray mCVPorts; + unsigned mCVIn; + unsigned mCVOut; + + std::unordered_map> mGroupMap; wxArrayString mGroups; + bool mWantsOptionsInterface; + bool mWantsStateInterface; + bool mWantsWorkerInterface; + bool mNoResize; + bool mUseLatency; int mLatencyPort; bool mLatencyDone; - float mLatency; + bool mRolling; + bool mActivated; - LilvInstance *mMaster; - LilvInstance *mProcess; - std::vector mSlaves; + LV2Wrapper *mMaster; + LV2Wrapper *mProcess; + std::vector mSlaves; FloatBuffers mMasterIn, mMasterOut; size_t mNumSamples; + size_t mFramePos; + + FloatBuffers mCVInBuffers; + FloatBuffers mCVOutBuffers; + + // Position info + float mPositionSpeed; + float mPositionFrame; double mLength; + wxTimer mTimer; + wxDialog *mDialog; wxWindow *mParent; EffectUIHostInterface *mUIHost; bool mUseGUI; - std::vector< std::unique_ptr > mURIMap; - + // Features we support LV2_URI_Map_Feature mUriMapFeature; LV2_URID_Map mURIDMapFeature; LV2_URID_Unmap mURIDUnmapFeature; LV2UI_Resize mUIResizeFeature; - LV2_Extension_Data_Feature mExtDataFeature; + LV2_Log_Log mLogFeature; + LV2_Extension_Data_Feature mExtensionDataFeature; + + LV2_External_UI_Host mExternalUIHost; + LV2_External_UI_Widget* mExternalWidget; + bool mExternalUIClosed; + + LV2_Atom_Forge mForge; + std::vector mOptions; size_t mBlockSizeOption; size_t mSampleRateOption; - - LV2_Options_Interface *mOptionsInterface; - std::vector mOptions; + bool mSupportsNominalBlockLength; + bool mSupportsSampleRate; std::vector> mFeatures; LV2_Feature *mInstanceAccessFeature; LV2_Feature *mParentFeature; + LV2_Feature *mWorkerScheduleFeature; - const LV2UI_Idle_Interface *mIdleFeature; + bool mFreewheeling; SuilHost *mSuilHost; SuilInstance *mSuilInstance; + NativeWindow *mNativeWin; + wxSize mNativeWinInitialSize; + wxSize mNativeWinLastSize; + bool mResizing; +#if defined(__WXGTK__) + bool mResized; +#endif + + LV2UI_Idle_Interface *mUIIdleInterface; + LV2UI_Show_Interface *mUIShowInterface; + NumericTextCtrl *mDuration; - ArrayOf mSliders; - ArrayOf mFields; bool mFactoryPresetsLoaded; RegistryPaths mFactoryPresetNames; @@ -327,6 +559,7 @@ private: DECLARE_EVENT_TABLE() + friend class LV2Wrapper; friend class LV2EffectSettingsDialog; friend class LV2EffectsModule; }; @@ -347,5 +580,73 @@ inline wxString LilvString(LilvNode *node, bool free) return str; }; +class LV2Wrapper : public wxThreadHelper +{ +public: + typedef struct LV2Work + { + uint32_t size; + const void *data; + } LV2Work; + +public: + LV2Wrapper(LV2Effect *effect); + virtual ~LV2Wrapper(); + + LilvInstance *Instantiate(const LilvPlugin *plugin, + double sampleRrate, + std::vector> & features); + + void *Entry(); + + LilvInstance *GetInstance(); + + LV2_Handle GetHandle(); + + float GetLatency(); + + void SetFreeWheeling(bool enable); + + void SetSampleRate(); + + void SetBlockSize(); + + void ConnectPorts(float **inbuf, float **outbuf); + + void SendResponses(); + + static LV2_Worker_Status schedule_work(LV2_Worker_Schedule_Handle handle, + uint32_t size, + const void *data); + LV2_Worker_Status ScheduleWork(uint32_t size, const void *data); + + static LV2_Worker_Status respond(LV2_Worker_Respond_Handle handle, + uint32_t size, + const void *data); + + LV2_Worker_Status Respond(uint32_t size, const void *data); + +private: + LV2Effect *mEffect; + LilvInstance *mInstance; + LV2_Handle mHandle; + + wxMessageQueue mRequests; + wxMessageQueue mResponses; + + // Options extension + LV2_Options_Interface *mOptionsInterface; + + // State extension + LV2_State_Interface *mStateInterface; + + // Worker extension + LV2_Worker_Interface *mWorkerInterface; + LV2_Worker_Schedule mWorkerSchedule; + + float mLatency; + bool mFreeWheeling; + bool mStopWorker; +}; #endif diff --git a/src/effects/lv2/LoadLV2.cpp b/src/effects/lv2/LoadLV2.cpp old mode 100644 new mode 100755 index 30a3c6b78..35a804a40 --- a/src/effects/lv2/LoadLV2.cpp +++ b/src/effects/lv2/LoadLV2.cpp @@ -17,6 +17,11 @@ Functions that find and load all LV2 plugins on the system. #include "../../Audacity.h" // for USE_* macros #if defined(USE_LV2) + +#if defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wparentheses" +#endif + #include "LoadLV2.h" #include @@ -33,12 +38,12 @@ Functions that find and load all LV2 plugins on the system. #include "../../Internat.h" #include "LV2Effect.h" -#include "lv2/lv2plug.in/ns/ext/event/event.h" -#include "lv2/lv2plug.in/ns/ext/instance-access/instance-access.h" -#include "lv2/lv2plug.in/ns/ext/port-groups/port-groups.h" -#include "lv2/lv2plug.in/ns/ext/port-props/port-props.h" -#include "lv2/lv2plug.in/ns/ext/uri-map/uri-map.h" -#include "lv2/lv2plug.in/ns/ext/presets/presets.h" +#include "lv2/event/event.h" +#include "lv2/instance-access/instance-access.h" +#include "lv2/port-groups/port-groups.h" +#include "lv2/port-props/port-props.h" +#include "lv2/uri-map/uri-map.h" +#include "lv2/presets/presets.h" #include @@ -130,9 +135,14 @@ bool LV2EffectsModule::Initialize() } // Create LilvNodes for each of the URIs we need - #undef URI - #define URI(n, u) LV2Effect::n = lilv_new_uri(gWorld, u); - URILIST + #undef NODE + #define NODE(n, u) LV2Effect::node_##n = lilv_new_uri(gWorld, u); + NODELIST + + // Generatre URIDs + #undef URID + #define URID(n, u) LV2Effect::urid_##n = LV2Effect::Lookup_URI(LV2Effect::gURIDMap, u); + URIDLIST wxString newVar; @@ -166,12 +176,13 @@ bool LV2EffectsModule::Initialize() libdir.AppendDir(wxT("lv2")); newVar += wxT(":$HOME/.lv2"); - newVar += wxT(":/usr/local/lib/lv2"); - newVar += wxT(":/usr/lib/lv2"); +#if defined(__LP64__) newVar += wxT(":/usr/local/lib64/lv2"); newVar += wxT(":/usr/lib64/lv2"); +#endif + newVar += wxT(":/usr/local/lib/lv2"); + newVar += wxT(":/usr/lib/lv2"); newVar += wxT(":") + libdir.GetPath(); - #endif // Start with the LV2_PATH environment variable (if any) @@ -188,7 +199,6 @@ bool LV2EffectsModule::Initialize() } wxSetEnv(wxT("LV2_PATH"), pathVar); - lilv_world_load_all(gWorld); return true; @@ -197,9 +207,10 @@ bool LV2EffectsModule::Initialize() void LV2EffectsModule::Terminate() { // Free the LilvNodes for each of the URIs we need - #undef URI - #define URI(n, u) lilv_node_free(LV2Effect::n); - URILIST + #undef NODE + #define NODE(n, u) \ + lilv_node_free(LV2Effect::node_##n); + NODELIST lilv_world_free(gWorld); gWorld = NULL; @@ -237,11 +248,25 @@ PluginPaths LV2EffectsModule::FindPluginPaths(PluginManagerInterface & WXUNUSED( LILV_FOREACH(plugins, i, plugs) { const LilvPlugin *plug = lilv_plugins_get(plugs, i); + const LilvNode *cls = lilv_plugin_class_get_uri(lilv_plugin_get_class(plug)); + const LilvNode *name = lilv_plugin_get_name(plug); - // Bypass Instrument (MIDI) plugins for now - const LilvPluginClass *cls = lilv_plugin_get_class(plug); - if (lilv_node_equals(lilv_plugin_class_get_uri(cls), LV2Effect::gInstrument)) + // Bypass unsupported plugin types + if (lilv_node_equals(cls, LV2Effect::node_InstrumentPlugin) || + lilv_node_equals(cls, LV2Effect::node_MIDIPlugin) || + lilv_node_equals(cls, LV2Effect::node_MathConstants) || + lilv_node_equals(cls, LV2Effect::node_MathFunctions)) { + wxLogInfo(wxT("LV2 plugin '%s' has unsupported type '%s'"), lilv_node_as_string(lilv_plugin_get_uri(plug)), lilv_node_as_string(cls)); + printf("LV2 plugin '%s' has unsupported type '%s'\n", lilv_node_as_string(lilv_plugin_get_uri(plug)), lilv_node_as_string(cls)); + continue; + } + + // If it doesn't have a name or has no ports, then it's not valid + if (!name || !lilv_plugin_get_port_by_index(plug, 0)) + { + wxLogInfo(wxT("LV2 plugin '%s' is invalid"), lilv_node_as_string(lilv_plugin_get_uri(plug))); + printf("LV2 plugin '%s' is invalid\n", lilv_node_as_string(lilv_plugin_get_uri(plug))); continue; } diff --git a/src/effects/lv2/LoadLV2.h b/src/effects/lv2/LoadLV2.h old mode 100644 new mode 100755 index 91652c584..69ce8f0a4 --- a/src/effects/lv2/LoadLV2.h +++ b/src/effects/lv2/LoadLV2.h @@ -14,52 +14,145 @@ #include "../../MemoryX.h" -#include +#include "lilv/lilv.h" -#include "lv2/lv2plug.in/ns/lv2core/lv2.h" -#include "lv2/lv2plug.in/ns/ext/data-access/data-access.h" -#include "lv2/lv2plug.in/ns/ext/instance-access/instance-access.h" -#include "lv2/lv2plug.in/ns/ext/port-groups/port-groups.h" -#include "lv2/lv2plug.in/ns/ext/port-props/port-props.h" -#include "lv2/lv2plug.in/ns/ext/presets/presets.h" -#include "lv2/lv2plug.in/ns/ext/uri-map/uri-map.h" -#include "lv2/lv2plug.in/ns/extensions/units/units.h" +#include "lv2/core/lv2.h" +#include "lv2/buf-size/buf-size.h" +#include "lv2/data-access/data-access.h" +#include "lv2/event/event.h" +#include "lv2/instance-access/instance-access.h" +#include "lv2/midi/midi.h" +#include "lv2/parameters/parameters.h" +#include "lv2/port-groups/port-groups.h" +#include "lv2/port-props/port-props.h" +#include "lv2/presets/presets.h" +#include "lv2/resize-port/resize-port.h" +#include "lv2/time/time.h" +#include "lv2/uri-map/uri-map.h" +#include "lv2/units/units.h" #include "audacity/ModuleInterface.h" #include "audacity/EffectInterface.h" #include "audacity/PluginInterface.h" -#undef URI -#define URI(n, u) +#include "lv2_external_ui.h" -// Define the list of URIs that we will use -#undef URILIST -#define URILIST \ - URI( gBool, LV2_ATOM__Bool ) \ - URI( gDouble, LV2_ATOM__Double ) \ - URI( gFloat, LV2_ATOM__Float ) \ - URI( gInt, LV2_ATOM__Int ) \ - URI( gLong, LV2_ATOM__Long ) \ - URI( gAudio, LV2_CORE__AudioPort ) \ - URI( gControl, LV2_CORE__ControlPort ) \ - URI( gInput, LV2_CORE__InputPort ) \ - URI( gInstrument, LV2_CORE__InstrumentPlugin ) \ - URI( gOutput, LV2_CORE__OutputPort ) \ - URI( gOptional, LV2_CORE__connectionOptional ) \ - URI( gEnumeration, LV2_CORE__enumeration ) \ - URI( gInteger, LV2_CORE__integer ) \ - URI( gName, LV2_CORE__name ) \ - URI( gLatency, LV2_CORE__reportsLatency ) \ - URI( gSampleRate, LV2_CORE__sampleRate ) \ - URI( gToggled, LV2_CORE__toggled ) \ - URI( gGroup, LV2_PORT_GROUPS__group ) \ - URI( gSubGroupOf, LV2_PORT_GROUPS__subGroupOf ) \ - URI( gLogarithmic, LV2_PORT_PROPS__logarithmic ) \ - URI( gTrigger, LV2_PORT_PROPS__trigger ) \ - URI( gPreset, LV2_PRESETS__Preset ) \ - URI( gUnit, LV2_UNITS__unit ) \ - URI( gUnitSymbol, LV2_UNITS__symbol ) \ - URI( gLabel, LILV_NS_RDFS "label" ) +#if !defined(LV2_CORE__MIDIPlugin) +#define LV2_CORE__MIDIPlugin LV2_CORE_PREFIX "MIDIPlugin" +#endif + +#if !defined(LV2_CORE__Enabled) +#define LV2_CORE__enabled LV2_CORE_PREFIX "enabled" +#endif + +#if !defined(LV2_UI__makeResident) +#define LV2_UI__makeResident LV2_UI_PREFIX "makeResident" +#endif + +#if !defined(LV2_BUF_SIZE__nominalBlockLength) +#define LV2_BUF_SIZE__nominalBlockLength LV2_BUF_SIZE_PREFIX "nominalBlockLength" +#endif + +// The "ll-plugin" package includes math functions that appear as plugins +// and the best way to exclude them is by their class URI. +#define LL_NAMESPACE "http://ll-plugins.nongnu.org/lv2/namespace#" +#define LL_MATH_CONSTANTS LL_NAMESPACE "MathConstantPlugin" +#define LL_MATH_FUNCTIONS LL_NAMESPACE "MathFunctionPlugin" + +// Define the list of URIs that need an LilvNode created +#undef NODE +#define NODE(n, u) + +#undef NODELIST +#define NODELIST \ + NODE( AtomPort, LV2_ATOM__AtomPort ) \ + NODE( MaxBlockLength, LV2_BUF_SIZE__maxBlockLength ) \ + NODE( MinBlockLength, LV2_BUF_SIZE__minBlockLength ) \ + NODE( AudioPort, LV2_CORE__AudioPort ) \ + NODE( ControlPort, LV2_CORE__ControlPort ) \ + NODE( CVPort, LV2_CORE__CVPort ) \ + NODE( Designation, LV2_CORE__designation ) \ + NODE( InputPort, LV2_CORE__InputPort ) \ + NODE( InstrumentPlugin, LV2_CORE__InstrumentPlugin ) \ + NODE( MIDIPlugin, LV2_CORE__MIDIPlugin ) \ + NODE( OutputPort, LV2_CORE__OutputPort ) \ + NODE( Control, LV2_CORE__control ) \ + NODE( Enumeration, LV2_CORE__enumeration ) \ + NODE( Integer, LV2_CORE__integer ) \ + NODE( Name, LV2_CORE__name ) \ + NODE( OptionalFeature, LV2_CORE__optionalFeature ) \ + NODE( RequiredFeature, LV2_CORE__requiredFeature ) \ + NODE( SampleRate, LV2_CORE__sampleRate ) \ + NODE( Toggled, LV2_CORE__toggled ) \ + NODE( ExternalUI, LV2_EXTERNAL_UI__Widget ) \ + NODE( ExternalUIOld, LV2_EXTERNAL_UI_DEPRECATED_URI ) \ + NODE( MidiEvent, LV2_MIDI__MidiEvent ) \ + NODE( SupportedOption, LV2_OPTIONS__supportedOption ) \ + NODE( RequiredOption, LV2_OPTIONS__requiredOption ) \ + NODE( Group, LV2_PORT_GROUPS__group ) \ + NODE( Logarithmic, LV2_PORT_PROPS__logarithmic ) \ + NODE( Trigger, LV2_PORT_PROPS__trigger ) \ + NODE( Preset, LV2_PRESETS__Preset ) \ + NODE( MinimumSize, LV2_RESIZE_PORT__minimumSize ) \ + NODE( Position, LV2_TIME__Position ) \ + NODE( Gtk, LV2_UI__GtkUI ) \ + NODE( Gtk3, LV2_UI__Gtk3UI ) \ + NODE( Unit, LV2_UNITS__unit ) \ + NODE( Comment, LILV_NS_RDFS "comment" ) \ + NODE( Label, LILV_NS_RDFS "label" ) \ + NODE( MathConstants, LL_MATH_CONSTANTS ) \ + NODE( MathFunctions, LL_MATH_FUNCTIONS ) + +// Define the list of URIs that need a URID registered +#undef URID +#define URID(n, u) + +#undef URIDLIST +#define URIDLIST \ + URID( Blank, LV2_ATOM__Blank ) \ + URID( Bool, LV2_ATOM__Bool ) \ + URID( Chunk, LV2_ATOM__Chunk ) \ + URID( Double, LV2_ATOM__Double ) \ + URID( Float, LV2_ATOM__Float ) \ + URID( Int, LV2_ATOM__Int ) \ + URID( Literal, LV2_ATOM__Literal ) \ + URID( Long, LV2_ATOM__Long ) \ + URID( Object, LV2_ATOM__Object ) \ + URID( Path, LV2_ATOM__Path ) \ + URID( Property, LV2_ATOM__Property ) \ + URID( Resource, LV2_ATOM__Resource ) \ + URID( Sequence, LV2_ATOM__Sequence ) \ + URID( String, LV2_ATOM__String ) \ + URID( Tuple, LV2_ATOM__Tuple ) \ + URID( Uri, LV2_ATOM__URI ) \ + URID( Urid, LV2_ATOM__URID ) \ + URID( Vector, LV2_ATOM__Vector ) \ + URID( EventTransfer, LV2_ATOM__eventTransfer ) \ + URID( AtomSupports, LV2_ATOM__supports ) \ + URID( MaxBlockLength, LV2_BUF_SIZE__maxBlockLength ) \ + URID( MinBlockLength, LV2_BUF_SIZE__minBlockLength ) \ + URID( NominalBlockLength, LV2_BUF_SIZE__nominalBlockLength ) \ + URID( SequenceSize, LV2_BUF_SIZE__sequenceSize ) \ + URID( InstrumentPlugin, LV2_CORE__InstrumentPlugin ) \ + URID( MIDIPlugin, LV2_CORE__MIDIPlugin ) \ + URID( Toggled, LV2_CORE__toggled ) \ + URID( ExternalUI, LV2_EXTERNAL_UI__Widget ) \ + URID( ExternalUIOld, LV2_EXTERNAL_UI_DEPRECATED_URI ) \ + URID( Error, LV2_LOG__Error ) \ + URID( Note, LV2_LOG__Note ) \ + URID( Trace, LV2_LOG__Trace ) \ + URID( Warning, LV2_LOG__Warning ) \ + URID( MidiEvent, LV2_MIDI__MidiEvent ) \ + URID( RequiredOption, LV2_OPTIONS__requiredOption ) \ + URID( SampleRate, LV2_PARAMETERS__sampleRate ) \ + URID( RangeSteps, LV2_PORT_PROPS__rangeSteps ) \ + URID( NotOnGUI, LV2_PORT_PROPS__notOnGUI ) \ + URID( Expensive, LV2_PORT_PROPS__expensive ) \ + URID( CausesArtifacts, LV2_PORT_PROPS__causesArtifacts ) \ + URID( NotAutomatic, LV2_PORT_PROPS__notAutomatic ) \ + URID( Position, LV2_TIME__Position ) \ + URID( Speed, LV2_TIME__speed ) \ + URID( Frame, LV2_TIME__frame ) /////////////////////////////////////////////////////////////////////////////// // diff --git a/src/effects/lv2/NativeWindow.h b/src/effects/lv2/NativeWindow.h new file mode 100755 index 000000000..ba2380a4a --- /dev/null +++ b/src/effects/lv2/NativeWindow.h @@ -0,0 +1,120 @@ +/********************************************************************** + + Audacity: A Digital Audio Editor + + NativeWindow.h + + Audacity(R) is copyright (c) 1999-2008 Audacity Team. + License: GPL v2. See License.txt. + + NOTE: Mostly copied from wxWidgets 3.1.1 + +*********************************************************************/ + +#ifndef NATIVEWINDOW_H +#define NATIVEWINDOW_H + +#if defined(__WXMSW__) +#include +#elif defined(__WXMAC__) +#include +#elif defined(__WXGTK__) +#include +#endif + +class NativeWindow : public wxWindow +{ +public: + NativeWindow() + { + } + +#if defined(__WXMSW__) + + virtual ~NativeWindow() + { + UnsubclassWin(); + } + + bool Create(wxWindow* parent, WXWidget hwnd) + { + const wxRect r = wxRectFromRECT(wxGetWindowRect((HWND)hwnd)); + + // Skip wxWindow::Create() which would try to create a new HWND, we don't + // want this as we already have one. + if (!CreateBase(parent, + wxID_ANY, + r.GetPosition(), + r.GetSize(), + 0, + wxDefaultValidator, + wxS("nativewindow"))) + { + return false; + } + + parent->AddChild(this); + + SubclassWin(hwnd); + + + InheritAttributes(); + + return true; + } + +#elif defined(__WXMAC__) + + virtual ~NativeWindow() + { + GetPeer()->RemoveFromParent(); + m_peer = NULL; + } + + bool Create(wxWindow* parent, WXWidget view) + { + DontCreatePeer(); + + if (!wxWindow::Create(parent, wxID_ANY)) + { + return false; + } + + SetPeer(new wxWidgetCocoaImpl(this, view)); + + return true; + } + +#elif defined(__WXGTK__) + + virtual ~NativeWindow() + { + } + + bool Create(wxWindow* parent, WXWidget widget) + { + if (!CreateBase(parent, wxID_ANY)) + { + return false; + } + + m_widget = widget; + g_object_ref(m_widget); + + parent->DoAddChild(this); + + PostCreation(); + + // Ensure that the best (and minimal) size is set to fully display the + // widget. + GtkRequisition req; + gtk_widget_size_request(widget, &req); + SetInitialSize(wxSize(req.width, req.height)); + + return true; + } +#endif +}; + +#endif + diff --git a/src/effects/lv2/lv2_external_ui.h b/src/effects/lv2/lv2_external_ui.h new file mode 100755 index 000000000..2c9e6ee64 --- /dev/null +++ b/src/effects/lv2/lv2_external_ui.h @@ -0,0 +1,109 @@ +/* + LV2 External UI extension + This work is in public domain. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + If you have questions, contact Filipe Coelho (aka falkTX) + or ask in #lad channel, FreeNode IRC network. +*/ + +/** + @file lv2_external_ui.h + C header for the LV2 External UI extension . +*/ + +#ifndef LV2_EXTERNAL_UI_H +#define LV2_EXTERNAL_UI_H + +#include "lv2/lv2plug.in/ns/extensions/ui/ui.h" + +#define LV2_EXTERNAL_UI_URI "http://kxstudio.sf.net/ns/lv2ext/external-ui" +#define LV2_EXTERNAL_UI_PREFIX LV2_EXTERNAL_UI_URI "#" + +#define LV2_EXTERNAL_UI__Host LV2_EXTERNAL_UI_PREFIX "Host" +#define LV2_EXTERNAL_UI__Widget LV2_EXTERNAL_UI_PREFIX "Widget" + +/** This extension used to be defined by a lv2plug.in URI */ +#define LV2_EXTERNAL_UI_DEPRECATED_URI "http://lv2plug.in/ns/extensions/ui#external" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * When LV2_EXTERNAL_UI__Widget UI is instantiated, the returned + * LV2UI_Widget handle must be cast to pointer to LV2_External_UI_Widget. + * UI is created in invisible state. + */ +typedef struct _LV2_External_UI_Widget { + /** + * Host calls this function regulary. UI library implementing the + * callback may do IPC or redraw the UI. + * + * @param _this_ the UI context + */ + void (*run)(struct _LV2_External_UI_Widget * _this_); + + /** + * Host calls this function to make the plugin UI visible. + * + * @param _this_ the UI context + */ + void (*show)(struct _LV2_External_UI_Widget * _this_); + + /** + * Host calls this function to make the plugin UI invisible again. + * + * @param _this_ the UI context + */ + void (*hide)(struct _LV2_External_UI_Widget * _this_); + +} LV2_External_UI_Widget; + +#define LV2_EXTERNAL_UI_RUN(ptr) (ptr)->run(ptr) +#define LV2_EXTERNAL_UI_SHOW(ptr) (ptr)->show(ptr) +#define LV2_EXTERNAL_UI_HIDE(ptr) (ptr)->hide(ptr) + +/** + * On UI instantiation, host must supply LV2_EXTERNAL_UI__Host feature. + * LV2_Feature::data must be pointer to LV2_External_UI_Host. + */ +typedef struct _LV2_External_UI_Host { + /** + * Callback that plugin UI will call when UI (GUI window) is closed by user. + * This callback will be called during execution of LV2_External_UI_Widget::run() + * (i.e. not from background thread). + * + * After this callback is called, UI is defunct. Host must call LV2UI_Descriptor::cleanup(). + * If host wants to make the UI visible again, the UI must be reinstantiated. + * + * @note When using the depreated URI LV2_EXTERNAL_UI_DEPRECATED_URI, + * some hosts will not call LV2UI_Descriptor::cleanup() as they should, + * and may call show() again without re-initialization. + * + * @param controller Host context associated with plugin UI, as + * supplied to LV2UI_Descriptor::instantiate(). + */ + void (*ui_closed)(LV2UI_Controller controller); + + /** + * Optional (may be NULL) "user friendly" identifier which the UI + * may display to allow a user to easily associate this particular + * UI instance with the correct plugin instance as it is represented + * by the host (e.g. "track 1" or "channel 4"). + * + * If supplied by host, the string will be referenced only during + * LV2UI_Descriptor::instantiate() + */ + const char * plugin_human_id; + +} LV2_External_UI_Host; + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* LV2_EXTERNAL_UI_H */ diff --git a/src/effects/lv2/win_gtk.h b/src/effects/lv2/win_gtk.h deleted file mode 100644 index f12e87cb5..000000000 --- a/src/effects/lv2/win_gtk.h +++ /dev/null @@ -1,38 +0,0 @@ -// Ubuntu (and probably others) do not ship this file -// and we need it to embed the LV2 GUIs into a wxWindow. - -/* /////////////////////////////////////////////////////////////////////////// -// Name: wx/gtk/private/win_gtk.h -// Purpose: native GTK+ widget for wxWindow -// Author: Robert Roebling -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////// */ - -#ifndef _WX_GTK_PIZZA_H_ -#define _WX_GTK_PIZZA_H_ - -#define WX_PIZZA(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, wxPizza::type(), wxPizza) -#define WX_IS_PIZZA(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, wxPizza::type()) - -struct WXDLLIMPEXP_CORE wxPizza -{ - // borders styles which can be used with wxPizza - enum { BORDER_STYLES = - wxBORDER_SIMPLE | wxBORDER_RAISED | wxBORDER_SUNKEN | wxBORDER_THEME }; - - static GtkWidget* New(long windowStyle = 0); - static GType type(); - void move(GtkWidget* widget, int x, int y, int width, int height); - void put(GtkWidget* widget, int x, int y, int width, int height); - void scroll(int dx, int dy); - void get_border(GtkBorder& border); - - GtkFixed m_fixed; - GList* m_children; - int m_scroll_x; - int m_scroll_y; - int m_windowStyle; -}; - -#endif // _WX_GTK_PIZZA_H_ diff --git a/src/effects/lv2/zix/common.h b/src/effects/lv2/zix/common.h new file mode 100755 index 000000000..8c52926f6 --- /dev/null +++ b/src/effects/lv2/zix/common.h @@ -0,0 +1,103 @@ +/* + Copyright 2011 David Robillard + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef ZIX_COMMON_H +#define ZIX_COMMON_H + +/** + @addtogroup zix + @{ +*/ + +/** @cond */ +#ifdef ZIX_SHARED +# ifdef _WIN32 +# define ZIX_LIB_IMPORT __declspec(dllimport) +# define ZIX_LIB_EXPORT __declspec(dllexport) +# else +# define ZIX_LIB_IMPORT __attribute__((visibility("default"))) +# define ZIX_LIB_EXPORT __attribute__((visibility("default"))) +# endif +# ifdef ZIX_INTERNAL +# define ZIX_API ZIX_LIB_EXPORT +# else +# define ZIX_API ZIX_LIB_IMPORT +# endif +# define ZIX_PRIVATE static +#elif defined(ZIX_INLINE) +# define ZIX_API static inline +# define ZIX_PRIVATE static inline +#else +# define ZIX_API +# define ZIX_PRIVATE static +#endif +/** @endcond */ + +#ifdef __cplusplus +extern "C" { +#else +# include +#endif + +typedef enum { + ZIX_STATUS_SUCCESS, + ZIX_STATUS_ERROR, + ZIX_STATUS_NO_MEM, + ZIX_STATUS_NOT_FOUND, + ZIX_STATUS_EXISTS, + ZIX_STATUS_BAD_ARG, + ZIX_STATUS_BAD_PERMS, +} ZixStatus; + +static inline const char* +zix_strerror(const ZixStatus status) +{ + switch (status) { + case ZIX_STATUS_SUCCESS: return "Success"; + case ZIX_STATUS_ERROR: return "Unknown error"; + case ZIX_STATUS_NO_MEM: return "Out of memory"; + case ZIX_STATUS_NOT_FOUND: return "Not found"; + case ZIX_STATUS_EXISTS: return "Exists"; + case ZIX_STATUS_BAD_ARG: return "Bad argument"; + case ZIX_STATUS_BAD_PERMS: return "Bad permissions"; + } + return "Unknown error"; +} + +/** + Function for comparing two elements. +*/ +typedef int (*ZixComparator)(const void* a, const void* b, void* user_data); + +/** + Function for testing equality of two elements. +*/ +typedef bool (*ZixEqualFunc)(const void* a, const void* b); + +/** + Function to destroy an element. +*/ +typedef void (*ZixDestroyFunc)(void* ptr); + +/** + @} +*/ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* ZIX_COMMON_H */ diff --git a/src/effects/lv2/zix/ring.cpp b/src/effects/lv2/zix/ring.cpp new file mode 100755 index 000000000..dbb722002 --- /dev/null +++ b/src/effects/lv2/zix/ring.cpp @@ -0,0 +1,222 @@ +/* + Copyright 2011 David Robillard + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#include +#include +#include + +#ifdef HAVE_MLOCK +# include +# define ZIX_MLOCK(ptr, size) mlock((ptr), (size)) +#elif defined(_WIN32) +# include +# define ZIX_MLOCK(ptr, size) VirtualLock((ptr), (size)) +#else +# pragma message("warning: No memory locking, possible RT violations") +# define ZIX_MLOCK(ptr, size) +#endif + +#if defined(__APPLE__) +# include +# define ZIX_FULL_BARRIER() OSMemoryBarrier() +#elif defined(_WIN32) +# include +# define ZIX_FULL_BARRIER() MemoryBarrier() +#elif (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) +# define ZIX_FULL_BARRIER() __sync_synchronize() +#else +# pragma message("warning: No memory barriers, possible SMP bugs") +# define ZIX_FULL_BARRIER() +#endif + +/* No support for any systems with separate read and write barriers */ +#define ZIX_READ_BARRIER() ZIX_FULL_BARRIER() +#define ZIX_WRITE_BARRIER() ZIX_FULL_BARRIER() + +#include "ring.h" + +struct ZixRingImpl { + uint32_t write_head; ///< Read index into buf + uint32_t read_head; ///< Write index into buf + uint32_t size; ///< Size (capacity) in bytes + uint32_t size_mask; ///< Mask for fast modulo + char* buf; ///< Contents +}; + +static inline uint32_t +next_power_of_two(uint32_t size) +{ + // http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 + size--; + size |= size >> 1; + size |= size >> 2; + size |= size >> 4; + size |= size >> 8; + size |= size >> 16; + size++; + return size; +} + +ZixRing* +zix_ring_new(uint32_t size) +{ + ZixRing* ring = (ZixRing*)malloc(sizeof(ZixRing)); + ring->write_head = 0; + ring->read_head = 0; + ring->size = next_power_of_two(size); + ring->size_mask = ring->size - 1; + ring->buf = (char*)malloc(ring->size); + return ring; +} + +void +zix_ring_free(ZixRing* ring) +{ + free(ring->buf); + free(ring); +} + +void +zix_ring_mlock(ZixRing* ring) +{ + ZIX_MLOCK(ring, sizeof(ZixRing)); + ZIX_MLOCK(ring->buf, ring->size); +} + +void +zix_ring_reset(ZixRing* ring) +{ + ring->write_head = 0; + ring->read_head = 0; +} + +static inline uint32_t +read_space_internal(const ZixRing* ring, uint32_t r, uint32_t w) +{ + if (r < w) { + return w - r; + } else { + return (w - r + ring->size) & ring->size_mask; + } +} + +uint32_t +zix_ring_read_space(const ZixRing* ring) +{ + return read_space_internal(ring, ring->read_head, ring->write_head); +} + +static inline uint32_t +write_space_internal(const ZixRing* ring, uint32_t r, uint32_t w) +{ + if (r == w) { + return ring->size - 1; + } else if (r < w) { + return ((r - w + ring->size) & ring->size_mask) - 1; + } else { + return (r - w) - 1; + } +} + +uint32_t +zix_ring_write_space(const ZixRing* ring) +{ + return write_space_internal(ring, ring->read_head, ring->write_head); +} + +uint32_t +zix_ring_capacity(const ZixRing* ring) +{ + return ring->size - 1; +} + +static inline uint32_t +peek_internal(const ZixRing* ring, uint32_t r, uint32_t w, + uint32_t size, void* dst) +{ + if (read_space_internal(ring, r, w) < size) { + return 0; + } + + if (r + size < ring->size) { + memcpy(dst, &ring->buf[r], size); + } else { + const uint32_t first_size = ring->size - r; + memcpy(dst, &ring->buf[r], first_size); + memcpy((char*)dst + first_size, &ring->buf[0], size - first_size); + } + + return size; +} + +uint32_t +zix_ring_peek(ZixRing* ring, void* dst, uint32_t size) +{ + return peek_internal(ring, ring->read_head, ring->write_head, size, dst); +} + +uint32_t +zix_ring_read(ZixRing* ring, void* dst, uint32_t size) +{ + const uint32_t r = ring->read_head; + const uint32_t w = ring->write_head; + + if (peek_internal(ring, r, w, size, dst)) { + ZIX_READ_BARRIER(); + ring->read_head = (r + size) & ring->size_mask; + return size; + } else { + return 0; + } +} + +uint32_t +zix_ring_skip(ZixRing* ring, uint32_t size) +{ + const uint32_t r = ring->read_head; + const uint32_t w = ring->write_head; + if (read_space_internal(ring, r, w) < size) { + return 0; + } + + ZIX_READ_BARRIER(); + ring->read_head = (r + size) & ring->size_mask; + return size; +} + +uint32_t +zix_ring_write(ZixRing* ring, const void* src, uint32_t size) +{ + const uint32_t r = ring->read_head; + const uint32_t w = ring->write_head; + if (write_space_internal(ring, r, w) < size) { + return 0; + } + + if (w + size <= ring->size) { + memcpy(&ring->buf[w], src, size); + ZIX_WRITE_BARRIER(); + ring->write_head = (w + size) & ring->size_mask; + } else { + const uint32_t this_size = ring->size - w; + memcpy(&ring->buf[w], src, this_size); + memcpy(&ring->buf[0], (const char*)src + this_size, size - this_size); + ZIX_WRITE_BARRIER(); + ring->write_head = size - this_size; + } + + return size; +} diff --git a/src/effects/lv2/zix/ring.h b/src/effects/lv2/zix/ring.h new file mode 100755 index 000000000..59c987739 --- /dev/null +++ b/src/effects/lv2/zix/ring.h @@ -0,0 +1,130 @@ +/* + Copyright 2011-2014 David Robillard + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef ZIX_RING_H +#define ZIX_RING_H + +#include + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + @addtogroup zix + @{ + @name Ring + @{ +*/ + +/** + A lock-free ring buffer. + + Thread-safe with a single reader and single writer, and realtime safe + on both ends. +*/ +typedef struct ZixRingImpl ZixRing; + +/** + Create a new ring. + @param size Size in bytes (note this may be rounded up). + + At most `size` - 1 bytes may be stored in the ring at once. +*/ +ZixRing* +zix_ring_new(uint32_t size); + +/** + Destroy a ring. +*/ +void +zix_ring_free(ZixRing* ring); + +/** + Lock the ring data into physical memory. + + This function is NOT thread safe or real-time safe, but it should be called + after zix_ring_new() to lock all ring memory to avoid page faults while + using the ring (i.e. this function MUST be called first in order for the + ring to be truly real-time safe). + +*/ +void +zix_ring_mlock(ZixRing* ring); + +/** + Reset (empty) a ring. + + This function is NOT thread-safe, it may only be called when there are no + readers or writers. +*/ +void +zix_ring_reset(ZixRing* ring); + +/** + Return the number of bytes of space available for reading. +*/ +uint32_t +zix_ring_read_space(const ZixRing* ring); + +/** + Return the number of bytes of space available for writing. +*/ +uint32_t +zix_ring_write_space(const ZixRing* ring); + +/** + Return the capacity (i.e. total write space when empty). +*/ +uint32_t +zix_ring_capacity(const ZixRing* ring); + +/** + Read from the ring without advancing the read head. +*/ +uint32_t +zix_ring_peek(ZixRing* ring, void* dst, uint32_t size); + +/** + Read from the ring and advance the read head. +*/ +uint32_t +zix_ring_read(ZixRing* ring, void* dst, uint32_t size); + +/** + Skip data in the ring (advance read head without reading). +*/ +uint32_t +zix_ring_skip(ZixRing* ring, uint32_t size); + +/** + Write data to the ring. +*/ +uint32_t +zix_ring_write(ZixRing* ring, const void* src, uint32_t size); + +/** + @} + @} +*/ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* ZIX_RING_H */ diff --git a/tests/Makefile.in b/tests/Makefile.in index 205a112d9..9f9ebcf59 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -165,7 +165,9 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/SequenceTest-SequenceTest.Po \ + ./$(DEPDIR)/SimpleBlockFileTest-SimpleBlockFileTest.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -616,7 +618,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -666,8 +667,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -702,8 +703,14 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequenceTest-SequenceTest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SimpleBlockFileTest-SimpleBlockFileTest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequenceTest-SequenceTest.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SimpleBlockFileTest-SimpleBlockFileTest.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -935,7 +942,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: $(check_PROGRAMS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -985,7 +992,10 @@ SimpleBlockFileTest.log: SimpleBlockFileTest$(EXEEXT) @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -1060,7 +1070,8 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/SequenceTest-SequenceTest.Po + -rm -f ./$(DEPDIR)/SimpleBlockFileTest-SimpleBlockFileTest.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -1106,7 +1117,8 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/SequenceTest-SequenceTest.Po + -rm -f ./$(DEPDIR)/SimpleBlockFileTest-SimpleBlockFileTest.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -1127,16 +1139,16 @@ uninstall-am: .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ + check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am diff --git a/win/Projects/Audacity/Audacity.vcxproj b/win/Projects/Audacity/Audacity.vcxproj index f663c9aff..e5490e6e1 100755 --- a/win/Projects/Audacity/Audacity.vcxproj +++ b/win/Projects/Audacity/Audacity.vcxproj @@ -55,7 +55,7 @@ MaxSpeed - $(WXWIN)\lib\vc_dll\mswu;$(WXWIN)\include;..\..;..\..\..\include;..\..\..\src;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\suil;..\..\..\lib-src\lame;$(GSTREAMER_SDK)\include\gstreamer-1.0;$(GSTREAMER_SDK)\include\glib-2.0;$(GSTREAMER_SDK)\lib\glib-2.0\include;%(AdditionalIncludeDirectories) + $(WXWIN)\lib\vc_dll\mswu;$(WXWIN)\include;..\..;..\..\..\include;..\..\..\src;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;$(OutDir)\include;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\suil;..\..\..\lib-src\lame;$(GSTREAMER_SDK)\include\gstreamer-1.0;$(GSTREAMER_SDK)\include\glib-2.0;$(GSTREAMER_SDK)\lib\glib-2.0\include;%(AdditionalIncludeDirectories) BUILDING_AUDACITY;FLAC__NO_DLL;XML_STATIC;__STDC_CONSTANT_MACROS;WXINTL_NO_GETTEXT_MACRO;WXUSINGDLL;__WXMSW__;wxDEBUG_LEVEL=0;NDEBUG;WIN32;STRICT;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -86,7 +86,7 @@ Disabled - $(WXWIN)\lib\vc_dll\mswud;$(WXWIN)\include;..\..;..\..\..\include;..\..\..\src;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\suil;..\..\..\lib-src\lame;$(GSTREAMER_SDK)\include\gstreamer-1.0;$(GSTREAMER_SDK)\include\glib-2.0;$(GSTREAMER_SDK)\lib\glib-2.0\include;%(AdditionalIncludeDirectories) + $(WXWIN)\lib\vc_dll\mswud;$(WXWIN)\include;..\..;..\..\..\include;..\..\..\src;..\..\..\lib-src\expat\lib;..\..\..\lib-src\FileDialog;..\..\..\lib-src\FileDialog\win;..\..\..\lib-src\ffmpeg\win32;..\..\..\lib-src\ffmpeg;..\..\..\lib-src\lib-widget-extra;..\..\..\lib-src\libflac\include;..\..\..\lib-src\libid3tag;..\..\..\lib-src\libmad\msvc++;..\..\..\lib-src\libmad;..\..\..\lib-src\libnyquist;..\..\..\lib-src\libogg\include;..\..\..\lib-src\libscorealign;..\libsndfile;..\..\..\lib-src\libsoxr\src;..\..\..\lib-src\libvamp;..\..\..\lib-src\libvorbis\include;..\..\..\lib-src\portaudio-v19\include;..\..\..\lib-src\portmixer\include;..\..\..\lib-src\portsmf;..\..\..\lib-src\sbsms\include;..\..\..\lib-src\soundtouch\include;..\..\..\lib-src\twolame\libtwolame;..\..\..\lib-src\portmidi\pm_common;..\..\..\lib-src\portmidi\pm_win;..\..\..\lib-src\portmidi\porttime;$(OutDir)\include;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\suil;..\..\..\lib-src\lame;$(GSTREAMER_SDK)\include\gstreamer-1.0;$(GSTREAMER_SDK)\include\glib-2.0;$(GSTREAMER_SDK)\lib\glib-2.0\include;%(AdditionalIncludeDirectories) BUILDING_AUDACITY;FLAC__NO_DLL;XML_STATIC;__STDC_CONSTANT_MACROS;WXINTL_NO_GETTEXT_MACRO;WXUSINGDLL;__WXMSW__;__WXDEBUG__;_DEBUG;WIN32;STRICT;%(PreprocessorDefinitions) true EnableFastChecks @@ -162,6 +162,7 @@ + @@ -561,6 +562,8 @@ + + diff --git a/win/Projects/Audacity/Audacity.vcxproj.filters b/win/Projects/Audacity/Audacity.vcxproj.filters index 1ca5b2588..b17d5072b 100755 --- a/win/Projects/Audacity/Audacity.vcxproj.filters +++ b/win/Projects/Audacity/Audacity.vcxproj.filters @@ -108,6 +108,9 @@ {86457c18-e1ec-4e2a-9790-f4ceaf6380a3} + + {fa7108aa-5bf5-4e48-b33a-6af62340e5a1} + @@ -1253,6 +1256,9 @@ src\tracks\ui + + src\effects\lv2\zix + @@ -2443,6 +2449,12 @@ src + + src\effects\lv2\zix + + + src\effects\lv2\zix + diff --git a/win/Projects/Audacity/Directory.Build.props b/win/Projects/Audacity/Directory.Build.props old mode 100644 new mode 100755 diff --git a/win/Projects/lv2/lv2.vcxproj b/win/Projects/lv2/lv2.vcxproj index b4d0f8865..643f35643 100755 --- a/win/Projects/lv2/lv2.vcxproj +++ b/win/Projects/lv2/lv2.vcxproj @@ -47,11 +47,12 @@ $(SolutionDir)$(Configuration)\ $(Configuration)\ + Clean MaxSpeed - ..\..\..\lib-src\lv2\windows;..\..\..\lib-src\lv2\sord\src;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\serd;..\..\..\lib-src\lv2\sord;..\..\..\lib-src\lv2\sratom;..\..\..\lib-src\lv2\suil;%(AdditionalIncludeDirectories) + ..\..\..\lib-src\lv2\windows;..\..\..\lib-src\lv2\include;..\..\..\lib-src\lv2\sord\src;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lilv\src;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\serd;..\..\..\lib-src\lv2\sord;..\..\..\lib-src\lv2\sratom;..\..\..\lib-src\lv2\suil;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_LIB;$(AudacityConditionalSnprintf);HAVE_FMAX;LILV_INTERNAL;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -61,11 +62,27 @@ CompileAsCpp 4996;%(DisableSpecificWarnings) + + echo "$(OutDir)\include\lv2" +ECHO ON +IF EXIST "$(OutDir)\include\lv2" GOTO done +MKDIR "$(OutDir)\include\lv2\lv2plug.in\ns\ext" +MKDIR "$(OutDir)\include\lv2\lv2plug.in\ns\extensions" +MKDIR "$(OutDir)\include\lv2\lv2plug.in\ns\lv2core" +XCOPY /IE "$(SolutionDir)\..\lib-src\lv2\lv2\lv2" "$(OutDir)\include\lv2" +XCOPY /IE "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\core\lv2.h" "$(OutDir)\include\lv2" +XCOPY /IE "$(SolutionDir)\..\lib-src\lv2\lv2\lv2" "$(OutDir)\include\lv2\lv2plug.in\ns\ext" +XCOPY /IE "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\ui\*.h" "$(OutDir)\include\lv2\lv2plug.in\ns\extensions\ui" +XCOPY /IE "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\units\*.h" "$(OutDir)\include\lv2\lv2plug.in\ns\extensions\units" +XCOPY /IE "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\core\*.h" "$(OutDir)\include\lv2\lv2plug.in\ns\lv2core" +:done + + Disabled - ..\..\..\lib-src\lv2\windows;..\..\..\lib-src\lv2\sord\src;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\serd;..\..\..\lib-src\lv2\sord;..\..\..\lib-src\lv2\sratom;..\..\..\lib-src\lv2\suil;%(AdditionalIncludeDirectories) + $(OutDir)\include;..\..\..\lib-src\lv2\windows;..\..\..\lib-src\lv2\sord\src;..\..\..\lib-src\lv2\lilv;..\..\..\lib-src\lv2\lilv\src;..\..\..\lib-src\lv2\lv2;..\..\..\lib-src\lv2\serd;..\..\..\lib-src\lv2\sord;..\..\..\lib-src\lv2\sratom;..\..\..\lib-src\lv2\suil;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_LIB;$(AudacityConditionalSnprintf);HAVE_FMAX;LILV_INTERNAL;%(PreprocessorDefinitions) true EnableFastChecks @@ -83,16 +100,37 @@ true + + IF EXIST "$(OutDir)\include\lv2" GOTO done +MKDIR "$(OutDir)\include\lv2\lv2plug.in\ns\ext" +MKDIR "$(OutDir)\include\lv2\lv2plug.in\ns\extensions" +MKDIR "$(OutDir)\include\lv2\lv2plug.in\ns\lv2core" +XCOPY /I /E /Q "$(SolutionDir)\..\lib-src\lv2\lv2\lv2" "$(OutDir)\include\lv2" +XCOPY /I /E /Q "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\core\lv2.h" "$(OutDir)\include" +XCOPY /I /E /Q "$(SolutionDir)\..\lib-src\lv2\lv2\lv2" "$(OutDir)\include\lv2\lv2plug.in\ns\ext" +XCOPY /I /E /Q "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\ui\*.h" "$(OutDir)\include\lv2\lv2plug.in\ns\extensions\ui" +XCOPY /I /E /Q "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\units\*.h" "$(OutDir)\include\lv2\lv2plug.in\ns\extensions\units" +XCOPY /I /E /Q "$(SolutionDir)\..\lib-src\lv2\lv2\lv2\core\*.h" "$(OutDir)\include\lv2\lv2plug.in\ns\lv2core" +:done + + Performing Custom Build Step + + + RD /S /Q "$(OutDir)/include" + dummy + Performing Custom Clean Step + - - CompileAsCpp + + + $(IntDir)\lilv_instance.obj + $(IntDir)\lilv_instance.obj - - $(IntDir)lilv-node.obj - $(IntDir)lilv-node.obj + $(IntDir)\lilv_node.obj + $(IntDir)\lilv_node.obj @@ -103,33 +141,78 @@ + + + + + $(IntDir)\serd_node.obj + $(IntDir)\serd_node.obj + - + + + + - - + + $(IntDir)\suil_instance.obj + $(IntDir)\suil_instance.obj + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/win/Projects/lv2/lv2.vcxproj.filters b/win/Projects/lv2/lv2.vcxproj.filters index 47541dfa6..9571f1144 100755 --- a/win/Projects/lv2/lv2.vcxproj.filters +++ b/win/Projects/lv2/lv2.vcxproj.filters @@ -64,8 +64,89 @@ {aff2e7d6-f42d-4c74-8fcc-afc61eb173e0} + + {71ea567f-2ee0-48e8-9fd2-0bbeb3ad5793} + + + {71dc7ddf-2c35-4c85-a240-fc1727bc2972} + + + {b50c6bd7-f653-4f29-9cdb-51bffa4ec599} + + + {4ad29d4d-bc79-4024-865d-9628aa9a4a90} + + + {9bfa79df-8c29-4906-9074-68e4d05020ef} + + + {77249059-9994-4c8d-94cf-7009fb706698} + + + {cbaf795c-ff65-4836-a7b0-ee3edee1cf0f} + + + {3e45f6b0-a278-4e32-9fc5-0e41e07c94c0} + + + {62b5e770-a1cf-4f94-ae04-efaf851c3228} + + + {e2a699da-e36d-49db-acde-b14ed23134b5} + + + {92bfcd2c-9d6e-4ac4-90f6-f49196b43b04} + + + {ff62d40e-6042-41bd-9180-e7ade240c11d} + + + {d658a88d-f3d6-42a3-a0a2-8aada0e62787} + + + {f2b769e1-6536-4be2-892a-c4dfc43a74c6} + + + {8ffcf542-361f-4d88-9e10-e489b8a34a52} + + + {48107c6a-a9f7-4f53-a838-e56b09ce010f} + + + {4421b238-9f7b-45ad-9a96-c6963c4d81af} + + + {b376e2bb-4a92-47d9-85af-bf02aa327854} + + + {98b89324-dd5b-4e96-9ba1-82abb48b1ae4} + + + {c39f617d-2530-4143-940f-2152a5869d62} + + + {d63d6499-2cfc-47c8-8f39-778e92dfb738} + + + {ec7611c0-ecd5-4b1c-83c9-fc14edf76c77} + + + {aba9e39f-7c42-4937-b295-a21d4d075067} + + + {5099e59f-7172-43bf-a8b0-e1d4317d927f} + + + {8622d246-048d-453b-9cd5-ffbd14bc044c} + + + {57ac3edf-02f0-429e-89c3-26578f0fc119} + + + lilv\Source Files\zix + lilv\Source Files @@ -105,13 +186,19 @@ lilv\Source Files + + serd\Source Files + serd\Source Files + + serd\Source Files + serd\Source Files - + serd\Source Files @@ -123,9 +210,24 @@ serd\Source Files + + sord\Source Files\zix + + + sord\Source Files\zix + + + sord\Source Files\zix + sord\Source Files + + sord\Source Files + + + sord\Source Files + sord\Source Files @@ -135,17 +237,11 @@ suil\Source Files - + suil\Source Files - - sord\Source Files\zix - - - sord\Source Files\zix - - - sord\Source Files\zix + + serd\Source Files @@ -155,24 +251,6 @@ lilv\Header Files - - serd\Header Files - - - serd\Header Files - - - sord\Header Files - - - sord\Header Files - - - sratom\Header Files - - - suil\Header Files - windows\Header Fiels @@ -188,6 +266,21 @@ windows\Header Fiels + + lilv\Header Files\zix + + + lilv\Header Files\zix + + + serd\Header Files + + + serd\Header Files + + + sord\Header Files\zix + sord\Header Files\zix @@ -197,8 +290,110 @@ sord\Header Files\zix - - sord\Header Files\zix + + sord\Header Files + + + sratom\Header Files + + + sord\Header Files + + + serd\Header Files + + + suil\Header Files + + + suil\Header Files + + + lv2\Headers\atom + + + lv2\Headers\atom + + + lv2\Headers\atom + + + lv2\Headers\buf-size + + + lv2\Headers\core + + + lv2\Headers\core + + + lv2\Headers\core + + + lv2\Headers\data-access + + + lv2\Headers\dynmanifest + + + lv2\Headers\event + + + lv2\Headers\event + + + lv2\Headers\instance-access + + + lv2\Headers\log + + + lv2\Headers\midi + + + lv2\Headers\morph + + + lv2\Headers\state + + + lv2\Headers\time + + + lv2\Headers\ui + + + lv2\Headers\units + + + lv2\Headers\uri-map + + + lv2\Headers\urid + + + lv2\Headers\worker + + + lv2\Headers\options + + + lv2\Headers\parameters + + + lv2\Headers\patch + + + lv2\Headers\port-groups + + + lv2\Headers\port-props + + + lv2\Headers\presets + + + lv2\Headers\resize-port \ No newline at end of file