changeset 1035:28ccb621d1af bqaudioio

Initial work toward switching to bqaudioio library (so as to get I/O, not just O)
author Chris Cannam
date Tue, 04 Aug 2015 13:27:42 +0100
parents 2d524c9eee33
children f1ea12e58abb
files .hgsub .hgsubstate bq.pro configure configure.ac main/MainWindow.cpp main/MainWindow.h main/OSCHandler.cpp main/PreferencesDialog.cpp sonic-visualiser.pro sv.pro
diffstat 11 files changed, 197 insertions(+), 81 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsub	Mon Jul 13 14:39:41 2015 +0100
+++ b/.hgsub	Tue Aug 04 13:27:42 2015 +0100
@@ -2,4 +2,7 @@
 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
--- a/.hgsubstate	Mon Jul 13 14:39:41 2015 +0100
+++ b/.hgsubstate	Tue Aug 04 13:27:42 2015 +0100
@@ -1,5 +1,8 @@
+71b2af2dbd2852874aa776c6ce3112b58f39d9d4 bqaudioio
+62c40e7f9231e459091c3352c5d4b6001be127ca bqresample
+3d88eab82833fcfe6c49e2b4fb0461ff298e609a bqvec
 d16f0fd6db6104d87882bc43788a3bb1b0f8c528 dataquay
 55ece8862b6d3a54aad271a53f9c1615e5d3bcf8 sv-dependency-builds
-45054b36ddbfe1d93afcef2eb122579e4bdc4e06 svapp
-ed207f89aaefc110e8b3debb07c86299cb6b05ae svcore
-e5d40d89b1ec879dfe9e64b0fc440c69d1adf6e2 svgui
+56acd9368532e97fe405ab51c3769f017654b3f4 svapp
+020277bfafcb99d636a13830dc72c237cf072b0c svcore
+7dcd035176851a9f13539d852ccec828a37d2863 svgui
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bq.pro	Tue Aug 04 13:27:42 2015 +0100
@@ -0,0 +1,95 @@
+
+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 \
+	bqvec/test/TestVectorOps.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 \
+	bqvec/test/TestVectorOps.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
+
--- a/configure	Mon Jul 13 14:39:41 2015 +0100
+++ b/configure	Tue Aug 04 13:27:42 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
--- a/configure.ac	Mon Jul 13 14:39:41 2015 +0100
+++ b/configure.ac	Tue Aug 04 13:27:42 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])
--- a/main/MainWindow.cpp	Mon Jul 13 14:39:41 2015 +0100
+++ b/main/MainWindow.cpp	Tue Aug 04 13:27:42 2015 +0100
@@ -57,10 +57,8 @@
 #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/PlaySpeedRangeMapper.h"
 #include "data/fileio/DataFileReaderFactory.h"
 #include "data/fileio/PlaylistFileReader.h"
 #include "data/fileio/WavFileWriter.h"
@@ -94,6 +92,8 @@
 #include "plugin/api/ladspa.h"
 #include "plugin/api/dssi.h"
 
+#include <bqaudioio/SystemPlaybackTarget.h>
+
 #include <QApplication>
 #include <QMessageBox>
 #include <QGridLayout>
@@ -4239,7 +4239,15 @@
 
     if (m_playTarget) {
         connect(m_fader, SIGNAL(valueChanged(float)),
-                m_playTarget, SLOT(setOutputGain(float)));
+                this, SLOT(mainModelGainChanged(float)));
+    }
+}
+
+void
+MainWindow::mainModelGainChanged(float gain)
+{
+    if (m_playTarget) {
+        m_playTarget->setOutputGain(gain);
     }
 }
 
--- a/main/MainWindow.h	Mon Jul 13 14:39:41 2015 +0100
+++ b/main/MainWindow.h	Tue Aug 04 13:27:42 2015 +0100
@@ -132,6 +132,7 @@
     virtual void layerInAView(Layer *, bool);
 
     virtual void mainModelChanged(WaveFileModel *);
+    virtual void mainModelGainChanged(float);
     virtual void modelAdded(Model *);
     virtual void modelAboutToBeDeleted(Model *);
 
--- a/main/OSCHandler.cpp	Mon Jul 13 14:39:41 2015 +0100
+++ b/main/OSCHandler.cpp	Tue Aug 04 13:27:42 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 <bqaudioio/SystemPlaybackTarget.h>
+
 #include <QFileInfo>
 
 void
--- a/main/PreferencesDialog.cpp	Mon Jul 13 14:39:41 2015 +0100
+++ b/main/PreferencesDialog.cpp	Tue Aug 04 13:27:42 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<QString> 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,
@@ -328,8 +331,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"))),
@@ -671,14 +674,14 @@
     
     prefs->setProperty("Octave Numbering System", m_octaveSystem);
 
-    std::vector<QString> devices =
-        AudioTargetFactory::getInstance()->getCallbackTargetNames();
+//!!!    std::vector<QString> 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);
     settings.endGroup();
 
--- a/sonic-visualiser.pro	Mon Jul 13 14:39:41 2015 +0100
+++ b/sonic-visualiser.pro	Tue Aug 04 13:27:42 2015 +0100
@@ -1,5 +1,5 @@
 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,
@@ -8,6 +8,7 @@
     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
--- a/sv.pro	Mon Jul 13 14:39:41 2015 +0100
+++ b/sv.pro	Tue Aug 04 13:27:42 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