| @@ -287,23 +287,35 @@ enum OptionsType { | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_GTK2 = 21, | |||
| /*! | |||
| * Set path to the LV2 Gtk3 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_GTK3 = 22, | |||
| /*! | |||
| * Set path to the LV2 Qt4 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 22, | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 23, | |||
| /*! | |||
| * Set path to the LV2 X11 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 23, | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 24, | |||
| /*! | |||
| * Set path to the VST HWND UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_VST_HWND = 25, | |||
| /*! | |||
| * Set path to the VST X11 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_VST_X11 = 24 | |||
| OPTION_PATH_BRIDGE_VST_X11 = 26 | |||
| }; | |||
| /*! | |||
| @@ -244,10 +244,14 @@ const char* OptionsType2str(const OptionsType type) | |||
| return "OPTION_PATH_BRIDGE_WIN64"; | |||
| case OPTION_PATH_BRIDGE_LV2_GTK2: | |||
| return "OPTION_PATH_BRIDGE_LV2_GTK2"; | |||
| case OPTION_PATH_BRIDGE_LV2_GTK3: | |||
| return "OPTION_PATH_BRIDGE_LV2_GTK3"; | |||
| case OPTION_PATH_BRIDGE_LV2_QT4: | |||
| return "OPTION_PATH_BRIDGE_LV2_QT4"; | |||
| case OPTION_PATH_BRIDGE_LV2_X11: | |||
| return "OPTION_PATH_BRIDGE_LV2_X11"; | |||
| case OPTION_PATH_BRIDGE_VST_HWND: | |||
| return "OPTION_PATH_BRIDGE_VST_HWND"; | |||
| case OPTION_PATH_BRIDGE_VST_X11: | |||
| return "OPTION_PATH_BRIDGE_VST_X11"; | |||
| } | |||
| @@ -558,12 +562,18 @@ void setOption(const OptionsType option, const int value, const char* const valu | |||
| case OPTION_PATH_BRIDGE_LV2_GTK2: | |||
| carlaOptions.bridge_lv2gtk2 = strdup(valueStr); | |||
| break; | |||
| case OPTION_PATH_BRIDGE_LV2_GTK3: | |||
| carlaOptions.bridge_lv2gtk3 = strdup(valueStr); | |||
| break; | |||
| case OPTION_PATH_BRIDGE_LV2_QT4: | |||
| carlaOptions.bridge_lv2qt4 = strdup(valueStr); | |||
| break; | |||
| case OPTION_PATH_BRIDGE_LV2_X11: | |||
| carlaOptions.bridge_lv2x11 = strdup(valueStr); | |||
| break; | |||
| case OPTION_PATH_BRIDGE_VST_HWND: | |||
| carlaOptions.bridge_vsthwnd = strdup(valueStr); | |||
| break; | |||
| case OPTION_PATH_BRIDGE_VST_X11: | |||
| carlaOptions.bridge_vstx11 = strdup(valueStr); | |||
| break; | |||
| @@ -589,12 +599,18 @@ void resetOptions() | |||
| if (carlaOptions.bridge_lv2gtk2) | |||
| free((void*)carlaOptions.bridge_lv2gtk2); | |||
| if (carlaOptions.bridge_lv2gtk3) | |||
| free((void*)carlaOptions.bridge_lv2gtk3); | |||
| if (carlaOptions.bridge_lv2qt4) | |||
| free((void*)carlaOptions.bridge_lv2qt4); | |||
| if (carlaOptions.bridge_lv2x11) | |||
| free((void*)carlaOptions.bridge_lv2x11); | |||
| if (carlaOptions.bridge_vsthwnd) | |||
| free((void*)carlaOptions.bridge_vsthwnd); | |||
| if (carlaOptions.bridge_vstx11) | |||
| free((void*)carlaOptions.bridge_vstx11); | |||
| @@ -613,8 +629,10 @@ void resetOptions() | |||
| carlaOptions.bridge_win32 = nullptr; | |||
| carlaOptions.bridge_win64 = nullptr; | |||
| carlaOptions.bridge_lv2gtk2 = nullptr; | |||
| carlaOptions.bridge_lv2gtk3 = nullptr; | |||
| carlaOptions.bridge_lv2qt4 = nullptr; | |||
| carlaOptions.bridge_lv2x11 = nullptr; | |||
| carlaOptions.bridge_vsthwnd = nullptr; | |||
| carlaOptions.bridge_vstx11 = nullptr; | |||
| } | |||
| #endif // BUILD_BRIDGE | |||
| @@ -73,8 +73,10 @@ struct carla_options_t { | |||
| const char* bridge_win32; | |||
| const char* bridge_win64; | |||
| const char* bridge_lv2gtk2; | |||
| const char* bridge_lv2gtk3; | |||
| const char* bridge_lv2qt4; | |||
| const char* bridge_lv2x11; | |||
| const char* bridge_vsthwnd; | |||
| const char* bridge_vstx11; | |||
| carla_options_t() | |||
| @@ -92,8 +94,10 @@ struct carla_options_t { | |||
| bridge_win32(nullptr), | |||
| bridge_win64(nullptr), | |||
| bridge_lv2gtk2(nullptr), | |||
| bridge_lv2gtk3(nullptr), | |||
| bridge_lv2qt4(nullptr), | |||
| bridge_lv2x11(nullptr), | |||
| bridge_vsthwnd(nullptr), | |||
| bridge_vstx11(nullptr) {} | |||
| }; | |||
| extern carla_options_t carlaOptions; | |||
| @@ -32,7 +32,7 @@ POSIX_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) $(shell pkg-config --libs QtGui) -ldl | |||
| WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) $(shell pkg-config --cflags QtGui) | |||
| WIN_32BIT_FLAGS = $(32BIT_FLAGS) | |||
| WIN_64BIT_FLAGS = $(64BIT_FLAGS) | |||
| WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) $(shell pkg-config --libs QtGui) -static | |||
| WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) $(shell pkg-config --libs QtGui) -static -mwindows | |||
| WINE_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) -DQTCREATOR_TEST # -fpermissive | |||
| WINE_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine | |||
| @@ -66,14 +66,27 @@ LINK_UI_VST_X11_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs QtGui) | |||
| all: ui | |||
| ui: ui_lv2-gtk2 ui_lv2-qt4 ui_lv2-x11 ui_vst-x11 | |||
| ui: ui_lv2-gtk2 ui_lv2-gtk3 ui_lv2-qt4 ui_lv2-x11 ui_vst-x11 | |||
| ifeq ($(shell pkg-config --exists gtk+-2.0 && echo true),true) | |||
| ui_lv2-gtk2: carla-bridge-lv2-gtk2 | |||
| else | |||
| ui_lv2-gtk2: | |||
| endif | |||
| ifeq ($(shell pkg-config --exists gtk+-3.0 && echo true),true) | |||
| ui_lv2-gtk3: carla-bridge-lv2-gtk3 | |||
| else | |||
| ui_lv2-gtk3: | |||
| endif | |||
| ui_lv2-qt4: carla-bridge-lv2-qt4 | |||
| ui_lv2-x11: carla-bridge-lv2-x11 | |||
| ui_vst-hwnd: carla-bridge-vst-hwnd.exe | |||
| ui_vst-x11: carla-bridge-vst-x11 | |||
| # -------------------------------------------------------------- | |||
| posix32: carla-bridge-posix32 | |||
| posix64: carla-bridge-posix64 | |||
| win32: carla-bridge-win32.exe | |||
| @@ -4,7 +4,7 @@ | |||
| # Project related configuration options | |||
| #--------------------------------------------------------------------------- | |||
| DOXYFILE_ENCODING = UTF-8 | |||
| PROJECT_NAME = "Carla Bridge UI" | |||
| PROJECT_NAME = "Carla Bridge" | |||
| PROJECT_NUMBER = | |||
| PROJECT_BRIEF = | |||
| PROJECT_LOGO = | |||
| @@ -241,7 +241,7 @@ EXPAND_ONLY_PREDEF = NO | |||
| SEARCH_INCLUDES = YES | |||
| INCLUDE_PATH = | |||
| INCLUDE_FILE_PATTERNS = | |||
| PREDEFINED = BUILD_BRIDGE BUILD_BRIDGE_UI BUILD_BRIDGE_LV2 BUILD_BRIDGE_VST BRIDGE_LV2_GTK2 BRIDGE_LV2_QT4 BRIDGE_LV2_X11 BRIDGE_VST_X11 | |||
| PREDEFINED = BUILD_BRIDGE BUILD_BRIDGE_PLUGIN BUILD_BRIDGE_UI BRIDGE_LV2 BRIDGE_VST LV2_GTK2 BRIDGE_LV2_GTK3 BRIDGE_LV2_QT4 BRIDGE_LV2_X11 BRIDGE_VST_HWND BRIDGE_VST_X11 | |||
| EXPAND_AS_DEFINED = | |||
| SKIP_FUNCTION_MACROS = YES | |||
| #--------------------------------------------------------------------------- | |||
| @@ -22,9 +22,9 @@ | |||
| #include "carla_bridge_toolkit.h" | |||
| #ifdef BUILD_BRIDGE_PLUGIN | |||
| #include "carla_engine.h" | |||
| # include "carla_engine.h" | |||
| #else | |||
| #include "carla_lib_includes.h" | |||
| # include "carla_lib_includes.h" | |||
| #endif | |||
| #include <cmath> | |||
| @@ -151,6 +151,8 @@ int CarlaOsc::handleMessage(const char* const path, const int argc, const lo_arg | |||
| return handleMsgMidiProgram(argc, argv, types); | |||
| if (strcmp(method, "/midi") == 0) | |||
| return handleMsgMidi(argc, argv, types); | |||
| if (strcmp(method, "/sample_rate") == 0) | |||
| return 0; // unused | |||
| if (strcmp(method, "/show") == 0) | |||
| return handleMsgShow(); | |||
| if (strcmp(method, "/hide") == 0) | |||
| @@ -295,6 +297,8 @@ int CarlaOsc::handleMsgMidi(CARLA_BRIDGE_OSC_HANDLE_ARGS) | |||
| int CarlaOsc::handleMsgShow() | |||
| { | |||
| qDebug("CarlaOsc::handleMsgShow()"); | |||
| if (! client) | |||
| return 1; | |||
| @@ -305,6 +309,8 @@ int CarlaOsc::handleMsgShow() | |||
| int CarlaOsc::handleMsgHide() | |||
| { | |||
| qDebug("CarlaOsc::handleMsgHide()"); | |||
| if (! client) | |||
| return 1; | |||
| @@ -315,6 +321,8 @@ int CarlaOsc::handleMsgHide() | |||
| int CarlaOsc::handleMsgQuit() | |||
| { | |||
| qDebug("CarlaOsc::handleMsgQuit()"); | |||
| if (! client) | |||
| return 1; | |||
| @@ -43,7 +43,7 @@ POSIX_LINK_FLAGS = $(LINK_FLAGS) -ldl | |||
| WIN_BUILD_FLAGS = $(BUILD_FLAGS) | |||
| WIN_32BIT_FLAGS = $(32BIT_FLAGS) | |||
| WIN_64BIT_FLAGS = $(64BIT_FLAGS) | |||
| WIN_LINK_FLAGS = $(LINK_FLAGS) -static | |||
| WIN_LINK_FLAGS = $(LINK_FLAGS) -static -mwindows | |||
| WINE_BUILD_FLAGS = $(BUILD_FLAGS) # -fpermissive | |||
| WINE_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine | |||
| @@ -35,31 +35,31 @@ LINK_FLAGS += $(shell pkg-config --libs linuxsampler) | |||
| endif | |||
| endif | |||
| UNIX_BUILD_FLAGS = $(BUILD_FLAGS) | |||
| UNIX_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32 -L/usr/lib/i386-linux-gnu | |||
| UNIX_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64 -L/usr/lib/x86_64-linux-gnu | |||
| UNIX_LINK_FLAGS = $(LINK_FLAGS) -ldl | |||
| POSIX_BUILD_FLAGS = $(BUILD_FLAGS) | |||
| 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_FLAGS) -ldl | |||
| WIN_BUILD_FLAGS = $(BUILD_FLAGS) | |||
| WIN_32BIT_FLAGS = $(32BIT_FLAGS) | |||
| WIN_64BIT_FLAGS = $(64BIT_FLAGS) | |||
| WIN_LINK_FLAGS = $(LINK_FLAGS) -static | |||
| WIN_BUILD_FLAGS = $(BUILD_FLAGS) | |||
| WIN_32BIT_FLAGS = $(32BIT_FLAGS) | |||
| WIN_64BIT_FLAGS = $(64BIT_FLAGS) | |||
| WIN_LINK_FLAGS = $(LINK_FLAGS) -static -mwindows | |||
| WINE_BUILD_FLAGS = $(BUILD_FLAGS) # -fpermissive | |||
| WINE_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine | |||
| WINE_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64/wine -L/usr/lib/x86_64-linux-gnu/wine | |||
| WINE_LINK_FLAGS = $(LINK_FLAGS) -ldl | |||
| WINE_BUILD_FLAGS = $(BUILD_FLAGS) # -fpermissive | |||
| WINE_32BIT_FLAGS = $(32BIT_FLAGS) -L/usr/lib32/wine -L/usr/lib/i386-linux-gnu/wine | |||
| WINE_64BIT_FLAGS = $(64BIT_FLAGS) -L/usr/lib64/wine -L/usr/lib/x86_64-linux-gnu/wine | |||
| WINE_LINK_FLAGS = $(LINK_FLAGS) -ldl | |||
| # -------------------------------------------------------------- | |||
| all: carla-discovery-native | |||
| unix32: carla-discovery-unix32 | |||
| unix64: carla-discovery-unix64 | |||
| win32: carla-discovery-win32.exe | |||
| win64: carla-discovery-win64.exe | |||
| wine32: carla-discovery-win32.exe.so | |||
| wine64: carla-discovery-win64.exe.so | |||
| posix32: carla-discovery-posix32 | |||
| posix64: carla-discovery-posix64 | |||
| win32: carla-discovery-win32.exe | |||
| win64: carla-discovery-win64.exe | |||
| wine32: carla-discovery-win32.exe.so | |||
| wine64: carla-discovery-win64.exe.so | |||
| # -------------------------------------------------------------- | |||
| @@ -69,11 +69,11 @@ wine64: carla-discovery-win64.exe.so | |||
| carla-discovery-native: carla-discovery.cpp ../carla-lilv/carla_lilv.a | |||
| $(CXX) $^ $(BUILD_FLAGS) $(LINK_FLAGS) -o $@ | |||
| carla-discovery-unix32: $(32BIT_OBJS) | |||
| $(CXX) $^ $(UNIX_BUILD_FLAGS) $(UNIX_32BIT_FLAGS) $(UNIX_LINK_FLAGS) -o $@ | |||
| carla-discovery-posix32: $(32BIT_OBJS) | |||
| $(CXX) $^ $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) $(POSIX_LINK_FLAGS) -o $@ | |||
| carla-discovery-unix64: $(64BIT_OBJS) | |||
| $(CXX) $^ $(UNIX_BUILD_FLAGS) $(UNIX_64BIT_FLAGS) $(UNIX_LINK_FLAGS) -o $@ | |||
| carla-discovery-posix64: $(64BIT_OBJS) | |||
| $(CXX) $^ $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) $(POSIX_LINK_FLAGS) -o $@ | |||
| carla-discovery-win32.exe: $(32BIT_OBJS) | |||
| $(CXX) $^ $(WIN_BUILD_FLAGS) $(WIN_32BIT_FLAGS) $(WIN_LINK_FLAGS) -o $@ | |||
| @@ -19,9 +19,9 @@ | |||
| #define CARLA_INCLUDES_H | |||
| #ifdef __WINE__ | |||
| # define __socklen_t_defined | |||
| # define __WINE_WINSOCK2__ | |||
| # define HRESULT LONG | |||
| //# define __socklen_t_defined | |||
| //# define __WINE_WINSOCK2__ | |||
| //# define HRESULT LONG | |||
| # define Q_CORE_EXPORT | |||
| # define Q_GUI_EXPORT | |||
| # define QT_NO_STL | |||
| @@ -57,14 +57,16 @@ | |||
| # endif | |||
| #endif | |||
| // needed for qDebug/Warning/Critical sections (FIXME) | |||
| #if __WORDSIZE == 64 | |||
| # define P_INT64 "%li" | |||
| // needed for qDebug/Warning/Critical sections | |||
| #if defined(Q_OS_WIN64) && ! defined(__WINE__) | |||
| # define P_INTPTR "%I64i" | |||
| # define P_UINTPTR "%I64x" | |||
| # define P_SIZE "%I64u" | |||
| #elif __WORDSIZE == 64 | |||
| # define P_INTPTR "%li" | |||
| # define P_UINTPTR "%llx" | |||
| # define P_UINTPTR "%lx" | |||
| # define P_SIZE "%lu" | |||
| #else | |||
| # define P_INT64 "%lli" | |||
| # define P_INTPTR "%i" | |||
| # define P_UINTPTR "%x" | |||
| # define P_SIZE "%u" | |||
| @@ -72,7 +74,7 @@ | |||
| // set native binary type | |||
| #if defined(Q_OS_HAIKU) || defined(Q_OS_UNIX) | |||
| # if __LP64__ | |||
| # ifdef __LP64__ | |||
| # define BINARY_NATIVE BINARY_POSIX64 | |||
| # else | |||
| # define BINARY_NATIVE BINARY_POSIX32 | |||
| @@ -19,7 +19,7 @@ | |||
| #include <stdint.h> | |||
| #include "lv2/lv2plug.in/ns/ext/urid/urid.h" | |||
| #include "urid.h" | |||
| #define LV2_OPTIONS_URI "http://lv2plug.in/ns/ext/options" | |||
| #define LV2_OPTIONS_PREFIX LV2_OPTIONS_URI "#" | |||
| @@ -253,8 +253,10 @@ carla_bridge_win32 = "" | |||
| carla_bridge_win64 = "" | |||
| carla_bridge_lv2_gtk2 = "" | |||
| carla_bridge_lv2_gtk3 = "" | |||
| carla_bridge_lv2_qt4 = "" | |||
| carla_bridge_lv2_x11 = "" | |||
| carla_bridge_vst_hwnd = "" | |||
| carla_bridge_vst_x11 = "" | |||
| if WINDOWS: | |||
| @@ -379,6 +381,15 @@ else: | |||
| carla_bridge_lv2_gtk2 = os.path.join(p, "carla-bridge-lv2-gtk2") | |||
| break | |||
| # find carla_bridge_lv2_gtk3 | |||
| if os.path.exists(os.path.join(CWDpp, "carla-bridge", "carla-bridge-lv2-gtk3")): | |||
| carla_bridge_lv2_gtk3 = os.path.join(CWDpp, "carla-bridge", "carla-bridge-lv2-gtk3") | |||
| else: | |||
| for p in PATH: | |||
| if os.path.exists(os.path.join(p, "carla-bridge-lv2-gtk3")): | |||
| carla_bridge_lv2_gtk3 = os.path.join(p, "carla-bridge-lv2-gtk3") | |||
| break | |||
| # find carla_bridge_lv2_qt4 | |||
| if os.path.exists(os.path.join(CWDpp, "carla-bridge", "carla-bridge-lv2-qt4")): | |||
| carla_bridge_lv2_qt4 = os.path.join(CWDpp, "carla-bridge", "carla-bridge-lv2-qt4") | |||
| @@ -397,6 +408,15 @@ else: | |||
| carla_bridge_lv2_x11 = os.path.join(p, "carla-bridge-lv2-x11") | |||
| break | |||
| # find carla_bridge_vst_hwnd | |||
| if os.path.exists(os.path.join(CWDpp, "carla-bridge", "carla-bridge-vst-hwnd.exe")): | |||
| carla_bridge_vst_hwnd = os.path.join(CWDpp, "carla-bridge", "carla-bridge-vst-hwnd.exe") | |||
| else: | |||
| for p in PATH: | |||
| if os.path.exists(os.path.join(p, "carla-bridge-vst-hwnd.exe")): | |||
| carla_bridge_vst_hwnd = os.path.join(p, "carla-bridge-vst-hwnd.exe") | |||
| break | |||
| # find carla_bridge_vst_x11 | |||
| if os.path.exists(os.path.join(CWDpp, "carla-bridge", "carla-bridge-vst-x11")): | |||
| carla_bridge_vst_x11 = os.path.join(CWDpp, "carla-bridge", "carla-bridge-vst-x11") | |||
| @@ -157,9 +157,11 @@ OPTION_PATH_BRIDGE_POSIX64 = 18 | |||
| OPTION_PATH_BRIDGE_WIN32 = 19 | |||
| OPTION_PATH_BRIDGE_WIN64 = 20 | |||
| OPTION_PATH_BRIDGE_LV2_GTK2 = 21 | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 22 | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 23 | |||
| OPTION_PATH_BRIDGE_VST_X11 = 24 | |||
| OPTION_PATH_BRIDGE_LV2_GTK3 = 22 | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 23 | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 24 | |||
| OPTION_PATH_BRIDGE_VST_HWND = 25 | |||
| OPTION_PATH_BRIDGE_VST_X11 = 26 | |||
| # enum CallbackType | |||
| CALLBACK_DEBUG = 0 | |||