ship both blocking and callback PA backends (for debug purposes)
authorRobin Gareus <robin@gareus.org>
Mon, 21 Dec 2015 21:12:15 +0000 (22:12 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 21 Dec 2015 21:12:15 +0000 (22:12 +0100)
this just works (no symbol conflicts)

libs/backends/portaudio/portaudio_backend.cc
libs/backends/portaudio/wscript

index 7ea7f6641c37f34423a118a5bb994486377fb817..4f74992adf0f974eee583ca5a718049b1c4807f7 100644 (file)
@@ -2001,7 +2001,7 @@ static bool already_configured ();
 static bool available ();
 
 static ARDOUR::AudioBackendInfo _descriptor = {
-       "PortAudio",
+       BACKEND_NAME,
        instantiate,
        deinstantiate,
        backend_factory,
index 0d679a156368d82aac1bd504f1f08e04bae1d56b..46b0e25ac85fca4e9bf22480f4261fcd3d869722 100644 (file)
@@ -19,7 +19,7 @@ def configure(conf):
     autowaf.check_pkg(conf, 'portaudio-2.0', uselib_store='PORTAUDIO', atleast_version='19')
     conf.check(header_name='pa_asio.h', define_name='WITH_ASIO', mandatory=False)
 
-def build(bld):
+def build_portaudio (bld, name, defines):
     obj = bld(features = 'cxx cxxshlib')
     obj.source = [ 'portaudio_backend.cc',
                    'portaudio_io.cc',
@@ -29,8 +29,8 @@ def build(bld):
                    'midi_util.cc',
                  ]
     obj.includes = ['.']
-    obj.name     = 'portaudio_backend'
-    obj.target   = 'portaudio_backend'
+    obj.name     = name
+    obj.target   = name
     obj.use      = 'libardour libpbd'
     obj.uselib   = ['PORTAUDIO']
     obj.install_path  = os.path.join(bld.env['LIBDIR'], 'backends')
@@ -38,3 +38,8 @@ def build(bld):
                    'ARDOURBACKEND_DLL_EXPORTS',
                    'USE_MMCSS_THREAD_PRIORITIES'
                   ]
+    obj.defines += defines
+
+def build(bld):
+    build_portaudio (bld, 'portaudio_callback_backend', ['BACKEND_NAME="PortAudio (default)"'])
+    build_portaudio (bld, 'portaudio_blocking_backend', ['BACKEND_NAME="PortAudio (no-callback)"', 'USE_BLOCKING_API'])