@@ -1,8 +1,8 @@ | |||
.directory | |||
.fuse-* | |||
.*.kate-swp | |||
*~ | |||
*~ | |||
*.o | |||
*.a | |||
*.exe | |||
@@ -22,8 +22,9 @@ ui_*.h | |||
carla-bridge-* | |||
carla-discovery-* | |||
c++/patchcanvas/PatchCanvas | |||
c++/*/Makefile | |||
c++/patchcanvas/PatchCanvas | |||
src/carla*/qtcreator/Makefile | |||
src/carla-includes/aeffect.h | |||
src/carla-includes/aeffectx.h |
@@ -26,7 +26,7 @@ WIN_LINK_FLAGS = -static $(LINK_FLAGS) | |||
WIN_32BIT_FLAGS = $(32BIT_FLAGS) | |||
WIN_64BIT_FLAGS = $(64BIT_FLAGS) | |||
WINE_BUILD_FLAGS = $(BUILD_FLAGS) | |||
WINE_BUILD_FLAGS = -fpermissive $(BUILD_FLAGS) | |||
WINE_LINK_FLAGS = $(LINK_FLAGS) | |||
WINE_32BIT_FLAGS = -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine $(32BIT_FLAGS) | |||
WINE_64BIT_FLAGS = -L/usr/lib64/wine -L/usr/lib/x86_64-linux-gnu/wine $(64BIT_FLAGS) | |||
@@ -35,7 +35,7 @@ SOURCES = carla_bridge.cpp carla_osc.cpp ../carla/carla_jack.cpp ../carla/carla_ | |||
all: | |||
@echo "Build type must be unix32, unix64, win32 or win64" | |||
@echo "Build type must be unix32, unix64, win[e]32 or win[e]64" | |||
unix32: carla-bridge-unix32 | |||
@@ -74,6 +74,7 @@ int main(int argc, char* argv[]) | |||
id = add_plugin_vst(filename, label); | |||
break; | |||
default: | |||
id = -1; | |||
break; | |||
} | |||
@@ -110,13 +111,11 @@ int main(int argc, char* argv[]) | |||
if (close_now) break; | |||
// FIXME | |||
//usleep(50000); // 50 ms | |||
msleep(50); | |||
} | |||
delete plugin; | |||
} | |||
} | |||
else | |||
{ | |||
@@ -37,14 +37,14 @@ void osc_clear_data(OscData* osc_data); | |||
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); | |||
void osc_send_configure(OscData* osc_data, const char* key, const char* value); | |||
void osc_send_control(OscData* osc_data, int param_id, double value); | |||
void osc_send_program(OscData* osc_data, int program_id); | |||
void osc_send_program_as_midi(OscData* osc_data, int bank, int program); | |||
void osc_send_midi_program(OscData* osc_data, int bank, int program); | |||
void osc_send_show(OscData* osc_data); | |||
void osc_send_hide(OscData* osc_data); | |||
void osc_send_quit(OscData* osc_data); | |||
//void osc_send_configure(OscData* osc_data, const char* key, const char* value); | |||
//void osc_send_control(OscData* osc_data, int param_id, double value); | |||
//void osc_send_program(OscData* osc_data, int program_id); | |||
//void osc_send_program_as_midi(OscData* osc_data, int bank, int program); | |||
//void osc_send_midi_program(OscData* osc_data, int bank, int program); | |||
//void osc_send_show(OscData* osc_data); | |||
//void osc_send_hide(OscData* osc_data); | |||
//void osc_send_quit(OscData* osc_data); | |||
void osc_send_update(); | |||
void osc_send_bridge_ains_peak(int index, double value); | |||
@@ -0,0 +1,23 @@ | |||
# QtCreator project file | |||
CONFIG = warn_on qt release | |||
TEMPLATE = app | |||
VERSION = 0.5 | |||
TARGET = carla-bridge-qtcreator | |||
SOURCES = ../carla_bridge.cpp ../carla_osc.cpp \ | |||
../../carla/carla_jack.cpp ../../carla/carla_shared.cpp \ | |||
../../carla/ladspa.cpp ../../carla/dssi.cpp ../../carla/vst.cpp | |||
HEADERS = ../carla_osc.h \ | |||
../../carla/carla_backend.h ../../carla/carla_includes.h \ | |||
../../carla/carla_jack.h ../../carla/carla_plugin.h ../../carla/carla_shared.h | |||
INCLUDEPATH = ../ ../../carla-includes ../../carla | |||
#../../carla-includes/vestige | |||
LIBS += -ldl -ljack -llo | |||
DEFINES = BUILD_BRIDGE |
@@ -37,7 +37,7 @@ endif | |||
all: | |||
@echo "Build type must be unix32, unix64, win32 or win64" | |||
@echo "Build type must be unix32, unix64, win[e]32 or win[e]64" | |||
unix32: carla-discovery-unix32 | |||
@@ -83,7 +83,7 @@ const unsigned int PLUGIN_IS_BRIDGE = 0x02; | |||
const unsigned int PLUGIN_IS_SYNTH = 0x04; | |||
const unsigned int PLUGIN_USES_CHUNKS = 0x08; | |||
const unsigned int PLUGIN_CAN_DRYWET = 0x10; | |||
const unsigned int PLUGIN_CAN_VOL = 0x20; | |||
const unsigned int PLUGIN_CAN_VOLUME = 0x20; | |||
const unsigned int PLUGIN_CAN_BALANCE = 0x40; | |||
enum BinaryType { | |||
@@ -0,0 +1,17 @@ | |||
# QtCreator project file | |||
CONFIG = warn_on qt release | |||
TEMPLATE = app | |||
VERSION = 0.5 | |||
TARGET = carla-discovery-qtcreator | |||
SOURCES = ../carla-discovery.cpp | |||
INCLUDEPATH = ../../carla-includes | |||
#../../carla-includes/vestige | |||
LIBS += -ldl | |||
DEFINES = BUILD_UNIX64 |
@@ -37,7 +37,7 @@ const unsigned int PLUGIN_IS_BRIDGE = 0x02; | |||
const unsigned int PLUGIN_IS_SYNTH = 0x04; | |||
const unsigned int PLUGIN_USES_CHUNKS = 0x08; | |||
const unsigned int PLUGIN_CAN_DRYWET = 0x10; | |||
const unsigned int PLUGIN_CAN_VOLUME = 0x20; | |||
const unsigned int PLUGIN_CAN_VOLUME = 0x20; | |||
const unsigned int PLUGIN_CAN_BALANCE = 0x40; | |||
// parameter hints | |||
@@ -38,12 +38,17 @@ | |||
#endif | |||
#ifdef Q_OS_WIN | |||
#include <windows.h> | |||
# include <windows.h> | |||
# define sleep(t) Sleep(t * 1000) | |||
# define msleep(t) Sleep(t) | |||
# define usleep(t) Sleep(t / 1000) | |||
#else | |||
#include <dlfcn.h> | |||
#ifndef __cdecl | |||
#define __cdecl | |||
#endif | |||
# include <dlfcn.h> | |||
# include <unistd.h> | |||
# define msleep(t) usleep(t * 1000) | |||
# ifndef __cdecl | |||
# define __cdecl | |||
# endif | |||
#endif | |||
// needed for qDebug/Warning/Critical sections | |||
@@ -73,7 +78,7 @@ | |||
#endif | |||
// don't export symbols if in bridge mode | |||
#if defined(BUILD_BRIDGE) | |||
#ifdef BUILD_BRIDGE | |||
# define CARLA_EXPORT | |||
#else | |||
# ifdef Q_OS_WIN | |||
@@ -103,6 +103,8 @@ int carla_jack_process_callback(jack_nframes_t nframes, void* arg) | |||
} | |||
return 0; | |||
} | |||
#else | |||
Q_UNUSED(arg); | |||
#endif | |||
#ifdef BUILD_BRIDGE | |||
@@ -135,6 +137,7 @@ void carla_jack_shutdown_callback(void*) | |||
// ------------------------------------------------------------------------------------------------------------------- | |||
#ifndef BUILD_BRIDGE | |||
bool carla_jack_init(const char* client_name) | |||
{ | |||
carla_jack_client = jack_client_open(client_name, JackNullOption, nullptr); | |||
@@ -200,6 +203,7 @@ bool carla_jack_close() | |||
carla_jack_client = nullptr; | |||
return false; | |||
} | |||
#endif | |||
bool carla_jack_register_plugin(CarlaPlugin* plugin, jack_client_t** client) | |||
{ | |||
@@ -234,3 +238,8 @@ bool carla_jack_register_plugin(CarlaPlugin* plugin, jack_client_t** client) | |||
return false; | |||
} | |||
int carla_jack_port_name_size() | |||
{ | |||
return jack_port_name_size(); | |||
} |
@@ -27,6 +27,10 @@ int carla_jack_srate_callback(jack_nframes_t new_sample_rate, void* arg); | |||
int carla_jack_process_callback(jack_nframes_t nframes, void* arg); | |||
void carla_jack_shutdown_callback(void* arg); | |||
#ifndef BUILD_BRIDGE | |||
bool carla_jack_init(const char* client_name); | |||
bool carla_jack_close(); | |||
#endif | |||
bool carla_jack_register_plugin(CarlaPlugin* plugin, jack_client_t** client); | |||
int carla_jack_port_name_size(); |
@@ -24,7 +24,6 @@ | |||
#include <cmath> | |||
#include <cstring> | |||
//#include <unistd.h> | |||
#include <QtCore/QList> | |||
#include <QtCore/QMutex> | |||
@@ -478,6 +477,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_control(&osc.data, PARAMETER_ACTIVE, value); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -501,6 +502,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_control(&osc.data, PARAMETER_DRYWET, value); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -524,6 +527,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_control(&osc.data, PARAMETER_VOLUME, value); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -547,6 +552,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_control(&osc.data, PARAMETER_BALANCE_LEFT, value); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -570,6 +577,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_control(&osc.data, PARAMETER_BALANCE_RIGHT, value); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -596,6 +605,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_control(&osc.data, index, value); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -697,6 +708,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_program(&osc.data, prog.current); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -726,6 +739,8 @@ public: | |||
if (m_hints & PLUGIN_IS_BRIDGE) | |||
osc_send_program(&osc.data, midiprog.current); | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -764,6 +779,8 @@ public: | |||
// osc_send_note_off(&osc.data, m_id, note); | |||
//} | |||
} | |||
#else | |||
Q_UNUSED(osc_send); | |||
#endif | |||
if (callback_send) | |||
@@ -833,6 +850,7 @@ public: | |||
post_events.lock.unlock(); | |||
} | |||
#ifndef BUILD_BRIDGE | |||
void update_osc_data(lo_address source, const char* url) | |||
{ | |||
const char* host; | |||
@@ -902,6 +920,7 @@ public: | |||
} | |||
return false; | |||
} | |||
#endif | |||
void remove_from_jack() | |||
{ | |||
@@ -1037,7 +1056,7 @@ public: | |||
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 %li: %s", m_filename, winErrorCode, (const char*)winErrorString); | |||
snprintf(libError, 2048, "%s: error code " P_INTPTR ": %s", m_filename, winErrorCode, (const char*)winErrorString); | |||
LocalFree(winErrorString); | |||
return libError; | |||
@@ -47,6 +47,9 @@ const char* last_error = nullptr; | |||
QMutex carla_proc_lock_var; | |||
QMutex carla_midi_lock_var; | |||
// carla_jack.cpp | |||
int carla_jack_port_name_size(); | |||
// ------------------------------------------------------------------------------------------------------------------- | |||
// Exported symbols (API) | |||
@@ -105,18 +108,18 @@ short get_new_plugin_id() | |||
const char* get_unique_name(const char* name) | |||
{ | |||
//int max = jack_port_name_size()/2 - 5; | |||
//if (carla_options.global_jack_client) | |||
// max -= strlen(carla_client_name); | |||
int max = carla_jack_port_name_size()/2 - 5; | |||
if (carla_options.global_jack_client) | |||
max -= strlen(get_host_client_name()); | |||
//qDebug("get_unique_name(%s) - truncated to %i", name, max); | |||
qDebug("get_unique_name(%s) - truncated to %i", name, max); | |||
QString qname(name); | |||
if (qname.isEmpty()) | |||
qname = "(No name)"; | |||
//qname.truncate(max); | |||
qname.truncate(max); | |||
//qname.replace(":", "."); // ":" is used in JACK to split client/port names | |||
for (unsigned short i=0; i<MAX_PLUGINS; i++) | |||
@@ -1150,6 +1150,8 @@ public: | |||
m_hints |= PLUGIN_HAS_GUI; | |||
} | |||
#else | |||
Q_UNUSED(extra_stuff); | |||
#endif | |||
return true; | |||
@@ -0,0 +1,38 @@ | |||
# QtCreator project file | |||
CONFIG = warn_on qt release shared dll plugin | |||
TEMPLATE = lib | |||
VERSION = 0.5.0 | |||
SOURCES = \ | |||
../carla_backend.cpp \ | |||
../carla_bridge.cpp \ | |||
../carla_jack.cpp \ | |||
../carla_osc.cpp \ | |||
../carla_shared.cpp \ | |||
../carla_threads.cpp \ | |||
../ladspa.cpp \ | |||
../dssi.cpp \ | |||
../lv2.cpp \ | |||
../vst.cpp \ | |||
../sf2.cpp | |||
HEADERS = \ | |||
../carla_includes.h \ | |||
../carla_backend.h \ | |||
../carla_jack.h \ | |||
../carla_osc.h \ | |||
../carla_plugin.h \ | |||
../carla_shared.h \ | |||
../carla_threads.h \ | |||
../ladspa_rdf.h \ | |||
../lv2_rdf.h | |||
TARGET = carla_backend | |||
INCLUDEPATH = \ | |||
# vestige \ | |||
../../carla-includes | |||
LIBS += -ljack -llo -lpthread |