# HG changeset patch # User Chris Cannam # Date 1442492971 -3600 # Node ID 9918aaf0b790a10dd536d79c52f87d889873b428 # Parent 40ff7c801fc2db62d899b6c7ea9871b12cc8eaae# Parent f0b4285cad7ada4c326d922ead632624c88598b9 Merge from branch "scalable-icons" diff -r f0b4285cad7a -r 9918aaf0b790 .hgsub --- a/.hgsub Thu Sep 17 13:28:02 2015 +0100 +++ b/.hgsub Thu Sep 17 13:29:31 2015 +0100 @@ -2,5 +2,8 @@ svgui = https://code.soundsoftware.ac.uk/hg/svgui svapp = https://code.soundsoftware.ac.uk/hg/svapp dataquay = https://bitbucket.org/breakfastquay/dataquay +bqvec = https://bitbucket.org/breakfastquay/bqvec +bqresample = https://bitbucket.org/breakfastquay/bqresample +bqaudioio = https://bitbucket.org/breakfastquay/bqaudioio sv-dependency-builds = https://code.soundsoftware.ac.uk/hg/sv-dependency-builds icons/scalable = https://code.soundsoftware.ac.uk/hg/sv-iconset diff -r f0b4285cad7a -r 9918aaf0b790 .hgsubstate --- a/.hgsubstate Thu Sep 17 13:28:02 2015 +0100 +++ b/.hgsubstate Thu Sep 17 13:29:31 2015 +0100 @@ -1,6 +1,9 @@ +187d6a02a90e62f392b4ec6ca00947d346c9d6dc bqaudioio +62c40e7f9231e459091c3352c5d4b6001be127ca bqresample +94b6ebd5e8ab897e5b294fd77b4113e8d6d78b13 bqvec d16f0fd6db6104d87882bc43788a3bb1b0f8c528 dataquay c6ca18292bfe9ba9bd67b0aa59320893f2954333 icons/scalable 55ece8862b6d3a54aad271a53f9c1615e5d3bcf8 sv-dependency-builds -549f772160484927754b245436281bfcb401468e svapp -32ab6c48efaa23d24a67315bccdc27f3ba1a18d5 svcore -c91878670297fa9e04835f852c84f1b7db592343 svgui +52c0aff69478e2fcb6a3ae9e7aaa56ee3f07c87a svapp +2c43f99040689b482b52971b1edef6b697427f21 svcore +8588b97f1d1c324a9d2c14e646b07fc00442172f svgui diff -r f0b4285cad7a -r 9918aaf0b790 bq.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bq.pro Thu Sep 17 13:29:31 2015 +0100 @@ -0,0 +1,93 @@ + +TEMPLATE = lib + +win32-g++ { + INCLUDEPATH += sv-dependency-builds/win32-mingw/include + LIBS += -Lsv-dependency-builds/win32-mingw/lib +} +win32-msvc* { + INCLUDEPATH += sv-dependency-builds/win32-msvc/include + LIBS += -Lsv-dependency-builds/win32-msvc/lib +} +mac* { + INCLUDEPATH += sv-dependency-builds/osx/include + LIBS += -Lsv-dependency-builds/osx/lib +} + +exists(config.pri) { + include(config.pri) +} + +!exists(config.pri) { + + CONFIG += release + DEFINES += NDEBUG BUILD_RELEASE NO_TIMING + + DEFINES += HAVE_BZ2 HAVE_FFTW3 HAVE_FFTW3F HAVE_SNDFILE HAVE_SAMPLERATE HAVE_VAMP HAVE_VAMPHOSTSDK HAVE_RUBBERBAND HAVE_DATAQUAY HAVE_LIBLO HAVE_MAD HAVE_ID3TAG HAVE_PORTAUDIO + + LIBS += -lbz2 -lrubberband -lvamp-hostsdk -lfftw3 -lfftw3f -lsndfile -lFLAC -logg -lvorbis -lvorbisenc -lvorbisfile -logg -lmad -lid3tag -lportaudio -lsamplerate -lz -lsord-0 -lserd-0 -llo + + win* { + LIBS += -lwinmm -lws2_32 + } + macx* { + DEFINES += HAVE_COREAUDIO + LIBS += -framework CoreAudio -framework CoreMidi -framework AudioUnit -framework AudioToolbox -framework CoreFoundation -framework CoreServices -framework Accelerate + } +} + +CONFIG += staticlib warn_on stl exceptions c++11 +CONFIG -= qt + +TARGET = bq + +DEPENDPATH += bqvec bqresample bqaudioio bqvec/bqvec bqresample/bqresample bqaudioio/bqaudioio +INCLUDEPATH += bqvec bqresample bqaudioio bqvec/bqvec bqresample/bqresample bqaudioio/bqaudioio + +OBJECTS_DIR = o + +HEADERS += \ + bqvec/bqvec/Allocators.h \ + bqvec/bqvec/Barrier.h \ + bqvec/bqvec/ComplexTypes.h \ + bqvec/bqvec/Restrict.h \ + bqvec/bqvec/RingBuffer.h \ + bqvec/bqvec/VectorOpsComplex.h \ + bqvec/bqvec/VectorOps.h \ + bqvec/pommier/neon_mathfun.h \ + bqvec/pommier/sse_mathfun.h \ + bqresample/bqresample/Resampler.h \ + bqresample/speex/speex_resampler.h \ + bqaudioio/bqaudioio/ApplicationPlaybackSource.h \ + bqaudioio/bqaudioio/ApplicationRecordTarget.h \ + bqaudioio/bqaudioio/AudioFactory.h \ + bqaudioio/bqaudioio/SystemAudioIO.h \ + bqaudioio/bqaudioio/SystemPlaybackTarget.h \ + bqaudioio/bqaudioio/SystemRecordSource.h \ + bqaudioio/src/DynamicJACK.h \ + bqaudioio/src/JACKAudioIO.h \ + bqaudioio/src/JACKPlaybackTarget.h \ + bqaudioio/src/JACKRecordSource.h \ + bqaudioio/src/PortAudioIO.h \ + bqaudioio/src/PortAudioPlaybackTarget.h \ + bqaudioio/src/PortAudioRecordSource.h \ + bqaudioio/src/PulseAudioIO.h \ + bqaudioio/src/PulseAudioPlaybackTarget.h + +SOURCES += \ + bqvec/src/Allocators.cpp \ + bqvec/src/Barrier.cpp \ + bqvec/src/VectorOpsComplex.cpp \ + bqresample/src/Resampler.cpp \ + bqaudioio/src/AudioFactory.cpp \ + bqaudioio/src/JACKAudioIO.cpp \ + bqaudioio/src/JACKPlaybackTarget.cpp \ + bqaudioio/src/JACKRecordSource.cpp \ + bqaudioio/src/PortAudioIO.cpp \ + bqaudioio/src/PortAudioPlaybackTarget.cpp \ + bqaudioio/src/PortAudioRecordSource.cpp \ + bqaudioio/src/PulseAudioIO.cpp \ + bqaudioio/src/PulseAudioPlaybackTarget.cpp \ + bqaudioio/src/SystemPlaybackTarget.cpp \ + bqaudioio/src/SystemRecordSource.cpp + diff -r f0b4285cad7a -r 9918aaf0b790 configure --- a/configure Thu Sep 17 13:28:02 2015 +0100 +++ b/configure Thu Sep 17 13:29:31 2015 +0100 @@ -648,8 +648,8 @@ libpulse_CFLAGS JACK_LIBS JACK_CFLAGS -portaudio_2_0_LIBS -portaudio_2_0_CFLAGS +portaudio_LIBS +portaudio_CFLAGS liblo_LIBS liblo_CFLAGS serd_LIBS @@ -662,8 +662,8 @@ vamphostsdk_CFLAGS vamp_LIBS vamp_CFLAGS -samplerate_LIBS -samplerate_CFLAGS +libsamplerate_LIBS +libsamplerate_CFLAGS sndfile_LIBS sndfile_CFLAGS fftw3f_LIBS @@ -760,8 +760,8 @@ fftw3f_LIBS sndfile_CFLAGS sndfile_LIBS -samplerate_CFLAGS -samplerate_LIBS +libsamplerate_CFLAGS +libsamplerate_LIBS vamp_CFLAGS vamp_LIBS vamphostsdk_CFLAGS @@ -774,8 +774,8 @@ serd_LIBS liblo_CFLAGS liblo_LIBS -portaudio_2_0_CFLAGS -portaudio_2_0_LIBS +portaudio_CFLAGS +portaudio_LIBS JACK_CFLAGS JACK_LIBS libpulse_CFLAGS @@ -1429,10 +1429,10 @@ C compiler flags for sndfile, overriding pkg-config sndfile_LIBS linker flags for sndfile, overriding pkg-config - samplerate_CFLAGS - C compiler flags for samplerate, overriding pkg-config - samplerate_LIBS - linker flags for samplerate, overriding pkg-config + libsamplerate_CFLAGS + C compiler flags for libsamplerate, overriding pkg-config + libsamplerate_LIBS + linker flags for libsamplerate, overriding pkg-config vamp_CFLAGS C compiler flags for vamp, overriding pkg-config vamp_LIBS linker flags for vamp, overriding pkg-config vamphostsdk_CFLAGS @@ -1450,10 +1450,10 @@ liblo_CFLAGS C compiler flags for liblo, overriding pkg-config liblo_LIBS linker flags for liblo, overriding pkg-config - portaudio_2_0_CFLAGS - C compiler flags for portaudio_2_0, overriding pkg-config - portaudio_2_0_LIBS - linker flags for portaudio_2_0, overriding pkg-config + portaudio_CFLAGS + C compiler flags for portaudio, overriding pkg-config + portaudio_LIBS + linker flags for portaudio, overriding pkg-config JACK_CFLAGS C compiler flags for JACK, overriding pkg-config JACK_LIBS linker flags for JACK, overriding pkg-config libpulse_CFLAGS @@ -5009,18 +5009,18 @@ fi -SV_MODULE_MODULE=samplerate +SV_MODULE_MODULE=libsamplerate SV_MODULE_VERSION_TEST="samplerate >= 0.1.2" SV_MODULE_HEADER=samplerate.h SV_MODULE_LIB=samplerate SV_MODULE_FUNC=src_new -SV_MODULE_HAVE=HAVE_$(echo samplerate | tr 'a-z' 'A-Z') +SV_MODULE_HAVE=HAVE_$(echo libsamplerate | tr 'a-z' 'A-Z') SV_MODULE_FAILED=1 -if test -n "$samplerate_LIBS" ; then +if test -n "$libsamplerate_LIBS" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE" >&5 $as_echo "$as_me: User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE" >&6;} - CXXFLAGS="$CXXFLAGS $samplerate_CFLAGS" - LIBS="$LIBS $samplerate_LIBS" + CXXFLAGS="$CXXFLAGS $libsamplerate_CFLAGS" + LIBS="$LIBS $libsamplerate_LIBS" SV_MODULE_FAILED="" fi if test -z "$SV_MODULE_VERSION_TEST" ; then @@ -5029,11 +5029,11 @@ if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for samplerate" >&5 -$as_echo_n "checking for samplerate... " >&6; } - -if test -n "$samplerate_CFLAGS"; then - pkg_cv_samplerate_CFLAGS="$samplerate_CFLAGS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsamplerate" >&5 +$as_echo_n "checking for libsamplerate... " >&6; } + +if test -n "$libsamplerate_CFLAGS"; then + pkg_cv_libsamplerate_CFLAGS="$libsamplerate_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$SV_MODULE_VERSION_TEST\""; } >&5 @@ -5041,7 +5041,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_samplerate_CFLAGS=`$PKG_CONFIG --cflags "$SV_MODULE_VERSION_TEST" 2>/dev/null` + pkg_cv_libsamplerate_CFLAGS=`$PKG_CONFIG --cflags "$SV_MODULE_VERSION_TEST" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -5049,8 +5049,8 @@ else pkg_failed=untried fi -if test -n "$samplerate_LIBS"; then - pkg_cv_samplerate_LIBS="$samplerate_LIBS" +if test -n "$libsamplerate_LIBS"; then + pkg_cv_libsamplerate_LIBS="$libsamplerate_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$SV_MODULE_VERSION_TEST\""; } >&5 @@ -5058,7 +5058,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_samplerate_LIBS=`$PKG_CONFIG --libs "$SV_MODULE_VERSION_TEST" 2>/dev/null` + pkg_cv_libsamplerate_LIBS=`$PKG_CONFIG --libs "$SV_MODULE_VERSION_TEST" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -5079,12 +5079,12 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - samplerate_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` + libsamplerate_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` else - samplerate_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` + libsamplerate_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$samplerate_PKG_ERRORS" >&5 + echo "$libsamplerate_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;} @@ -5094,11 +5094,11 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5 $as_echo "$as_me: Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;} else - samplerate_CFLAGS=$pkg_cv_samplerate_CFLAGS - samplerate_LIBS=$pkg_cv_samplerate_LIBS + libsamplerate_CFLAGS=$pkg_cv_libsamplerate_CFLAGS + libsamplerate_LIBS=$pkg_cv_libsamplerate_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $samplerate_CFLAGS";LIBS="$LIBS $samplerate_LIBS";SV_MODULE_FAILED="" + HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $libsamplerate_CFLAGS";LIBS="$LIBS $libsamplerate_LIBS";SV_MODULE_FAILED="" fi fi if test -n "$SV_MODULE_FAILED"; then @@ -6071,18 +6071,18 @@ fi -SV_MODULE_MODULE=portaudio_2_0 +SV_MODULE_MODULE=portaudio SV_MODULE_VERSION_TEST="portaudio-2.0 >= 19" SV_MODULE_HEADER=portaudio.h SV_MODULE_LIB=portaudio SV_MODULE_FUNC=Pa_IsFormatSupported -SV_MODULE_HAVE=HAVE_$(echo portaudio_2_0 | tr 'a-z' 'A-Z') +SV_MODULE_HAVE=HAVE_$(echo portaudio | tr 'a-z' 'A-Z') SV_MODULE_FAILED=1 -if test -n "$portaudio_2_0_LIBS" ; then +if test -n "$portaudio_LIBS" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE" >&5 $as_echo "$as_me: User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE" >&6;} - CXXFLAGS="$CXXFLAGS $portaudio_2_0_CFLAGS" - LIBS="$LIBS $portaudio_2_0_LIBS" + CXXFLAGS="$CXXFLAGS $portaudio_CFLAGS" + LIBS="$LIBS $portaudio_LIBS" SV_MODULE_FAILED="" fi if test -z "$SV_MODULE_VERSION_TEST" ; then @@ -6091,11 +6091,11 @@ if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for portaudio_2_0" >&5 -$as_echo_n "checking for portaudio_2_0... " >&6; } - -if test -n "$portaudio_2_0_CFLAGS"; then - pkg_cv_portaudio_2_0_CFLAGS="$portaudio_2_0_CFLAGS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for portaudio" >&5 +$as_echo_n "checking for portaudio... " >&6; } + +if test -n "$portaudio_CFLAGS"; then + pkg_cv_portaudio_CFLAGS="$portaudio_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$SV_MODULE_VERSION_TEST\""; } >&5 @@ -6103,7 +6103,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_portaudio_2_0_CFLAGS=`$PKG_CONFIG --cflags "$SV_MODULE_VERSION_TEST" 2>/dev/null` + pkg_cv_portaudio_CFLAGS=`$PKG_CONFIG --cflags "$SV_MODULE_VERSION_TEST" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -6111,8 +6111,8 @@ else pkg_failed=untried fi -if test -n "$portaudio_2_0_LIBS"; then - pkg_cv_portaudio_2_0_LIBS="$portaudio_2_0_LIBS" +if test -n "$portaudio_LIBS"; then + pkg_cv_portaudio_LIBS="$portaudio_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$SV_MODULE_VERSION_TEST\""; } >&5 @@ -6120,7 +6120,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_portaudio_2_0_LIBS=`$PKG_CONFIG --libs "$SV_MODULE_VERSION_TEST" 2>/dev/null` + pkg_cv_portaudio_LIBS=`$PKG_CONFIG --libs "$SV_MODULE_VERSION_TEST" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -6141,12 +6141,12 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - portaudio_2_0_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` + portaudio_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` else - portaudio_2_0_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` + portaudio_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$SV_MODULE_VERSION_TEST" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$portaudio_2_0_PKG_ERRORS" >&5 + echo "$portaudio_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;} @@ -6156,11 +6156,11 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&5 $as_echo "$as_me: Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means" >&6;} else - portaudio_2_0_CFLAGS=$pkg_cv_portaudio_2_0_CFLAGS - portaudio_2_0_LIBS=$pkg_cv_portaudio_2_0_LIBS + portaudio_CFLAGS=$pkg_cv_portaudio_CFLAGS + portaudio_LIBS=$pkg_cv_portaudio_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $portaudio_2_0_CFLAGS";LIBS="$LIBS $portaudio_2_0_LIBS";SV_MODULE_FAILED="" + HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $portaudio_CFLAGS";LIBS="$LIBS $portaudio_LIBS";SV_MODULE_FAILED="" fi fi if test -n "$SV_MODULE_FAILED"; then diff -r f0b4285cad7a -r 9918aaf0b790 configure.ac --- a/configure.ac Thu Sep 17 13:28:02 2015 +0100 +++ b/configure.ac Thu Sep 17 13:29:31 2015 +0100 @@ -82,7 +82,7 @@ SV_MODULE_REQUIRED([fftw3],[fftw3 >= 3.0.0],[fftw3.h],[fftw3],[fftw_execute]) SV_MODULE_REQUIRED([fftw3f],[fftw3f >= 3.0.0],[fftw3.h],[fftw3f],[fftwf_execute]) SV_MODULE_REQUIRED([sndfile],[sndfile >= 1.0.16],[sndfile.h],[sndfile],[sf_open]) -SV_MODULE_REQUIRED([samplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new]) +SV_MODULE_REQUIRED([libsamplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new]) SV_MODULE_REQUIRED([vamp],[vamp >= 2.1],[vamp/vamp.h],[],[]) SV_MODULE_REQUIRED([vamphostsdk],[vamp-hostsdk >= 2.5],[vamp-hostsdk/PluginLoader.h],[vamp-hostsdk],[libvamphostsdk_v_2_5_present]) SV_MODULE_REQUIRED([rubberband],[rubberband],[rubberband/RubberBandStretcher.h],[rubberband],[rubberband_new]) @@ -90,7 +90,7 @@ SV_MODULE_REQUIRED([serd],[serd-0 >= 0.5],[serd/serd.h],[serd-0],[serd_reader_read_file]) SV_MODULE_OPTIONAL([liblo],[],[lo/lo.h],[lo],[lo_address_new]) -SV_MODULE_OPTIONAL([portaudio_2_0],[portaudio-2.0 >= 19],[portaudio.h],[portaudio],[Pa_IsFormatSupported]) +SV_MODULE_OPTIONAL([portaudio],[portaudio-2.0 >= 19],[portaudio.h],[portaudio],[Pa_IsFormatSupported]) SV_MODULE_OPTIONAL([JACK],[jack >= 0.100],[jack/jack.h],[jack],[jack_client_open]) SV_MODULE_OPTIONAL([libpulse],[libpulse >= 0.9],[pulse/pulseaudio.h],[pulse],[pa_stream_new]) SV_MODULE_OPTIONAL([lrdf],[lrdf >= 0.2],[lrdf.h],[lrdf],[lrdf_init]) diff -r f0b4285cad7a -r 9918aaf0b790 deploy/osx/copy-qt.sh --- a/deploy/osx/copy-qt.sh Thu Sep 17 13:28:02 2015 +0100 +++ b/deploy/osx/copy-qt.sh Thu Sep 17 13:29:31 2015 +0100 @@ -1,5 +1,7 @@ #!/bin/bash +set -eu + app="$1" if [ -z "$app" ]; then echo "Usage: $0 " @@ -7,9 +9,9 @@ exit 2 fi -frameworks="QtCore QtNetwork QtGui QtXml QtWidgets QtPrintSupport" +frameworks="QtCore QtNetwork QtGui QtXml QtSvg QtWidgets QtPrintSupport" -plugins="taccessiblewidgets dds gif icns ico jp2 jpeg mng tga tiff wbmp webp cocoa minimal offscreen" +plugins="dds gif icns ico jp2 jpeg mng tga tiff wbmp webp cocoa minimal offscreen" qtdir=$(grep "Command:" Makefile | head -1 | awk '{ print $3; }' | sed s,/bin/.*,,) diff -r f0b4285cad7a -r 9918aaf0b790 deploy/osx/deploy.sh --- a/deploy/osx/deploy.sh Thu Sep 17 13:28:02 2015 +0100 +++ b/deploy/osx/deploy.sh Thu Sep 17 13:29:31 2015 +0100 @@ -1,5 +1,7 @@ #!/bin/bash +set -e + # Execute this from the top-level directory of the project (the one # that contains the .app bundle). Supply the name of the .app bundle # as argument (the target will use $app.app regardless, but we need @@ -16,11 +18,14 @@ fi app=`basename "$source" .app` +set -u + version=`perl -p -e 's/^[^"]*"([^"]*)".*$/$1/' version.h` -case "$version" in +stem=${version%%-*} +case "$stem" in [0-9].[0-9]) bundleVersion="$version".0 ;; [0-9].[0-9].[0-9]) bundleVersion="$version" ;; - *) echo "Error: Version $version is neither two- nor three-part number" ;; + *) echo "Error: Version stem $stem (of version $version) is neither two- nor three-part number" ;; esac echo diff -r f0b4285cad7a -r 9918aaf0b790 deploy/osx/paths.sh --- a/deploy/osx/paths.sh Thu Sep 17 13:28:02 2015 +0100 +++ b/deploy/osx/paths.sh Thu Sep 17 13:29:31 2015 +0100 @@ -7,7 +7,7 @@ exit 2 fi -frameworks="QtCore QtNetwork QtGui QtXml QtWidgets QtPrintSupport" +frameworks="QtCore QtNetwork QtGui QtXml QtSvg QtWidgets QtPrintSupport" echo echo "I expect you to have already copied these frameworks from the Qt installation to" diff -r f0b4285cad7a -r 9918aaf0b790 main/MainWindow.cpp --- a/main/MainWindow.cpp Thu Sep 17 13:28:02 2015 +0100 +++ b/main/MainWindow.cpp Thu Sep 17 13:29:31 2015 +0100 @@ -57,10 +57,9 @@ #include "widgets/LabelCounterInputDialog.h" #include "widgets/ActivityLog.h" #include "widgets/UnitConverter.h" -#include "audioio/AudioCallbackPlaySource.h" -#include "audioio/AudioCallbackPlayTarget.h" -#include "audioio/AudioTargetFactory.h" -#include "audioio/PlaySpeedRangeMapper.h" +#include "audio/AudioCallbackPlaySource.h" +#include "audio/AudioRecordTarget.h" +#include "audio/PlaySpeedRangeMapper.h" #include "data/fileio/DataFileReaderFactory.h" #include "data/fileio/PlaylistFileReader.h" #include "data/fileio/WavFileWriter.h" @@ -68,7 +67,6 @@ #include "data/fileio/MIDIFileWriter.h" #include "data/fileio/BZipFileDevice.h" #include "data/fileio/FileSource.h" -#include "data/fft/FFTDataServer.h" #include "data/midi/MIDIInput.h" #include "base/RecentFiles.h" #include "transform/TransformFactory.h" @@ -94,6 +92,9 @@ #include "plugin/api/ladspa.h" #include "plugin/api/dssi.h" +#include +#include + #include #include #include @@ -130,8 +131,8 @@ using std::set; -MainWindow::MainWindow(bool withAudioOutput, bool withOSCSupport) : - MainWindowBase(withAudioOutput, true), +MainWindow::MainWindow(SoundOptions options, bool withOSCSupport) : + MainWindowBase(options), m_overview(0), m_mainMenusCreated(false), m_paneMenu(0), @@ -155,6 +156,7 @@ m_ffwdSimilarAction(0), m_ffwdEndAction(0), m_playAction(0), + m_recordAction(0), m_playSelectionAction(0), m_playLoopAction(0), m_soloModified(false), @@ -236,15 +238,15 @@ m_playSpeed = new AudioDial(frame); m_playSpeed->setMinimum(0); - m_playSpeed->setMaximum(200); - m_playSpeed->setValue(100); + m_playSpeed->setMaximum(120); + m_playSpeed->setValue(60); m_playSpeed->setFixedWidth(32); m_playSpeed->setFixedHeight(32); m_playSpeed->setNotchesVisible(true); m_playSpeed->setPageStep(10); - m_playSpeed->setObjectName(tr("Playback Speedup")); - m_playSpeed->setDefaultValue(100); - m_playSpeed->setRangeMapper(new PlaySpeedRangeMapper(0, 200)); + m_playSpeed->setObjectName(tr("Playback Speed")); + m_playSpeed->setRangeMapper(new PlaySpeedRangeMapper); + m_playSpeed->setDefaultValue(60); m_playSpeed->setShowToolTip(true); connect(m_playSpeed, SIGNAL(valueChanged(int)), this, SLOT(playSpeedChanged(int))); @@ -565,10 +567,12 @@ m_keyReference->registerShortcut(action); menu->addAction(action); - action = new QAction(tr("Export Annotation Layer..."), this); + action = new QAction(tr("Export Annotation La&yer..."), this); + action->setShortcut(tr("Ctrl+Y")); action->setStatusTip(tr("Export layer data to a file")); connect(action, SIGNAL(triggered()), this, SLOT(exportLayer())); connect(this, SIGNAL(canExportLayer(bool)), action, SLOT(setEnabled(bool))); + m_keyReference->registerShortcut(action); menu->addAction(action); menu->addSeparator(); @@ -1979,6 +1983,17 @@ connect(m_ffwdEndAction, SIGNAL(triggered()), this, SLOT(ffwdEnd())); connect(this, SIGNAL(canPlay(bool)), m_ffwdEndAction, SLOT(setEnabled(bool))); + m_recordAction = toolbar->addAction(il.load("record"), + tr("Record")); + m_recordAction->setCheckable(true); + m_recordAction->setShortcut(tr("Ctrl+Space")); + m_recordAction->setStatusTip(tr("Record a new audio file")); + connect(m_recordAction, SIGNAL(triggered()), this, SLOT(record())); + connect(m_recordTarget, SIGNAL(recordStatusChanged(bool)), + m_recordAction, SLOT(setChecked(bool))); + connect(this, SIGNAL(canRecord(bool)), + m_recordAction, SLOT(setEnabled(bool))); + toolbar = addToolBar(tr("Play Mode Toolbar")); m_playSelectionAction = toolbar->addAction(il.load("playselection"), @@ -2029,6 +2044,7 @@ } m_keyReference->registerShortcut(m_playAction); + m_keyReference->registerShortcut(m_recordAction); m_keyReference->registerShortcut(m_playSelectionAction); m_keyReference->registerShortcut(m_playLoopAction); m_keyReference->registerShortcut(m_soloAction); @@ -2055,6 +2071,8 @@ menu->addAction(m_rwdStartAction); menu->addAction(m_ffwdEndAction); menu->addSeparator(); + menu->addAction(m_recordAction); + menu->addSeparator(); m_rightButtonPlaybackMenu->addAction(m_playAction); m_rightButtonPlaybackMenu->addAction(m_playSelectionAction); @@ -2068,6 +2086,8 @@ m_rightButtonPlaybackMenu->addAction(m_rwdStartAction); m_rightButtonPlaybackMenu->addAction(m_ffwdEndAction); m_rightButtonPlaybackMenu->addSeparator(); + m_rightButtonPlaybackMenu->addAction(m_recordAction); + m_rightButtonPlaybackMenu->addSeparator(); QAction *fastAction = menu->addAction(tr("Speed Up")); fastAction->setShortcut(tr("Ctrl+PgUp")); @@ -2274,7 +2294,7 @@ (haveCurrentPane && (currentLayer != 0)); bool havePlayTarget = - (m_playTarget != 0); + (m_playTarget != 0 || m_audioIO != 0); bool haveSelection = (m_viewManager && !m_viewManager->getSelections().empty()); @@ -3868,26 +3888,38 @@ void MainWindow::playSpeedChanged(int position) { - PlaySpeedRangeMapper mapper(0, 200); + PlaySpeedRangeMapper mapper; double percent = m_playSpeed->mappedValue(); double factor = mapper.getFactorForValue(percent); -// cerr << "speed = " << position << " percent = " << percent << " factor = " << factor << endl; - - bool something = (position != 100); - - int pc = int(lrint(percent)); - - if (!something) { +// cerr << "play speed position = " << position << " (range 0-120) percent = " << percent << " factor = " << factor << endl; + + int centre = m_playSpeed->defaultValue(); + + // Percentage is shown to 0dp if >100, to 1dp if <100; factor is + // shown to 3sf + + char pcbuf[30]; + char facbuf[30]; + + if (position == centre) { contextHelpChanged(tr("Playback speed: Normal")); + } else if (position < centre) { + sprintf(pcbuf, "%.1f", percent); + sprintf(facbuf, "%.3g", 1.0 / factor); + contextHelpChanged(tr("Playback speed: %1% (%2x slower)") + .arg(pcbuf) + .arg(facbuf)); } else { - contextHelpChanged(tr("Playback speed: %1%2%") - .arg(position > 100 ? "+" : "") - .arg(pc)); + sprintf(pcbuf, "%.0f", percent); + sprintf(facbuf, "%.3g", factor); + contextHelpChanged(tr("Playback speed: %1% (%2x faster)") + .arg(pcbuf) + .arg(facbuf)); } - m_playSource->setTimeStretch(factor); + m_playSource->setTimeStretch(1.0 / factor); // factor is a speedup updateMenuStates(); } @@ -4219,9 +4251,19 @@ MainWindowBase::mainModelChanged(model); + if (m_playTarget || m_audioIO) { + connect(m_fader, SIGNAL(valueChanged(float)), + this, SLOT(mainModelGainChanged(float))); + } +} + +void +MainWindow::mainModelGainChanged(float gain) +{ if (m_playTarget) { - connect(m_fader, SIGNAL(valueChanged(float)), - m_playTarget, SLOT(setOutputGain(float))); + m_playTarget->setOutputGain(gain); + } else if (m_audioIO) { + m_audioIO->setOutputGain(gain); } } @@ -4290,20 +4332,25 @@ { emit hideSplash(); + QString quoted; + if (transformName != "") { + quoted = QString("\"%1\" ").arg(transformName); + } + if (message != "") { QMessageBox::warning (this, tr("Failed to generate layer"), - tr("Layer generation failed

