osci-render/Source/components/EffectComponent.h

52 wiersze
1.6 KiB
C
Czysty Zwykły widok Historia

#pragma once
#include <JuceHeader.h>
#include "../PluginProcessor.h"
#include "../audio/Effect.h"
2023-07-17 13:37:36 +00:00
#include "LabelledTextBox.h"
#include "SvgButton.h"
2023-12-12 22:54:36 +00:00
class EffectComponent : public juce::Component, public juce::AudioProcessorParameter::Listener, juce::AsyncUpdater, public juce::SettableTooltipClient {
public:
EffectComponent(OscirenderAudioProcessor& p, Effect& effect, int index);
EffectComponent(OscirenderAudioProcessor& p, Effect& effect);
~EffectComponent();
void resized() override;
void paint(juce::Graphics& g) override;
2023-07-17 13:37:36 +00:00
void mouseDown(const juce::MouseEvent& event) override;
void parameterValueChanged(int parameterIndex, float newValue) override;
void parameterGestureChanged(int parameterIndex, bool gestureIsStarting) override;
void handleAsyncUpdate() override;
void setComponent(std::shared_ptr<juce::Component> component);
void setSliderOnValueChange();
juce::Slider slider;
juce::Slider lfoSlider;
2023-07-17 13:37:36 +00:00
Effect& effect;
int index = 0;
juce::ComboBox lfo;
private:
const int TEXT_BOX_WIDTH = 70;
const int SMALL_TEXT_BOX_WIDTH = 50;
const int TEXT_WIDTH = 120;
const int SMALL_TEXT_WIDTH = 60;
void setupComponent();
bool lfoEnabled = true;
2024-01-01 16:21:10 +00:00
bool sidechainEnabled = true;
std::shared_ptr<juce::Component> component;
OscirenderAudioProcessor& audioProcessor;
2024-01-01 16:21:10 +00:00
std::unique_ptr<SvgButton> sidechainButton;
2023-07-17 13:37:36 +00:00
juce::Label popupLabel;
2023-12-17 21:32:56 +00:00
juce::Label label;
2023-07-17 13:37:36 +00:00
LabelledTextBox min{"Min"};
LabelledTextBox max{"Max"};
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(EffectComponent)
};