diff --git a/c++/carla-backend/carla_native.cpp b/c++/carla-backend/carla_native.cpp index 8827d4d..1d59874 100644 --- a/c++/carla-backend/carla_native.cpp +++ b/c++/carla-backend/carla_native.cpp @@ -118,20 +118,20 @@ public: { Q_ASSERT(descriptor); - //if (descriptor && descriptor->maker) - // strncpy(strBuf, descriptor->maker, STR_MAX); - //else - CarlaPlugin::getMaker(strBuf); + if (descriptor && descriptor->maker) + strncpy(strBuf, descriptor->maker, STR_MAX); + else + CarlaPlugin::getMaker(strBuf); } void getCopyright(char* const strBuf) { Q_ASSERT(descriptor); - //if (descriptor && descriptor->copyright) - // strncpy(strBuf, descriptor->copyright, STR_MAX); - //else - CarlaPlugin::getCopyright(strBuf); + if (descriptor && descriptor->copyright) + strncpy(strBuf, descriptor->copyright, STR_MAX); + else + CarlaPlugin::getCopyright(strBuf); } void getRealName(char* const strBuf) @@ -262,6 +262,5 @@ CARLA_BACKEND_END_NAMESPACE void carla_register_native_plugin(const PluginDescriptor* desc) { - printf("contructing plugin, THERE \"%s\"\n", desc->name); CarlaBackend::NativePlugin::registerPlugin(desc); } diff --git a/c++/carla-backend/plugins/carla_native.h b/c++/carla-backend/plugins/carla_native.h index a30096c..8d04d8f 100644 --- a/c++/carla-backend/plugins/carla_native.h +++ b/c++/carla-backend/plugins/carla_native.h @@ -161,6 +161,7 @@ typedef struct _PluginDescriptor { void carla_register_native_plugin(const PluginDescriptor* desc); +// remove? #define CARLA_NATIVE_PARAMETER_RANGES_INIT { 0.0, 0.0, 1.0, 0.01, 0.0001, 0.1 } #define CARLA_NATIVE_PLUGIN_INIT { \ diff --git a/c++/carla-bridge/Makefile b/c++/carla-bridge/Makefile index c01f6c6..c5bd3ce 100644 --- a/c++/carla-bridge/Makefile +++ b/c++/carla-bridge/Makefile @@ -30,7 +30,7 @@ POSIX_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32 -L/usr/lib/i386-linux-gnu POSIX_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64 -L/usr/lib/x86_64-linux-gnu POSIX_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) $(shell pkg-config --libs jack) -ldl -WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) +WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) -DPTW32_STATIC_LIB WIN_32BIT_FLAGS = $(32BIT_FLAGS) WIN_64BIT_FLAGS = $(64BIT_FLAGS) WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -mwindows -L../carla-jackbridge -lpthread diff --git a/c++/carla-bridge/Makefile.dbg b/c++/carla-bridge/Makefile.dbg index 56cf3cc..1b15502 100644 --- a/c++/carla-bridge/Makefile.dbg +++ b/c++/carla-bridge/Makefile.dbg @@ -29,7 +29,7 @@ POSIX_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32 -L/usr/lib/i386-linux-gnu POSIX_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64 -L/usr/lib/x86_64-linux-gnu POSIX_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) $(shell pkg-config --libs jack) -ldl -WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) +WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) -DPTW32_STATIC_LIB WIN_32BIT_FLAGS = $(32BIT_FLAGS) WIN_64BIT_FLAGS = $(64BIT_FLAGS) WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -mwindows -L../carla-jackbridge -lpthread diff --git a/c++/carla-bridge/carla_bridge_plugin.cpp b/c++/carla-bridge/carla_bridge_plugin.cpp index 284bb2a..7cd900b 100644 --- a/c++/carla-bridge/carla_bridge_plugin.cpp +++ b/c++/carla-bridge/carla_bridge_plugin.cpp @@ -74,6 +74,26 @@ void initSignalHandler() #endif } +#ifdef PTW32_STATIC_LIB +#include + +class PThreadScopedInitializer +{ +public: + PThreadScopedInitializer() + { + pthread_win32_process_attach_np(); + pthread_win32_thread_attach_np(); + }; + + ~PThreadScopedInitializer() + { + pthread_win32_thread_detach_np(); + pthread_win32_process_detach_np(); + }; +}; +#endif + CARLA_BRIDGE_START_NAMESPACE // ------------------------------------------------------------------------- @@ -698,6 +718,10 @@ int main(int argc, char* argv[]) return 1; } +#ifdef PTW32_STATIC_LIB + PThreadScopedInitializer pthreadScopedInitializer(); +#endif + // Init bridge client CarlaBridge::BridgePluginClient client; client.init(); @@ -758,7 +782,10 @@ int main(int argc, char* argv[]) { const char* const lastError = CarlaBackend::getLastError(); qWarning("Plugin failed to load, error was:\n%s", lastError); - client.sendOscBridgeError(lastError); + + if (useOsc) + client.sendOscBridgeError(lastError); + ret = 1; }