@@ -62,14 +62,13 @@ endif | |||
ifeq ($(USING_JUCE),true) | |||
ALL_LIBS += $(MODULEDIR)/juce_audio_basics.a | |||
ALL_LIBS += $(MODULEDIR)/juce_audio_devices.a | |||
ALL_LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
ALL_LIBS += $(MODULEDIR)/juce_core.a | |||
ALL_LIBS += $(MODULEDIR)/juce_data_structures.a | |||
ALL_LIBS += $(MODULEDIR)/juce_events.a | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
ALL_LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
ALL_LIBS += $(MODULEDIR)/juce_graphics.a | |||
ALL_LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
# ALL_LIBS += $(MODULEDIR)/juce_gui_extra.a | |||
endif | |||
endif | |||
@@ -220,6 +219,18 @@ LIBS_POSIX32 += $(MODULEDIR)/lilv.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/rtmempool.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/water.posix32.a | |||
ifeq ($(USING_JUCE),true) | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_audio_basics.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_audio_processors.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_data_structures.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_core.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_events.posix32.a | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_graphics.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_gui_basics.posix32.a | |||
endif | |||
endif | |||
posix32: $(LIBS_POSIX32) | |||
$(MAKE) -C source/bridges-plugin posix32 | |||
$(MAKE) -C source/discovery posix32 | |||
@@ -232,6 +243,18 @@ LIBS_POSIX64 += $(MODULEDIR)/lilv.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/rtmempool.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/water.posix64.a | |||
ifeq ($(USING_JUCE),true) | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_audio_basics.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_audio_processors.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_data_structures.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_core.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_events.posix64.a | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_graphics.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_gui_basics.posix64.a | |||
endif | |||
endif | |||
posix64: $(LIBS_POSIX64) | |||
$(MAKE) -C source/bridges-plugin posix64 | |||
$(MAKE) -C source/discovery posix64 | |||
@@ -248,6 +271,16 @@ LIBS_WIN32 += $(MODULEDIR)/lilv.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/rtmempool.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/water.win32.a | |||
ifeq ($(USING_JUCE),true) | |||
LIBS_WIN32 += $(MODULEDIR)/juce_audio_basics.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_audio_processors.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_data_structures.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_core.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_events.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_graphics.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_gui_basics.win32.a | |||
endif | |||
win32: $(LIBS_WIN32) | |||
$(MAKE) -C source/bridges-plugin win32 | |||
$(MAKE) -C source/discovery win32 | |||
@@ -264,6 +297,16 @@ LIBS_WIN64 += $(MODULEDIR)/lilv.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/rtmempool.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/water.win64.a | |||
ifeq ($(USING_JUCE),true) | |||
LIBS_WIN64 += $(MODULEDIR)/juce_audio_basics.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_audio_processors.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_data_structures.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_core.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_events.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_graphics.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_gui_basics.win64.a | |||
endif | |||
win64: $(LIBS_WIN64) | |||
$(MAKE) -C source/bridges-plugin win64 | |||
$(MAKE) -C source/discovery win64 | |||
@@ -405,6 +405,8 @@ endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Set libs stuff (part 2) | |||
ifneq ($(USING_JUCE),true) | |||
RTAUDIO_FLAGS = -DHAVE_GETTIMEOFDAY | |||
RTMIDI_FLAGS = | |||
@@ -421,6 +423,8 @@ RTAUDIO_LIBS += $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs libpulse-simple | |||
endif | |||
endif | |||
endif # USING_JUCE | |||
ifeq ($(BSD),true) | |||
JACKBRIDGE_LIBS = -lpthread -lrt | |||
LILV_LIBS = -lm -lrt | |||
@@ -448,6 +452,10 @@ JACKBRIDGE_LIBS = -ldl -lpthread -lrt | |||
LILV_LIBS = -ldl -lm -lrt | |||
RTMEMPOOL_LIBS = -lpthread -lrt | |||
WATER_LIBS = -ldl -lpthread -lrt | |||
ifeq ($(USING_JUCE),true) | |||
JUCE_CORE_LIBS = -ldl -lpthread -lrt | |||
JUCE_AUDIO_DEVICES_LIBS = $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs alsa) | |||
else | |||
ifeq ($(HAVE_ALSA),true) | |||
RTAUDIO_FLAGS += $(shell pkg-config $(PKG_CONFIG_FLAGS) --cflags alsa) -D__LINUX_ALSA__ | |||
RTAUDIO_LIBS += $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs alsa) -lpthread | |||
@@ -455,6 +463,7 @@ RTMIDI_FLAGS += $(shell pkg-config $(PKG_CONFIG_FLAGS) --cflags alsa) -D__LIN | |||
RTMIDI_LIBS += $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs alsa) | |||
endif | |||
endif | |||
endif | |||
ifeq ($(MACOS),true) | |||
HYLIA_FLAGS = -DLINK_PLATFORM_MACOSX=1 | |||
@@ -462,11 +471,22 @@ JACKBRIDGE_LIBS = -ldl -lpthread | |||
LILV_LIBS = -ldl -lm | |||
RTMEMPOOL_LIBS = -lpthread | |||
WATER_LIBS = -framework AppKit | |||
ifeq ($(USING_JUCE),true) | |||
JUCE_AUDIO_BASICS_LIBS = -framework Accelerate | |||
JUCE_AUDIO_DEVICES_LIBS = -framework AppKit -framework AudioToolbox -framework CoreAudio -framework CoreMIDI | |||
JUCE_AUDIO_FORMATS_LIBS = -framework AudioToolbox -framework CoreFoundation | |||
JUCE_AUDIO_PROCESSORS_LIBS = -framework AudioToolbox -framework AudioUnit -framework CoreAudio -framework CoreAudioKit -framework Cocoa -framework Carbon | |||
JUCE_CORE_LIBS = -framework AppKit | |||
JUCE_EVENTS_LIBS = -framework AppKit | |||
JUCE_GRAPHICS_LIBS = -framework Cocoa -framework QuartzCore | |||
JUCE_GUI_BASICS_LIBS = -framework Cocoa | |||
else | |||
RTAUDIO_FLAGS += -D__MACOSX_CORE__ | |||
RTAUDIO_LIBS += -framework CoreAudio | |||
RTMIDI_FLAGS += -D__MACOSX_CORE__ | |||
RTMIDI_LIBS += -framework CoreMIDI | |||
endif | |||
endif | |||
ifeq ($(WIN32),true) | |||
HYLIA_FLAGS = -DLINK_PLATFORM_WINDOWS=1 | |||
@@ -474,10 +494,17 @@ JACKBRIDGE_LIBS = -lpthread | |||
LILV_LIBS = -lm | |||
RTMEMPOOL_LIBS = -lpthread | |||
WATER_LIBS = -luuid -lwsock32 -lwininet -lversion -lole32 -lws2_32 -loleaut32 -limm32 -lcomdlg32 -lshlwapi -lrpcrt4 -lwinmm | |||
ifeq ($(USING_JUCE),true) | |||
JUCE_AUDIO_DEVICES_LIBS = -lwinmm -lole32 | |||
JUCE_CORE_LIBS = -luuid -lwsock32 -lwininet -lversion -lole32 -lws2_32 -loleaut32 -limm32 -lcomdlg32 -lshlwapi -lrpcrt4 -lwinmm | |||
JUCE_GRAPHICS_LIBS = -lgdi32 | |||
JUCE_GUI_BASICS_LIBS = -lgdi32 -limm32 -lcomdlg32 -lole32 | |||
else | |||
RTAUDIO_FLAGS += -D__WINDOWS_ASIO__ -D__WINDOWS_DS__ -D__WINDOWS_WASAPI__ | |||
RTAUDIO_LIBS += -ldsound -luuid -lksuser -lwinmm | |||
RTMIDI_FLAGS += -D__WINDOWS_MM__ | |||
endif | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
@@ -37,6 +37,16 @@ | |||
# include "CarlaLogThread.hpp" | |||
#endif | |||
#ifdef USING_JUCE | |||
// # include "AppConfig.h" | |||
# if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||
# include "juce_gui_basics/juce_gui_basics.h" | |||
# else | |||
# include "juce_events/juce_events.h" | |||
# endif | |||
# include "juce_core/juce_core.h" | |||
#endif | |||
#define CARLA_SAFE_ASSERT_WITH_LAST_ERROR_RETURN(cond, msg, ret) \ | |||
if (! (cond)) { \ | |||
carla_stderr2("%s: " msg, __FUNCTION__); \ | |||
@@ -287,6 +297,9 @@ static void carla_engine_init_common(CarlaEngine* const engine) | |||
if (const char* const pathVST2 = std::getenv("ENGINE_OPTION_PLUGIN_PATH_VST2")) | |||
engine->setOption(CB::ENGINE_OPTION_PLUGIN_PATH, CB::PLUGIN_VST2, pathVST2); | |||
if (const char* const pathVST3 = std::getenv("ENGINE_OPTION_PLUGIN_PATH_VST3")) | |||
engine->setOption(CB::ENGINE_OPTION_PLUGIN_PATH, CB::PLUGIN_VST3, pathVST3); | |||
if (const char* const pathSF2 = std::getenv("ENGINE_OPTION_PLUGIN_PATH_SF2")) | |||
engine->setOption(CB::ENGINE_OPTION_PLUGIN_PATH, CB::PLUGIN_SF2, pathSF2); | |||
@@ -334,6 +347,9 @@ static void carla_engine_init_common(CarlaEngine* const engine) | |||
if (gStandalone.engineOptions.pathVST2 != nullptr) | |||
engine->setOption(CB::ENGINE_OPTION_PLUGIN_PATH, CB::PLUGIN_VST2, gStandalone.engineOptions.pathVST2); | |||
if (gStandalone.engineOptions.pathVST3 != nullptr) | |||
engine->setOption(CB::ENGINE_OPTION_PLUGIN_PATH, CB::PLUGIN_VST3, gStandalone.engineOptions.pathVST3); | |||
if (gStandalone.engineOptions.pathSF2 != nullptr) | |||
engine->setOption(CB::ENGINE_OPTION_PLUGIN_PATH, CB::PLUGIN_SF2, gStandalone.engineOptions.pathSF2); | |||
@@ -403,6 +419,10 @@ bool carla_engine_init(const char* driverName, const char* clientName) | |||
engine->setOption(CB::ENGINE_OPTION_TRANSPORT_MODE, static_cast<int>(gStandalone.engineOptions.transportMode), gStandalone.engineOptions.transportExtra); | |||
#endif | |||
#ifdef USING_JUCE | |||
juce::initialiseJuce_GUI(); | |||
#endif | |||
carla_engine_init_common(engine); | |||
if (engine->init(clientName)) | |||
@@ -421,6 +441,9 @@ bool carla_engine_init(const char* driverName, const char* clientName) | |||
else | |||
{ | |||
gStandalone.lastError = engine->getLastError(); | |||
#ifdef USING_JUCE | |||
juce::shutdownJuce_GUI(); | |||
#endif | |||
return false; | |||
} | |||
} | |||
@@ -487,6 +510,9 @@ bool carla_engine_close() | |||
#ifndef BUILD_BRIDGE | |||
gStandalone.logThread.stop(); | |||
# ifdef USING_JUCE | |||
juce::shutdownJuce_GUI(); | |||
# endif | |||
#endif | |||
return closed; | |||
@@ -497,6 +523,13 @@ void carla_engine_idle() | |||
CARLA_SAFE_ASSERT_RETURN(gStandalone.engine != nullptr,); | |||
gStandalone.engine->idle(); | |||
#if defined(USING_JUCE) && !(defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN)) | |||
const juce::MessageManager* const msgMgr(juce::MessageManager::getInstanceWithoutCreating()); | |||
CARLA_SAFE_ASSERT_RETURN(msgMgr != nullptr,); | |||
for (; msgMgr->dispatchNextMessageOnSystemQueue(true);) {} | |||
#endif | |||
} | |||
bool carla_is_engine_running() | |||
@@ -645,6 +678,11 @@ void carla_set_engine_option(EngineOption option, int value, const char* valueSt | |||
delete[] gStandalone.engineOptions.pathVST2; | |||
gStandalone.engineOptions.pathVST2 = carla_strdup_safe(valueStr); | |||
break; | |||
case CB::PLUGIN_VST3: | |||
if (gStandalone.engineOptions.pathVST3 != nullptr) | |||
delete[] gStandalone.engineOptions.pathVST3; | |||
gStandalone.engineOptions.pathVST3 = carla_strdup_safe(valueStr); | |||
break; | |||
case CB::PLUGIN_SF2: | |||
if (gStandalone.engineOptions.pathSF2 != nullptr) | |||
delete[] gStandalone.engineOptions.pathSF2; | |||
@@ -37,8 +37,23 @@ ifeq ($(HAVE_HYLIA),true) | |||
STANDALONE_LIBS += $(MODULEDIR)/hylia.a | |||
endif | |||
ifeq ($(USING_JUCE),true) | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_basics.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_devices.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_core.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_data_structures.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_events.a | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_graphics.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
# ifeq ($(MACOS),true) | |||
# STANDALONE_LIBS += $(MODULEDIR)/juce_gui_extra.a | |||
endif | |||
else | |||
STANDALONE_LIBS += $(MODULEDIR)/rtaudio.a | |||
STANDALONE_LIBS += $(MODULEDIR)/rtmidi.a | |||
endif | |||
# ---------------------------------------------------------------------------------------------------------------------------- | |||
@@ -48,14 +63,27 @@ STANDALONE_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
STANDALONE_LINK_FLAGS += $(RTMEMPOOL_LIBS) | |||
STANDALONE_LINK_FLAGS += $(WATER_LIBS) | |||
STANDALONE_LINK_FLAGS += $(RTAUDIO_LIBS) | |||
STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS) | |||
STANDALONE_LINK_FLAGS += $(LIBLO_LIBS) | |||
STANDALONE_LINK_FLAGS += $(MAGIC_LIBS) | |||
STANDALONE_LINK_FLAGS += $(FLUIDSYNTH_LIBS) | |||
STANDALONE_LINK_FLAGS += $(X11_LIBS) | |||
ifeq ($(USING_JUCE),true) | |||
STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
STANDALONE_LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
endif | |||
else | |||
STANDALONE_LINK_FLAGS += $(RTAUDIO_LIBS) | |||
STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS) | |||
endif | |||
# ---------------------------------------------------------------------------------------------------------------------------- | |||
all: $(TARGETS) | |||
@@ -202,6 +202,12 @@ CarlaEngine* CarlaEngine::newDriverByName(const char* const driverName) | |||
#ifndef BUILD_BRIDGE | |||
# ifdef USING_JUCE | |||
// ------------------------------------------------------------------- | |||
// linux | |||
if (std::strcmp(driverName, "ALSA") == 0) | |||
return newJuce(AUDIO_API_ALSA); | |||
// ------------------------------------------------------------------- | |||
// macos | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla Plugin Host | |||
* Copyright (C) 2011-2017 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2011-2019 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 | |||
@@ -18,6 +18,9 @@ OBJS = \ | |||
$(OBJDIR)/CarlaPluginDSSI.cpp.o \ | |||
$(OBJDIR)/CarlaPluginLV2.cpp.o \ | |||
$(OBJDIR)/CarlaPluginVST2.cpp.o \ | |||
$(OBJDIR)/CarlaPluginVST3.cpp.o \ | |||
$(OBJDIR)/CarlaPluginAU.cpp.o \ | |||
$(OBJDIR)/CarlaPluginJuce.cpp.o \ | |||
$(OBJDIR)/CarlaPluginFluidSynth.cpp.o \ | |||
$(OBJDIR)/CarlaPluginSFZero.cpp.o \ | |||
$(OBJDIR)/CarlaPluginJack.cpp.o | |||
@@ -63,6 +63,59 @@ LIBS_win32 += $(MODULEDIR)/water.win32.a | |||
LIBS_win64 += $(MODULEDIR)/water.win64.a | |||
LINK_FLAGS += $(WATER_LIBS) | |||
ifeq ($(USING_JUCE),true) | |||
LIBS_native += $(MODULEDIR)/juce_audio_basics.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_audio_basics.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_audio_basics.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_audio_basics.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_audio_basics.win64.a | |||
LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
LIBS_native += $(MODULEDIR)/juce_audio_processors.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_audio_processors.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_audio_processors.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_audio_processors.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_audio_processors.win64.a | |||
LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
LIBS_native += $(MODULEDIR)/juce_core.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_core.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_core.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_core.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_core.win64.a | |||
LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
LIBS_native += $(MODULEDIR)/juce_data_structures.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_data_structures.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_data_structures.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_data_structures.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_data_structures.win64.a | |||
LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
LIBS_native += $(MODULEDIR)/juce_events.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_events.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_events.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_events.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_events.win64.a | |||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
LIBS_native += $(MODULEDIR)/juce_graphics.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_graphics.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_graphics.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_graphics.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_graphics.win64.a | |||
LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
LIBS_native += $(MODULEDIR)/juce_gui_basics.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_gui_basics.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_gui_basics.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_gui_basics.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_gui_basics.win64.a | |||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
endif | |||
endif | |||
LINK_FLAGS += $(X11_LIBS) | |||
# ---------------------------------------------------------------------------------------------------------------------- | |||
@@ -114,6 +167,9 @@ OBJS_native = \ | |||
$(OBJDIR)/CarlaPluginDSSI.cpp.o \ | |||
$(OBJDIR)/CarlaPluginLV2.cpp.o \ | |||
$(OBJDIR)/CarlaPluginVST2.cpp.o \ | |||
$(OBJDIR)/CarlaPluginVST3.cpp.o \ | |||
$(OBJDIR)/CarlaPluginAU.cpp.o \ | |||
$(OBJDIR)/CarlaPluginJuce.cpp.o \ | |||
$(OBJDIR)/CarlaPluginFluidSynth.cpp.o \ | |||
$(OBJDIR)/CarlaPluginSFZero.cpp.o \ | |||
$(OBJDIR)/CarlaStandalone.cpp.o | |||
@@ -138,6 +194,9 @@ OBJS_arch = \ | |||
$(OBJDIR)/CarlaPluginDSSI.cpp.arch.o \ | |||
$(OBJDIR)/CarlaPluginLV2.cpp.arch.o \ | |||
$(OBJDIR)/CarlaPluginVST2.cpp.arch.o \ | |||
$(OBJDIR)/CarlaPluginVST3.cpp.arch.o \ | |||
$(OBJDIR)/CarlaPluginAU.cpp.arch.o \ | |||
$(OBJDIR)/CarlaPluginJuce.cpp.arch.o \ | |||
$(OBJDIR)/CarlaStandalone.cpp.arch.o | |||
OBJS_posix32 = $(OBJS_arch:%.arch.o=%.posix32.o) | |||
@@ -27,7 +27,7 @@ | |||
// always enabled | |||
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | |||
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | |||
#define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 | |||
#define JUCE_MODULE_AVAILABLE_juce_core 1 | |||
#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | |||
#define JUCE_MODULE_AVAILABLE_juce_events 1 | |||
@@ -38,19 +38,22 @@ | |||
#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_gui_extra 0 | |||
#define JUCE_MODULE_AVAILABLE_juce_video 0 | |||
// conditional | |||
#if defined(APPCONFIG_OS_MAC) || defined(APPCONFIG_OS_WIN) | |||
# define JUCE_MODULE_AVAILABLE_juce_audio_processors 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_graphics 0 | |||
# define JUCE_MODULE_AVAILABLE_juce_gui_basics 0 | |||
# define JUCE_MODULE_AVAILABLE_juce_gui_extra 0 | |||
#endif | |||
#ifndef BUILD_BRIDGE | |||
# define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | |||
#else | |||
# define JUCE_MODULE_AVAILABLE_juce_audio_devices 0 | |||
#endif | |||
// misc | |||
@@ -191,7 +194,11 @@ | |||
@see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU | |||
*/ | |||
#define JUCE_PLUGINHOST_VST 1 | |||
#if defined(APPCONFIG_OS_MAC) || defined(APPCONFIG_OS_WIN) | |||
# define JUCE_PLUGINHOST_VST 1 | |||
#else | |||
# define JUCE_PLUGINHOST_VST 0 | |||
#endif | |||
/** Config: JUCE_PLUGINHOST_VST3 | |||
Enables the VST3 audio plugin hosting classes. This requires the Steinberg VST3 SDK to be | |||
@@ -51,7 +51,7 @@ namespace water { | |||
@see forEachXmlChildElementWithTagName | |||
*/ | |||
#define forEachXmlChildElement(parentXmlElement, childElementVariableName) \ | |||
#define __forEachXmlChildElement(parentXmlElement, childElementVariableName) \ | |||
\ | |||
for (water::XmlElement* childElementVariableName = (parentXmlElement).getFirstChildElement(); \ | |||
childElementVariableName != nullptr; \ | |||
@@ -80,7 +80,7 @@ namespace water { | |||
@see forEachXmlChildElement | |||
*/ | |||
#define forEachXmlChildElementWithTagName(parentXmlElement, childElementVariableName, requiredTagName) \ | |||
#define __forEachXmlChildElementWithTagName(parentXmlElement, childElementVariableName, requiredTagName) \ | |||
\ | |||
for (water::XmlElement* childElementVariableName = (parentXmlElement).getChildByName (requiredTagName); \ | |||
childElementVariableName != nullptr; \ | |||
@@ -59,6 +59,18 @@ ifeq ($(HAVE_HYLIA),true) | |||
LIBS += $(MODULEDIR)/hylia.a | |||
endif | |||
ifeq ($(USING_JUCE),true) | |||
LIBS += $(MODULEDIR)/juce_audio_basics.a | |||
LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
LIBS += $(MODULEDIR)/juce_core.a | |||
LIBS += $(MODULEDIR)/juce_data_structures.a | |||
LIBS += $(MODULEDIR)/juce_events.a | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
LIBS += $(MODULEDIR)/juce_graphics.a | |||
LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
endif | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Link flags | |||
@@ -74,6 +86,18 @@ NATIVE_LINK_FLAGS += $(LIBLO_LIBS) | |||
NATIVE_LINK_FLAGS += $(MAGIC_LIBS) | |||
NATIVE_LINK_FLAGS += $(X11_LIBS) | |||
ifeq ($(USING_JUCE),true) | |||
LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
endif | |||
endif | |||
ifeq ($(MACOS),true) | |||
SYMBOLS_NATIVE = -Wl,-exported_symbol,_carla_get_native_rack_plugin | |||
SYMBOLS_NATIVE += -Wl,-exported_symbol,_carla_get_native_patchbay_plugin | |||