diff options
| author | Dominik Kaiser | 2025-10-07 11:27:32 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2025-10-07 11:27:32 +0200 |
| commit | 096dbc28e95fb7063ce19fddff31d63126876eff (patch) | |
| tree | 90497a47b2abc9499fcd5fd40ea080ccaea61e95 | |
| parent | df4c72f990bc8f293af417bef893ee340874882a (diff) | |
| download | SchroederReverb-096dbc28e95fb7063ce19fddff31d63126876eff.tar.gz SchroederReverb-096dbc28e95fb7063ce19fddff31d63126876eff.zip | |
Add Knobs to UI
| -rw-r--r-- | src/UI/PluginEditor.cpp | 26 | ||||
| -rw-r--r-- | src/UI/PluginEditor.h | 4 |
2 files changed, 11 insertions, 19 deletions
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) }; |
