| @@ -0,0 +1,6 @@ | |||||
| [submodule "dpf"] | |||||
| path = dpf | |||||
| url = https://github.com/DISTRHO/DPF.git | |||||
| [submodule "dpf-widgets"] | |||||
| path = dpf-widgets | |||||
| url = https://github.com/DISTRHO/DPF-Widgets.git | |||||
| @@ -0,0 +1,42 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| include dpf/Makefile.base.mk | |||||
| all: dgl plugins gen | |||||
| # -------------------------------------------------------------- | |||||
| dgl: | |||||
| $(MAKE) -C dpf/dgl opengl | |||||
| plugins: dgl | |||||
| $(MAKE) all -C plugins/FX | |||||
| ifneq ($(CROSS_COMPILING),true) | |||||
| gen: plugins dpf/utils/lv2_ttl_generator | |||||
| @$(CURDIR)/dpf/utils/generate-ttl.sh | |||||
| ifeq ($(MACOS),true) | |||||
| @$(CURDIR)/dpf/utils/generate-vst-bundles.sh | |||||
| endif | |||||
| dpf/utils/lv2_ttl_generator: | |||||
| $(MAKE) -C dpf/utils/lv2-ttl-generator | |||||
| else | |||||
| gen: | |||||
| endif | |||||
| # -------------------------------------------------------------- | |||||
| clean: | |||||
| $(MAKE) clean -C dpf/dgl | |||||
| $(MAKE) clean -C dpf/utils/lv2-ttl-generator | |||||
| $(MAKE) clean -C plugins/FX | |||||
| rm -rf bin build | |||||
| # -------------------------------------------------------------- | |||||
| .PHONY: plugins | |||||
| @@ -0,0 +1,29 @@ | |||||
| # DISTRHO Ildaeil | |||||
| DISTRHO Ildaeil is mini-plugin host working as a plugin, allowing one-to-one plugin format reusage. | |||||
| Load a VST2 plugin inside a LV2 host, or an LV2 plugin on a VST3 host, etc. | |||||
| The current formats Ildaeil can work as are: | |||||
| - JACK/Standalone | |||||
| - LV2 | |||||
| - VST2 | |||||
| - VST3 | |||||
| And it can load the following plugin formats: | |||||
| - JACK (applications as plugins, Linux only) | |||||
| - LADSPA | |||||
| - DSSI | |||||
| - LV2 | |||||
| - VST2 | |||||
| - VST3 | |||||
| - AU (macOS only) | |||||
| Additionally the following files can be loaded: | |||||
| - Audio files (synced to host transport) | |||||
| - MIDI files (aligned to real/wall-clock time, synced to host transport) | |||||
| - SF2/3 files (through internal FluidSynth) | |||||
| - SFZ files (through internal SFZero) | |||||
| Ildaeil basically works as a mini-wrapper around Carla, leveraging it for all its host support. | |||||
| The name comes from the korean 일대일, which means "one to one". | |||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit 1c19c75b8f2b4a83741c4c92e486c1fde873050e | |||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit f5201d362bfa767a55139af85e9c1d9f02cfedcb | |||||
| @@ -0,0 +1,146 @@ | |||||
| /* | |||||
| * DISTRHO Ildaeil Plugin | |||||
| * Copyright (C) 2021 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 | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #include "DistrhoPlugin.hpp" | |||||
| START_NAMESPACE_DISTRHO | |||||
| // ----------------------------------------------------------------------------------------------------------- | |||||
| class IldaeilPlugin : public Plugin | |||||
| { | |||||
| public: | |||||
| IldaeilPlugin() | |||||
| : Plugin(0, 0, 0) | |||||
| { | |||||
| } | |||||
| ~IldaeilPlugin() override | |||||
| { | |||||
| } | |||||
| protected: | |||||
| /* -------------------------------------------------------------------------------------------------------- | |||||
| * Information */ | |||||
| /** | |||||
| Get the plugin label. | |||||
| A plugin label follows the same rules as Parameter::symbol, with the exception that it can start with numbers. | |||||
| */ | |||||
| const char* getLabel() const override | |||||
| { | |||||
| return "Ildaeil"; | |||||
| } | |||||
| /** | |||||
| Get an extensive comment/description about the plugin. | |||||
| */ | |||||
| const char* getDescription() const override | |||||
| { | |||||
| return "..."; | |||||
| } | |||||
| /** | |||||
| Get the plugin author/maker. | |||||
| */ | |||||
| const char* getMaker() const override | |||||
| { | |||||
| return "DISTRHO"; | |||||
| } | |||||
| /** | |||||
| Get the plugin homepage. | |||||
| */ | |||||
| const char* getHomePage() const override | |||||
| { | |||||
| return "https://github.com/DISTRHO/Ildaeil"; | |||||
| } | |||||
| /** | |||||
| Get the plugin license name (a single line of text). | |||||
| For commercial plugins this should return some short copyright information. | |||||
| */ | |||||
| const char* getLicense() const override | |||||
| { | |||||
| return "ISC"; | |||||
| } | |||||
| /** | |||||
| Get the plugin version, in hexadecimal. | |||||
| */ | |||||
| uint32_t getVersion() const override | |||||
| { | |||||
| return d_version(1, 0, 0); | |||||
| } | |||||
| /** | |||||
| Get the plugin unique Id. | |||||
| This value is used by LADSPA, DSSI and VST plugin formats. | |||||
| */ | |||||
| int64_t getUniqueId() const override | |||||
| { | |||||
| #if DISTRHO_PLUGIN_IS_SYNTH | |||||
| return d_cconst('d', 'I', 'l', 'S'); | |||||
| #elif DISTRHO_PLUGIN_WANT_MIDI_OUTPUT | |||||
| return d_cconst('d', 'I', 'l', 'M'); | |||||
| #else | |||||
| return d_cconst('d', 'I', 'l', 'F'); | |||||
| #endif | |||||
| } | |||||
| /* -------------------------------------------------------------------------------------------------------- | |||||
| * Init */ | |||||
| /* -------------------------------------------------------------------------------------------------------- | |||||
| * Internal data */ | |||||
| /* -------------------------------------------------------------------------------------------------------- | |||||
| * Process */ | |||||
| /** | |||||
| Run/process function for plugins without MIDI input. | |||||
| */ | |||||
| void run(const float** inputs, float** outputs, uint32_t frames) override | |||||
| { | |||||
| // copy inputs over outputs if needed | |||||
| if (outputs[0] != inputs[0]) | |||||
| std::memcpy(outputs[0], inputs[0], sizeof(float)*frames); | |||||
| if (outputs[1] != inputs[1]) | |||||
| std::memcpy(outputs[1], inputs[1], sizeof(float)*frames); | |||||
| } | |||||
| // ------------------------------------------------------------------------------------------------------- | |||||
| private: | |||||
| /** | |||||
| Set our plugin class as non-copyable and add a leak detector just in case. | |||||
| */ | |||||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(IldaeilPlugin) | |||||
| }; | |||||
| /* ------------------------------------------------------------------------------------------------------------ | |||||
| * Plugin entry point, called by DPF to create a new plugin instance. */ | |||||
| Plugin* createPlugin() | |||||
| { | |||||
| return new IldaeilPlugin(); | |||||
| } | |||||
| // ----------------------------------------------------------------------------------------------------------- | |||||
| END_NAMESPACE_DISTRHO | |||||
| @@ -0,0 +1,93 @@ | |||||
| /* | |||||
| * DISTRHO Ildaeil Plugin | |||||
| * Copyright (C) 2021 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 | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #include "DistrhoUI.hpp" | |||||
| #include "ResizeHandle.hpp" | |||||
| START_NAMESPACE_DISTRHO | |||||
| // ----------------------------------------------------------------------------------------------------------- | |||||
| class IldaeilUI : public UI | |||||
| { | |||||
| void* fContext; | |||||
| ResizeHandle fResizeHandle; | |||||
| public: | |||||
| IldaeilUI() | |||||
| : UI(1280, 720), | |||||
| fContext(getPluginInstancePointer()), | |||||
| fResizeHandle(this) | |||||
| { | |||||
| } | |||||
| ~IldaeilUI() override | |||||
| { | |||||
| } | |||||
| void onImGuiDisplay() override | |||||
| { | |||||
| float width = getWidth(); | |||||
| float height = getHeight(); | |||||
| float margin = 20.0f; | |||||
| ImGui::SetNextWindowPos(ImVec2(margin, margin)); | |||||
| ImGui::SetNextWindowSize(ImVec2(width - 2 * margin, height - 2 * margin)); | |||||
| if (ImGui::Begin("Plugin List")) | |||||
| { | |||||
| } | |||||
| ImGui::End(); | |||||
| } | |||||
| void uiIdle() override | |||||
| { | |||||
| } | |||||
| protected: | |||||
| /* -------------------------------------------------------------------------------------------------------- | |||||
| * DSP/Plugin Callbacks */ | |||||
| /** | |||||
| A parameter has changed on the plugin side. | |||||
| This is called by the host to inform the UI about parameter changes. | |||||
| */ | |||||
| void parameterChanged(uint32_t index, float value) override | |||||
| { | |||||
| } | |||||
| // ------------------------------------------------------------------------------------------------------- | |||||
| private: | |||||
| /** | |||||
| Set our UI class as non-copyable and add a leak detector just in case. | |||||
| */ | |||||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(IldaeilUI) | |||||
| }; | |||||
| /* ------------------------------------------------------------------------------------------------------------ | |||||
| * UI entry point, called by DPF to create a new UI instance. */ | |||||
| UI* createUI() | |||||
| { | |||||
| return new IldaeilUI(); | |||||
| } | |||||
| // ----------------------------------------------------------------------------------------------------------- | |||||
| END_NAMESPACE_DISTRHO | |||||
| @@ -0,0 +1,185 @@ | |||||
| /* | |||||
| * Resize handle for DPF | |||||
| * Copyright (C) 2021 Filipe Coelho <falktx@falktx.com> | |||||
| * | |||||
| * Permission to use, copy, modify, and/or distribute this software for any purpose with | |||||
| * or without fee is hereby granted, provided that the above copyright notice and this | |||||
| * permission notice appear in all copies. | |||||
| * | |||||
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | |||||
| * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | |||||
| * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||||
| * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |||||
| * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |||||
| * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
| */ | |||||
| #pragma once | |||||
| #include "TopLevelWidget.hpp" | |||||
| #include "../dgl/Color.hpp" | |||||
| START_NAMESPACE_DGL | |||||
| /** Resize handle for DPF windows, will sit on bottom-right. */ | |||||
| class ResizeHandle : public TopLevelWidget | |||||
| { | |||||
| public: | |||||
| /** Constructor for placing this handle on top of a window. */ | |||||
| explicit ResizeHandle(Window& window) | |||||
| : TopLevelWidget(window), | |||||
| handleSize(16), | |||||
| resizing(false) | |||||
| { | |||||
| resetArea(); | |||||
| } | |||||
| /** Overloaded constructor, will fetch the window from an existing top-level widget. */ | |||||
| explicit ResizeHandle(TopLevelWidget* const tlw) | |||||
| : TopLevelWidget(tlw->getWindow()), | |||||
| handleSize(16), | |||||
| resizing(false) | |||||
| { | |||||
| resetArea(); | |||||
| } | |||||
| /** Set the handle size, minimum 16. */ | |||||
| void setHandleSize(const uint size) | |||||
| { | |||||
| handleSize = std::max(16u, size); | |||||
| resetArea(); | |||||
| } | |||||
| protected: | |||||
| void onDisplay() override | |||||
| { | |||||
| const GraphicsContext& context(getGraphicsContext()); | |||||
| const double lineWidth = 1.0 * getScaleFactor(); | |||||
| #ifdef DGL_OPENGL | |||||
| // glUseProgram(0); | |||||
| glMatrixMode(GL_MODELVIEW); | |||||
| #endif | |||||
| // draw white lines, 1px wide | |||||
| Color(1.0f, 1.0f, 1.0f).setFor(context); | |||||
| l1.draw(context, lineWidth); | |||||
| l2.draw(context, lineWidth); | |||||
| l3.draw(context, lineWidth); | |||||
| // draw black lines, offset by 1px and 1px wide | |||||
| Color(0.0f, 0.0f, 0.0f).setFor(context); | |||||
| Line<double> l1b(l1), l2b(l2), l3b(l3); | |||||
| l1b.moveBy(lineWidth, lineWidth); | |||||
| l2b.moveBy(lineWidth, lineWidth); | |||||
| l3b.moveBy(lineWidth, lineWidth); | |||||
| l1b.draw(context, lineWidth); | |||||
| l2b.draw(context, lineWidth); | |||||
| l3b.draw(context, lineWidth); | |||||
| } | |||||
| bool onMouse(const MouseEvent& ev) override | |||||
| { | |||||
| if (ev.button != 1) | |||||
| return false; | |||||
| if (ev.press && area.contains(ev.pos)) | |||||
| { | |||||
| resizing = true; | |||||
| resizingSize = Size<double>(getWidth(), getHeight()); | |||||
| lastResizePoint = ev.pos; | |||||
| return true; | |||||
| } | |||||
| if (resizing && ! ev.press) | |||||
| { | |||||
| resizing = false; | |||||
| return true; | |||||
| } | |||||
| return false; | |||||
| } | |||||
| bool onMotion(const MotionEvent& ev) override | |||||
| { | |||||
| if (! resizing) | |||||
| return false; | |||||
| const Size<double> offset(ev.pos.getX() - lastResizePoint.getX(), | |||||
| ev.pos.getY() - lastResizePoint.getY()); | |||||
| resizingSize += offset; | |||||
| lastResizePoint = ev.pos; | |||||
| // TODO min width, min height | |||||
| const uint minWidth = 16; | |||||
| const uint minHeight = 16; | |||||
| if (resizingSize.getWidth() < minWidth) | |||||
| resizingSize.setWidth(minWidth); | |||||
| if (resizingSize.getWidth() > 16384) | |||||
| resizingSize.setWidth(16384); | |||||
| if (resizingSize.getHeight() < minHeight) | |||||
| resizingSize.setHeight(minHeight); | |||||
| if (resizingSize.getHeight() > 16384) | |||||
| resizingSize.setHeight(16384); | |||||
| setSize(resizingSize.getWidth(), resizingSize.getHeight()); | |||||
| return true; | |||||
| } | |||||
| void onResize(const ResizeEvent& ev) override | |||||
| { | |||||
| TopLevelWidget::onResize(ev); | |||||
| resetArea(); | |||||
| } | |||||
| private: | |||||
| Rectangle<uint> area; | |||||
| Line<double> l1, l2, l3; | |||||
| uint handleSize; | |||||
| // event handling state | |||||
| bool resizing; | |||||
| Point<double> lastResizePoint; | |||||
| Size<double> resizingSize; | |||||
| void resetArea() | |||||
| { | |||||
| const double scaleFactor = getScaleFactor(); | |||||
| const uint margin = 0.0 * scaleFactor; | |||||
| const uint size = handleSize * scaleFactor; | |||||
| area = Rectangle<uint>(getWidth() - size - margin, | |||||
| getHeight() - size - margin, | |||||
| size, size); | |||||
| recreateLines(area.getX(), area.getY(), size); | |||||
| } | |||||
| void recreateLines(const uint x, const uint y, const uint size) | |||||
| { | |||||
| uint linesize = size; | |||||
| uint offset = 0; | |||||
| // 1st line, full diagonal size | |||||
| l1.setStartPos(x + size, y); | |||||
| l1.setEndPos(x, y + size); | |||||
| // 2nd line, bit more to the right and down, cropped | |||||
| offset += size / 3; | |||||
| linesize -= size / 3; | |||||
| l2.setStartPos(x + linesize + offset, y + offset); | |||||
| l2.setEndPos(x + offset, y + linesize + offset); | |||||
| // 3rd line, even more right and down | |||||
| offset += size / 3; | |||||
| linesize -= size / 3; | |||||
| l3.setStartPos(x + linesize + offset, y + offset); | |||||
| l3.setEndPos(x + offset, y + linesize + offset); | |||||
| } | |||||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ResizeHandle) | |||||
| }; | |||||
| END_NAMESPACE_DGL | |||||
| @@ -0,0 +1,39 @@ | |||||
| /* | |||||
| * DISTRHO Ildaeil Plugin | |||||
| * Copyright (C) 2021 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 | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define DISTRHO_PLUGIN_BRAND "DISTRHO" | |||||
| #define DISTRHO_PLUGIN_NAME "Ildaeil-FX" | |||||
| #define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/ildaeil#fx" | |||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | |||||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||||
| #define DISTRHO_PLUGIN_NUM_INPUTS 2 | |||||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS 2 | |||||
| #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_DIRECT_ACCESS 1 | |||||
| #define DISTRHO_UI_USE_CUSTOM 1 | |||||
| #define DISTRHO_UI_USER_RESIZABLE 0 | |||||
| #define DISTRHO_UI_CUSTOM_INCLUDE_PATH "DearImGui.hpp" | |||||
| #define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiTopLevelWidget | |||||
| #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| @@ -0,0 +1 @@ | |||||
| ../Common/IldaeilPlugin.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../Common/IldaeilUI.cpp | |||||
| @@ -0,0 +1,35 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| # -------------------------------------------------------------- | |||||
| # Project name, used for binaries | |||||
| NAME = Ildaeil-FX | |||||
| # -------------------------------------------------------------- | |||||
| # Files to build (DPF stuff) | |||||
| FILES_DSP = \ | |||||
| IldaeilPlugin.cpp | |||||
| FILES_UI = \ | |||||
| IldaeilUI.cpp \ | |||||
| ../../dpf-widgets/opengl/DearImGui.cpp | |||||
| # -------------------------------------------------------------- | |||||
| # Do some magic | |||||
| include ../../dpf/Makefile.plugins.mk | |||||
| BUILD_CXX_FLAGS += -I../Common | |||||
| BUILD_CXX_FLAGS += -I../../dpf-widgets/opengl | |||||
| # -------------------------------------------------------------- | |||||
| # Enable all possible plugin types | |||||
| all: jack lv2 vst2 vst3 | |||||
| # -------------------------------------------------------------- | |||||
| @@ -0,0 +1,39 @@ | |||||
| /* | |||||
| * DISTRHO Ildaeil Plugin | |||||
| * Copyright (C) 2021 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 | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define DISTRHO_PLUGIN_BRAND "DISTRHO" | |||||
| #define DISTRHO_PLUGIN_NAME "Ildaeil-MIDI" | |||||
| #define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/ildaeil#midi" | |||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | |||||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||||
| #define DISTRHO_PLUGIN_NUM_INPUTS 0 | |||||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS 0 | |||||
| #define DISTRHO_PLUGIN_WANT_LATENCY 1 | |||||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||||
| #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 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 "ImGuiUI.hpp" | |||||
| #define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiUI | |||||
| #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| @@ -0,0 +1 @@ | |||||
| ../Common/IldaeilPlugin.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../Common/IldaeilUI.cpp | |||||
| @@ -0,0 +1,31 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| # -------------------------------------------------------------- | |||||
| # Project name, used for binaries | |||||
| NAME = Ildaeil-FX | |||||
| # -------------------------------------------------------------- | |||||
| # Files to build (DPF stuff) | |||||
| FILES_DSP = \ | |||||
| IldaeilPlugin.cpp | |||||
| FILES_UI = \ | |||||
| IldaeilUI.cpp | |||||
| # -------------------------------------------------------------- | |||||
| # Do some magic | |||||
| include ../../dpf/Makefile.plugins.mk | |||||
| # -------------------------------------------------------------- | |||||
| # Enable all possible plugin types | |||||
| all: jack lv2 vst2 vst3 | |||||
| # -------------------------------------------------------------- | |||||
| @@ -0,0 +1,39 @@ | |||||
| /* | |||||
| * DISTRHO Ildaeil Plugin | |||||
| * Copyright (C) 2021 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 | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define DISTRHO_PLUGIN_BRAND "DISTRHO" | |||||
| #define DISTRHO_PLUGIN_NAME "Ildaeil-Synth" | |||||
| #define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/ildaeil#synth" | |||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | |||||
| #define DISTRHO_PLUGIN_IS_SYNTH 1 | |||||
| #define DISTRHO_PLUGIN_NUM_INPUTS 0 | |||||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS 2 | |||||
| #define DISTRHO_PLUGIN_WANT_LATENCY 1 | |||||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 0 | |||||
| #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 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 "ImGuiUI.hpp" | |||||
| #define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiUI | |||||
| #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| @@ -0,0 +1 @@ | |||||
| ../Common/IldaeilPlugin.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../Common/IldaeilUI.cpp | |||||
| @@ -0,0 +1,31 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| # -------------------------------------------------------------- | |||||
| # Project name, used for binaries | |||||
| NAME = Ildaeil-FX | |||||
| # -------------------------------------------------------------- | |||||
| # Files to build (DPF stuff) | |||||
| FILES_DSP = \ | |||||
| IldaeilPlugin.cpp | |||||
| FILES_UI = \ | |||||
| IldaeilUI.cpp | |||||
| # -------------------------------------------------------------- | |||||
| # Do some magic | |||||
| include ../../dpf/Makefile.plugins.mk | |||||
| # -------------------------------------------------------------- | |||||
| # Enable all possible plugin types | |||||
| all: jack lv2 vst2 vst3 | |||||
| # -------------------------------------------------------------- | |||||