| @@ -12,6 +12,7 @@ all: carla dgl plugins gen | |||
| carla: | |||
| $(MAKE) -C carla plugin \ | |||
| CAN_GENERATE_LV2_TTL=false \ | |||
| HAVE_ALSA=false \ | |||
| HAVE_DGL=false \ | |||
| HAVE_HYLIA=false \ | |||
| @@ -23,13 +24,15 @@ carla: | |||
| HAVE_QT5PKG=false \ | |||
| HAVE_PULSEAUDIO=false \ | |||
| USING_JUCE_AUDIO_DEVICES=false \ | |||
| CAN_GENERATE_LV2_TTL=false | |||
| USING_RTAUDIO=false | |||
| dgl: | |||
| $(MAKE) -C dpf/dgl opengl | |||
| plugins: carla dgl | |||
| $(MAKE) all -C plugins/FX | |||
| $(MAKE) all -C plugins/MIDI | |||
| $(MAKE) all -C plugins/Synth | |||
| ifneq ($(CROSS_COMPILING),true) | |||
| gen: plugins dpf/utils/lv2_ttl_generator | |||
| @@ -51,7 +54,11 @@ clean: | |||
| $(MAKE) clean -C dpf/dgl | |||
| $(MAKE) clean -C dpf/utils/lv2-ttl-generator | |||
| $(MAKE) clean -C plugins/FX | |||
| $(MAKE) clean -C plugins/MIDI | |||
| $(MAKE) clean -C plugins/Synth | |||
| 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 "DistrhoPlugin.hpp" | |||
| #include "DistrhoUI.hpp" | |||
| START_NAMESPACE_DISTRHO | |||
| @@ -44,20 +43,28 @@ public: | |||
| NativeHostDescriptor fCarlaHostDescriptor; | |||
| 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() | |||
| : Plugin(0, 0, 0), | |||
| fCarlaPluginDescriptor(nullptr), | |||
| fCarlaPluginHandle(nullptr), | |||
| fCarlaHostHandle(nullptr), | |||
| #if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||
| fMidiEvents(nullptr), | |||
| fMidiEventCount(0), | |||
| fDummyBuffer(nullptr), | |||
| #endif | |||
| fUI(nullptr) | |||
| { | |||
| fCarlaPluginDescriptor = carla_get_native_rack_plugin(); | |||
| @@ -89,9 +96,17 @@ public: | |||
| DISTRHO_SAFE_ASSERT_RETURN(fCarlaPluginHandle != nullptr,); | |||
| 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_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 | |||
| @@ -99,6 +114,10 @@ public: | |||
| if (fCarlaHostHandle != nullptr) | |||
| { | |||
| carla_host_handle_free(fCarlaHostHandle); | |||
| #if DISTRHO_PLUGIN_WANT_MIDI_INPUT | |||
| delete[] fMidiEvents; | |||
| delete[] fDummyBuffer; | |||
| #endif | |||
| } | |||
| if (fCarlaPluginHandle != nullptr) | |||
| @@ -146,8 +165,8 @@ public: | |||
| { | |||
| 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: | |||
| @@ -246,11 +265,47 @@ protected: | |||
| 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 | |||
| #endif | |||
| { | |||
| 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); | |||
| #endif | |||
| } | |||
| 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. | |||
| */ | |||
| @@ -17,8 +17,6 @@ | |||
| #include "CarlaNativePlugin.h" | |||
| #include "../FX/DistrhoPluginInfo.h" | |||
| #include "DistrhoUI.hpp" | |||
| #include "DistrhoPlugin.hpp" | |||
| #include "PluginHostWindow.hpp" | |||
| @@ -35,13 +33,6 @@ public: | |||
| NativeHostDescriptor fCarlaHostDescriptor; | |||
| CarlaHostHandle fCarlaHostHandle; | |||
| UI* fUI; | |||
| void setUI(UI* const ui) | |||
| { | |||
| fUI = ui; | |||
| } | |||
| // ... | |||
| }; | |||
| @@ -71,13 +62,28 @@ class IldaeilUI : public UI, | |||
| kDrawingPluginGenericUI | |||
| } fDrawingState; | |||
| struct PluginInfoCache { | |||
| char* name; | |||
| char* label; | |||
| PluginInfoCache() | |||
| : name(nullptr), | |||
| label(nullptr) {} | |||
| ~PluginInfoCache() | |||
| { | |||
| std::free(name); | |||
| std::free(label); | |||
| } | |||
| }; | |||
| IldaeilPlugin* const fPlugin; | |||
| PluginHostWindow fPluginHostWindow; | |||
| uint fPluginCount; | |||
| uint fPluginSelected; | |||
| bool fPluginScanningFinished; | |||
| CarlaCachedPluginInfo* fPlugins; | |||
| PluginInfoCache* fPlugins; | |||
| bool fPluginSearchActive; | |||
| char fPluginSearchString[0xff]; | |||
| @@ -103,7 +109,7 @@ public: | |||
| std::strcpy(fPluginSearchString, "Search..."); | |||
| fPlugin->setUI(this); | |||
| // fPlugin->setUI(this); | |||
| const double scaleFactor = getScaleFactor(); | |||
| @@ -138,7 +144,7 @@ public: | |||
| stopThread(-1); | |||
| fPlugin->fUI = nullptr; | |||
| // fPlugin->fUI = nullptr; | |||
| hidePluginUI(fPlugin->fCarlaHostHandle); | |||
| delete[] fPlugins; | |||
| @@ -207,17 +213,32 @@ protected: | |||
| if (const uint count = carla_get_cached_plugin_count(PLUGIN_LV2, nullptr)) | |||
| { | |||
| fPluginCount = 0; | |||
| fPlugins = new CarlaCachedPluginInfo[count]; | |||
| fPlugins = new PluginInfoCache[count]; | |||
| if (fDrawingState == kDrawingLoading) | |||
| 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; | |||
| } | |||
| } | |||
| @@ -344,7 +365,7 @@ protected: | |||
| } | |||
| do { | |||
| const CarlaCachedPluginInfo& info(fPlugins[fPluginSelected]); | |||
| const PluginInfoCache& info(fPlugins[fPluginSelected]); | |||
| const char* const slash = std::strchr(info.label, DISTRHO_OS_SEP); | |||
| DISTRHO_SAFE_ASSERT_BREAK(slash != nullptr); | |||
| @@ -362,7 +383,7 @@ protected: | |||
| fPluginCount = 0; | |||
| */ | |||
| return ImGui::End(); | |||
| break; | |||
| } | |||
| } while (false); | |||
| @@ -377,7 +398,6 @@ protected: | |||
| if (ImGui::Button("Cancel")) | |||
| { | |||
| showPluginUI(handle); | |||
| return ImGui::End(); | |||
| } | |||
| } | |||
| @@ -394,22 +414,7 @@ protected: | |||
| 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); | |||
| 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_MIDI_INPUT 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_DIRECT_ACCESS 1 | |||
| #define DISTRHO_UI_USE_CUSTOM 1 | |||
| #define DISTRHO_UI_USER_RESIZABLE 0 | |||
| #define DISTRHO_UI_CUSTOM_INCLUDE_PATH "DearImGui.hpp" | |||
| @@ -9,88 +9,7 @@ | |||
| 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 | |||
| 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_UI_USE_CUSTOM 1 | |||
| #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 | |||
| @@ -7,25 +7,9 @@ | |||
| # -------------------------------------------------------------- | |||
| # 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 | |||
| 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_UI_USE_CUSTOM 1 | |||
| #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 | |||
| @@ -7,25 +7,9 @@ | |||
| # -------------------------------------------------------------- | |||
| # 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 | |||
| include ../../dpf/Makefile.plugins.mk | |||
| # -------------------------------------------------------------- | |||
| # Enable all possible plugin types | |||
| all: jack lv2 vst2 vst3 | |||
| # -------------------------------------------------------------- | |||
| include ../Common/Makefile.mk | |||