Browse Source

Carla: Misc fixing and updates

tags/v0.9.0
falkTX 13 years ago
parent
commit
dc9fb4f7f6
19 changed files with 203 additions and 226 deletions
  1. +38
    -12
      src/carla-backend/Makefile
  2. +2
    -0
      src/carla-backend/carla_plugin.h
  3. +1
    -1
      src/carla-bridge/Makefile
  4. +88
    -87
      src/carla-bridge/carla_bridge_osc.cpp
  5. +7
    -14
      src/carla-bridge/carla_bridge_osc.h
  6. +2
    -0
      src/carla-bridge/carla_bridge_plugin.cpp
  7. +1
    -1
      src/carla-bridge/carla_bridge_ui-vst.cpp
  8. +13
    -36
      src/carla-bridge/carla_bridge_ui.h
  9. +6
    -5
      src/carla-bridge/qtcreator/carla-bridge-lv2-gtk2.pro
  10. +6
    -5
      src/carla-bridge/qtcreator/carla-bridge-lv2-qt4.pro
  11. +6
    -5
      src/carla-bridge/qtcreator/carla-bridge-lv2-x11.pro
  12. +0
    -42
      src/carla-bridge/qtcreator/carla-bridge-plugin.pro
  13. +6
    -5
      src/carla-bridge/qtcreator/carla-bridge-vst-x11.pro
  14. +1
    -1
      src/carla-includes/carla_lib_includes.h
  15. +15
    -5
      src/carla-includes/carla_osc_includes.h
  16. +2
    -0
      src/carla-includes/carla_vst_includes.h
  17. +3
    -3
      src/carla-includes/linuxsampler/EngineFactory.h
  18. +2
    -3
      src/carla.py
  19. +4
    -1
      src/carla_backend.py

+ 38
- 12
src/carla-backend/Makefile View File

@@ -1,5 +1,5 @@
#!/usr/bin/make -f
# Makefile for Carla-Backend #
# Makefile for carla-backend #
# ------------------------------------- #
# Created by falkTX
#
@@ -7,24 +7,50 @@
CC ?= gcc
CXX ?= g++

CARLA_C_FLAGS = -Wall -fPIC -I. -I../carla-includes $(CFLAGS)
CARLA_CXX_FLAGS = -Wall -std=c++0x -fPIC -I. -I../carla-includes `pkg-config --cflags jack fluidsynth liblo QtCore QtGui`
CARLA_CXX_FLAGS += -DCARLA_BACKEND_NO_NAMESPACE -DCARLA_ENGINE_JACK $(CXXFLAGS)
CARLA_CXX_FLAGS += -DVESTIGE_HEADER -I../carla-includes/vestige # Comment this line to not use vestige header
CARLA_CXX_FLAGS += -DNDEBUG -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT -O2 -ffast-math -fomit-frame-pointer -fvisibility=hidden -mtune=generic -msse
# CARLA_CXX_FLAGS += -DDEBUG -O0 -g
CARLA_LINK_FLAGS = -shared -fPIC -ldl `pkg-config --libs jack fluidsynth linuxsampler liblo QtCore QtGui` $(LDFLAGS)
BASE_FLAGS = -O2 -ffast-math -fomit-frame-pointer -fPIC -mtune=generic -msse -Wall -I. -I../carla-includes

OBJS = carla_backend.o carla_bridge.o carla_engine_jack.o carla_osc.o carla_shared.o carla_threads.o ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o lv2-rtmempool/rtmempool.o
HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true)
HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true)

CARLA_C_FLAGS = $(BASE_FLAGS) $(CFLAGS)

CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS)
CARLA_CXX_FLAGS += $(shell pkg-config --cflags jack liblo QtCore QtGui) -DCARLA_BACKEND_NO_NAMESPACE -DCARLA_ENGINE_JACK
CARLA_CXX_FLAGS += -DNDEBUG -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT
CARLA_CXX_FLAGS += -DVESTIGE_HEADER -I../carla-includes/vestige # Comment this line to not use vestige header

