@@ -12,6 +12,7 @@ all: carla dgl plugins gen | |||||
carla: | carla: | ||||
$(MAKE) -C carla plugin \ | $(MAKE) -C carla plugin \ | ||||
CAN_GENERATE_LV2_TTL=false \ | |||||
HAVE_ALSA=false \ | HAVE_ALSA=false \ | ||||
HAVE_DGL=false \ | HAVE_DGL=false \ | ||||
HAVE_HYLIA=false \ | HAVE_HYLIA=false \ | ||||
@@ -23,13 +24,15 @@ carla: | |||||
HAVE_QT5PKG=false \ | HAVE_QT5PKG=false \ | ||||
HAVE_PULSEAUDIO=false \ | HAVE_PULSEAUDIO=false \ | ||||
USING_JUCE_AUDIO_DEVICES=false \ | USING_JUCE_AUDIO_DEVICES=false \ | ||||
CAN_GENERATE_LV2_TTL=false | |||||
USING_RTAUDIO=false | |||||
dgl: | dgl: | ||||
$(MAKE) -C dpf/dgl opengl | $(MAKE) -C dpf/dgl opengl | ||||
plugins: carla dgl | plugins: carla dgl | ||||
$(MAKE) all -C plugins/FX | $(MAKE) all -C plugins/FX | ||||
$(MAKE) all -C plugins/MIDI | |||||
$(MAKE) all -C plugins/Synth | |||||
ifneq ($(CROSS_COMPILING),true) | ifneq ($(CROSS_COMPILING),true) | ||||
gen: plugins dpf/utils/lv2_ttl_generator | gen: plugins dpf/utils/lv2_ttl_generator | ||||
@@ -51,7 +54,11 @@ clean: | |||||
$(MAKE) clean -C dpf/dgl | $(MAKE) clean -C dpf/dgl | ||||
$(MAKE) clean -C dpf/utils/lv2-ttl-generator | $(MAKE) clean -C dpf/utils/lv2-ttl-generator | ||||
$(MAKE) clean -C plugins/FX | $(MAKE) clean -C plugins/FX | ||||
$(MAKE) clean -C plugins/MIDI | |||||
$(MAKE) clean -C plugins/Synth | |||||
rm -rf bin build | rm -rf bin build | ||||
rm -f dpf-widgets/opengl/*.d | |||||
rm -f dpf-widgets/opengl/*.o | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
@@ -1 +1 @@ | |||||
Subproject commit d87e6f87ab47d7ff647c6e8b2a22fdb52d2c3c23 | |||||
Subproject commit a310640e0fcb1aef53fe7d15771cccebdc9731c8 |
@@ -1 +1 @@ | |||||
Subproject commit bea5f6f9c39c4977b641234f3c812ac1f7298bf9 | |||||
Subproject commit 306c680c6ecb3241011ce46dbe27824e8c7189fc |
@@ -18,7 +18,6 @@ | |||||
#include "CarlaNativePlugin.h" | #include "CarlaNativePlugin.h" | ||||
#include "DistrhoPlugin.hpp" | #include "DistrhoPlugin.hpp" | ||||
#include "DistrhoUI.hpp" | |||||
START_NAMESPACE_DISTRHO | START_NAMESPACE_DISTRHO | ||||
@@ -44,20 +43,28 @@ public: | |||||
NativeHostDescriptor fCarlaHostDescriptor; | NativeHostDescriptor fCarlaHostDescriptor; | ||||
CarlaHostHandle fCarlaHostHandle; | CarlaHostHandle fCarlaHostHandle; | ||||
mutable NativeTimeInfo fCarlaTimeInfo; | |||||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||||
static constexpr const uint kMaxMidiEventCount = 512; | |||||
NativeMidiEvent* fMidiEvents; | |||||
uint32_t fMidiEventCount; | |||||
float* fDummyBuffer; | |||||
float* fDummyBuffers[2]; | |||||
#endif | |||||
UI* fUI; | |||||
mutable NativeTimeInfo fCarlaTimeInfo; | |||||
void setUI(UI* const ui) | |||||
{ | |||||
fUI = ui; | |||||
} | |||||
void* fUI; | |||||
IldaeilPlugin() | IldaeilPlugin() | ||||
: Plugin(0, 0, 0), | : Plugin(0, 0, 0), | ||||
fCarlaPluginDescriptor(nullptr), | fCarlaPluginDescriptor(nullptr), | ||||
fCarlaPluginHandle(nullptr), | fCarlaPluginHandle(nullptr), | ||||
fCarlaHostHandle(nullptr), | fCarlaHostHandle(nullptr), | ||||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||||
fMidiEvents(nullptr), | |||||
fMidiEventCount(0), | |||||
fDummyBuffer(nullptr), | |||||
#endif | |||||
fUI(nullptr) | fUI(nullptr) | ||||
{ | { | ||||
fCarlaPluginDescriptor = carla_get_native_rack_plugin(); | fCarlaPluginDescriptor = carla_get_native_rack_plugin(); | ||||
@@ -89,9 +96,17 @@ public: | |||||
DISTRHO_SAFE_ASSERT_RETURN(fCarlaPluginHandle != nullptr,); | DISTRHO_SAFE_ASSERT_RETURN(fCarlaPluginHandle != nullptr,); | ||||
fCarlaHostHandle = carla_create_native_plugin_host_handle(fCarlaPluginDescriptor, fCarlaPluginHandle); | fCarlaHostHandle = carla_create_native_plugin_host_handle(fCarlaPluginDescriptor, fCarlaPluginHandle); | ||||
DISTRHO_SAFE_ASSERT_RETURN(fCarlaHostHandle != nullptr,); | |||||
carla_set_engine_option(fCarlaHostHandle, ENGINE_OPTION_PATH_BINARIES, 0, "/usr/lib/carla"); | carla_set_engine_option(fCarlaHostHandle, ENGINE_OPTION_PATH_BINARIES, 0, "/usr/lib/carla"); | ||||
carla_set_engine_option(fCarlaHostHandle, ENGINE_OPTION_PATH_RESOURCES, 0, "/usr/share/carla/resources"); | carla_set_engine_option(fCarlaHostHandle, ENGINE_OPTION_PATH_RESOURCES, 0, "/usr/share/carla/resources"); | ||||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||||
fMidiEvents = new NativeMidiEvent[kMaxMidiEventCount]; | |||||
fDummyBuffer = new float[getBufferSize()]; | |||||
fDummyBuffers[0] = fDummyBuffer; | |||||
fDummyBuffers[1] = fDummyBuffer; | |||||
#endif | |||||
} | } | ||||
~IldaeilPlugin() override | ~IldaeilPlugin() override | ||||
@@ -99,6 +114,10 @@ public: | |||||
if (fCarlaHostHandle != nullptr) | if (fCarlaHostHandle != nullptr) | ||||
{ | { | ||||
carla_host_handle_free(fCarlaHostHandle); | carla_host_handle_free(fCarlaHostHandle); | ||||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||||
delete[] fMidiEvents; | |||||
delete[] fDummyBuffer; | |||||
#endif | |||||
} | } | ||||
if (fCarlaPluginHandle != nullptr) | if (fCarlaPluginHandle != nullptr) | ||||
@@ -146,8 +165,8 @@ public: | |||||
{ | { | ||||
DISTRHO_SAFE_ASSERT_RETURN(fUI != nullptr,); | DISTRHO_SAFE_ASSERT_RETURN(fUI != nullptr,); | ||||
d_stdout("resizing ui to %u %u", width, height); | |||||
fUI->setSize(width, height); | |||||
d_stdout("asking to resizing ui to %u %u - I SAY NO", width, height); | |||||
// fUI->setSize(width, height); | |||||
} | } | ||||
protected: | protected: | ||||
@@ -246,11 +265,47 @@ protected: | |||||
fCarlaPluginDescriptor->deactivate(fCarlaPluginHandle); | fCarlaPluginDescriptor->deactivate(fCarlaPluginHandle); | ||||
} | } | ||||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||||
void run(const float** inputs, float** outputs, uint32_t frames, | |||||
const MidiEvent* dpfMidiEvents, uint32_t dpfMidiEventCount) override | |||||
#else | |||||
void run(const float** inputs, float** outputs, uint32_t frames) override | void run(const float** inputs, float** outputs, uint32_t frames) override | ||||
#endif | |||||
{ | { | ||||
if (fCarlaPluginHandle != nullptr) | if (fCarlaPluginHandle != nullptr) | ||||
{ | { | ||||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||||
uint32_t midiEventCount = 0; | |||||
for (uint32_t i=0; i < dpfMidiEventCount; ++i) | |||||
{ | |||||
const MidiEvent& dpfMidiEvent(dpfMidiEvents[i]); | |||||
if (dpfMidiEvent.size > 4) | |||||
continue; | |||||
NativeMidiEvent& midiEvent(fMidiEvents[midiEventCount]); | |||||
midiEvent.time = dpfMidiEvent.frame; | |||||
midiEvent.port = 0; | |||||
midiEvent.size = dpfMidiEvent.size; | |||||
std::memcpy(midiEvent.data, dpfMidiEvent.data, midiEvent.size); | |||||
if (++midiEventCount == kMaxMidiEventCount) | |||||
break; | |||||
} | |||||
# if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT | |||||
fCarlaPluginDescriptor->process(fCarlaPluginHandle, fDummyBuffers, fDummyBuffers, frames, | |||||
fMidiEvents, midiEventCount); | |||||
// unused | |||||
(void)outputs; | |||||
# else | |||||
fCarlaPluginDescriptor->process(fCarlaPluginHandle, fDummyBuffers, outputs, frames, | |||||
fMidiEvents, midiEventCount); | |||||
# endif | |||||
// unused | |||||
(void)inputs; | |||||
#else | |||||
fCarlaPluginDescriptor->process(fCarlaPluginHandle, (float**)inputs, outputs, frames, nullptr, 0); | fCarlaPluginDescriptor->process(fCarlaPluginHandle, (float**)inputs, outputs, frames, nullptr, 0); | ||||
#endif | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
@@ -259,9 +314,17 @@ protected: | |||||
} | } | ||||
} | } | ||||
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||||
void bufferSizeChanged(const uint32_t newBufferSize) override | |||||
{ | |||||
delete[] fDummyBuffer; | |||||
fDummyBuffer = new float[newBufferSize]; | |||||
fDummyBuffers[0] = fDummyBuffer; | |||||
fDummyBuffers[1] = fDummyBuffer; | |||||
} | |||||
#endif | |||||
// ------------------------------------------------------------------------------------------------------- | // ------------------------------------------------------------------------------------------------------- | ||||
private: | |||||
/** | /** | ||||
Set our plugin class as non-copyable and add a leak detector just in case. | Set our plugin class as non-copyable and add a leak detector just in case. | ||||
*/ | */ | ||||
@@ -17,8 +17,6 @@ | |||||
#include "CarlaNativePlugin.h" | #include "CarlaNativePlugin.h" | ||||
#include "../FX/DistrhoPluginInfo.h" | |||||
#include "DistrhoUI.hpp" | #include "DistrhoUI.hpp" | ||||
#include "DistrhoPlugin.hpp" | #include "DistrhoPlugin.hpp" | ||||
#include "PluginHostWindow.hpp" | #include "PluginHostWindow.hpp" | ||||
@@ -35,13 +33,6 @@ public: | |||||
NativeHostDescriptor fCarlaHostDescriptor; | NativeHostDescriptor fCarlaHostDescriptor; | ||||
CarlaHostHandle fCarlaHostHandle; | CarlaHostHandle fCarlaHostHandle; | ||||
UI* fUI; | |||||
void setUI(UI* const ui) | |||||
{ | |||||
fUI = ui; | |||||
} | |||||
// ... | // ... | ||||
}; | }; | ||||
@@ -71,13 +62,28 @@ class IldaeilUI : public UI, | |||||
kDrawingPluginGenericUI | kDrawingPluginGenericUI | ||||
} fDrawingState; | } fDrawingState; | ||||
struct PluginInfoCache { | |||||
char* name; | |||||
char* label; | |||||
PluginInfoCache() | |||||
: name(nullptr), | |||||
label(nullptr) {} | |||||
~PluginInfoCache() | |||||
{ | |||||
std::free(name); | |||||
std::free(label); | |||||
} | |||||
}; | |||||
IldaeilPlugin* const fPlugin; | IldaeilPlugin* const fPlugin; | ||||
PluginHostWindow fPluginHostWindow; | PluginHostWindow fPluginHostWindow; | ||||
uint fPluginCount; | uint fPluginCount; | ||||
uint fPluginSelected; | uint fPluginSelected; | ||||
bool fPluginScanningFinished; | bool fPluginScanningFinished; | ||||
CarlaCachedPluginInfo* fPlugins; | |||||
PluginInfoCache* fPlugins; | |||||
bool fPluginSearchActive; | bool fPluginSearchActive; | ||||
char fPluginSearchString[0xff]; | char fPluginSearchString[0xff]; | ||||
@@ -103,7 +109,7 @@ public: | |||||
std::strcpy(fPluginSearchString, "Search..."); | std::strcpy(fPluginSearchString, "Search..."); | ||||
fPlugin->setUI(this); | |||||
// fPlugin->setUI(this); | |||||
const double scaleFactor = getScaleFactor(); | const double scaleFactor = getScaleFactor(); | ||||
@@ -138,7 +144,7 @@ public: | |||||
stopThread(-1); | stopThread(-1); | ||||
fPlugin->fUI = nullptr; | |||||
// fPlugin->fUI = nullptr; | |||||
hidePluginUI(fPlugin->fCarlaHostHandle); | hidePluginUI(fPlugin->fCarlaHostHandle); | ||||
delete[] fPlugins; | delete[] fPlugins; | ||||
@@ -207,17 +213,32 @@ protected: | |||||
if (const uint count = carla_get_cached_plugin_count(PLUGIN_LV2, nullptr)) | if (const uint count = carla_get_cached_plugin_count(PLUGIN_LV2, nullptr)) | ||||
{ | { | ||||
fPluginCount = 0; | fPluginCount = 0; | ||||
fPlugins = new CarlaCachedPluginInfo[count]; | |||||
fPlugins = new PluginInfoCache[count]; | |||||
if (fDrawingState == kDrawingLoading) | if (fDrawingState == kDrawingLoading) | ||||
fDrawingState = kDrawingPluginList; | fDrawingState = kDrawingPluginList; | ||||
for (uint i=0; i < count && ! shouldThreadExit(); ++i) | |||||
for (uint i=0, j; i < count && ! shouldThreadExit(); ++i) | |||||
{ | { | ||||
std::memcpy(&fPlugins[i], carla_get_cached_plugin_info(PLUGIN_LV2, i), sizeof(CarlaCachedPluginInfo)); | |||||
// TODO fix leaks | |||||
fPlugins[i].name = strdup(fPlugins[i].name); | |||||
fPlugins[i].label = strdup(fPlugins[i].label); | |||||
const CarlaCachedPluginInfo* const info = carla_get_cached_plugin_info(PLUGIN_LV2, i); | |||||
DISTRHO_SAFE_ASSERT_CONTINUE(info != nullptr); | |||||
#if DISTRHO_PLUGIN_IS_SYNTH | |||||
if (info->midiIns != 1 || info->audioOuts != 2) | |||||
continue; | |||||
#elif DISTRHO_PLUGIN_WANT_MIDI_OUTPUT | |||||
if (info->midiIns != 1 || info->midiOuts != 1) | |||||
continue; | |||||
if (info->audioIns != 0 || info->audioOuts != 0) | |||||
continue; | |||||
#else | |||||
if (info->audioIns != 2 || info->audioOuts != 2) | |||||
continue; | |||||
#endif | |||||
j = fPluginCount; | |||||
fPlugins[j].name = strdup(info->name); | |||||
fPlugins[j].label = strdup(info->label); | |||||
++fPluginCount; | ++fPluginCount; | ||||
} | } | ||||
} | } | ||||
@@ -344,7 +365,7 @@ protected: | |||||
} | } | ||||
do { | do { | ||||
const CarlaCachedPluginInfo& info(fPlugins[fPluginSelected]); | |||||
const PluginInfoCache& info(fPlugins[fPluginSelected]); | |||||
const char* const slash = std::strchr(info.label, DISTRHO_OS_SEP); | const char* const slash = std::strchr(info.label, DISTRHO_OS_SEP); | ||||
DISTRHO_SAFE_ASSERT_BREAK(slash != nullptr); | DISTRHO_SAFE_ASSERT_BREAK(slash != nullptr); | ||||
@@ -362,7 +383,7 @@ protected: | |||||
fPluginCount = 0; | fPluginCount = 0; | ||||
*/ | */ | ||||
return ImGui::End(); | |||||
break; | |||||
} | } | ||||
} while (false); | } while (false); | ||||
@@ -377,7 +398,6 @@ protected: | |||||
if (ImGui::Button("Cancel")) | if (ImGui::Button("Cancel")) | ||||
{ | { | ||||
showPluginUI(handle); | showPluginUI(handle); | ||||
return ImGui::End(); | |||||
} | } | ||||
} | } | ||||
@@ -394,22 +414,7 @@ protected: | |||||
for (uint i=0; i<fPluginCount; ++i) | for (uint i=0; i<fPluginCount; ++i) | ||||
{ | { | ||||
const CarlaCachedPluginInfo& info(fPlugins[i]); | |||||
/* | |||||
#if DISTRHO_PLUGIN_IS_SYNTH | |||||
if (info.midiIns != 1 || info.audioOuts != 2) | |||||
continue; | |||||
#elif DISTRHO_PLUGIN_WANT_MIDI_OUTPUT | |||||
if (info.midiIns != 1 || info.midiOuts != 1) | |||||
continue; | |||||
if (info.audioIns != 0 || info.audioOuts != 0) | |||||
continue; | |||||
#else | |||||
if (info.audioIns != 2 || info.audioOuts != 2) | |||||
continue; | |||||
#endif | |||||
*/ | |||||
const PluginInfoCache& info(fPlugins[i]); | |||||
const char* const slash = std::strchr(info.label, DISTRHO_OS_SEP); | const char* const slash = std::strchr(info.label, DISTRHO_OS_SEP); | ||||
DISTRHO_SAFE_ASSERT_CONTINUE(slash != nullptr); | DISTRHO_SAFE_ASSERT_CONTINUE(slash != nullptr); | ||||
@@ -0,0 +1,89 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
# NOTE This file MUST be imported after setting `NAME` | |||||
# -------------------------------------------------------------- | |||||
# Files to build | |||||
FILES_DSP = \ | |||||
IldaeilPlugin.cpp | |||||
FILES_UI = \ | |||||
IldaeilUI.cpp \ | |||||
../Common/PluginHostWindow.cpp \ | |||||
../../dpf-widgets/opengl/DearImGui.cpp | |||||
# -------------------------------------------------------------- | |||||
# Carla stuff | |||||
CWD = ../../carla/source | |||||
include $(CWD)/Makefile.deps.mk | |||||
CARLA_BUILD_DIR = ../../carla/build | |||||
ifeq ($(DEBUG),true) | |||||
CARLA_BUILD_TYPE = Debug | |||||
else | |||||
CARLA_BUILD_TYPE = Release | |||||
endif | |||||
EXTRA_LIBS = $(CARLA_BUILD_DIR)/plugin/$(CARLA_BUILD_TYPE)/carla-host-plugin.cpp.o | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/carla_engine_plugin.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/carla_plugin.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/native-plugins.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/audio_decoder.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/jackbridge.min.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/lilv.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/rtmempool.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/sfzero.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/water.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a | |||||
ifeq ($(USING_JUCE),true) | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_basics.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_processors.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_core.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_data_structures.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_events.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_graphics.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_basics.a | |||||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_extra.a | |||||
endif | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Do some more magic | |||||
include ../../dpf/Makefile.plugins.mk | |||||
BUILD_CXX_FLAGS += -pthread | |||||
BUILD_CXX_FLAGS += -I../Common | |||||
BUILD_CXX_FLAGS += -I../../dpf-widgets/generic | |||||
BUILD_CXX_FLAGS += -I../../dpf-widgets/opengl | |||||
BUILD_CXX_FLAGS += -DREAL_BUILD | |||||
BUILD_CXX_FLAGS += -I../../carla/source/backend | |||||
BUILD_CXX_FLAGS += -I../../carla/source/includes | |||||
LINK_FLAGS += $(STATIC_CARLA_PLUGIN_LIBS) | |||||
ifeq ($(MACOS),true) | |||||
$(BUILD_DIR)/../Common/PluginHostWindow.cpp.o: BUILD_CXX_FLAGS += -ObjC++ | |||||
$(BUILD_DIR)/../Common/SizeUtils.cpp.o: BUILD_CXX_FLAGS += -ObjC++ | |||||
endif | |||||
# TODO Find if carla is installed system-wide and use its binaries (assumed yes for now) | |||||
# Otherwise we need to ship the bridge binaries ourselves, this is not done yet | |||||
# BUILD_CXX_FLAGS += $(shell pkg-config --cflags carla-host-plugin carla-native-plugin carla-utils) | |||||
# LINK_FLAGS += $(shell pkg-config --libs carla-host-plugin carla-native-plugin carla-utils) | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
all: jack lv2 vst2 vst3 | |||||
# -------------------------------------------------------------- |
@@ -29,8 +29,8 @@ | |||||
#define DISTRHO_PLUGIN_WANT_LATENCY 1 | #define DISTRHO_PLUGIN_WANT_LATENCY 1 | ||||
#define DISTRHO_PLUGIN_WANT_MIDI_INPUT 0 | #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 0 | ||||
#define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 0 | #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 0 | ||||
#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | |||||
#define DISTRHO_PLUGIN_WANT_TIMEPOS 1 | #define DISTRHO_PLUGIN_WANT_TIMEPOS 1 | ||||
#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | |||||
#define DISTRHO_UI_USE_CUSTOM 1 | #define DISTRHO_UI_USE_CUSTOM 1 | ||||
#define DISTRHO_UI_USER_RESIZABLE 0 | #define DISTRHO_UI_USER_RESIZABLE 0 | ||||
#define DISTRHO_UI_CUSTOM_INCLUDE_PATH "DearImGui.hpp" | #define DISTRHO_UI_CUSTOM_INCLUDE_PATH "DearImGui.hpp" | ||||
@@ -9,88 +9,7 @@ | |||||
NAME = Ildaeil-FX | NAME = Ildaeil-FX | ||||
# -------------------------------------------------------------- | |||||
# Files to build | |||||
FILES_DSP = \ | |||||
IldaeilPlugin.cpp | |||||
FILES_UI = \ | |||||
IldaeilUI.cpp \ | |||||
../Common/PluginHostWindow.cpp \ | |||||
../../dpf-widgets/opengl/DearImGui.cpp | |||||
# -------------------------------------------------------------- | |||||
# Carla stuff | |||||
CARLA_BUILD_DIR = ../../carla/build | |||||
ifeq ($(DEBUG),true) | |||||
CARLA_BUILD_TYPE = Debug | |||||
else | |||||
CARLA_BUILD_TYPE = Release | |||||
endif | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/plugin/$(CARLA_BUILD_TYPE)/carla-host-plugin.cpp.o | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/carla_engine_plugin.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/carla_plugin.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/native-plugins.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/audio_decoder.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/jackbridge.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/lilv.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/rtmempool.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/sfzero.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/water.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_basics.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_processors.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_core.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_data_structures.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_events.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_graphics.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_basics.a | |||||
EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_extra.a | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Do some magic | # Do some magic | ||||
include ../../dpf/Makefile.plugins.mk | |||||
BUILD_CXX_FLAGS += -pthread | |||||
BUILD_CXX_FLAGS += -I../Common | |||||
BUILD_CXX_FLAGS += -I../../dpf-widgets/generic | |||||
BUILD_CXX_FLAGS += -I../../dpf-widgets/opengl | |||||
BUILD_CXX_FLAGS += -DREAL_BUILD | |||||
BUILD_CXX_FLAGS += -I../../carla/source/backend | |||||
BUILD_CXX_FLAGS += -I../../carla/source/includes | |||||
ifeq ($(MACOS),true) | |||||
$(BUILD_DIR)/../Common/PluginHostWindow.cpp.o: BUILD_CXX_FLAGS += -ObjC++ | |||||
$(BUILD_DIR)/../Common/SizeUtils.cpp.o: BUILD_CXX_FLAGS += -ObjC++ | |||||
LINK_FLAGS += -framework AppKit | |||||
LINK_FLAGS += -framework Accelerate | |||||
LINK_FLAGS += -framework AudioToolbox | |||||
LINK_FLAGS += -framework CoreFoundation | |||||
LINK_FLAGS += -framework AppKit | |||||
LINK_FLAGS += -framework AudioUnit | |||||
LINK_FLAGS += -framework CoreAudio | |||||
LINK_FLAGS += -framework CoreAudioKit | |||||
LINK_FLAGS += -framework Carbon | |||||
LINK_FLAGS += -framework QuartzCore | |||||
LINK_FLAGS += -framework IOKit | |||||
else ifeq ($(WIN32),true) | |||||
else ifeq ($(LINUX),true) | |||||
LINK_FLAGS += $(shell pkg-config --libs fluidsynth freetype2) | |||||
LINK_FLAGS += -ldl -lrt | |||||
LINK_FLAGS += -lmagic | |||||
endif | |||||
# BUILD_CXX_FLAGS += $(shell pkg-config --cflags carla-host-plugin carla-native-plugin carla-utils) | |||||
# LINK_FLAGS += $(shell pkg-config --libs carla-host-plugin carla-native-plugin carla-utils) | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
all: jack lv2 vst2 vst3 | |||||
# -------------------------------------------------------------- | |||||
include ../Common/Makefile.mk |
@@ -33,7 +33,7 @@ | |||||
#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | ||||
#define DISTRHO_UI_USE_CUSTOM 1 | #define DISTRHO_UI_USE_CUSTOM 1 | ||||
#define DISTRHO_UI_USER_RESIZABLE 0 | #define DISTRHO_UI_USER_RESIZABLE 0 | ||||
#define DISTRHO_UI_CUSTOM_INCLUDE_PATH "ImGuiUI.hpp" | |||||
#define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiUI | |||||
#define DISTRHO_UI_CUSTOM_INCLUDE_PATH "DearImGui.hpp" | |||||
#define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiTopLevelWidget | |||||
#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED |
@@ -7,25 +7,9 @@ | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Project name, used for binaries | # Project name, used for binaries | ||||
NAME = Ildaeil-FX | |||||
# -------------------------------------------------------------- | |||||
# Files to build (DPF stuff) | |||||
FILES_DSP = \ | |||||
IldaeilPlugin.cpp | |||||
FILES_UI = \ | |||||
IldaeilUI.cpp | |||||
NAME = Ildaeil-MIDI | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Do some magic | # Do some magic | ||||
include ../../dpf/Makefile.plugins.mk | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
all: jack lv2 vst2 vst3 | |||||
# -------------------------------------------------------------- | |||||
include ../Common/Makefile.mk |
@@ -33,7 +33,7 @@ | |||||
#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | ||||
#define DISTRHO_UI_USE_CUSTOM 1 | #define DISTRHO_UI_USE_CUSTOM 1 | ||||
#define DISTRHO_UI_USER_RESIZABLE 0 | #define DISTRHO_UI_USER_RESIZABLE 0 | ||||
#define DISTRHO_UI_CUSTOM_INCLUDE_PATH "ImGuiUI.hpp" | |||||
#define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiUI | |||||
#define DISTRHO_UI_CUSTOM_INCLUDE_PATH "DearImGui.hpp" | |||||
#define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiTopLevelWidget | |||||
#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED |
@@ -7,25 +7,9 @@ | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Project name, used for binaries | # Project name, used for binaries | ||||
NAME = Ildaeil-FX | |||||
# -------------------------------------------------------------- | |||||
# Files to build (DPF stuff) | |||||
FILES_DSP = \ | |||||
IldaeilPlugin.cpp | |||||
FILES_UI = \ | |||||
IldaeilUI.cpp | |||||
NAME = Ildaeil-Synth | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Do some magic | # Do some magic | ||||
include ../../dpf/Makefile.plugins.mk | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
all: jack lv2 vst2 vst3 | |||||
# -------------------------------------------------------------- | |||||
include ../Common/Makefile.mk |