Failed to generate derived layer.

The layer transform \"%1\" failed:

%2") - .arg(transformName).arg(message), + tr("Layer generation failed

Failed to generate derived layer.

The layer transform %1failed:

%2") + .arg(quoted).arg(message), QMessageBox::Ok); } else { QMessageBox::warning (this, tr("Failed to generate layer"), - tr("Layer generation failed

Failed to generate a derived layer.

The layer transform \"%1\" failed.

No error information is available.") - .arg(transformName), + tr("Layer generation failed

Failed to generate a derived layer.

The layer transform %1failed.

No error information is available.") + .arg(quoted), QMessageBox::Ok); } } @@ -4590,7 +4637,7 @@ #endif aboutText += - "

Sonic Visualiser Copyright © 2005–2013 Chris Cannam and " + "

Sonic Visualiser Copyright © 2005–2015 Chris Cannam and " "Queen Mary, University of London.

" "

This program is free software; you can redistribute it and/or " "modify it under the terms of the GNU General Public License as " diff -r f0b4285cad7a -r 9918aaf0b790 main/MainWindow.h --- a/main/MainWindow.h Thu Sep 17 13:28:02 2015 +0100 +++ b/main/MainWindow.h Thu Sep 17 13:29:31 2015 +0100 @@ -32,8 +32,7 @@ Q_OBJECT public: - MainWindow(bool withAudioOutput = true, - bool withOSCSupport = true); + MainWindow(SoundOptions options, bool withOSCSupport = true); virtual ~MainWindow(); signals: @@ -132,6 +131,7 @@ virtual void layerInAView(Layer *, bool); virtual void mainModelChanged(WaveFileModel *); + virtual void mainModelGainChanged(float); virtual void modelAdded(Model *); virtual void modelAboutToBeDeleted(Model *); @@ -187,6 +187,7 @@ QAction *m_ffwdSimilarAction; QAction *m_ffwdEndAction; QAction *m_playAction; + QAction *m_recordAction; QAction *m_playSelectionAction; QAction *m_playLoopAction; QAction *m_manageTemplatesAction; diff -r f0b4285cad7a -r 9918aaf0b790 main/OSCHandler.cpp --- a/main/OSCHandler.cpp Thu Sep 17 13:28:02 2015 +0100 +++ b/main/OSCHandler.cpp Thu Sep 17 13:29:31 2015 +0100 @@ -22,14 +22,15 @@ #include "view/PaneStack.h" #include "data/model/WaveFileModel.h" #include "widgets/CommandHistory.h" -#include "audioio/AudioCallbackPlaySource.h" -#include "audioio/AudioCallbackPlayTarget.h" +#include "audio/AudioCallbackPlaySource.h" #include "framework/Document.h" #include "data/fileio/WavFileWriter.h" #include "transform/TransformFactory.h" #include "widgets/Fader.h" #include "widgets/AudioDial.h" +#include + #include void diff -r f0b4285cad7a -r 9918aaf0b790 main/PreferencesDialog.cpp --- a/main/PreferencesDialog.cpp Thu Sep 17 13:28:02 2015 +0100 +++ b/main/PreferencesDialog.cpp Thu Sep 17 13:29:31 2015 +0100 @@ -39,9 +39,10 @@ #include "widgets/WindowTypeSelector.h" #include "widgets/IconLoader.h" #include "base/Preferences.h" -#include "audioio/AudioTargetFactory.h" #include "base/ResourceFinder.h" +//#include "audioio/AudioTargetFactory.h" + #include "version.h" PreferencesDialog::PreferencesDialog(QWidget *parent) : @@ -149,11 +150,13 @@ connect(octaveSystem, SIGNAL(currentIndexChanged(int)), this, SLOT(octaveSystemChanged(int))); + QSettings settings; + + /*!!! restore QComboBox *audioDevice = new QComboBox; std::vector devices = AudioTargetFactory::getInstance()->getCallbackTargetNames(); - QSettings settings; settings.beginGroup("Preferences"); QString targetName = settings.value("audio-target", "").toString(); settings.endGroup(); @@ -166,7 +169,7 @@ connect(audioDevice, SIGNAL(currentIndexChanged(int)), this, SLOT(audioDeviceChanged(int))); - + */ QComboBox *resampleQuality = new QComboBox; int rsq = prefs->getPropertyRangeAndValue("Resample Quality", &min, &max, @@ -223,6 +226,15 @@ settings.beginGroup("Preferences"); +#ifdef Q_OS_MAC + m_retina = settings.value("scaledHiDpi", true).toBool(); + QCheckBox *retina = new QCheckBox; + retina->setCheckState(m_retina ? Qt::Checked : Qt::Unchecked); + connect(retina, SIGNAL(stateChanged(int)), this, SLOT(retinaChanged(int))); +#else + m_retina = false; +#endif + QString userLocale = settings.value("locale", "").toString(); m_currentLocale = userLocale; @@ -328,8 +340,8 @@ row, 0); subgrid->addWidget(resampleOnLoad, row++, 1, 1, 1); - subgrid->addWidget(new QLabel(tr("Playback audio device:")), row, 0); - subgrid->addWidget(audioDevice, row++, 1, 1, 2); +//!!! subgrid->addWidget(new QLabel(tr("Playback audio device:")), row, 0); +//!!! subgrid->addWidget(audioDevice, row++, 1, 1, 2); subgrid->addWidget(new QLabel(tr("%1:").arg(prefs->getPropertyLabel ("Resample Quality"))), @@ -353,6 +365,13 @@ row, 0); subgrid->addWidget(showSplash, row++, 1, 1, 1); +#ifdef Q_OS_MAC + if (devicePixelRatio() > 1) { + subgrid->addWidget(new QLabel(tr("Draw layers at Retina resolution:")), row, 0); + subgrid->addWidget(retina, row++, 1, 1, 1); + } +#endif + subgrid->addWidget(new QLabel(tr("%1:").arg(prefs->getPropertyLabel ("Property Box Layout"))), row, 0); @@ -564,6 +583,14 @@ } void +PreferencesDialog::retinaChanged(int state) +{ + m_retina = (state == Qt::Checked); + m_applyButton->setEnabled(true); + // Does not require a restart +} + +void PreferencesDialog::showSplashChanged(int state) { m_showSplash = (state == Qt::Checked); @@ -671,15 +698,18 @@ prefs->setProperty("Octave Numbering System", m_octaveSystem); - std::vector devices = - AudioTargetFactory::getInstance()->getCallbackTargetNames(); +//!!! std::vector devices = +//!!! AudioTargetFactory::getInstance()->getCallbackTargetNames(); QSettings settings; settings.beginGroup("Preferences"); QString permishTag = QString("network-permission-%1").arg(SV_VERSION); settings.setValue(permishTag, m_networkPermission); - settings.setValue("audio-target", devices[m_audioDevice]); +//!!! settings.setValue("audio-target", devices[m_audioDevice]); settings.setValue("locale", m_currentLocale); +#ifdef Q_OS_MAC + settings.setValue("scaledHiDpi", m_retina); +#endif settings.endGroup(); settings.beginGroup("MainWindow"); diff -r f0b4285cad7a -r 9918aaf0b790 main/PreferencesDialog.h --- a/main/PreferencesDialog.h Thu Sep 17 13:28:02 2015 +0100 +++ b/main/PreferencesDialog.h Thu Sep 17 13:29:31 2015 +0100 @@ -64,6 +64,7 @@ void defaultTemplateChanged(int); void localeChanged(int); void networkPermissionChanged(int state); + void retinaChanged(int state); void tempDirButtonClicked(); @@ -95,6 +96,7 @@ int m_resampleQuality; bool m_resampleOnLoad; bool m_networkPermission; + bool m_retina; QString m_tempDirRoot; int m_backgroundMode; int m_timeToTextMode; diff -r f0b4285cad7a -r 9918aaf0b790 main/main.cpp --- a/main/main.cpp Thu Sep 17 13:28:02 2015 +0100 +++ b/main/main.cpp Thu Sep 17 13:29:31 2015 +0100 @@ -335,7 +335,10 @@ // Permit size_t and PropertyName to be used as args in queued signal calls qRegisterMetaType("PropertyContainer::PropertyName"); - MainWindow *gui = new MainWindow(audioOutput, oscSupport); + MainWindow::SoundOptions options = MainWindow::WithEverything; + if (!audioOutput) options = 0; + + MainWindow *gui = new MainWindow(options, oscSupport); application.setMainWindow(gui); InteractiveFileFinder::setParentWidget(gui); TransformUserConfigurator::setParentWidget(gui); diff -r f0b4285cad7a -r 9918aaf0b790 sonic-visualiser.pro --- a/sonic-visualiser.pro Thu Sep 17 13:28:02 2015 +0100 +++ b/sonic-visualiser.pro Thu Sep 17 13:29:31 2015 +0100 @@ -1,13 +1,14 @@ TEMPLATE = subdirs -SUBDIRS = sub_dataquay svcore svgui svapp sub_sv +SUBDIRS = sub_bq sub_dataquay svcore svgui svapp sub_sv !win* { # We should build and run the tests on any platform, # but doing it automatically doesn't work so well from # within an IDE on Windows, so remove that from here - SUBDIRS += svcore/base/test svcore/data/fileio/test + SUBDIRS += svcore/base/test svcore/data/fileio/test svcore/data/model/test } +sub_bq.file = bq.pro sub_sv.file = sv.pro sub_dataquay.file = dataquay/lib.pro diff -r f0b4285cad7a -r 9918aaf0b790 sonic-visualiser.qrc --- a/sonic-visualiser.qrc Thu Sep 17 13:28:02 2015 +0100 +++ b/sonic-visualiser.qrc Thu Sep 17 13:29:31 2015 +0100 @@ -3,8 +3,14 @@ icons/scalable/align.svg icons/scalable/colour3d.svg icons/scalable/cross.svg + icons/scalable/dataedit.svg icons/scalable/draw.svg icons/scalable/erase.svg + icons/scalable/editcopy.svg + icons/scalable/editcut.svg + icons/scalable/editdelete.svg + icons/scalable/editpaste.svg + icons/scalable/exit.svg icons/scalable/filenew.svg icons/scalable/fileopen.svg icons/scalable/filesaveas.svg @@ -20,6 +26,7 @@ icons/scalable/playselection.svg icons/scalable/solo.svg icons/scalable/play.svg + icons/scalable/record.svg icons/scalable/rewind-start.svg icons/scalable/rewind.svg icons/scalable/undo.svg @@ -32,6 +39,11 @@ icons/scalable/spectrogram.svg icons/scalable/spectrum.svg icons/scalable/text.svg + icons/scalable/timeruler.svg + icons/scalable/zoom.svg + icons/scalable/zoom-in.svg + icons/scalable/zoom-out.svg + icons/scalable/zoom-fit.svg icons/scalable/sv-icon-light.svg icons/scalable/sv-icon.svg icons/scalable/sv-splash.svg @@ -41,7 +53,6 @@ icons/waveform.png icons/spectrum.png icons/spectrogram.png - icons/timeruler.png icons/pane.png icons/instants.png icons/notes.png @@ -82,10 +93,6 @@ icons/measure2mask.xbm icons/move.png icons/navigate.png - icons/zoom.png - icons/zoom-in.png - icons/zoom-out.png - icons/zoom-fit.png icons/zoom-reset.png icons/undo.png icons/redo.png diff -r f0b4285cad7a -r 9918aaf0b790 sv.pro --- a/sv.pro Thu Sep 17 13:28:02 2015 +0100 +++ b/sv.pro Thu Sep 17 13:29:31 2015 +0100 @@ -23,7 +23,7 @@ CONFIG += release DEFINES += NDEBUG BUILD_RELEASE NO_TIMING - DEFINES += HAVE_BZ2 HAVE_FFTW3 HAVE_FFTW3F HAVE_SNDFILE HAVE_SAMPLERATE HAVE_VAMP HAVE_VAMPHOSTSDK HAVE_RUBBERBAND HAVE_DATAQUAY HAVE_LIBLO HAVE_MAD HAVE_ID3TAG HAVE_PORTAUDIO_2_0 + DEFINES += HAVE_BZ2 HAVE_FFTW3 HAVE_FFTW3F HAVE_SNDFILE HAVE_SAMPLERATE HAVE_VAMP HAVE_VAMPHOSTSDK HAVE_RUBBERBAND HAVE_DATAQUAY HAVE_LIBLO HAVE_MAD HAVE_ID3TAG HAVE_PORTAUDIO LIBS += -lbz2 -lrubberband -lvamp-hostsdk -lfftw3 -lfftw3f -lsndfile -lFLAC -logg -lvorbis -lvorbisenc -lvorbisfile -logg -lmad -lid3tag -lportaudio -lsamplerate -lz -lsord-0 -lserd-0 -llo @@ -43,8 +43,8 @@ linux*:TARGET = sonic-visualiser solaris*:TARGET = sonic-visualiser -DEPENDPATH += . svcore svgui svapp -INCLUDEPATH += . svcore svgui svapp +DEPENDPATH += . bqaudioio svcore svgui svapp +INCLUDEPATH += . bqaudioio svcore svgui svapp TRANSLATIONS += i18n/sonic-visualiser_ru.ts i18n/sonic-visualiser_en_GB.ts i18n/sonic-visualiser_en_US.ts i18n/sonic-visualiser_cs_CZ.ts @@ -56,7 +56,8 @@ contains(DEFINES, BUILD_STATIC):LIBS -= -ljack -MY_LIBS = -Lsvapp -Lsvgui -Lsvcore -Ldataquay -lsvapp -lsvgui -lsvcore -ldataquay +MY_LIBS = -Lsvapp -Lsvgui -Lsvcore -Ldataquay -L. \ + -lsvapp -lsvgui -lsvcore -ldataquay -lbq linux* { MY_LIBS = -Wl,-Bstatic $$MY_LIBS -Wl,-Bdynamic