@@ -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 | |||||
# -------------------------------------------------------------- |