@@ -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 | |||