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);

//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);
}

+ 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);

// remove?
#define CARLA_NATIVE_PARAMETER_RANGES_INIT { 0.0, 0.0, 1.0, 0.01, 0.0001, 0.1 }

#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_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


+ 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_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


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

@@ -74,6 +74,26 @@ void initSignalHandler()
#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

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



Loading…
Cancel
Save