| @@ -46,14 +46,15 @@ endif | |||
| ALL_LIBS += source/modules/jackbridge.a | |||
| ifeq ($(HAVE_JUCE),true) | |||
| ALL_LIBS += source/modules/juce_audio_basics.a | |||
| ALL_LIBS += source/modules/juce_audio_devices.a | |||
| ALL_LIBS += source/modules/juce_audio_formats.a | |||
| ALL_LIBS += source/modules/juce_audio_processors.a | |||
| ALL_LIBS += source/modules/juce_core.a | |||
| ALL_LIBS += source/modules/juce_data_structures.a | |||
| ALL_LIBS += source/modules/juce_events.a | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| ALL_LIBS += source/modules/juce_audio_processors.a | |||
| ALL_LIBS += source/modules/juce_data_structures.a | |||
| ALL_LIBS += source/modules/juce_graphics.a | |||
| ALL_LIBS += source/modules/juce_gui_basics.a | |||
| ALL_LIBS += source/modules/juce_gui_extra.a | |||
| @@ -46,6 +46,13 @@ ifeq ($(WIN32),true) | |||
| MACOS_OR_WIN32=true | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Force some features on MacOS and Windows | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| CARLA_VESTIGE_HEADER = false | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Common build and link flags | |||
| @@ -141,6 +148,7 @@ endif | |||
| # -------------------------------------------------------------- | |||
| # Set Qt tools | |||
| # FIXME | |||
| ifeq ($(HAVE_QT4),true) | |||
| MOC_QT4 ?= $(shell pkg-config --variable=moc_location QtCore) | |||
| @@ -175,6 +183,7 @@ endif | |||
| # -------------------------------------------------------------- | |||
| # Fail if prefered Qt is not found | |||
| # FIXME | |||
| ifeq ($(DEFAULT_QT),4) | |||
| ifneq ($(HAVE_QT4),true) | |||
| @@ -193,64 +202,31 @@ ifneq ($(shell pkg-config --exists liblo && echo true),true) | |||
| $(error liblo missing, cannot continue) | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Check for dgl support | |||
| ifeq ($(HAIKU),true) | |||
| HAVE_DGL = false | |||
| endif | |||
| ifeq ($(LINUX),true) | |||
| HAVE_DGL = $(shell pkg-config --exists gl x11 && echo true) | |||
| endif | |||
| ifeq ($(MACOS),true) | |||
| HAVE_DGL = true | |||
| endif | |||
| ifeq ($(WIN32),true) | |||
| HAVE_DGL = true | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Check for juce UI support | |||
| ifeq ($(HAIKU),true) | |||
| HAVE_JUCE_UI = false | |||
| endif | |||
| ifeq ($(LINUX),true) | |||
| HAVE_JUCE_UI = $(shell pkg-config --exists x11 xinerama xext xcursor freetype2 && echo true) | |||
| endif | |||
| ifeq ($(MACOS),true) | |||
| HAVE_JUCE_UI = true | |||
| ifneq ($(shell pkg-config --exists x11 && echo true),true) | |||
| $(error X11 missing, cannot continue) | |||
| endif | |||
| ifeq ($(WIN32),true) | |||
| HAVE_JUCE_UI = true | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Check for optional libs (required by backend or bridges) | |||
| ifneq ($(MACOS_OR_WIN32),true) | |||
| HAVE_FFMPEG = $(shell pkg-config --exists libavcodec libavformat libavutil && echo true) | |||
| HAVE_GTK2 = $(shell pkg-config --exists gtk+-2.0 && echo true) | |||
| HAVE_GTK3 = $(shell pkg-config --exists gtk+-3.0 && echo true) | |||
| ifeq ($(HAVE_QT4),true) | |||
| HAVE_QTGUI4 = $(shell pkg-config --exists QtCore QtGui && echo true) | |||
| endif | |||
| ifeq ($(HAVE_QT5),true) | |||
| HAVE_QTGUI5 = $(shell pkg-config --exists Qt5Core Qt5Gui Qt5Widgets && echo true) | |||
| endif | |||
| HAVE_WAYLAND = $(shell pkg-config --exists wayland-client && echo true) | |||
| HAVE_X11 = $(shell pkg-config --exists x11 && echo true) | |||
| endif | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| HAVE_DGL = true | |||
| HAVE_JUCE_UI = true | |||
| else | |||
| HAVE_FFMPEG = $(shell pkg-config --exists libavcodec libavformat libavutil && echo true) | |||
| HAVE_GTK2 = $(shell pkg-config --exists gtk+-2.0 && echo true) | |||
| HAVE_GTK3 = $(shell pkg-config --exists gtk+-3.0 && echo true) | |||
| HAVE_QTGUI4 = $(shell pkg-config --exists QtCore QtGui && echo true) | |||
| HAVE_QTGUI5 = $(shell pkg-config --exists Qt5Core Qt5Gui Qt5Widgets && echo true) | |||
| ifeq ($(LINUX),true) | |||
| HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||
| HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||
| HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||
| HAVE_DGL = $(shell pkg-config --exists gl && echo true) | |||
| HAVE_JUCE_UI = $(shell pkg-config --exists xinerama xext xcursor freetype2 TODO && echo true) | |||
| HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||
| HAVE_X11 = true | |||
| endif | |||
| endif | |||
| ifeq ($(CARLA_SAMPLERS_SUPPORT),true) | |||
| @@ -267,13 +243,6 @@ HAVE_PM_DEPS = $(shell pkg-config --exists libprojectM && echo true) | |||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml zlib && echo true) | |||
| HAVE_ZYN_UI_DEPS = $(shell pkg-config --exists ntk_images ntk && echo true) | |||
| # -------------------------------------------------------------- | |||
| # Force some features on MacOS and Windows | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| CARLA_VESTIGE_HEADER = false | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Set base defines | |||
| @@ -289,10 +258,6 @@ ifeq ($(HAVE_JUCE_UI),true) | |||
| BASE_FLAGS += -DHAVE_JUCE_UI | |||
| endif | |||
| ifeq ($(HAVE_WAYLAND),true) | |||
| BASE_FLAGS += -DHAVE_WAYLAND | |||
| endif | |||
| ifeq ($(HAVE_X11),true) | |||
| BASE_FLAGS += -DHAVE_X11 | |||
| endif | |||
| @@ -321,11 +286,6 @@ LINUXSAMPLER_FLAGS = $(shell pkg-config --cflags linuxsampler) -Wno-unused-param | |||
| LINUXSAMPLER_LIBS = $(shell pkg-config --libs linuxsampler) | |||
| endif | |||
| ifeq ($(HAVE_WAYLAND),true) | |||
| WAYLAND_FLAGS = $(shell pkg-config --cflags wayland-client) | |||
| WAYLAND_LIBS = $(shell pkg-config --libs wayland-client) | |||
| endif | |||
| ifeq ($(HAVE_X11),true) | |||
| X11_FLAGS = $(shell pkg-config --cflags x11) | |||
| X11_LIBS = $(shell pkg-config --libs x11) | |||
| @@ -360,10 +320,10 @@ DGL_FLAGS = $(shell pkg-config --cflags gl x11) | |||
| DGL_LIBS = $(shell pkg-config --libs gl x11) | |||
| endif | |||
| JACKBRIDGE_LIBS = -ldl -lpthread -lrt | |||
| ifeq ($(HAVE_JUCE),true) | |||
| JUCE_CORE_LIBS = -ldl -lpthread -lrt | |||
| JUCE_EVENTS_FLAGS = $(shell pkg-config --cflags x11) | |||
| JUCE_EVENTS_LIBS = $(shell pkg-config --libs x11) | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| JUCE_GRAPHICS_FLAGS = $(shell pkg-config --cflags x11 xinerama xext freetype2) | |||
| JUCE_GRAPHICS_LIBS = $(shell pkg-config --libs x11 xinerama xext freetype2) | |||
| JUCE_GUI_BASICS_FLAGS = $(shell pkg-config --cflags x11 xinerama xext xcursor) | |||
| @@ -32,10 +32,10 @@ | |||
| #include <QtCore/QByteArray> | |||
| #ifdef BUILD_BRIDGE | |||
| # undef HAVE_JUCE | |||
| # undef HAVE_JUCE_UI | |||
| #endif | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| # include "juce_gui_basics.h" | |||
| using juce::initialiseJuce_GUI; | |||
| using juce::shutdownJuce_GUI; | |||
| @@ -49,7 +49,7 @@ using CB::EngineOptions; | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| // Juce Message Thread | |||
| #if defined(HAVE_JUCE) && defined(CARLA_OS_LINUX) | |||
| #if defined(HAVE_JUCE_UI) && defined(CARLA_OS_LINUX) | |||
| class JuceMessageThread : public Thread | |||
| { | |||
| @@ -104,7 +104,7 @@ private: | |||
| CARLA_DECLARE_NON_COPY_CLASS(JuceMessageThread) | |||
| }; | |||
| #endif // defined(HAVE_JUCE) && defined(CARLA_OS_LINUX) | |||
| #endif // defined(HAVE_JUCE_UI) && defined(CARLA_OS_LINUX) | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| // Single, standalone engine | |||
| @@ -120,7 +120,7 @@ struct CarlaBackendStandalone { | |||
| CarlaString lastError; | |||
| #if defined(HAVE_JUCE) && defined(CARLA_OS_LINUX) | |||
| #if defined(HAVE_JUCE_UI) && defined(CARLA_OS_LINUX) | |||
| JuceMessageThread juceMsgThread; | |||
| #endif | |||
| @@ -148,12 +148,12 @@ struct CarlaBackendStandalone { | |||
| ~CarlaBackendStandalone() | |||
| { | |||
| CARLA_SAFE_ASSERT(engine == nullptr); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| CARLA_SAFE_ASSERT(MessageManager::getInstanceWithoutCreating() == nullptr); | |||
| #endif | |||
| } | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| void init() | |||
| { | |||
| JUCE_AUTORELEASEPOOL | |||
| @@ -403,9 +403,6 @@ protected: | |||
| //CARLA_SAFE_ASSERT_RETURN(gStandalone.frontendWinId != 0, 0); | |||
| carla_debug("CarlaNSM::handleShowHideGui(%s)", bool2str(show)); | |||
| #ifdef HAVE_X11 | |||
| #endif | |||
| #ifndef BUILD_ANSI_TEST | |||
| lo_send_from(lo_message_get_source(msg), fOscServer, LO_TT_IMMEDIATE, show ? "/nsm/client/gui_is_shown" : "/nsm/client/gui_is_hidden", ""); | |||
| #endif | |||
| @@ -879,7 +876,7 @@ bool carla_engine_init(const char* driverName, const char* clientName) | |||
| if (gStandalone.engine->init(clientName)) | |||
| { | |||
| gStandalone.lastError = "No error"; | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| gStandalone.init(); | |||
| #endif | |||
| return true; | |||
| @@ -949,7 +946,7 @@ bool carla_engine_init_bridge(const char audioBaseName[6+1], const char controlB | |||
| if (gStandalone.engine->init(clientName)) | |||
| { | |||
| gStandalone.lastError = "No error"; | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| gStandalone.init(); | |||
| #endif | |||
| return true; | |||
| @@ -983,7 +980,7 @@ bool carla_engine_close() | |||
| if (! closed) | |||
| gStandalone.lastError = gStandalone.engine->getLastError(); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| gStandalone.close(); | |||
| #endif | |||
| @@ -998,7 +995,7 @@ void carla_engine_idle() | |||
| CARLA_SAFE_ASSERT_RETURN(gStandalone.engine != nullptr,); | |||
| gNSM.idle(); | |||
| #if defined(HAVE_JUCE) && ! defined(CARLA_OS_LINUX) | |||
| #if defined(HAVE_JUCE_UI) && ! defined(CARLA_OS_LINUX) | |||
| gStandalone.idle(); | |||
| #endif | |||
| gStandalone.engine->idle(); | |||
| @@ -13,6 +13,11 @@ STANDALONE_LIBS = carla_engine.a | |||
| STANDALONE_LIBS += carla_plugin.a | |||
| STANDALONE_LIBS += ../modules/jackbridge.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_basics.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_devices.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_formats.a | |||
| STANDALONE_LIBS += ../modules/juce_core.a | |||
| STANDALONE_LIBS += ../modules/juce_events.a | |||
| STANDALONE_LIBS += ../modules/native-plugins.a | |||
| STANDALONE_LIBS += ../modules/rtaudio.a | |||
| STANDALONE_LIBS += ../modules/rtmempool.a | |||
| @@ -30,14 +35,9 @@ ifeq ($(HAVE_DGL),true) | |||
| STANDALONE_LIBS += ../modules/dgl.a | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| STANDALONE_LIBS += ../modules/juce_audio_basics.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_devices.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_formats.a | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| STANDALONE_LIBS += ../modules/juce_audio_processors.a | |||
| STANDALONE_LIBS += ../modules/juce_core.a | |||
| STANDALONE_LIBS += ../modules/juce_data_structures.a | |||
| STANDALONE_LIBS += ../modules/juce_events.a | |||
| STANDALONE_LIBS += ../modules/juce_graphics.a | |||
| STANDALONE_LIBS += ../modules/juce_gui_basics.a | |||
| STANDALONE_LIBS += ../modules/juce_gui_extra.a | |||
| @@ -47,9 +47,13 @@ endif | |||
| STANDALONE_FLAGS = $(LIBLO_LIBS) | |||
| STANDALONE_FLAGS += $(QTCORE_LIBS) | |||
| STANDALONE_FLAGS += $(QTXML_LIBS) | |||
| STANDALONE_FLAGS += $(JACKBRIDGE_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_CORE_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| STANDALONE_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
| STANDALONE_FLAGS += $(RTAUDIO_LIBS) | |||
| STANDALONE_FLAGS += $(RTMEMPOOL_LIBS) | |||
| @@ -67,14 +71,9 @@ ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| STANDALONE_FLAGS += $(LINUXSAMPLER_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_CORE_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
| @@ -81,9 +81,7 @@ uint CarlaEngine::getDriverCount() | |||
| #ifndef BUILD_BRIDGE | |||
| count += getRtAudioApiCount(); | |||
| # ifdef HAVE_JUCE | |||
| count += getJuceApiCount(); | |||
| # endif | |||
| #endif | |||
| return count; | |||
| @@ -104,10 +102,8 @@ const char* CarlaEngine::getDriverName(const uint index2) | |||
| index -= getRtAudioApiCount(); | |||
| # ifdef HAVE_JUCE | |||
| if (index < getJuceApiCount()) | |||
| return getJuceApiName(index); | |||
| # endif | |||
| #endif | |||
| carla_stderr("CarlaEngine::getDriverName(%i) - invalid index", index2); | |||
| @@ -132,10 +128,8 @@ const char* const* CarlaEngine::getDriverDeviceNames(const uint index2) | |||
| index -= getRtAudioApiCount(); | |||
| # ifdef HAVE_JUCE | |||
| if (index < getJuceApiCount()) | |||
| return getJuceApiDeviceNames(index); | |||
| # endif | |||
| #endif | |||
| carla_stderr("CarlaEngine::getDriverDeviceNames(%i) - invalid index", index2); | |||
| @@ -164,10 +158,8 @@ const EngineDriverDeviceInfo* CarlaEngine::getDriverDeviceInfo(const uint index2 | |||
| index -= getRtAudioApiCount(); | |||
| # ifdef HAVE_JUCE | |||
| if (index < getJuceApiCount()) | |||
| return getJuceDeviceInfo(index, deviceName); | |||
| # endif | |||
| #endif | |||
| carla_stderr("CarlaEngine::getDriverDeviceNames(%i, \"%s\") - invalid index", index2, deviceName); | |||
| @@ -193,13 +185,8 @@ CarlaEngine* CarlaEngine::newDriverByName(const char* const driverName) | |||
| // linux | |||
| if (std::strcmp(driverName, "ALSA") == 0) | |||
| { | |||
| # ifdef HAVE_JUCE | |||
| return newJuce(AUDIO_API_ALSA); | |||
| # else | |||
| //return newJuce(AUDIO_API_ALSA); | |||
| return newRtAudio(AUDIO_API_ALSA); | |||
| # endif | |||
| } | |||
| if (std::strcmp(driverName, "OSS") == 0) | |||
| return newRtAudio(AUDIO_API_OSS); | |||
| @@ -210,34 +197,16 @@ CarlaEngine* CarlaEngine::newDriverByName(const char* const driverName) | |||
| // macos | |||
| if (std::strcmp(driverName, "CoreAudio") == 0) | |||
| { | |||
| # ifdef HAVE_JUCE | |||
| return newJuce(AUDIO_API_CORE); | |||
| # else | |||
| return newRtAudio(AUDIO_API_CORE); | |||
| # endif | |||
| } | |||
| // ------------------------------------------------------------------- | |||
| // windows | |||
| if (std::strcmp(driverName, "ASIO") == 0) | |||
| { | |||
| # ifdef HAVE_JUCE | |||
| return newJuce(AUDIO_API_ASIO); | |||
| # else | |||
| return newRtAudio(AUDIO_API_ASIO); | |||
| # endif | |||
| } | |||
| if (std::strcmp(driverName, "DirectSound") == 0) | |||
| { | |||
| # ifdef HAVE_JUCE | |||
| return newJuce(AUDIO_API_DS); | |||
| # else | |||
| return newRtAudio(AUDIO_API_DS); | |||
| # endif | |||
| } | |||
| #endif | |||
| carla_stderr("CarlaEngine::newDriverByName(\"%s\") - invalid driver name", driverName); | |||
| @@ -419,7 +388,7 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||
| bridgeBinary.clear(); | |||
| } | |||
| if (ptype != PLUGIN_INTERNAL && ptype != PLUGIN_JACK && (btype != BINARY_NATIVE || (pData->options.preferPluginBridges && bridgeBinary.isNotEmpty()))) | |||
| if (ptype != PLUGIN_INTERNAL && (btype != BINARY_NATIVE || (pData->options.preferPluginBridges && bridgeBinary.isNotEmpty()))) | |||
| { | |||
| if (bridgeBinary.isNotEmpty()) | |||
| { | |||
| @@ -605,12 +574,14 @@ bool CarlaEngine::removePlugin(const uint id) | |||
| pData->thread.stopThread(500); | |||
| #ifndef BUILD_BRIDGE | |||
| const bool lockWait(isRunning() && pData->options.processMode != ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS); | |||
| const ScopedActionLock sal(pData, kEnginePostActionRemovePlugin, id, 0, lockWait); | |||
| #ifndef BUILD_BRIDGE | |||
| if (isOscControlRegistered()) | |||
| oscSend_control_remove_plugin(id); | |||
| #else | |||
| pData->plugins[0].plugin = nullptr; | |||
| #endif | |||
| delete plugin; | |||
| @@ -763,12 +734,15 @@ bool CarlaEngine::switchPlugins(const uint idA, const uint idB) | |||
| pData->thread.stopThread(500); | |||
| #ifndef BUILD_BRIDGE | |||
| const bool lockWait(isRunning() && pData->options.processMode != ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS); | |||
| const ScopedActionLock sal(pData, kEnginePostActionSwitchPlugins, idA, idB, lockWait); | |||
| #ifndef BUILD_BRIDGE // TODO | |||
| // TODO | |||
| //if (isOscControlRegistered()) | |||
| // oscSend_control_switch_plugins(idA, idB); | |||
| #else | |||
| pData->plugins[0].plugin = nullptr; | |||
| #endif | |||
| if (isRunning() && ! pData->aboutToClose) | |||
| @@ -1038,7 +1012,7 @@ bool CarlaEngine::loadProject(const char* const filename) | |||
| if (CarlaString(stateSave.label).endsWith(kUse16OutsSuffix)) | |||
| { | |||
| if (ptype == PLUGIN_FILE_GIG || ptype == PLUGIN_FILE_SF2) | |||
| if (ptype == PLUGIN_GIG || ptype == PLUGIN_SF2) | |||
| extraStuff = "true"; | |||
| } | |||
| @@ -752,7 +752,6 @@ void CarlaEngine::ProtectedData::processRack(const float* inBufReal[2], float* o | |||
| { | |||
| EnginePluginData& pluginData(plugins[i]); | |||
| #ifdef HAVE_JUCE | |||
| juce::Range<float> range; | |||
| if (oldAudioInCount > 0) | |||
| @@ -782,47 +781,6 @@ void CarlaEngine::ProtectedData::processRack(const float* inBufReal[2], float* o | |||
| pluginData.outsPeak[0] = 0.0f; | |||
| pluginData.outsPeak[1] = 0.0f; | |||
| } | |||
| #else | |||
| float peak1, peak2; | |||
| if (oldAudioInCount > 0) | |||
| { | |||
| peak1 = peak2 = 0.0f; | |||
| for (uint32_t k=0; k < frames; ++k) | |||
| { | |||
| peak1 = carla_max<float>(peak1, std::fabs(inBuf0[k]), 1.0f); | |||
| peak2 = carla_max<float>(peak2, std::fabs(inBuf1[k]), 1.0f); | |||
| } | |||
| pluginData.insPeak[0] = peak1; | |||
| pluginData.insPeak[1] = peak2; | |||
| } | |||
| else | |||
| { | |||
| pluginData.insPeak[0] = 0.0f; | |||
| pluginData.insPeak[1] = 0.0f; | |||
| } | |||
| if (plugin->getAudioOutCount() > 0) | |||
| { | |||
| peak1 = peak2 = 0.0f; | |||
| for (uint32_t k=0; k < frames; ++k) | |||
| { | |||
| peak1 = carla_max<float>(peak1, std::fabs(outBuf[0][k]), 1.0f); | |||
| peak2 = carla_max<float>(peak2, std::fabs(outBuf[1][k]), 1.0f); | |||
| } | |||
| pluginData.outsPeak[0] = peak1; | |||
| pluginData.outsPeak[1] = peak2; | |||
| } | |||
| else | |||
| { | |||
| pluginData.outsPeak[0] = 0.0f; | |||
| pluginData.outsPeak[1] = 0.0f; | |||
| } | |||
| #endif | |||
| } | |||
| processed = true; | |||
| @@ -15,10 +15,6 @@ | |||
| * For a full copy of the GNU General Public License see the GPL.txt file | |||
| */ | |||
| #ifndef HAVE_JUCE | |||
| # error This file should not be compiled if Juce is disabled | |||
| #endif | |||
| #include "CarlaEngineInternal.hpp" | |||
| #include "CarlaBackendUtils.hpp" | |||
| #include "CarlaStringList.hpp" | |||
| @@ -1365,7 +1365,7 @@ protected: | |||
| if (CarlaString(stateSave.label).endsWith(kUse16OutsSuffix)) | |||
| { | |||
| if (ptype == PLUGIN_FILE_GIG || ptype == PLUGIN_FILE_SF2) | |||
| if (ptype == PLUGIN_GIG || ptype == PLUGIN_SF2) | |||
| extraStuff = "true"; | |||
| } | |||
| @@ -1395,12 +1395,10 @@ public: | |||
| return new CarlaEngineNative(host, false); | |||
| } | |||
| #ifdef HAVE_JUCE | |||
| static NativePluginHandle _instantiatePatchbay(const NativeHostDescriptor* host) | |||
| { | |||
| return new CarlaEngineNative(host, true); | |||
| } | |||
| #endif | |||
| static void _cleanup(NativePluginHandle handle) | |||
| { | |||
| @@ -1586,7 +1584,7 @@ static const NativePluginDescriptor carlaRackDesc = { | |||
| CarlaEngineNative::_dispatcher | |||
| }; | |||
| #if 0 //def HAVE_JUCE | |||
| #if 0 | |||
| static const NativePluginDescriptor carlaPatchbayDesc = { | |||
| /* category */ ::PLUGIN_CATEGORY_OTHER, | |||
| /* hints */ static_cast<NativePluginHints>(::PLUGIN_IS_SYNTH|::PLUGIN_HAS_UI|::PLUGIN_NEEDS_FIXED_BUFFERS|::PLUGIN_NEEDS_SINGLE_THREAD|::PLUGIN_USES_STATE|::PLUGIN_USES_TIME), | |||
| @@ -1637,7 +1635,7 @@ void carla_register_native_plugin_carla() | |||
| { | |||
| CARLA_BACKEND_USE_NAMESPACE; | |||
| carla_register_native_plugin(&carlaRackDesc); | |||
| #if 0 //def HAVE_JUCE | |||
| #if 0 | |||
| carla_register_native_plugin(&carlaPatchbayDesc); | |||
| #endif | |||
| } | |||
| @@ -1668,20 +1666,15 @@ const char* CarlaEngine::getRtAudioApiName(const uint) { return nu | |||
| const char* const* CarlaEngine::getRtAudioApiDeviceNames(const uint) { return nullptr; } | |||
| const EngineDriverDeviceInfo* CarlaEngine::getRtAudioDeviceInfo(const uint, const char* const) { return nullptr; } | |||
| # ifdef HAVE_JUCE | |||
| CarlaEngine* CarlaEngine::newJuce(const AudioApi) { return nullptr; } | |||
| uint CarlaEngine::getJuceApiCount() { return 0; } | |||
| const char* CarlaEngine::getJuceApiName(const uint) { return nullptr; } | |||
| const char* const* CarlaEngine::getJuceApiDeviceNames(const uint) { return nullptr; } | |||
| const EngineDriverDeviceInfo* CarlaEngine::getJuceDeviceInfo(const uint, const char* const) { return nullptr; } | |||
| # endif | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #ifdef WANT_DSSI | |||
| # include "CarlaDssiUtils.cpp" | |||
| #endif | |||
| #include "CarlaDssiUtils.cpp" | |||
| #include "CarlaStateUtils.cpp" | |||
| #endif | |||
| @@ -19,13 +19,9 @@ OBJS = \ | |||
| OBJSa = $(OBJS) \ | |||
| CarlaEngineJack.cpp.o \ | |||
| CarlaEngineJuce.cpp.o \ | |||
| CarlaEngineRtAudio.cpp.o | |||
| ifeq ($(HAVE_JUCE),true) | |||
| OBJSa += \ | |||
| CarlaEngineJuce.cpp.o | |||
| endif | |||
| ifneq ($(WIN32),true) | |||
| OBJSa += \ | |||
| CarlaEngineNative.cpp.o | |||
| @@ -25,7 +25,7 @@ CarlaPlugin* CarlaPlugin::newAU(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newAU({%p, \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.uniqueId); | |||
| #if defined(WANT_AU) && defined(HAVE_JUCE) | |||
| #if defined(WANT_AU) && defined(HAVE_JUCE_UI) | |||
| return newJuce(init, "AU"); | |||
| #else | |||
| init.engine->setLastError("AU support not available"); | |||
| @@ -2106,35 +2106,6 @@ CarlaPlugin* CarlaPlugin::newBridge(const Initializer& init, BinaryType btype, P | |||
| #endif | |||
| } | |||
| CarlaPlugin* CarlaPlugin::newJACK(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newJACK({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.label, init.uniqueId); | |||
| #ifndef BUILD_BRIDGE | |||
| BridgePlugin* const plugin(new BridgePlugin(init.engine, init.id, BINARY_NATIVE, PLUGIN_JACK)); | |||
| if (! plugin->init(init.filename, init.name, init.label, nullptr)) | |||
| { | |||
| delete plugin; | |||
| return nullptr; | |||
| } | |||
| plugin->reload(); | |||
| if (init.engine->getProccessMode() == ENGINE_PROCESS_MODE_CONTINUOUS_RACK && ! plugin->canRunInRack()) | |||
| { | |||
| init.engine->setLastError("Carla's rack mode can only work with Stereo bridged apps, sorry!"); | |||
| delete plugin; | |||
| return nullptr; | |||
| } | |||
| return plugin; | |||
| #else | |||
| init.engine->setLastError("JACK app bridge support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| // Bridge Helper | |||
| @@ -192,31 +192,20 @@ void CarlaPluginThread::run() | |||
| env.insert("ENGINE_BRIDGE_CLIENT_NAME", name); | |||
| env.insert("ENGINE_BRIDGE_OSC_URL", QString("%1/%2").arg(fEngine->getOscServerPathUDP()).arg(fPlugin->getId())); | |||
| //if (fPlugin->getType() != PLUGIN_JACK) | |||
| { | |||
| #ifndef CARLA_OS_WIN | |||
| if (fBinary.endsWith(".exe")) | |||
| { | |||
| env.insert("WINEDEBUG", "-all"); | |||
| arguments << fBinary.buffer(); | |||
| fBinary = "wine"; | |||
| } | |||
| #endif | |||
| /* osc-url */ arguments << QString("%1/%2").arg(fEngine->getOscServerPathUDP()).arg(fPlugin->getId()); | |||
| /* stype */ arguments << fExtra1.buffer(); | |||
| /* filename */ arguments << fPlugin->getFilename(); | |||
| /* name */ arguments << name; | |||
| /* label */ arguments << fLabel.buffer(); | |||
| /* uniqueId */ arguments << QString("%1").arg(fPlugin->getUniqueId()); | |||
| } | |||
| #if 0 | |||
| else | |||
| if (fBinary.endsWith(".exe")) | |||
| { | |||
| env.insert("LD_LIBRARY_PATH", "/home/falktx/FOSS/GIT-mine/Carla/source/bridges/jackplugin/"); | |||
| carla_stdout("JACK app bridge here, filename: %s", fPlugin->getFilename()); | |||
| fBinary = fPlugin->getFilename(); | |||
| env.insert("WINEDEBUG", "-all"); | |||
| arguments << fBinary.buffer(); | |||
| fBinary = "wine"; | |||
| } | |||
| #endif | |||
| /* osc-url */ arguments << QString("%1/%2").arg(fEngine->getOscServerPathUDP()).arg(fPlugin->getId()); | |||
| /* stype */ arguments << fExtra1.buffer(); | |||
| /* filename */ arguments << fPlugin->getFilename(); | |||
| /* name */ arguments << name; | |||
| /* label */ arguments << fLabel.buffer(); | |||
| /* uniqueId */ arguments << QString("%1").arg(fPlugin->getUniqueId()); | |||
| break; | |||
| } | |||
| @@ -131,7 +131,7 @@ public: | |||
| PluginType getType() const noexcept override | |||
| { | |||
| return PLUGIN_FILE_SF2; | |||
| return PLUGIN_SF2; | |||
| } | |||
| PluginCategory getCategory() const noexcept override | |||
| @@ -18,7 +18,7 @@ | |||
| #include "CarlaPluginInternal.hpp" | |||
| #include "CarlaEngine.hpp" | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| #if defined(CARLA_OS_MAC) | |||
| /* | |||
| @@ -1156,7 +1156,7 @@ private: | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // HAVE_JUCE | |||
| #endif // HAVE_JUCE_UI | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -1166,7 +1166,7 @@ CarlaPlugin* CarlaPlugin::newJuce(const Initializer& init, const char* const for | |||
| { | |||
| carla_debug("CarlaPlugin::newJuce({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "}, %s)", init.engine, init.filename, init.name, init.label, init.uniqueId, format); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| JucePlugin* const plugin(new JucePlugin(init.engine, init.id)); | |||
| if (! plugin->init(init.filename, init.name, /*init.label,*/ init.uniqueId, format)) | |||
| @@ -1186,10 +1186,8 @@ CarlaPlugin* CarlaPlugin::newJuce(const Initializer& init, const char* const for | |||
| return plugin; | |||
| #else | |||
| init.engine->setLastError("Juce support not available"); | |||
| init.engine->setLastError("Juce plugin not available"); | |||
| return nullptr; | |||
| // unused | |||
| (void)format; | |||
| #endif | |||
| } | |||
| @@ -25,7 +25,7 @@ CarlaPlugin* CarlaPlugin::newVST3(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newVST3({%p, \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.uniqueId); | |||
| #if defined(WANT_VST) && defined(HAVE_JUCE) | |||
| #if defined(WANT_VST) && defined(HAVE_JUCE_UI) | |||
| return newJuce(init, "VST3"); | |||
| #else | |||
| init.engine->setLastError("VST3 support not available"); | |||
| @@ -24,7 +24,7 @@ | |||
| # define USE_JUCE_FOR_VST 1 | |||
| #endif | |||
| #if defined(WANT_VST) && ! (defined(HAVE_JUCE) && USE_JUCE_FOR_VST) | |||
| #if defined(WANT_VST) && ! (defined(HAVE_JUCE_UI) && USE_JUCE_FOR_VST) | |||
| #include "CarlaVstUtils.hpp" | |||
| #include "CarlaMathUtils.hpp" | |||
| @@ -2552,7 +2552,7 @@ VstPlugin* VstPlugin::sLastVstPlugin = nullptr; | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_VST && ! (defined(HAVE_JUCE) && USE_JUCE_FOR_VST) | |||
| #endif // WANT_VST && ! (defined(HAVE_JUCE_UI) && USE_JUCE_FOR_VST) | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -2563,7 +2563,7 @@ CarlaPlugin* CarlaPlugin::newVST(const Initializer& init) | |||
| carla_debug("CarlaPlugin::newVST({%p, \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.uniqueId); | |||
| #ifdef WANT_VST | |||
| # if defined(HAVE_JUCE) && USE_JUCE_FOR_VST | |||
| # if defined(HAVE_JUCE_UI) && USE_JUCE_FOR_VST | |||
| return newJuce(init, "VST"); | |||
| # else | |||
| VstPlugin* const plugin(new VstPlugin(init.engine, init.id)); | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * Carla Bridge Plugin | |||
| * Copyright (C) 2012-2013 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2012-2014 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| @@ -29,7 +29,7 @@ | |||
| # include <signal.h> | |||
| #endif | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| # include "juce_gui_basics.h" | |||
| using juce::JUCEApplication; | |||
| using juce::JUCEApplicationBase; | |||
| @@ -95,7 +95,7 @@ static void initSignalHandler() | |||
| // ------------------------------------------------------------------------- | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HACE_JUCE_UI | |||
| static CarlaBridge::CarlaBridgeClient* gBridgeClient = nullptr; | |||
| class CarlaJuceApp : public JUCEApplication, | |||
| @@ -179,10 +179,9 @@ public: | |||
| { | |||
| carla_debug("CarlaPluginClient::~CarlaPluginClient()"); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HACE_JUCE_UI | |||
| gBridgeClient = nullptr; | |||
| #endif | |||
| carla_engine_close(); | |||
| } | |||
| @@ -215,7 +214,7 @@ public: | |||
| } | |||
| } | |||
| #ifndef HAVE_JUCE | |||
| #ifndef HAVE_JUCE_UI | |||
| void idle() | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(fEngine != nullptr,); | |||
| @@ -234,7 +233,6 @@ public: | |||
| carla_stderr("Plugin preset save failed, error was:\n%s", fEngine->getLastError()); | |||
| } | |||
| } | |||
| if (gCloseNow) | |||
| { | |||
| //gCloseNow = false; | |||
| @@ -245,7 +243,7 @@ public: | |||
| void exec(int argc, char* argv[]) | |||
| { | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| gBridgeClient = this; | |||
| JUCEApplicationBase::createInstance = &juce_CreateApplication; | |||
| JUCEApplicationBase::main(JUCE_MAIN_FUNCTION_ARGS); | |||
| @@ -256,6 +254,7 @@ public: | |||
| carla_msleep(24); | |||
| } | |||
| #endif | |||
| // may be unused | |||
| return; (void)argc; (void)argv; | |||
| } | |||
| @@ -427,7 +426,7 @@ int CarlaBridgeOsc::handleMsgShow() | |||
| { | |||
| carla_debug("CarlaBridgeOsc::handleMsgShow()"); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HACE_JUCE_UI | |||
| const juce::MessageManagerLock mmLock; | |||
| #endif | |||
| @@ -441,7 +440,7 @@ int CarlaBridgeOsc::handleMsgHide() | |||
| { | |||
| carla_debug("CarlaBridgeOsc::handleMsgHide()"); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HACE_JUCE_UI | |||
| const juce::MessageManagerLock mmLock; | |||
| #endif | |||
| @@ -542,13 +541,6 @@ CARLA_BRIDGE_END_NAMESPACE | |||
| // ------------------------------------------------------------------------- | |||
| CarlaPlugin* CarlaPlugin::newJACK(const CarlaPlugin::Initializer&) | |||
| { | |||
| return nullptr; | |||
| } | |||
| // ------------------------------------------------------------------------- | |||
| int main(int argc, char* argv[]) | |||
| { | |||
| CARLA_BRIDGE_USE_NAMESPACE; | |||
| @@ -631,7 +623,7 @@ int main(int argc, char* argv[]) | |||
| const void* extraStuff = nullptr; | |||
| if (itype == CarlaBackend::PLUGIN_FILE_GIG || itype == CarlaBackend::PLUGIN_FILE_SF2) | |||
| if (itype == CarlaBackend::PLUGIN_GIG || itype == CarlaBackend::PLUGIN_SF2) | |||
| { | |||
| if (label == nullptr) | |||
| label = clientName; | |||
| @@ -19,10 +19,13 @@ LINK_FLAGS += $(LIBLO_LIBS) | |||
| BUILD_PLUGIN_FLAGS = $(BUILD_CXX_FLAGS) -DBUILD_BRIDGE_PLUGIN | |||
| BUILD_PLUGIN_FLAGS += -I../backend/engine -I../backend/plugin | |||
| BUILD_PLUGIN_FLAGS += $(QTCORE_FLAGS) $(QTXML_FLAGS) | |||
| BUILD_PLUGIN_FLAGS += $(QTCORE_FLAGS) | |||
| LINK_PLUGIN_FLAGS = $(LINK_FLAGS) | |||
| LINK_PLUGIN_FLAGS += $(QTCORE_LIBS) $(QTXML_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_CORE_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(QTCORE_LIBS) | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| BUILD_PLUGIN_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST -DWANT_VST3 | |||
| @@ -34,12 +37,9 @@ BUILD_PLUGIN_FLAGS += -DVESTIGE_HEADER | |||
| endif | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_CORE_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
| endif | |||
| @@ -418,15 +418,15 @@ OBJS_PLUGIN = \ | |||
| LIBS_PLUGIN = \ | |||
| ../modules/jackbridge.a \ | |||
| ../modules/juce_audio_basics.a \ | |||
| ../modules/juce_events.a \ | |||
| ../modules/juce_core.a \ | |||
| ../modules/rtmempool.a | |||
| ifeq ($(HAVE_JUCE),true) | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| LIBS_PLUGIN += \ | |||
| ../modules/juce_audio_basics.a \ | |||
| ../modules/juce_audio_processors.a \ | |||
| ../modules/juce_core.a \ | |||
| ../modules/juce_data_structures.a \ | |||
| ../modules/juce_events.a \ | |||
| ../modules/juce_data_structures.a \ | |||
| ../modules/juce_graphics.a \ | |||
| ../modules/juce_gui_basics.a \ | |||
| @@ -489,6 +489,9 @@ OBJS_NATIVE += \ | |||
| LIBS_NATIVE = \ | |||
| ../modules/native-plugins.a \ | |||
| ../modules/jackbridge.a \ | |||
| ../modules/juce_audio_basics.a \ | |||
| ../modules/juce_core.a \ | |||
| ../modules/juce_events.a \ | |||
| ../modules/rtmempool.a | |||
| ifeq ($(HAVE_DGL),true) | |||
| @@ -496,13 +499,10 @@ LIBS_NATIVE += \ | |||
| ../modules/dgl.a | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| LIBS_NATIVE += \ | |||
| ../modules/juce_audio_basics.a \ | |||
| ../modules/juce_audio_processors.a \ | |||
| ../modules/juce_core.a \ | |||
| ../modules/juce_data_structures.a \ | |||
| ../modules/juce_events.a \ | |||
| ../modules/juce_data_structures.a \ | |||
| ../modules/juce_graphics.a \ | |||
| ../modules/juce_gui_basics.a \ | |||
| @@ -337,14 +337,6 @@ class HostWindow(QMainWindow): | |||
| # Final setup | |||
| QTimer.singleShot(0, self.slot_engineStart) | |||
| #QTimer.singleShot(2000, self.slot_test) | |||
| #@pyqtSlot() | |||
| #def slot_test(self): | |||
| #print("test started") | |||
| #if not gCarla.host.add_plugin(BINARY_NATIVE, PLUGIN_JACK, "/usr/bin/zita-rev1", "name of client", "label of client", None): | |||
| #print(gCarla.host.get_last_error()) | |||
| #print("test ended") | |||
| # ----------------------------------------------------------------- | |||
| # Called by containers | |||
| @@ -590,7 +582,7 @@ class HostWindow(QMainWindow): | |||
| if rdfItem.UniqueID == uniqueId: | |||
| return pointer(rdfItem) | |||
| elif ptype in (PLUGIN_FILE_GIG, PLUGIN_FILE_SF2): | |||
| elif ptype in (PLUGIN_GIG, PLUGIN_SF2): | |||
| if plugin['name'].lower().endswith(" (16 outputs)"): | |||
| return c_char_p("true".encode("utf-8")) | |||
| @@ -1382,7 +1382,7 @@ class PluginEdit(QDialog): | |||
| self.fTabIconTimers.append(ICON_STATE_NULL) | |||
| def _updateCtrlMidiProgram(self): | |||
| if self.fPluginInfo['type'] not in (PLUGIN_INTERNAL, PLUGIN_FILE_SF2): | |||
| if self.fPluginInfo['type'] not in (PLUGIN_INTERNAL, PLUGIN_SF2): | |||
| return | |||
| elif self.fPluginInfo['category'] != PLUGIN_CATEGORY_SYNTH: | |||
| return | |||
| @@ -56,7 +56,6 @@ LIBS_win64 += ../modules/lilv.win64.a | |||
| LINK_FLAGS += $(LILV_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| LIBS += ../modules/juce_audio_basics.a | |||
| LIBS_posix32 += ../modules/juce_audio_basics.posix32.a | |||
| LIBS_posix64 += ../modules/juce_audio_basics.posix64.a | |||
| @@ -69,7 +68,6 @@ LIBS_win32 += ../modules/juce_core.win32.a | |||
| LIBS_win64 += ../modules/juce_core.win64.a | |||
| LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
| endif | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| LIBS += ../modules/juce_audio_processors.a | |||
| @@ -20,6 +20,7 @@ | |||
| #include "CarlaMathUtils.hpp" | |||
| #include "CarlaMIDI.h" | |||
| // FIXME | |||
| #ifdef HAVE_JUCE | |||
| # if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||
| # define WANT_JUCE_PROCESSORS | |||
| @@ -69,19 +69,32 @@ | |||
| #define JUCE_USE_VFORK 1 | |||
| // always enabled | |||
| #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_audio_formats 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_audio_utils 0 | |||
| #define JUCE_MODULE_AVAILABLE_juce_core 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_cryptography 0 | |||
| #define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_events 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_graphics 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 | |||
| #define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 | |||
| // always disabled | |||
| #define JUCE_MODULE_AVAILABLE_juce_audio_utils 0 | |||
| #define JUCE_MODULE_AVAILABLE_juce_cryptography 0 | |||
| #define JUCE_MODULE_AVAILABLE_juce_opengl 0 | |||
| #define JUCE_MODULE_AVAILABLE_juce_video 0 | |||
| // conditional | |||
| #ifdef HAVE_JUCE_UI | |||
| # define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 | |||
| # define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | |||
| # define JUCE_MODULE_AVAILABLE_juce_graphics 1 | |||
| # define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 | |||
| # define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 | |||
| #else | |||
| # define JUCE_MODULE_AVAILABLE_juce_audio_processors 0 | |||
| # define JUCE_MODULE_AVAILABLE_juce_data_structures 0 | |||
| # define JUCE_MODULE_AVAILABLE_juce_graphics 0 | |||
| # define JUCE_MODULE_AVAILABLE_juce_gui_basics 0 | |||
| # define JUCE_MODULE_AVAILABLE_juce_gui_extra 0 | |||
| #endif | |||
| #endif // CARLA_JUCE_CORE_APPCONFIG_H_INCLUDED | |||
| @@ -124,7 +124,7 @@ OBJS += \ | |||
| distrho-prom.cpp.o | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| # -------------------------------------------------------------- | |||
| # JUCE based plugins | |||
| @@ -56,7 +56,7 @@ extern void carla_register_native_plugin_zamtube(); | |||
| extern void carla_register_native_plugin_zamulticomp(); | |||
| extern void carla_register_native_plugin_zamulticompx2(); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| // JUCE based plugins | |||
| extern void carla_register_native_plugin_jucepatchbay(); | |||
| extern void carla_register_native_plugin_vex_fx(); | |||
| @@ -128,7 +128,7 @@ void carla_register_all_plugins() | |||
| carla_register_native_plugin_zamulticomp(); | |||
| carla_register_native_plugin_zamulticompx2(); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| // JUCE based plugins | |||
| carla_register_native_plugin_jucepatchbay(); | |||
| carla_register_native_plugin_vex_fx(); | |||
| @@ -15,9 +15,11 @@ BUILD_CXX_FLAGS += $(NATIVE_PLUGINS_FLAGS) | |||
| # -------------------------------------------------------------- | |||
| # Common | |||
| LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
| LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| LINK_FLAGS += $(LIBLO_LIBS) | |||
| LINK_FLAGS += $(QTCORE_LIBS) | |||
| LINK_FLAGS += $(QTXML_LIBS) | |||
| LINK_FLAGS += $(RTMEMPOOL_LIBS) | |||
| # -------------------------------------------------------------- | |||
| @@ -47,12 +49,9 @@ ifeq ($(HAVE_DGL),true) | |||
| LINK_FLAGS += $(DGL_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
| LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
| LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
| LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
| @@ -71,6 +70,9 @@ LIBS += ../backend/carla_plugin.a | |||
| LIBS += ../modules/native-plugins.a | |||
| LIBS += ../modules/jackbridge.a | |||
| LIBS += ../modules/juce_audio_basics.a | |||
| LIBS += ../modules/juce_core.a | |||
| LIBS += ../modules/juce_events.a | |||
| LIBS += ../modules/rtmempool.a | |||
| ifeq ($(HAVE_AF_DEPS),true) | |||
| @@ -81,12 +83,9 @@ ifeq ($(HAVE_DGL),true) | |||
| LIBS += ../modules/dgl.a | |||
| endif | |||
| ifeq ($(HAVE_JUCE),true) | |||
| LIBS += ../modules/juce_audio_basics.a | |||
| ifeq ($(HAVE_JUCE_UI),true) | |||
| LIBS += ../modules/juce_audio_processors.a | |||
| LIBS += ../modules/juce_core.a | |||
| LIBS += ../modules/juce_data_structures.a | |||
| LIBS += ../modules/juce_events.a | |||
| LIBS += ../modules/juce_graphics.a | |||
| LIBS += ../modules/juce_gui_basics.a | |||
| LIBS += ../modules/juce_gui_extra.a | |||
| @@ -34,13 +34,14 @@ | |||
| #include "lv2/lv2_external_ui.h" | |||
| #include "lv2/lv2_programs.h" | |||
| #ifdef HAVE_JUCE | |||
| #include "juce_audio_basics.h" | |||
| using juce::FloatVectorOperations; | |||
| #ifdef HAVE_JUCE_UI | |||
| #include "juce_gui_basics.h" | |||
| using juce::Array; | |||
| using juce::FloatVectorOperations; | |||
| using juce::JUCEApplicationBase; | |||
| using juce::MessageManager; | |||
| //using juce::MessageManagerLock; | |||
| @@ -110,7 +111,7 @@ public: | |||
| : fHandle(nullptr), | |||
| fDescriptor(desc), | |||
| fMidiEventCount(0), | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| fUiWasShown(false), | |||
| #endif | |||
| fIsProcessing(false), | |||
| @@ -207,7 +208,7 @@ public: | |||
| ~NativePlugin() | |||
| { | |||
| CARLA_ASSERT(fHandle == nullptr); | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| CARLA_ASSERT(! fUiWasShown); | |||
| #endif | |||
| @@ -276,7 +277,7 @@ public: | |||
| fHandle = nullptr; | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| if (fUiWasShown) | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(gActivePlugins.contains(this),); | |||
| @@ -716,7 +717,7 @@ protected: | |||
| { | |||
| if (fDescriptor->ui_show != nullptr) | |||
| { | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| if (fDescriptor->hints & PLUGIN_NEEDS_UI_JUCE) | |||
| { | |||
| if (gActivePlugins.size() == 0) | |||
| @@ -894,7 +895,7 @@ private: | |||
| NativeMidiEvent fMidiEvents[kMaxMidiEvents*2]; | |||
| NativeTimeInfo fTimeInfo; | |||
| #ifdef HAVE_JUCE | |||
| #ifdef HAVE_JUCE_UI | |||
| bool fUiWasShown; | |||
| #endif | |||
| bool fIsProcessing; | |||
| @@ -90,7 +90,7 @@ CarlaUtils3: CarlaUtils3.cpp ../utils/*.hpp | |||
| CarlaUtils4: CarlaUtils4.cpp ../utils/CarlaStateUtils.cpp ../utils/*.hpp | |||
| $(CXX) $< $(PEDANTIC_CXX_FLAGS) -o $@ \ | |||
| ../modules/juce_core.a -ldl -lpthread -lrt \ | |||
| $(shell pkg-config --cflags --libs QtCore QtXml) -isystem /usr/include/qt4 | |||
| $(shell pkg-config --cflags --libs QtCore) -isystem /usr/include/qt4 | |||
| valgrind --leak-check=full ./$@ | |||
| Exceptions: Exceptions.cpp | |||
| @@ -17,13 +17,7 @@ | |||
| #include "CarlaDssiUtils.hpp" | |||
| #ifdef HAVE_JUCE | |||
| # include "juce_core.h" | |||
| #else | |||
| # include <QtCore/QDir> | |||
| # include <QtCore/QFileInfo> | |||
| # include <QtCore/QStringList> | |||
| #endif | |||
| #include "juce_core.h" | |||
| // ----------------------------------------------------------------------- | |||
| @@ -34,7 +28,6 @@ const char* find_dssi_ui(const char* const filename, const char* const label) no | |||
| carla_debug("find_dssi_ui(\"%s\", \"%s\")", filename, label); | |||
| try { | |||
| #ifdef HAVE_JUCE | |||
| using namespace juce; | |||
| String guiFilename; | |||
| @@ -64,34 +57,7 @@ const char* find_dssi_ui(const char* const filename, const char* const label) no | |||
| return nullptr; | |||
| return carla_strdup(guiFilename.toRawUTF8()); | |||
| #else | |||
| QString guiFilename; | |||
| QString pluginDir(filename); | |||
| pluginDir.resize(pluginDir.lastIndexOf(".")); | |||
| QString checkLabel(label); | |||
| QString checkSName(QFileInfo(pluginDir).baseName()); | |||
| if (! checkLabel.endsWith("_")) checkLabel += "_"; | |||
| if (! checkSName.endsWith("_")) checkSName += "_"; | |||
| QStringList guiFiles(QDir(pluginDir).entryList()); | |||
| foreach (const QString& gui, guiFiles) | |||
| { | |||
| if (gui.startsWith(checkLabel) || gui.startsWith(checkSName)) | |||
| { | |||
| QFileInfo finalname(pluginDir + QDir::separator() + gui); | |||
| guiFilename = finalname.absoluteFilePath(); | |||
| break; | |||
| } | |||
| } | |||
| if (guiFilename.isEmpty()) | |||
| return nullptr; | |||
| return carla_strdup(guiFilename.toUtf8().constData()); | |||
| #endif | |||
| } CARLA_SAFE_EXCEPTION_RETURN("find_dssi_ui", nullptr); | |||
| } | |||
| @@ -25,11 +25,6 @@ | |||
| using juce::String; | |||
| using juce::XmlElement; | |||
| #if 0 | |||
| # include <QtCore/QString> | |||
| # include <QtXml/QDomNode> | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| // ----------------------------------------------------------------------- | |||
| @@ -44,17 +39,6 @@ static String xmlSafeString(const String& string, const bool toXml) | |||
| else | |||
| return newString.replace("<","<").replace(">",">").replace("'","'").replace(""","\"").replace("&","&"); | |||
| } | |||
| #if 0 | |||
| static QString xmlSafeString(const QString& string, const bool toXml) | |||
| { | |||
| QString newString(string); | |||
| if (toXml) | |||
| return newString.replace("&","&").replace("<","<").replace(">",">").replace("'","'").replace("\"","""); | |||
| else | |||
| return newString.replace("<","<").replace(">",">").replace("'","'").replace(""","\"").replace("&","&"); | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||
| // xmlSafeStringCharDup | |||
| @@ -63,12 +47,6 @@ static const char* xmlSafeStringCharDup(const String& string, const bool toXml) | |||
| { | |||
| return carla_strdup(xmlSafeString(string, toXml).toRawUTF8()); | |||
| } | |||
| #if 0 | |||
| static const char* xmlSafeStringCharDup(const QString& string, const bool toXml) | |||
| { | |||
| return carla_strdup(xmlSafeString(string, toXml).toUtf8().constData()); | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||
| // StateParameter | |||