Browse Source

Carla: Initialize pthreads-w32 when appropriate

tags/v0.9.0
falkTX 12 years ago
parent
commit
864e9a3ee4
5 changed files with 39 additions and 12 deletions
  1. +8
    -9
      c++/carla-backend/carla_native.cpp
  2. +1
    -0
      c++/carla-backend/plugins/carla_native.h
  3. +1
    -1
      c++/carla-bridge/Makefile
  4. +1
    -1
      c++/carla-bridge/Makefile.dbg
  5. +28
    -1
      c++/carla-bridge/carla_bridge_plugin.cpp

+ 8
- 9
c++/carla-backend/carla_native.cpp View File

@@ -118,20 +118,20 @@ public:
{ {
Q_ASSERT(descriptor); 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) void getCopyright(char* const strBuf)
{ {
Q_ASSERT(descriptor); 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) void getRealName(char* const strBuf)
@@ -262,6 +262,5 @@ CARLA_BACKEND_END_NAMESPACE


void carla_register_native_plugin(const PluginDescriptor* desc) void carla_register_native_plugin(const PluginDescriptor* desc)
{ {
printf("contructing plugin, THERE \"%s\"\n", desc->name);
CarlaBackend::NativePlugin::registerPlugin(desc); CarlaBackend::NativePlugin::registerPlugin(desc);
} }

+ 1
- 0
c++/carla-backend/plugins/carla_native.h View File

@@ -161,6 +161,7 @@ typedef struct _PluginDescriptor {


void carla_register_native_plugin(const PluginDescriptor* desc); 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_PARAMETER_RANGES_INIT { 0.0, 0.0, 1.0, 0.01, 0.0001, 0.1 }


#define CARLA_NATIVE_PLUGIN_INIT { \ #define CARLA_NATIVE_PLUGIN_INIT { \


+ 1
- 1
c++/carla-bridge/Makefile View File

@@ -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_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 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_32BIT_FLAGS = $(32BIT_FLAGS)
WIN_64BIT_FLAGS = $(64BIT_FLAGS) WIN_64BIT_FLAGS = $(64BIT_FLAGS)
WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -mwindows -L../carla-jackbridge -lpthread WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -mwindows -L../carla-jackbridge -lpthread


+ 1
- 1
c++/carla-bridge/Makefile.dbg View File

@@ -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_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 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_32BIT_FLAGS = $(32BIT_FLAGS)
WIN_64BIT_FLAGS = $(64BIT_FLAGS) WIN_64BIT_FLAGS = $(64BIT_FLAGS)
WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -mwindows -L../carla-jackbridge -lpthread WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -mwindows -L../carla-jackbridge -lpthread


+ 28
- 1
c++/carla-bridge/carla_bridge_plugin.cpp View File

@@ -74,6 +74,26 @@ void initSignalHandler()
#endif #endif
} }


#ifdef PTW32_STATIC_LIB
#include <pthread.h>

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 CARLA_BRIDGE_START_NAMESPACE


// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@@ -698,6 +718,10 @@ int main(int argc, char* argv[])
return 1; return 1;
} }


#ifdef PTW32_STATIC_LIB
PThreadScopedInitializer pthreadScopedInitializer();
#endif

// Init bridge client // Init bridge client
CarlaBridge::BridgePluginClient client; CarlaBridge::BridgePluginClient client;
client.init(); client.init();
@@ -758,7 +782,10 @@ int main(int argc, char* argv[])
{ {
const char* const lastError = CarlaBackend::getLastError(); const char* const lastError = CarlaBackend::getLastError();
qWarning("Plugin failed to load, error was:\n%s", lastError); qWarning("Plugin failed to load, error was:\n%s", lastError);
client.sendOscBridgeError(lastError);

if (useOsc)
client.sendOscBridgeError(lastError);

ret = 1; ret = 1;
} }




Loading…
Cancel
Save