From 096dbc28e95fb7063ce19fddff31d63126876eff Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Tue, 7 Oct 2025 11:27:32 +0200 Subject: Add Knobs to UI --- src/UI/PluginEditor.cpp | 26 +++++++++----------------- src/UI/PluginEditor.h | 4 ++-- 2 files changed, 11 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/UI/PluginEditor.cpp b/src/UI/PluginEditor.cpp index aedb799..42bdf68 100644 --- a/src/UI/PluginEditor.cpp +++ b/src/UI/PluginEditor.cpp @@ -4,24 +4,14 @@ //============================================================================== SchroederReverbAudioProcessorEditor::SchroederReverbAudioProcessorEditor( SchroederReverbAudioProcessor& p) - : AudioProcessorEditor(&p), processorRef(p) + : AudioProcessorEditor(&p), processorRef(p), preDelayKnob("Pre-Delay", p.preDelay), + decayKnob("Decay", p.decayFactor), mixKnob("Dry/Wet", p.dryWetMix) { - mixParam = processorRef.dryWetMix; - mixSlider.setSliderStyle(juce::Slider::LinearHorizontal); - mixSlider.setTextBoxStyle(juce::Slider::TextBoxRight, false, 50, 20); - mixSlider.setRange(0.0, 1.0, 0.01); - addAndMakeVisible(mixSlider); + addAndMakeVisible(preDelayKnob); + addAndMakeVisible(decayKnob); + addAndMakeVisible(mixKnob); - mixSlider.setValue(mixParam->get()); - mixSlider.onValueChange = [this]() - { - if (mixParam != nullptr) - { - *mixParam = (float)mixSlider.getValue(); - } - }; - - setSize(400, 300); + setSize(380, 140); } SchroederReverbAudioProcessorEditor::~SchroederReverbAudioProcessorEditor() {} @@ -36,5 +26,7 @@ SchroederReverbAudioProcessorEditor::paint(juce::Graphics& g) void SchroederReverbAudioProcessorEditor::resized() { - mixSlider.setBounds(40, 80, getWidth() - 80, 20); + preDelayKnob.setBounds(20, 20, 100, 100); + decayKnob.setBounds(140, 20, 100, 100); + mixKnob.setBounds(260, 20, 100, 100); } diff --git a/src/UI/PluginEditor.h b/src/UI/PluginEditor.h index ad42bf8..0d4b7c7 100644 --- a/src/UI/PluginEditor.h +++ b/src/UI/PluginEditor.h @@ -1,6 +1,7 @@ #pragma once #include "../PluginProcessor.h" +#include "KnobWithLabel.h" //============================================================================== class SchroederReverbAudioProcessorEditor final : public juce::AudioProcessorEditor @@ -15,8 +16,7 @@ class SchroederReverbAudioProcessorEditor final : public juce::AudioProcessorEdi private: SchroederReverbAudioProcessor& processorRef; - juce::Slider mixSlider; - juce::AudioParameterFloat* mixParam = nullptr; + KnobWithLabel preDelayKnob, decayKnob, mixKnob; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SchroederReverbAudioProcessorEditor) }; -- cgit v1.2.3