diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-13 12:35:10 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-13 12:35:10 -0400 |
commit | 5cf1f7f3b28abd36f9390014016def94f4e1468d (patch) | |
tree | 6943b1a55e46b9ab11ac1cf9c146aa09708305e4 /libs | |
parent | 4861eca97483128e5febb575b94688581abb0154 (diff) | |
parent | dce6b71e825397ff086562b6177453369e48cec9 (diff) |
Merge branch 'master' into windows
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/audio_backend.h | 8 | ||||
-rw-r--r-- | libs/ardour/audioengine.cc | 10 | ||||
-rw-r--r-- | libs/backends/jack/jack_api.cc | 24 | ||||
-rw-r--r-- | libs/backends/jack/wscript | 5 |
4 files changed, 26 insertions, 21 deletions
diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h index d9561a62e5..4d57f0b43d 100644 --- a/libs/ardour/ardour/audio_backend.h +++ b/libs/ardour/ardour/audio_backend.h @@ -31,6 +31,14 @@ #include "ardour/types.h" #include "ardour/audioengine.h" #include "ardour/port_engine.h" +#include "ardour/visibility.h" + +#ifdef ARDOURBACKEND_DLL_EXPORTS // defined if we are building the ARDOUR Panners DLLs (instead of using them) + #define ARDOURBACKEND_API LIBARDOUR_HELPER_DLL_EXPORT +#else + #define ARDOURBACKEND_API LIBARDOUR_HELPER_DLL_IMPORT +#endif +#define ARDOURBACKEND_LOCAL LIBARDOUR_HELPER_DLL_LOCAL namespace ARDOUR { diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 63bed97ecc..ebebac5774 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -503,7 +503,8 @@ AudioEngine::backend_discover (const string& path) { Glib::Module module (path); AudioBackendInfo* info; - void* sym = 0; + AudioBackendInfo* (*dfunc)(void); + void* func = 0; if (!module) { error << string_compose(_("AudioEngine: cannot load module \"%1\" (%2)"), path, @@ -511,15 +512,16 @@ AudioEngine::backend_discover (const string& path) return 0; } - if (!module.get_symbol ("descriptor", sym)) { - error << string_compose(_("AudioEngine: backend at \"%1\" has no descriptor."), path) << endmsg; + if (!module.get_symbol ("descriptor", func)) { + error << string_compose(_("AudioEngine: backend at \"%1\" has no descriptor function."), path) << endmsg; error << Glib::Module::get_last_error() << endmsg; return 0; } module.make_resident (); - info = (AudioBackendInfo*) sym; + dfunc = (AudioBackendInfo* (*)(void))func; + info = dfunc(); return info; } diff --git a/libs/backends/jack/jack_api.cc b/libs/backends/jack/jack_api.cc index e02ccde2f1..836acfda11 100644 --- a/libs/backends/jack/jack_api.cc +++ b/libs/backends/jack/jack_api.cc @@ -66,19 +66,13 @@ already_configured () return JackConnection::server_running (); } -extern "C" { - - - /* functions looked up using dlopen-and-cousins, and so naming scope - * must be non-mangled. - */ - - ARDOUR::AudioBackendInfo descriptor = { - "JACK", - instantiate, - deinstantiate, - backend_factory, - already_configured, - }; -} +static ARDOUR::AudioBackendInfo _descriptor = { + "JACK", + instantiate, + deinstantiate, + backend_factory, + already_configured, +}; + +extern "C" ARDOURBACKEND_API ARDOUR::AudioBackendInfo* descriptor() { return &_descriptor; } diff --git a/libs/backends/jack/wscript b/libs/backends/jack/wscript index 3c47f3a652..98c39c7b16 100644 --- a/libs/backends/jack/wscript +++ b/libs/backends/jack/wscript @@ -38,8 +38,9 @@ def build(bld): obj.use = 'ardour libpbd' obj.vnum = JACKBACKEND_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'backends') - obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"'] - + obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"', + 'ARDOURBACKEND_DLL_EXPORTS' + ] # # device discovery code in the jack backend needs ALSA |