Merge branch 'master' into windows

This commit is contained in:
Paul Davis
2013-09-13 12:35:10 -04:00
4 changed files with 25 additions and 20 deletions

View File

@@ -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 {

View File

@@ -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;
}

View File

@@ -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.
*/
static ARDOUR::AudioBackendInfo _descriptor = {
"JACK",
instantiate,
deinstantiate,
backend_factory,
already_configured,
};
ARDOUR::AudioBackendInfo descriptor = {
"JACK",
instantiate,
deinstantiate,
backend_factory,
already_configured,
};
}
extern "C" ARDOURBACKEND_API ARDOUR::AudioBackendInfo* descriptor() { return &_descriptor; }

View File

@@ -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