CARLA_LD_FLAGS = -shared -ldl $(LDFLAGS)
CARLA_LD_FLAGS += $(shell pkg-config --libs jack liblo QtCore QtGui)

ifeq ($(HAVE_FLUIDSYNTH),true)
CARLA_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH
CARLA_LD_FLAGS += $(shell pkg-config --libs fluidsynth)
endif

ifeq ($(HAVE_LINUXSAMPLER),true)
CARLA_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER
CARLA_LD_FLAGS += $(shell pkg-config --libs linuxsampler)
endif

OBJS = \
carla_backend.o \
carla_bridge.o \
carla_engine_jack.o \
carla_osc.o \
carla_shared.o \
carla_threads.o \
ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o \
lv2-rtmempool/rtmempool.o \
../carla-lilv/carla_lilv.a

# --------------------------------------------------------------

all: carla_backend.so

carla_backend.so: $(OBJS)
$(CXX) $(OBJS) ../carla-lilv/carla_lilv.a $(CARLA_LINK_FLAGS) -o carla_backend.so
$(CXX) $^ $(CARLA_LD_FLAGS) -o $@ && strip $@

carla_backend.a: $(OBJS)
$(CXX) $(OBJS) ../carla-lilv/carla_lilv.a -static $(CARLA_LINK_FLAGS) -o carla_backend.a
# --------------------------------------------------------------

.c.o:
$(CC) -c $< $(CARLA_C_FLAGS) -o $@


+ 2
- 0
src/carla-backend/carla_plugin.h View File

@@ -904,6 +904,7 @@ public:
for (uint32_t i=0; i < aout.count; i++)
aouts_buffer[i] = (float*)aout.ports[i]->getBuffer();

#ifndef BUILD_BRIDGE
if (carla_options.proccess_hq)
{
float* ains_buffer2[ain.count];
@@ -921,6 +922,7 @@ public:
}
}
else
#endif
process(ains_buffer, aouts_buffer, nframes);
}
#endif


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

@@ -22,7 +22,7 @@ LINK_FLAGS = $(shell pkg-config --libs liblo QtCore)

# --------------------------------------------------------------

BUILD_PLUGIN_FLAGS = $(BUILD_FLAGS) $(shell pkg-config --cflags QtGui)
BUILD_PLUGIN_FLAGS = $(BUILD_FLAGS) -DBUILD_BRIDGE_PLUGIN $(shell pkg-config --cflags QtGui)
LINK_PLUGIN_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs QtGui)

UNIX_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS)


+ 88
- 87
src/carla-bridge/carla_bridge_osc.cpp View File

@@ -18,29 +18,25 @@
#include "carla_bridge_osc.h"
#include "carla_midi.h"

#ifdef BUILD_BRIDGE_UI
#include "carla_bridge_ui.h"
#else
// TODO
#include <cstring>

#ifdef BUILD_BRIDGE_PLUGIN
#include "carla_plugin.h"
extern void plugin_bridge_show_gui(bool yesno);
extern void plugin_bridge_quit();
//CarlaPlugin* plugin = CarlaPlugins[0];
static const size_t plugin_name_len = 14;
static const char* const plugin_name = "plugin-bridge";
#else
#include "carla_bridge_ui.h"
extern int osc_handle_lv2_event_transfer(lo_arg** argv);
static const size_t plugin_name_len = 14;
static const char* const plugin_name = "lv2-ui-bridge";
#endif

#include <cstring>

size_t plugin_name_len = 13;
const char* plugin_name = "lv2-ui-bridge";

const char* global_osc_server_path = nullptr;
lo_server_thread global_osc_server_thread = nullptr;
OscData global_osc_data = { nullptr, nullptr, nullptr };

#if BRIDGE_LV2_GTK2 || BRIDGE_LV2_QT4 || BRIDGE_LV2_X11
int osc_handle_lv2_event_transfer(lo_arg** argv);
#endif

