osci-render/Source/components/VisualiserSettings.h

39 wiersze
1.2 KiB
C++

#pragma once
#include <JuceHeader.h>
#include "EffectComponent.h"
#include "SvgButton.h"
#include "../LookAndFeel.h"
#include "SwitchButton.h"
class VisualiserComponent;
class VisualiserSettings : public juce::Component {
public:
VisualiserSettings(OscirenderAudioProcessor&, VisualiserComponent&);
~VisualiserSettings();
void resized() override;
juce::var getSettings();
private:
OscirenderAudioProcessor& audioProcessor;
VisualiserComponent& visualiser;
EffectComponent intensity{audioProcessor, *audioProcessor.intensityEffect};
EffectComponent persistence{audioProcessor, *audioProcessor.persistenceEffect};
EffectComponent hue{audioProcessor, *audioProcessor.hueEffect};
jux::SwitchButton graticuleToggle{audioProcessor.graticuleEnabled};
jux::SwitchButton smudgeToggle{audioProcessor.smudgesEnabled};
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(VisualiserSettings)
};
class SettingsWindow : public juce::DocumentWindow {
public:
SettingsWindow(juce::String name) : juce::DocumentWindow(name, Colours::darker, juce::DocumentWindow::TitleBarButtons::closeButton) {}
void closeButtonPressed() override {
setVisible(false);
}
};