quantumVERB  1.0.0
A FOSS convolution reverb plugin
PluginEditor.h
1 /*
2  ==============================================================================
3 
4  PluginEditor.cpp
5 
6  ==============================================================================
7 */
8 
9 #pragma once
10 
11 #include "../JuceLibraryCode/JuceHeader.h"
12 
13 #include "UIFilterBlock.h"
14 #include "UIGraphBlock.h"
15 #include "UIHeaderBlock.h"
16 #include "UIReverbBlock.h"
17 #include "LookAndFeel.h"
18 #include "PluginProcessor.h"
19 
20 namespace reverb
21 {
22 
23  //==============================================================================
24  /**
25  * Implements the plugins UI. This includes window configuration, placement of UI elements
26  * and handlers for various events such as slider interaction.
27  */
29  public juce::Button::Listener
30  {
31  public:
33  ~AudioProcessorEditor();
34 
35  //==============================================================================
36  void paint(juce::Graphics&) override;
37  void resized() override;
38 
39  //==============================================================================
40  void buttonClicked(juce::Button* button) override;
41  static void menuCallback(int result, UIHeaderBlock* headerBlock);
42 
43  //==============================================================================
44  static constexpr double PADDING_REL = 0.02; // 2% padding
45 
46  protected:
47  //==============================================================================
48  AudioProcessor& processor;
49  juce::AudioProcessorValueTreeState& parameters;
50 
51  //==============================================================================
52  LookAndFeel lookAndFeel;
53 
54  //==============================================================================
57 
58  //==============================================================================
59  UIHeaderBlock headerBlock;
60 
61  //==============================================================================
62  UIGraphBlock graphBlock;
63 
64  //==============================================================================
65  UIReverbBlock reverbBlock;
66 
67  //==============================================================================
68  UIFilterBlock lowShelfFilterBlock;
69  UIFilterBlock peakLowFilterBlock;
70  UIFilterBlock peakHighFilterBlock;
71  UIFilterBlock highShelfFilterBlock;
72 
73  std::array<UIFilterBlock*, 4> filterBlocks;
74  std::array<juce::String, 4> filterBlockNames;
75 
76  private:
78  };
79 
80 }
AudioProcessorEditor(AudioProcessor &)
Constructs an AudioProcessorEditor object associated with an AudioProcessor.
float getParam(const juce::AudioProcessorValueTreeState &params, const juce::String &blockId) const
Internal method used to get (and check) a parameter&#39;s value.
Definition: Task.h:111
void buttonClicked(juce::Button *button) override
Callback function to open the popup menu asynchronously.
void resized() override
Manages the layout of AudioProcessorEditor when the window is resized.
static void menuCallback(int result, UIHeaderBlock *headerBlock)
Callback function to open the popup menu asynchronously.