// -------------------------------------------------------------------------

void osc_init(const char* osc_url)
@@ -128,10 +124,6 @@ int osc_message_handler(const char* path, const char* types, lo_arg** argv, int

if (strcmp(method, "configure") == 0)
return osc_handle_configure(argv);
#if BRIDGE_LV2_GTK2 || BRIDGE_LV2_QT4 || BRIDGE_LV2_X11
else if (strcmp(method, "lv2_event_transfer") == 0)
return osc_handle_lv2_event_transfer(argv);
#endif
else if (strcmp(method, "control") == 0)
return osc_handle_control(argv);
else if (strcmp(method, "program") == 0)
@@ -146,6 +138,10 @@ int osc_message_handler(const char* path, const char* types, lo_arg** argv, int
return osc_handle_hide();
else if (strcmp(method, "quit") == 0)
return osc_handle_quit();
#if BRIDGE_LV2_GTK2 || BRIDGE_LV2_QT4 || BRIDGE_LV2_X11
else if (strcmp(method, "lv2_event_transfer") == 0)
return osc_handle_lv2_event_transfer(argv);
#endif
#if 0
else if (strcmp(method, "set_parameter_midi_channel") == 0)
return osc_set_parameter_midi_channel_handler(argv);
@@ -162,15 +158,14 @@ int osc_message_handler(const char* path, const char* types, lo_arg** argv, int

int osc_handle_configure(lo_arg** argv)
{
#ifdef BUILD_BRIDGE_PLUGIN
const char* key = (const char*)&argv[0]->s;
const char* value = (const char*)&argv[1]->s;

#ifdef BUILD_BRIDGE_UI
(void)key;
(void)value;
#else
if (CarlaPlugins[0])
CarlaPlugins[0]->set_custom_data(CUSTOM_DATA_STRING, key, value, false);
#else
Q_UNUSED(argv);
#endif

return 0;
@@ -178,15 +173,15 @@ int osc_handle_configure(lo_arg** argv)

int osc_handle_control(lo_arg** argv)
{
int index = argv[0]->i;
double value = argv[1]->f;
int index = argv[0]->i;
float value = argv[1]->f;

#ifdef BUILD_BRIDGE_UI
if (ui)
ui->queque_message(BRIDGE_MESSAGE_PARAMETER, index, 0, value);
#else
#ifdef BUILD_BRIDGE_PLUGIN
if (CarlaPlugins[0])
CarlaPlugins[0]->set_parameter_value_rindex(index, value, false, true, true);
#else
if (ui)
ui->queque_message(BRIDGE_MESSAGE_PARAMETER, index, 0, value);
#endif

return 0;
@@ -196,13 +191,16 @@ int osc_handle_program(lo_arg** argv)
{
int index = argv[0]->i;

#ifdef BUILD_BRIDGE_UI
if (ui && index >= 0)
ui->queque_message(BRIDGE_MESSAGE_PROGRAM, index, 0, 0.0);
if (index >= 0)
{
#ifdef BUILD_BRIDGE_PLUGIN
if (CarlaPlugins[0]) // TODO - asserts in plugin code
CarlaPlugins[0]->set_program(index, false, true, true, true);
#else
if (CarlaPlugins[0] && index >= 0)
CarlaPlugins[0]->set_program(index, false, true, true, true);
if (ui)
ui->queque_message(BRIDGE_MESSAGE_PROGRAM, index, 0, 0.0);
#endif
}

return 0;
}
@@ -212,13 +210,16 @@ int osc_handle_midi_program(lo_arg** argv)
int bank = argv[0]->i;
int program = argv[1]->i;

#ifdef BUILD_BRIDGE_UI
if (ui && bank >= 0 && program >= 0)
ui->queque_message(BRIDGE_MESSAGE_MIDI_PROGRAM, bank, program, 0.0);
if (bank >= 0 && program >= 0)
{
#ifdef BUILD_BRIDGE_PLUGIN
if (CarlaPlugins[0])
CarlaPlugins[0]->set_midi_program_full(bank, program, false, true, true, true);
#else
if (CarlaPlugins[0] && bank >= 0 && program >= 0)
CarlaPlugins[0]->set_midi_program_full(bank, program, false, true, true, true);
if (ui)
ui->queque_message(BRIDGE_MESSAGE_MIDI_PROGRAM, bank, program, 0.0);
#endif
}

return 0;
}
@@ -235,22 +236,22 @@ int osc_handle_midi(lo_arg** argv)
if (MIDI_IS_STATUS_NOTE_OFF(status))
{
uint8_t note = data[2];
#ifdef BUILD_BRIDGE_UI
#ifdef BUILD_BRIDGE_PLUGIN
plugin->send_midi_note(false, note, 0, false, true, true);
#else
if (ui)
ui->queque_message(BRIDGE_MESSAGE_NOTE_OFF, note, 0, 0.0);
#else
plugin->send_midi_note(false, note, 0, false, true, true);
#endif
}
else if (MIDI_IS_STATUS_NOTE_ON(status))
{
uint8_t note = data[2];
uint8_t velo = data[3];
#ifdef BUILD_BRIDGE_UI
#ifdef BUILD_BRIDGE_PLUGIN
plugin->send_midi_note(true, note, velo, false, true, true);
#else
if (ui)
ui->queque_message(BRIDGE_MESSAGE_NOTE_ON, note, velo, 0.0);
#else
plugin->send_midi_note(true, note, velo, false, true, true);
#endif
}

@@ -259,11 +260,11 @@ int osc_handle_midi(lo_arg** argv)

int osc_handle_show()
{
#ifdef BUILD_BRIDGE_UI
#ifdef BUILD_BRIDGE_PLUGIN
plugin_bridge_show_gui(true);
#else
if (ui)
ui->queque_message(BRIDGE_MESSAGE_SHOW_GUI, 1, 0, 0.0);
#else
plugin_bridge_show_gui(true);
#endif

return 0;
@@ -271,11 +272,11 @@ int osc_handle_show()

int osc_handle_hide()
{
#ifdef BUILD_BRIDGE_UI
#ifdef BUILD_BRIDGE_PLUGIN
plugin_bridge_show_gui(false);
#else
if (ui)
ui->queque_message(BRIDGE_MESSAGE_SHOW_GUI, 0, 0, 0.0);
#else
plugin_bridge_show_gui(false);
#endif

return 0;
@@ -283,11 +284,11 @@ int osc_handle_hide()

int osc_handle_quit()
{
#ifdef BUILD_BRIDGE_UI
#ifdef BUILD_BRIDGE_PLUGIN
plugin_bridge_quit();
#else
if (ui)
ui->queque_message(BRIDGE_MESSAGE_QUIT, 0, 0, 0.0);
#else
plugin_bridge_quit();
#endif

return 0;
@@ -295,17 +296,6 @@ int osc_handle_quit()

// -------------------------------------------------------------------------

void osc_send_update()
{
if (global_osc_data.target)
{
char target_path[strlen(global_osc_data.path)+8];
strcpy(target_path, global_osc_data.path);
strcat(target_path, "/update");
lo_send(global_osc_data.target, target_path, "s", global_osc_server_path);
}
}

void osc_send_configure(const char* key, const char* value)
{
if (global_osc_data.target)
@@ -361,31 +351,9 @@ void osc_send_midi(uint8_t buf[4])
}
}

void osc_send_exiting()
{
if (global_osc_data.target)
{
char target_path[strlen(global_osc_data.path)+9];
strcpy(target_path, global_osc_data.path);
strcat(target_path, "/exiting");
lo_send(global_osc_data.target, target_path, "");
}
}

// -------------------------------------------------------------------------

#ifdef BUILD_BRIDGE_UI
void osc_send_lv2_event_transfer(const char* type, const char* key, const char* value)
{
if (global_osc_data.target)
{
char target_path[strlen(global_osc_data.path)+20];
strcpy(target_path, global_osc_data.path);
strcat(target_path, "/lv2_event_transfer");
lo_send(global_osc_data.target, target_path, "sss", type, key, value);
}
}
#else
#ifdef BUILD_BRIDGE_PLUGIN
void osc_send_bridge_ains_peak(int index, double value)
{
if (global_osc_data.target)
@@ -539,4 +507,37 @@ void osc_send_bridge_update()
lo_send(global_osc_data.target, target_path, "");
}
}
#else
void osc_send_update()
{
if (global_osc_data.target)
{
char target_path[strlen(global_osc_data.path)+8];
strcpy(target_path, global_osc_data.path);
strcat(target_path, "/update");
lo_send(global_osc_data.target, target_path, "s", global_osc_server_path);
}
}

void osc_send_exiting()
{
if (global_osc_data.target)
{
char target_path[strlen(global_osc_data.path)+9];
strcpy(target_path, global_osc_data.path);
strcat(target_path, "/exiting");
lo_send(global_osc_data.target, target_path, "");
}
}

void osc_send_lv2_event_transfer(const char* type, const char* key, const char* value)
{
if (global_osc_data.target)
{
char target_path[strlen(global_osc_data.path)+20];
strcpy(target_path, global_osc_data.path);
strcat(target_path, "/lv2_event_transfer");
lo_send(global_osc_data.target, target_path, "sss", type, key, value);
}
}
#endif

+ 7
- 14
src/carla-bridge/carla_bridge_osc.h View File

@@ -20,20 +20,7 @@

#include "carla_osc_includes.h"

// common handlers
int osc_handle_configure(lo_arg** argv);
int osc_handle_control(lo_arg** argv);
int osc_handle_program(lo_arg** argv);
int osc_handle_midi_program(lo_arg** argv);
int osc_handle_midi(lo_arg** argv);
int osc_handle_show();
int osc_handle_hide();
int osc_handle_quit();

#ifdef BUILD_BRIDGE_UI
// ui-bridge only
void osc_send_lv2_event_transfer(const char* type, const char* key, const char* value);
#else
#ifdef BUILD_BRIDGE_PLUGIN
// plugin-bridge only
void osc_send_bridge_ains_peak(int index, double value);
void osc_send_bridge_aouts_peak(int index, double value);
@@ -49,6 +36,12 @@ void osc_send_bridge_param_ranges(int index, double def, double min, double max,
void osc_send_bridge_program_info(int index, const char* name);
void osc_send_bridge_midi_program_info(int index, int bank, int program, const char* label);
void osc_send_bridge_update();
#else
// ui-bridge only
void osc_send_update();
void osc_send_exiting();
//void osc_send_lv2_atom_transfer();
void osc_send_lv2_event_transfer(const char* type, const char* key, const char* value);
#endif

#endif // CARLA_BRIDGE_OSC_H

+ 2
- 0
src/carla-bridge/carla_bridge_plugin.cpp View File

@@ -15,6 +15,8 @@
* For a full copy of the GNU General Public License see the COPYING file
*/

#define CARLA_BACKEND_NO_EXPORTS
#include "carla_backend.h"
#include "carla_plugin.h"

#include <QtGui/QApplication>


+ 1
- 1
src/carla-bridge/carla_bridge_ui-vst.cpp View File

@@ -15,9 +15,9 @@
* For a full copy of the GNU General Public License see the COPYING file
*/

#include "carla_osc_includes.h"
#include "carla_vst_includes.h"

#include "carla_bridge_osc.h"
#include "carla_bridge_ui.h"
#include "carla_midi.h"



+ 13
- 36
src/carla-bridge/carla_bridge_ui.h View File

@@ -19,6 +19,7 @@
#define CARLA_BRIDGE_UI_H

#include "carla_includes.h"
#include "carla_lib_includes.h"

#include <cstdio>
#include <cstdlib>
@@ -63,6 +64,7 @@ public:
UiData(const char* ui_title)
{
m_lib = nullptr;
m_filename = nullptr;
m_title = strdup(ui_title);

for (unsigned int i=0; i < MAX_BRIDGE_MESSAGES; i++)
@@ -76,6 +78,8 @@ public:

virtual ~UiData()
{
if (m_filename)
free(m_filename);
free(m_title);
}

@@ -175,62 +179,35 @@ public:

bool lib_open(const char* filename)
{
#ifdef Q_OS_WIN
m_lib = LoadLibraryA(filename);
#else
m_lib = dlopen(filename, RTLD_NOW);
#endif
m_lib = ::lib_open(filename);
m_filename = strdup(filename);
return bool(m_lib);
}

bool lib_close()
{
if (m_lib)
#ifdef Q_OS_WIN
return FreeLibrary((HMODULE)m_lib) != 0;
#else
return dlclose(m_lib) != 0;
#endif
else
return false;
return ::lib_close(m_lib);
return false;
}

void* lib_symbol(const char* symbol)
{
if (m_lib)
#ifdef Q_OS_WIN
return (void*)GetProcAddress((HMODULE)m_lib, symbol);
#else
return dlsym(m_lib, symbol);
#endif
else
return nullptr;
return ::lib_symbol(m_lib, symbol);
return nullptr;
}

const char* lib_error(const char* filename)
const char* lib_error()
{
#ifdef Q_OS_WIN
static char libError[2048];
memset(libError, 0, sizeof(char)*2048);

LPVOID winErrorString;
DWORD winErrorCode = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, nullptr, winErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&winErrorString, 0, nullptr);

snprintf(libError, 2048, "%s: error code %i: %s", filename, winErrorCode, (const char*)winErrorString);
LocalFree(winErrorString);

return libError;
#else
return dlerror();
(void)filename;
#endif
return ::lib_error(m_filename ? m_filename : "");
}

// ---------------------------------------------------------------------

private:
void* m_lib;
char* m_filename;
char* m_title;
QMutex m_lock;
QuequeBridgeMessage QuequeBridgeMessages[MAX_BRIDGE_MESSAGES];


+ 6
- 5
src/carla-bridge/qtcreator/carla-bridge-lv2-gtk2.pro View File

@@ -2,7 +2,7 @@

QT = core

CONFIG = warn_on qt link_pkgconfig debug
CONFIG = debug link_pkgconfig qt warn_on
PKGCONFIG = liblo gtk+-2.0

TEMPLATE = app
@@ -16,13 +16,14 @@ SOURCES = \
HEADERS = \
../carla_bridge_osc.h \
../carla_bridge_ui.h \
../../carla/carla_midi.h \
../../carla/lv2_rdf.h \
../../carla-backend/carla_midi.h \
../../carla-includes/carla_includes.h \
../../carla-includes/carla_osc_includes.h
../../carla-includes/carla_lib_includes.h \
../../carla-includes/carla_osc_includes.h \
../../carla-includes/lv2_rdf.h

INCLUDEPATH = .. \
../../carla \
../../carla-backend \
../../carla-includes

TARGET = carla-bridge-lv2-gtk2


+ 6
- 5
src/carla-bridge/qtcreator/carla-bridge-lv2-qt4.pro View File

@@ -2,7 +2,7 @@

QT = core gui

CONFIG = warn_on qt link_pkgconfig debug
CONFIG = debug link_pkgconfig qt warn_on
PKGCONFIG = liblo

TEMPLATE = app
@@ -16,13 +16,14 @@ SOURCES = \
HEADERS = \
../carla_bridge_osc.h \
../carla_bridge_ui.h \
../../carla/carla_midi.h \
../../carla/lv2_rdf.h \
../../carla-backend/carla_midi.h \
../../carla-includes/carla_includes.h \
../../carla-includes/carla_osc_includes.h
../../carla-includes/carla_lib_includes.h \
../../carla-includes/carla_osc_includes.h \
../../carla-includes/lv2_rdf.h

INCLUDEPATH = .. \
../../carla \
../../carla-backend \
../../carla-includes

TARGET = carla-bridge-lv2-qt4


+ 6
- 5
src/carla-bridge/qtcreator/carla-bridge-lv2-x11.pro View File

@@ -2,7 +2,7 @@

QT = core gui

CONFIG = warn_on qt link_pkgconfig debug
CONFIG = debug link_pkgconfig qt warn_on
PKGCONFIG = liblo

TEMPLATE = app
@@ -16,13 +16,14 @@ SOURCES = \
HEADERS = \
../carla_bridge_osc.h \
../carla_bridge_ui.h \
../../carla/carla_midi.h \
../../carla/lv2_rdf.h \
../../carla-backend/carla_midi.h \
../../carla-includes/carla_includes.h \
../../carla-includes/carla_osc_includes.h
../../carla-includes/carla_lib_includes.h \
../../carla-includes/carla_osc_includes.h \
../../carla-includes/lv2_rdf.h

INCLUDEPATH = .. \
../../carla \
../../carla-backend \
../../carla-includes

TARGET = carla-bridge-lv2-x11


+ 0
- 42
src/carla-bridge/qtcreator/carla-bridge-plugin.pro View File

@@ -1,42 +0,0 @@
# QtCreator project file

QT = core gui

CONFIG += warn_on qt debug link_pkgconfig
PKGCONFIG = jack liblo fluidsynth

TEMPLATE = app
VERSION = 0.5.0

SOURCES = \
../carla_bridge.cpp \
../carla_osc.cpp \
../../carla/carla_jack.cpp \
../../carla/carla_shared.cpp \
../../carla/ladspa.cpp \
../../carla/dssi.cpp \
../../carla/lv2.cpp \
../../carla/vst.cpp \
../../carla/lv2-rtmempool/rtmempool.c

HEADERS = \
../carla_osc.h \
../../carla/carla_backend.h \
../../carla/carla_jack.h \
../../carla/carla_plugin.h \
../../carla/carla_shared.h \
../../carla-includes/carla_includes.h

INCLUDEPATH = .. \
../../carla-includes \
# ../../carla-includes/vestige \
../../carla-includes/vst \
../../carla

TARGET = carla-bridge-qtcreator

DEFINES = BUILD_BRIDGE

LIBS = ../../carla-lilv/carla_lilv.a

QMAKE_CXXFLAGS *= -std=c++0x

+ 6
- 5
src/carla-bridge/qtcreator/carla-bridge-vst-x11.pro View File

@@ -2,7 +2,7 @@

QT = core gui

CONFIG = warn_on qt link_pkgconfig debug
CONFIG = debug link_pkgconfig qt warn_on
PKGCONFIG = liblo

TEMPLATE = app
@@ -16,15 +16,16 @@ SOURCES = \
HEADERS = \
../carla_bridge_osc.h \
../carla_bridge_ui.h \
../../carla/carla_midi.h \
../../carla/lv2_rdf.h \
../../carla-backend/carla_midi.h \
../../carla-includes/carla_includes.h \
../../carla-includes/carla_lib_includes.h \
../../carla-includes/carla_osc_includes.h \
../../carla-includes/carla_vst_includes.h

INCLUDEPATH = .. \
../../carla \
../../carla-includes
../../carla-backend \
../../carla-includes \
../../carla-includes/vst

TARGET = carla-bridge-vst-x11



+ 1
- 1
src/carla-includes/carla_lib_includes.h View File

@@ -1,6 +1,6 @@
/*
* Carla shared library code
* Copyright (C) 2012 Filipe Coelho <falktx@gmail.com>
* Copyright (C) 2011-2012 Filipe Coelho <falktx@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by


+ 15
- 5
src/carla-includes/carla_osc_includes.h View File

@@ -24,8 +24,11 @@

#ifdef BUILD_BRIDGE
#define OSC_SEND_ARGS
#define OSC_HANDLE_ARGS
#else
class CarlaPlugin;
#define OSC_SEND_ARGS OscData*,
#define OSC_HANDLE_ARGS CarlaPlugin*,
#endif

struct OscData {
@@ -41,16 +44,23 @@ void osc_clear_data(OscData*);
void osc_error_handler(int num, const char* msg, const char* path);
int osc_message_handler(const char* path, const char* types, lo_arg** argv, int argc, void* data, void* user_data);

int osc_handle_configure(OSC_HANDLE_ARGS lo_arg** argv);
int osc_handle_control(OSC_HANDLE_ARGS lo_arg** argv);
int osc_handle_program(OSC_HANDLE_ARGS lo_arg** argv);
int osc_handle_midi_program(OSC_HANDLE_ARGS lo_arg** argv);
int osc_handle_midi(OSC_HANDLE_ARGS lo_arg** argv);
#ifdef BUILD_BRIDGE
int osc_handle_show();
int osc_handle_hide();
int osc_handle_quit();
#endif

void osc_send_configure(OSC_SEND_ARGS const char* key, const char* value);
void osc_send_control(OSC_SEND_ARGS int control, double value);
void osc_send_program(OSC_SEND_ARGS int program);
void osc_send_midi_program(OSC_SEND_ARGS int bank, int program, bool);
void osc_send_midi(OSC_SEND_ARGS uint8_t buf[4]);

#ifdef BUILD_BRIDGE_UI
void osc_send_update();
void osc_send_exiting();
#else
#ifndef BUILD_BRIDGE
void osc_send_show(OscData*);
void osc_send_hide(OscData*);
void osc_send_quit(OscData*);


+ 2
- 0
src/carla-includes/carla_vst_includes.h View File

@@ -18,6 +18,8 @@
#ifndef CARLA_VST_INCLUDES_H
#define CARLA_VST_INCLUDES_H

#include <cstdint>

#define VST_FORCE_DEPRECATED 0
#include "aeffectx.h"



+ 3
- 3
src/carla-includes/linuxsampler/EngineFactory.h View File

@@ -21,9 +21,9 @@
#ifndef __LS_ENGINEFACTORY_H__
#define __LS_ENGINEFACTORY_H__

#include "linuxsampler/common/global.h"
#include "linuxsampler/common/Exception.h"
#include "linuxsampler/engines/Engine.h"
#include <linuxsampler/common/global.h>
#include <linuxsampler/common/Exception.h>
#include <linuxsampler/engines/Engine.h>

#include <set>
#include <vector>


+ 2
- 3
src/carla.py View File

@@ -2083,7 +2083,7 @@ class PluginWidget(QFrame, ui_carla_plugin.Ui_PluginWidget):
else:
self.setWidgetColor(PALETTE_COLOR_NONE)

if (self.pinfo['hints'] & PLUGIN_IS_SYNTH):
if self.pinfo['hints'] & PLUGIN_IS_SYNTH:
self.led_audio_in.setVisible(False)
else:
self.led_midi.setVisible(False)
@@ -3052,9 +3052,8 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW):

if (build != BINARY_NATIVE):
# Store object so we can return a pointer
if (self.m_bridge_info == None):
if self.m_bridge_info is None:
self.m_bridge_info = PluginBridgeInfo()
self.m_bridge_info.category = plugin['category']
self.m_bridge_info.hints = plugin['hints']
self.m_bridge_info.name = plugin['name'].encode("utf-8")
self.m_bridge_info.maker = plugin['maker'].encode("utf-8")


+ 4
- 1
src/carla_backend.py View File

@@ -458,7 +458,10 @@ def runCarlaDiscovery(itype, stype, filename, tool, isWine=False):

command.append(tool)
command.append(stype)
command.append('"%s"' % filename)
if AVLINUX_PY2BUILD:
command.append('"%s"' % filename)
else:
command.append(filename)

if AVLINUX_PY2BUILD:
try:


Loading…
Cancel
Save