From 18fa6249d85d7cc81762f2b83c433ee6a7e193bb Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 2 Jun 2022 01:25:50 +0100 Subject: [PATCH] Remove imgui gain plugin example Signed-off-by: falkTX --- examples/ImGuiSimpleGain/CParamSmooth.hpp | 45 ------ examples/ImGuiSimpleGain/DistrhoPluginInfo.h | 145 ------------------ examples/ImGuiSimpleGain/Makefile | 41 ----- examples/ImGuiSimpleGain/PluginSimpleGain.cpp | 130 ---------------- examples/ImGuiSimpleGain/PluginSimpleGain.hpp | 135 ---------------- examples/ImGuiSimpleGain/UISimpleGain.cpp | 106 ------------- examples/ImGuiSimpleGain/UISimpleGain.hpp | 56 ------- 7 files changed, 658 deletions(-) delete mode 100644 examples/ImGuiSimpleGain/CParamSmooth.hpp delete mode 100644 examples/ImGuiSimpleGain/DistrhoPluginInfo.h delete mode 100644 examples/ImGuiSimpleGain/Makefile delete mode 100644 examples/ImGuiSimpleGain/PluginSimpleGain.cpp delete mode 100644 examples/ImGuiSimpleGain/PluginSimpleGain.hpp delete mode 100644 examples/ImGuiSimpleGain/UISimpleGain.cpp delete mode 100644 examples/ImGuiSimpleGain/UISimpleGain.hpp diff --git a/examples/ImGuiSimpleGain/CParamSmooth.hpp b/examples/ImGuiSimpleGain/CParamSmooth.hpp deleted file mode 100644 index 82c9488e..00000000 --- a/examples/ImGuiSimpleGain/CParamSmooth.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/** - * One-pole LPF for smooth parameter changes - * - * https://www.musicdsp.org/en/latest/Filters/257-1-pole-lpf-for-smooth-parameter-changes.html - */ - -#ifndef C_PARAM_SMOOTH_H -#define C_PARAM_SMOOTH_H - -#include - -#define TWO_PI 6.283185307179586476925286766559f - -class CParamSmooth { -public: - CParamSmooth(float smoothingTimeMs, float samplingRate) - : t(smoothingTimeMs) - { - setSampleRate(samplingRate); - } - - ~CParamSmooth() { } - - void setSampleRate(float samplingRate) { - if (samplingRate != fs) { - fs = samplingRate; - a = exp(-TWO_PI / (t * 0.001f * samplingRate)); - b = 1.0f - a; - z = 0.0f; - } - } - - inline void flush() { - z = 0.0f; - } - - inline float process(float in) { - return z = (in * b) + (z * a); - } -private: - float a, b, t, z; - double fs = 0.0; -}; - -#endif // #ifndef C_PARAM_SMOOTH_H diff --git a/examples/ImGuiSimpleGain/DistrhoPluginInfo.h b/examples/ImGuiSimpleGain/DistrhoPluginInfo.h deleted file mode 100644 index cbcbc84e..00000000 --- a/examples/ImGuiSimpleGain/DistrhoPluginInfo.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Simple Gain audio effect for DISTRHO Plugin Framework (DPF) - * SPDX-License-Identifier: MIT - * - * Copyright (C) 2021 Jean Pierre Cimalando - * Copyright (C) 2021 Filipe Coelho - * - * 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. - */ - -/** - The plugin name.@n - This is used to identify your plugin before a Plugin instance can be created. - @note This macro is required. - */ -#define DISTRHO_PLUGIN_NAME "ImGuiSimpleGain" - -/** - Number of audio inputs the plugin has. - @note This macro is required. - */ -#define DISTRHO_PLUGIN_NUM_INPUTS 2 - -/** - Number of audio outputs the plugin has. - @note This macro is required. - */ -#define DISTRHO_PLUGIN_NUM_OUTPUTS 2 - -/** - The plugin URI when exporting in LV2 format. - @note This macro is required. - */ -#define DISTRHO_PLUGIN_URI "http://distrho.sf.net/examples/imguisimplegain" - -/** - Wherever the plugin has a custom %UI. - @see DISTRHO_UI_USE_NANOVG - @see UI - */ -#define DISTRHO_PLUGIN_HAS_UI 1 - -/** - Wherever the plugin processing is realtime-safe.@n - TODO - list rtsafe requirements - */ -#define DISTRHO_PLUGIN_IS_RT_SAFE 1 - -/** - Wherever the plugin is a synth.@n - @ref DISTRHO_PLUGIN_WANT_MIDI_INPUT is automatically enabled when this is too. - @see DISTRHO_PLUGIN_WANT_MIDI_INPUT - */ -#define DISTRHO_PLUGIN_IS_SYNTH 0 - -/** - Enable direct access between the %UI and plugin code. - @see UI::getPluginInstancePointer() - @note DO NOT USE THIS UNLESS STRICTLY NECESSARY!! - Try to avoid it at all costs! - */ -#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 0 - -/** - Wherever the plugin introduces latency during audio or midi processing. - @see Plugin::setLatency(uint32_t) - */ -#define DISTRHO_PLUGIN_WANT_LATENCY 0 - -/** - Wherever the plugin wants MIDI input.@n - This is automatically enabled if @ref DISTRHO_PLUGIN_IS_SYNTH is true. - */ -#define DISTRHO_PLUGIN_WANT_MIDI_INPUT 0 - -/** - Wherever the plugin wants MIDI output. - @see Plugin::writeMidiEvent(const MidiEvent&) - */ -#define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 0 - -/** - Wherever the plugin provides its own internal programs. - @see Plugin::initProgramName(uint32_t, String&) - @see Plugin::loadProgram(uint32_t) - */ -#define DISTRHO_PLUGIN_WANT_PROGRAMS 0 - -/** - Wherever the plugin uses internal non-parameter data. - @see Plugin::initState(uint32_t, String&, String&) - @see Plugin::setState(const char*, const char*) - */ -#define DISTRHO_PLUGIN_WANT_STATE 0 - -/** - Wherever the plugin wants time position information from the host. - @see Plugin::getTimePosition() - */ -#define DISTRHO_PLUGIN_WANT_TIMEPOS 0 - -/** - Wherever the %UI uses NanoVG for drawing instead of the default raw OpenGL calls.@n - When enabled your %UI instance will subclass @ref NanoWidget instead of @ref Widget. - */ -#define DISTRHO_UI_USE_NANOVG 0 - -/** - The %UI URI when exporting in LV2 format.@n - By default this is set to @ref DISTRHO_PLUGIN_URI with "#UI" as suffix. - */ -#define DISTRHO_UI_URI DISTRHO_PLUGIN_URI "#UI" - -/** - Wherever the %UI uses a custom toolkit implementation based on OpenGL.@n - When enabled, the macros @ref DISTRHO_UI_CUSTOM_INCLUDE_PATH and @ref DISTRHO_UI_CUSTOM_WIDGET_TYPE are required. - */ -#define DISTRHO_UI_USE_CUSTOM 1 - -/** - The include path to the header file used by the custom toolkit implementation. - This path must be relative to dpf/distrho/DistrhoUI.hpp - @see DISTRHO_UI_USE_CUSTOM - */ -#define DISTRHO_UI_CUSTOM_INCLUDE_PATH "DearImGui.hpp" - -/** - The top-level-widget typedef to use for the custom toolkit. - This widget class MUST be a subclass of DGL TopLevelWindow class. - It is recommended that you keep this widget class inside the DGL namespace, - and define widget type as e.g. DGL_NAMESPACE::MyCustomTopLevelWidget. - @see DISTRHO_UI_USE_CUSTOM - */ -#define DISTRHO_UI_CUSTOM_WIDGET_TYPE DGL_NAMESPACE::ImGuiTopLevelWidget - -#define DISTRHO_UI_USER_RESIZABLE 1 diff --git a/examples/ImGuiSimpleGain/Makefile b/examples/ImGuiSimpleGain/Makefile deleted file mode 100644 index 5dc2401f..00000000 --- a/examples/ImGuiSimpleGain/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/make -f -# Makefile for DISTRHO Plugins # -# ---------------------------- # -# Created by falkTX, Christopher Arndt, and Patrick Desaulniers -# - -# -------------------------------------------------------------- -# Project name, used for binaries - -NAME = d_ImGuiSimpleGain - -# -------------------------------------------------------------- -# Files to build - -FILES_DSP = \ - PluginSimpleGain.cpp - -FILES_UI = \ - UISimpleGain.cpp \ - ../../../DPF-Widgets/opengl/DearImGui.cpp - -# -------------------------------------------------------------- -# Do some magic - -include ../../Makefile.plugins.mk - -# path to DPF-Widgets -BUILD_CXX_FLAGS += -I../../../DPF-Widgets/opengl/ - -# -------------------------------------------------------------- -# Enable all selected plugin types - -TARGETS += jack lv2_sep vst2 vst3 - -ifeq ($(HAVE_LIBLO),true) -TARGETS += dssi -endif # HAVE_LIBLO - -all: $(TARGETS) - -# -------------------------------------------------------------- diff --git a/examples/ImGuiSimpleGain/PluginSimpleGain.cpp b/examples/ImGuiSimpleGain/PluginSimpleGain.cpp deleted file mode 100644 index b3e9fe95..00000000 --- a/examples/ImGuiSimpleGain/PluginSimpleGain.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Simple Gain audio effect based on DISTRHO Plugin Framework (DPF) - * - * SPDX-License-Identifier: MIT - * - * Copyright (C) 2021 Jean Pierre Cimalando - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include "PluginSimpleGain.hpp" - -START_NAMESPACE_DISTRHO - -// ----------------------------------------------------------------------- - -PluginSimpleGain::PluginSimpleGain() - : Plugin(paramCount, 0, 0), // parameters, programs, states - fSampleRate(getSampleRate()), - fGainDB(0.0f), - fGainLinear(1.0f) -{ - fSmoothGain = new CParamSmooth(20.0f, fSampleRate); -} - -// ----------------------------------------------------------------------- -// Init - -void PluginSimpleGain::initParameter(uint32_t index, Parameter& parameter) -{ - DISTRHO_SAFE_ASSERT_RETURN(index == 0,); - - parameter.ranges.min = -90.0f; - parameter.ranges.max = 30.0f; - parameter.ranges.def = -0.0f; - parameter.hints = kParameterIsAutomatable; - parameter.name = "Gain"; - parameter.shortName = "Gain"; - parameter.symbol = "gain"; - parameter.unit = "dB"; -} - -// ----------------------------------------------------------------------- -// Internal data - -/** - Get the current value of a parameter. -*/ -float PluginSimpleGain::getParameterValue(uint32_t index) const -{ - DISTRHO_SAFE_ASSERT_RETURN(index == 0, 0.0f); - - return fGainDB; -} - -/** - Change a parameter value. -*/ -void PluginSimpleGain::setParameterValue(uint32_t index, float value) -{ - DISTRHO_SAFE_ASSERT_RETURN(index == 0,); - - fGainDB = value; - fGainLinear = DB_CO(CLAMP(value, -90.0, 30.0)); -} - -// ----------------------------------------------------------------------- -// Process - -void PluginSimpleGain::activate() -{ - fSmoothGain->flush(); -} - -void PluginSimpleGain::run(const float** inputs, float** outputs, uint32_t frames) -{ - // get the left and right audio inputs - const float* const inpL = inputs[0]; - const float* const inpR = inputs[1]; - - // get the left and right audio outputs - float* const outL = outputs[0]; - float* const outR = outputs[1]; - - // apply gain against all samples - for (uint32_t i=0; i < frames; ++i) - { - const float gain = fSmoothGain->process(fGainLinear); - outL[i] = inpL[i] * gain; - outR[i] = inpR[i] * gain; - } -} - -// ----------------------------------------------------------------------- - -/** - Optional callback to inform the plugin about a sample rate change. -*/ -void PluginSimpleGain::sampleRateChanged(double newSampleRate) -{ - fSampleRate = newSampleRate; - fSmoothGain->setSampleRate(newSampleRate); -} - -// ----------------------------------------------------------------------- - -Plugin* createPlugin() -{ - return new PluginSimpleGain(); -} - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO diff --git a/examples/ImGuiSimpleGain/PluginSimpleGain.hpp b/examples/ImGuiSimpleGain/PluginSimpleGain.hpp deleted file mode 100644 index 63c33443..00000000 --- a/examples/ImGuiSimpleGain/PluginSimpleGain.hpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Simple Gain audio effect based on DISTRHO Plugin Framework (DPF) - * - * SPDX-License-Identifier: MIT - * - * Copyright (C) 2021 Jean Pierre Cimalando - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef PLUGIN_SIMPLEGAIN_H -#define PLUGIN_SIMPLEGAIN_H - -#include "DistrhoPlugin.hpp" -#include "CParamSmooth.hpp" -#include "extra/ScopedPointer.hpp" - -START_NAMESPACE_DISTRHO - -#ifndef MIN -#define MIN(a,b) ( (a) < (b) ? (a) : (b) ) -#endif - -#ifndef MAX -#define MAX(a,b) ( (a) > (b) ? (a) : (b) ) -#endif - -#ifndef CLAMP -#define CLAMP(v, min, max) (MIN((max), MAX((min), (v)))) -#endif - -#ifndef DB_CO -#define DB_CO(g) ((g) > -90.0f ? powf(10.0f, (g) * 0.05f) : 0.0f) -#endif - -// ----------------------------------------------------------------------- - -class PluginSimpleGain : public Plugin { -public: - enum Parameters { - paramGain = 0, - paramCount - }; - - PluginSimpleGain(); - -protected: - // ------------------------------------------------------------------- - // Information - - const char* getLabel() const noexcept override - { - return "SimpleGain"; - } - - const char* getDescription() const override - { - return "A simple audio volume gain plugin with ImGui for its GUI"; - } - - const char* getMaker() const noexcept override - { - return "Jean Pierre Cimalando, falkTX"; - } - - const char* getLicense() const noexcept override - { - return "MIT"; - } - - uint32_t getVersion() const noexcept override - { - return d_version(1, 0, 0); - } - - int64_t getUniqueId() const noexcept override - { - return d_cconst('d', 'I', 'm', 'G'); - } - - // ------------------------------------------------------------------- - // Init - - void initParameter(uint32_t index, Parameter& parameter) override; - - // ------------------------------------------------------------------- - // Internal data - - float getParameterValue(uint32_t index) const override; - void setParameterValue(uint32_t index, float value) override; - - // ------------------------------------------------------------------- - // Optional - - // Optional callback to inform the plugin about a sample rate change. - void sampleRateChanged(double newSampleRate) override; - - // ------------------------------------------------------------------- - // Process - - void activate() override; - void run(const float**, float** outputs, uint32_t frames) override; - - // ------------------------------------------------------------------- - -private: - double fSampleRate; - float fGainDB; - float fGainLinear; - ScopedPointer fSmoothGain; - - DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginSimpleGain) -}; - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO - -#endif // #ifndef PLUGIN_SIMPLEGAIN_H diff --git a/examples/ImGuiSimpleGain/UISimpleGain.cpp b/examples/ImGuiSimpleGain/UISimpleGain.cpp deleted file mode 100644 index d7684436..00000000 --- a/examples/ImGuiSimpleGain/UISimpleGain.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Simple Gain audio effect based on DISTRHO Plugin Framework (DPF) - * - * SPDX-License-Identifier: MIT - * - * Copyright (C) 2021 Jean Pierre Cimalando - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include "UISimpleGain.hpp" - -START_NAMESPACE_DISTRHO - -// ----------------------------------------------------------------------- -// Init / Deinit - -UISimpleGain::UISimpleGain() - : UI(600, 400), - fGain(0.0f), - fResizeHandle(this) -{ - setGeometryConstraints(600, 400, true); - - // hide handle if UI is resizable - if (isResizable()) - fResizeHandle.hide(); -} - -// ----------------------------------------------------------------------- -// 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 UISimpleGain::parameterChanged(uint32_t index, float value) -{ - DISTRHO_SAFE_ASSERT_RETURN(index == 0,); - - fGain = value; - repaint(); -} - -// ----------------------------------------------------------------------- -// Widget callbacks - -/** - A function called to draw the view contents. -*/ -void UISimpleGain::onImGuiDisplay() -{ - const float width = getWidth(); - const float height = getHeight(); - const float margin = 20.0f * getScaleFactor(); - - ImGui::SetNextWindowPos(ImVec2(margin, margin)); - ImGui::SetNextWindowSize(ImVec2(width - 2 * margin, height - 2 * margin)); - - if (ImGui::Begin("Simple gain", nullptr, ImGuiWindowFlags_NoResize)) - { - static char aboutText[256] = "This is a demo plugin made with ImGui.\n"; - ImGui::InputTextMultiline("About", aboutText, sizeof(aboutText)); - - if (ImGui::SliderFloat("Gain (dB)", &fGain, -90.0f, 30.0f)) - { - if (ImGui::IsItemActivated()) - editParameter(0, true); - - setParameterValue(0, fGain); - } - - if (ImGui::IsItemDeactivated()) - { - editParameter(0, false); - } - } - ImGui::End(); -} - -// ----------------------------------------------------------------------- - -UI* createUI() -{ - return new UISimpleGain(); -} - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO diff --git a/examples/ImGuiSimpleGain/UISimpleGain.hpp b/examples/ImGuiSimpleGain/UISimpleGain.hpp deleted file mode 100644 index 03beabff..00000000 --- a/examples/ImGuiSimpleGain/UISimpleGain.hpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Simple Gain audio effect based on DISTRHO Plugin Framework (DPF) - * - * SPDX-License-Identifier: MIT - * - * Copyright (C) 2021 Jean Pierre Cimalando - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef UI_SIMPLEGAIN_H -#define UI_SIMPLEGAIN_H - -#include "DistrhoUI.hpp" -#include "../generic/ResizeHandle.hpp" - -START_NAMESPACE_DISTRHO - -class UISimpleGain : public UI -{ -public: - UISimpleGain(); - -protected: - // DSP/Plugin callbacks - void parameterChanged(uint32_t, float value) override; - - // Widget callbacks - void onImGuiDisplay() override; - -private: - float fGain; - ResizeHandle fResizeHandle; - - DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(UISimpleGain) -}; - -END_NAMESPACE_DISTRHO - -#endif