Signed-off-by: falkTX <falktx@gmail.com>tags/v2.1-alpha1-winvst
@@ -63,10 +63,8 @@ ALL_LIBS += $(MODULEDIR)/juce_audio_processors.a | |||||
ALL_LIBS += $(MODULEDIR)/juce_core.a | ALL_LIBS += $(MODULEDIR)/juce_core.a | ||||
ALL_LIBS += $(MODULEDIR)/juce_data_structures.a | ALL_LIBS += $(MODULEDIR)/juce_data_structures.a | ||||
ALL_LIBS += $(MODULEDIR)/juce_events.a | ALL_LIBS += $(MODULEDIR)/juce_events.a | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
ALL_LIBS += $(MODULEDIR)/juce_graphics.a | ALL_LIBS += $(MODULEDIR)/juce_graphics.a | ||||
ALL_LIBS += $(MODULEDIR)/juce_gui_basics.a | ALL_LIBS += $(MODULEDIR)/juce_gui_basics.a | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
ALL_LIBS += $(MODULEDIR)/juce_gui_extra.a | ALL_LIBS += $(MODULEDIR)/juce_gui_extra.a | ||||
endif | endif | ||||
@@ -452,8 +452,11 @@ LILV_LIBS = -ldl -lm -lrt | |||||
RTMEMPOOL_LIBS = -lpthread -lrt | RTMEMPOOL_LIBS = -lpthread -lrt | ||||
WATER_LIBS = -ldl -lpthread -lrt | WATER_LIBS = -ldl -lpthread -lrt | ||||
ifeq ($(USING_JUCE),true) | ifeq ($(USING_JUCE),true) | ||||
JUCE_CORE_LIBS = -ldl -lpthread -lrt | |||||
JUCE_AUDIO_DEVICES_LIBS = $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs alsa) | JUCE_AUDIO_DEVICES_LIBS = $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs alsa) | ||||
JUCE_CORE_LIBS = -ldl -lpthread -lrt | |||||
JUCE_EVENTS_LIBS = $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs x11) | |||||
JUCE_GRAPHICS_LIBS = $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs freetype2) | |||||
JUCE_GUI_BASICS_LIBS = $(shell pkg-config $(PKG_CONFIG_FLAGS) --libs x11 xext) | |||||
else | else | ||||
ifeq ($(HAVE_ALSA),true) | ifeq ($(HAVE_ALSA),true) | ||||
RTAUDIO_FLAGS += $(shell pkg-config $(PKG_CONFIG_FLAGS) --cflags alsa) -D__LINUX_ALSA__ | RTAUDIO_FLAGS += $(shell pkg-config $(PKG_CONFIG_FLAGS) --cflags alsa) -D__LINUX_ALSA__ | ||||
@@ -44,10 +44,8 @@ STANDALONE_LIBS += $(MODULEDIR)/juce_audio_processors.a | |||||
STANDALONE_LIBS += $(MODULEDIR)/juce_core.a | STANDALONE_LIBS += $(MODULEDIR)/juce_core.a | ||||
STANDALONE_LIBS += $(MODULEDIR)/juce_data_structures.a | STANDALONE_LIBS += $(MODULEDIR)/juce_data_structures.a | ||||
STANDALONE_LIBS += $(MODULEDIR)/juce_events.a | STANDALONE_LIBS += $(MODULEDIR)/juce_events.a | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
STANDALONE_LIBS += $(MODULEDIR)/juce_graphics.a | STANDALONE_LIBS += $(MODULEDIR)/juce_graphics.a | ||||
STANDALONE_LIBS += $(MODULEDIR)/juce_gui_basics.a | STANDALONE_LIBS += $(MODULEDIR)/juce_gui_basics.a | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
STANDALONE_LIBS += $(MODULEDIR)/juce_gui_extra.a | STANDALONE_LIBS += $(MODULEDIR)/juce_gui_extra.a | ||||
endif | endif | ||||
@@ -76,10 +74,8 @@ STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||||
STANDALONE_LINK_FLAGS += $(JUCE_CORE_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_CORE_LIBS) | ||||
STANDALONE_LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | ||||
STANDALONE_LINK_FLAGS += $(JUCE_EVENTS_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_EVENTS_LIBS) | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
STANDALONE_LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | ||||
STANDALONE_LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
STANDALONE_LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | ||||
endif | endif | ||||
@@ -53,10 +53,8 @@ public: | |||||
fAudioBuffer(), | fAudioBuffer(), | ||||
fMidiBuffer(), | fMidiBuffer(), | ||||
fPosInfo(), | fPosInfo(), | ||||
fChunk() | |||||
#if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||||
, fWindow() | |||||
#endif | |||||
fChunk(), | |||||
fWindow() | |||||
{ | { | ||||
carla_debug("CarlaPluginJuce::CarlaPluginJuce(%p, %i)", engine, id); | carla_debug("CarlaPluginJuce::CarlaPluginJuce(%p, %i)", engine, id); | ||||
@@ -234,7 +232,6 @@ public: | |||||
// ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
// Set data (internal stuff) | // Set data (internal stuff) | ||||
#if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||||
void setName(const char* const newName) override | void setName(const char* const newName) override | ||||
{ | { | ||||
CarlaPlugin::setName(newName); | CarlaPlugin::setName(newName); | ||||
@@ -246,7 +243,6 @@ public: | |||||
fWindow->setName(uiName); | fWindow->setName(uiName); | ||||
} | } | ||||
} | } | ||||
#endif | |||||
// ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
// Set data (plugin-specific stuff) | // Set data (plugin-specific stuff) | ||||
@@ -269,10 +265,30 @@ public: | |||||
CARLA_SAFE_ASSERT_RETURN(data != nullptr,); | CARLA_SAFE_ASSERT_RETURN(data != nullptr,); | ||||
CARLA_SAFE_ASSERT_RETURN(dataSize > 0,); | CARLA_SAFE_ASSERT_RETURN(dataSize > 0,); | ||||
if (isJuceSaveFormat(data, dataSize)) | |||||
{ | { | ||||
const ScopedSingleProcessLocker spl(this, true); | const ScopedSingleProcessLocker spl(this, true); | ||||
fInstance->setStateInformation(data, static_cast<int>(dataSize)); | fInstance->setStateInformation(data, static_cast<int>(dataSize)); | ||||
} | } | ||||
else | |||||
{ | |||||
carla_stdout("NOTE: Loading plugin state in Carla compatibiity mode"); | |||||
uint8_t* const dataCompat = new uint8_t[dataSize + 160]; | |||||
std::memset(dataCompat, 0, 160); | |||||
std::memcpy(dataCompat+160, data, dataSize); | |||||
int32_t* const set = (int32_t*)dataCompat; | |||||
dataCompat[39] = dataSize; | |||||
set[0] = (int32_t)juce::ByteOrder::littleEndianInt("CcnK"); | |||||
set[2] = (int32_t)juce::ByteOrder::littleEndianInt("FBCh"); | |||||
set[3] = fxbSwap(1); | |||||
set[39] = fxbSwap(dataSize); | |||||
const ScopedSingleProcessLocker spl(this, true); | |||||
fInstance->setStateInformation(dataCompat, static_cast<int>(dataSize+160)); | |||||
} | |||||
#if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | ||||
const bool sendOsc(pData->engine->isOscControlRegistered()); | const bool sendOsc(pData->engine->isOscControlRegistered()); | ||||
@@ -302,7 +318,6 @@ public: | |||||
// ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
// Set ui stuff | // Set ui stuff | ||||
#if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||||
void showCustomUI(const bool yesNo) override | void showCustomUI(const bool yesNo) override | ||||
{ | { | ||||
CARLA_SAFE_ASSERT_RETURN(fInstance != nullptr,); | CARLA_SAFE_ASSERT_RETURN(fInstance != nullptr,); | ||||
@@ -346,7 +361,6 @@ public: | |||||
CarlaPlugin::uiIdle(); | CarlaPlugin::uiIdle(); | ||||
} | } | ||||
#endif | |||||
// ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
// Plugin state | // Plugin state | ||||
@@ -542,13 +556,11 @@ public: | |||||
if (fDesc.isInstrument) | if (fDesc.isInstrument) | ||||
pData->hints |= PLUGIN_IS_SYNTH; | pData->hints |= PLUGIN_IS_SYNTH; | ||||
#if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||||
if (fInstance->hasEditor()) | if (fInstance->hasEditor()) | ||||
{ | { | ||||
pData->hints |= PLUGIN_HAS_CUSTOM_UI; | pData->hints |= PLUGIN_HAS_CUSTOM_UI; | ||||
pData->hints |= PLUGIN_NEEDS_UI_MAIN_THREAD; | pData->hints |= PLUGIN_NEEDS_UI_MAIN_THREAD; | ||||
} | } | ||||
#endif | |||||
if (aOuts > 0 && (aIns == aOuts || aIns == 1)) | if (aOuts > 0 && (aIns == aOuts || aIns == 1)) | ||||
pData->hints |= PLUGIN_CAN_DRYWET; | pData->hints |= PLUGIN_CAN_DRYWET; | ||||
@@ -1224,6 +1236,8 @@ public: | |||||
fInstance->setPlayHead(this); | fInstance->setPlayHead(this); | ||||
fInstance->addListener(this); | fInstance->addListener(this); | ||||
fFormatName = format; | |||||
// --------------------------------------------------------------- | // --------------------------------------------------------------- | ||||
// get info | // get info | ||||
@@ -1279,10 +1293,41 @@ private: | |||||
juce::MidiBuffer fMidiBuffer; | juce::MidiBuffer fMidiBuffer; | ||||
CurrentPositionInfo fPosInfo; | CurrentPositionInfo fPosInfo; | ||||
juce::MemoryBlock fChunk; | juce::MemoryBlock fChunk; | ||||
juce::String fFormatName; | |||||
#if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||||
ScopedPointer<JucePluginWindow> fWindow; | ScopedPointer<JucePluginWindow> fWindow; | ||||
#endif | |||||
bool isJuceSaveFormat(const void* const data, const std::size_t dataSize) | |||||
{ | |||||
if (fFormatName != "VST2") | |||||
return true; | |||||
if (dataSize < 160) | |||||
return false; | |||||
const int32_t* const set = (const int32_t*)data; | |||||
if (! compareMagic(set[0], "CcnK")) | |||||
return false; | |||||
if (! compareMagic(set[2], "FBCh")) | |||||
return false; | |||||
if (fxbSwap(set[3]) > 1) | |||||
return false; | |||||
const int32_t chunkSize = fxbSwap(set[39]); | |||||
return static_cast<std::size_t>(chunkSize + 160) == dataSize; | |||||
} | |||||
static bool compareMagic(int32_t magic, const char* name) noexcept | |||||
{ | |||||
return magic == (int32_t)juce::ByteOrder::littleEndianInt (name) | |||||
|| magic == (int32_t)juce::ByteOrder::bigEndianInt (name); | |||||
} | |||||
static int32_t fxbSwap(const int32_t x) noexcept | |||||
{ | |||||
return (int32_t)juce::ByteOrder::swapIfLittleEndian ((uint32_t) x); | |||||
} | |||||
CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginJuce) | CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginJuce) | ||||
}; | }; | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* Carla VST Plugin | * Carla VST Plugin | ||||
* Copyright (C) 2011-2018 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 | * This program is free software; you can redistribute it and/or | ||||
* modify it under the terms of the GNU General Public License as | * modify it under the terms of the GNU General Public License as | ||||
@@ -397,7 +397,7 @@ public: | |||||
CARLA_SAFE_ASSERT_RETURN(data != nullptr,); | CARLA_SAFE_ASSERT_RETURN(data != nullptr,); | ||||
CARLA_SAFE_ASSERT_RETURN(dataSize > 0,); | CARLA_SAFE_ASSERT_RETURN(dataSize > 0,); | ||||
if (loadOldSaveFormat(data, dataSize)) | |||||
if (loadJuceSaveFormat(data, dataSize)) | |||||
return; | return; | ||||
if (fLastChunk != nullptr) | if (fLastChunk != nullptr) | ||||
@@ -2476,7 +2476,7 @@ private: | |||||
return (int32_t)ByteOrder::swapIfLittleEndian ((uint32_t) x); | return (int32_t)ByteOrder::swapIfLittleEndian ((uint32_t) x); | ||||
} | } | ||||
bool loadOldSaveFormat(const void* const data, const std::size_t dataSize) | |||||
bool loadJuceSaveFormat(const void* const data, const std::size_t dataSize) | |||||
{ | { | ||||
if (dataSize < 28) | if (dataSize < 28) | ||||
return false; | return false; | ||||
@@ -2496,6 +2496,7 @@ private: | |||||
if (static_cast<std::size_t>(chunkSize + 160) > dataSize) | if (static_cast<std::size_t>(chunkSize + 160) > dataSize) | ||||
return false; | return false; | ||||
carla_stdout("NOTE: Loading plugin state in Juce compatibiity mode"); | |||||
setChunkData(&set[40], static_cast<std::size_t>(chunkSize)); | setChunkData(&set[40], static_cast<std::size_t>(chunkSize)); | ||||
return true; | return true; | ||||
} | } | ||||
@@ -29,10 +29,8 @@ LIBS += $(MODULEDIR)/juce_audio_processors.a | |||||
LIBS += $(MODULEDIR)/juce_core.a | LIBS += $(MODULEDIR)/juce_core.a | ||||
LIBS += $(MODULEDIR)/juce_data_structures.a | LIBS += $(MODULEDIR)/juce_data_structures.a | ||||
LIBS += $(MODULEDIR)/juce_events.a | LIBS += $(MODULEDIR)/juce_events.a | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
LIBS += $(MODULEDIR)/juce_graphics.a | LIBS += $(MODULEDIR)/juce_graphics.a | ||||
LIBS += $(MODULEDIR)/juce_gui_basics.a | LIBS += $(MODULEDIR)/juce_gui_basics.a | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
LIBS += $(MODULEDIR)/juce_gui_extra.a | LIBS += $(MODULEDIR)/juce_gui_extra.a | ||||
endif | endif | ||||
@@ -55,10 +53,8 @@ LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||||
LINK_FLAGS += $(JUCE_CORE_LIBS) | LINK_FLAGS += $(JUCE_CORE_LIBS) | ||||
LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | ||||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | LINK_FLAGS += $(JUCE_EVENTS_LIBS) | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | ||||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | ||||
endif | endif | ||||
@@ -99,7 +99,6 @@ LIBS_win32 += $(MODULEDIR)/juce_events.win32.a | |||||
LIBS_win64 += $(MODULEDIR)/juce_events.win64.a | LIBS_win64 += $(MODULEDIR)/juce_events.win64.a | ||||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | LINK_FLAGS += $(JUCE_EVENTS_LIBS) | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
LIBS_native += $(MODULEDIR)/juce_graphics.a | LIBS_native += $(MODULEDIR)/juce_graphics.a | ||||
LIBS_posix32 += $(MODULEDIR)/juce_graphics.posix32.a | LIBS_posix32 += $(MODULEDIR)/juce_graphics.posix32.a | ||||
LIBS_posix64 += $(MODULEDIR)/juce_graphics.posix64.a | LIBS_posix64 += $(MODULEDIR)/juce_graphics.posix64.a | ||||
@@ -113,7 +112,6 @@ LIBS_posix64 += $(MODULEDIR)/juce_gui_basics.posix64.a | |||||
LIBS_win32 += $(MODULEDIR)/juce_gui_basics.win32.a | LIBS_win32 += $(MODULEDIR)/juce_gui_basics.win32.a | ||||
LIBS_win64 += $(MODULEDIR)/juce_gui_basics.win64.a | LIBS_win64 += $(MODULEDIR)/juce_gui_basics.win64.a | ||||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
LIBS_native += $(MODULEDIR)/juce_gui_extra.a | LIBS_native += $(MODULEDIR)/juce_gui_extra.a | ||||
@@ -101,7 +101,6 @@ LIBS_win32 += $(MODULEDIR)/juce_events.win32.a | |||||
LIBS_win64 += $(MODULEDIR)/juce_events.win64.a | LIBS_win64 += $(MODULEDIR)/juce_events.win64.a | ||||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | LINK_FLAGS += $(JUCE_EVENTS_LIBS) | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
LIBS_native += $(MODULEDIR)/juce_graphics.a | LIBS_native += $(MODULEDIR)/juce_graphics.a | ||||
LIBS_posix32 += $(MODULEDIR)/juce_graphics.posix32.a | LIBS_posix32 += $(MODULEDIR)/juce_graphics.posix32.a | ||||
LIBS_posix64 += $(MODULEDIR)/juce_graphics.posix64.a | LIBS_posix64 += $(MODULEDIR)/juce_graphics.posix64.a | ||||
@@ -115,7 +114,6 @@ LIBS_posix64 += $(MODULEDIR)/juce_gui_basics.posix64.a | |||||
LIBS_win32 += $(MODULEDIR)/juce_gui_basics.win32.a | LIBS_win32 += $(MODULEDIR)/juce_gui_basics.win32.a | ||||
LIBS_win64 += $(MODULEDIR)/juce_gui_basics.win64.a | LIBS_win64 += $(MODULEDIR)/juce_gui_basics.win64.a | ||||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | ||||
endif # MACOS_OR_WIN32 | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
LIBS_native += $(MODULEDIR)/juce_gui_extra.a | LIBS_native += $(MODULEDIR)/juce_gui_extra.a | ||||
@@ -49,6 +49,8 @@ | |||||
#define JUCE_MODULE_AVAILABLE_juce_core 1 | #define JUCE_MODULE_AVAILABLE_juce_core 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | #define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_events 1 | #define JUCE_MODULE_AVAILABLE_juce_events 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_graphics 1 | |||||
#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 | |||||
// always disabled | // always disabled | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_formats 0 | #define JUCE_MODULE_AVAILABLE_juce_audio_formats 0 | ||||
@@ -59,15 +61,7 @@ | |||||
#define JUCE_MODULE_AVAILABLE_juce_video 0 | #define JUCE_MODULE_AVAILABLE_juce_video 0 | ||||
// conditional | // conditional | ||||
#if defined(APPCONFIG_OS_MAC) || defined(APPCONFIG_OS_WIN) | |||||
# define JUCE_MODULE_AVAILABLE_juce_graphics 1 | |||||
# define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 | |||||
#else | |||||
# define JUCE_MODULE_AVAILABLE_juce_graphics 0 | |||||
# define JUCE_MODULE_AVAILABLE_juce_gui_basics 0 | |||||
#endif | |||||
#if defined(APPCONFIG_OS_MAC) | |||||
#ifdef APPCONFIG_OS_MAC | |||||
# define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 | # define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 | ||||
#else | #else | ||||
# define JUCE_MODULE_AVAILABLE_juce_gui_extra 0 | # define JUCE_MODULE_AVAILABLE_juce_gui_extra 0 | ||||
@@ -89,9 +83,10 @@ | |||||
#define JUCE_STRING_UTF_TYPE 8 | #define JUCE_STRING_UTF_TYPE 8 | ||||
#define JUCE_USE_VFORK 1 | #define JUCE_USE_VFORK 1 | ||||
#if ! (defined(APPCONFIG_OS_MAC) || defined(APPCONFIG_OS_WIN)) | |||||
#ifdef APPCONFIG_OS_LINUX | |||||
# define JUCE_DISABLE_NATIVE_FILECHOOSERS 1 | |||||
# define JUCE_MODAL_LOOPS_PERMITTED 0 | # define JUCE_MODAL_LOOPS_PERMITTED 0 | ||||
# define JUCE_AUDIOPROCESSOR_NO_GUI 1 | |||||
// # define JUCE_AUDIOPROCESSOR_NO_GUI 1 | |||||
#endif | #endif | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -218,11 +213,7 @@ | |||||
@see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU | @see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU | ||||
*/ | */ | ||||
#if defined(APPCONFIG_OS_MAC) || defined(APPCONFIG_OS_WIN) | |||||
# define JUCE_PLUGINHOST_VST 1 | |||||
#else | |||||
# define JUCE_PLUGINHOST_VST 0 | |||||
#endif | |||||
#define JUCE_PLUGINHOST_VST 1 | |||||
/** Config: JUCE_PLUGINHOST_VST3 | /** Config: JUCE_PLUGINHOST_VST3 | ||||
Enables the VST3 audio plugin hosting classes. This requires the Steinberg VST3 SDK to be | Enables the VST3 audio plugin hosting classes. This requires the Steinberg VST3 SDK to be | ||||
@@ -12,6 +12,9 @@ include ../Makefile.mk | |||||
BUILD_CXX_FLAGS += $(JUCE_GRAPHICS_FLAGS) -I.. | BUILD_CXX_FLAGS += $(JUCE_GRAPHICS_FLAGS) -I.. | ||||
ifeq ($(LINUX),true) | |||||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags freetype2) | |||||
endif | |||||
ifeq ($(WIN32),true) | ifeq ($(WIN32),true) | ||||
BUILD_CXX_FLAGS += -Wno-missing-field-initializers -Wno-strict-overflow | BUILD_CXX_FLAGS += -Wno-missing-field-initializers -Wno-strict-overflow | ||||
endif | endif | ||||
@@ -27,16 +27,6 @@ | |||||
namespace juce | namespace juce | ||||
{ | { | ||||
static bool exeIsAvailable (const char* const executable) | |||||
{ | |||||
ChildProcess child; | |||||
const bool ok = child.start ("which " + String (executable)) | |||||
&& child.readAllProcessOutput().trim().isNotEmpty(); | |||||
child.waitForProcessToFinish (60 * 1000); | |||||
return ok; | |||||
} | |||||
bool FileChooser::isPlatformDialogAvailable() | bool FileChooser::isPlatformDialogAvailable() | ||||
{ | { | ||||
#if JUCE_DISABLE_NATIVE_FILECHOOSERS | #if JUCE_DISABLE_NATIVE_FILECHOOSERS | ||||
@@ -47,6 +37,17 @@ bool FileChooser::isPlatformDialogAvailable() | |||||
#endif | #endif | ||||
} | } | ||||
#if ! JUCE_DISABLE_NATIVE_FILECHOOSERS | |||||
static bool exeIsAvailable (const char* const executable) | |||||
{ | |||||
ChildProcess child; | |||||
const bool ok = child.start ("which " + String (executable)) | |||||
&& child.readAllProcessOutput().trim().isNotEmpty(); | |||||
child.waitForProcessToFinish (60 * 1000); | |||||
return ok; | |||||
} | |||||
static uint64 getTopWindowID() noexcept | static uint64 getTopWindowID() noexcept | ||||
{ | { | ||||
if (TopLevelWindow* top = TopLevelWindow::getActiveTopLevelWindow()) | if (TopLevelWindow* top = TopLevelWindow::getActiveTopLevelWindow()) | ||||
@@ -209,5 +210,6 @@ void FileChooser::showPlatformDialog (Array<File>& results, | |||||
previousWorkingDirectory.setAsCurrentWorkingDirectory(); | previousWorkingDirectory.setAsCurrentWorkingDirectory(); | ||||
} | } | ||||
#endif | |||||
} // namespace juce | } // namespace juce |
@@ -65,10 +65,8 @@ LIBS += $(MODULEDIR)/juce_audio_processors.a | |||||
LIBS += $(MODULEDIR)/juce_core.a | LIBS += $(MODULEDIR)/juce_core.a | ||||
LIBS += $(MODULEDIR)/juce_data_structures.a | LIBS += $(MODULEDIR)/juce_data_structures.a | ||||
LIBS += $(MODULEDIR)/juce_events.a | LIBS += $(MODULEDIR)/juce_events.a | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
LIBS += $(MODULEDIR)/juce_graphics.a | LIBS += $(MODULEDIR)/juce_graphics.a | ||||
LIBS += $(MODULEDIR)/juce_gui_basics.a | LIBS += $(MODULEDIR)/juce_gui_basics.a | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
LIBS += $(MODULEDIR)/juce_gui_extra.a | LIBS += $(MODULEDIR)/juce_gui_extra.a | ||||
endif | endif | ||||
@@ -95,10 +93,8 @@ LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||||
LINK_FLAGS += $(JUCE_CORE_LIBS) | LINK_FLAGS += $(JUCE_CORE_LIBS) | ||||
LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | ||||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | LINK_FLAGS += $(JUCE_EVENTS_LIBS) | ||||
ifeq ($(MACOS_OR_WIN32),true) | |||||
LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | ||||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | ||||
endif | |||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | ||||
endif | endif | ||||
@@ -33,10 +33,6 @@ | |||||
namespace juce { | namespace juce { | ||||
#if JUCE_LINUX && defined(HAVE_X11) | |||||
extern Display* display; | |||||
#endif | |||||
class JucePluginWindow : public DialogWindow | class JucePluginWindow : public DialogWindow | ||||
{ | { | ||||
public: | public: | ||||
@@ -103,6 +99,7 @@ private: | |||||
return; | return; | ||||
#if JUCE_LINUX && defined(HAVE_X11) | #if JUCE_LINUX && defined(HAVE_X11) | ||||
Display* const display = XWindowSystem::getInstance()->displayRef(); | |||||
CARLA_SAFE_ASSERT_RETURN(display != nullptr,); | CARLA_SAFE_ASSERT_RETURN(display != nullptr,); | ||||
::Window window = (::Window)getWindowHandle(); | ::Window window = (::Window)getWindowHandle(); | ||||