osci-render/Source/components/VisualiserSettings.cpp

55 wiersze
2.4 KiB
C++

#include "VisualiserSettings.h"
#include "VisualiserComponent.h"
#include "../PluginEditor.h"
VisualiserSettings::VisualiserSettings(VisualiserParameters& parameters, int numChannels) : parameters(parameters), numChannels(numChannels) {
addAndMakeVisible(brightness);
addAndMakeVisible(intensity);
addAndMakeVisible(persistence);
addAndMakeVisible(hue);
addAndMakeVisible(saturation);
addAndMakeVisible(focus);
addAndMakeVisible(graticuleToggle);
addAndMakeVisible(smudgeToggle);
addAndMakeVisible(upsamplingToggle);
brightness.setSliderOnValueChange();
intensity.setSliderOnValueChange();
persistence.setSliderOnValueChange();
hue.setSliderOnValueChange();
saturation.setSliderOnValueChange();
focus.setSliderOnValueChange();
}
VisualiserSettings::~VisualiserSettings() {}
void VisualiserSettings::resized() {
auto area = getLocalBounds().reduced(20);
double rowHeight = 30;
brightness.setBounds(area.removeFromTop(rowHeight));
intensity.setBounds(area.removeFromTop(rowHeight));
persistence.setBounds(area.removeFromTop(rowHeight));
hue.setBounds(area.removeFromTop(rowHeight));
saturation.setBounds(area.removeFromTop(rowHeight));
focus.setBounds(area.removeFromTop(rowHeight));
graticuleToggle.setBounds(area.removeFromTop(rowHeight));
smudgeToggle.setBounds(area.removeFromTop(rowHeight));
upsamplingToggle.setBounds(area.removeFromTop(rowHeight));
}
juce::var VisualiserSettings::getSettings() {
auto settings = new juce::DynamicObject();
settings->setProperty("brightness", parameters.brightnessEffect->getActualValue() - 2);
settings->setProperty("intensity", parameters.intensityEffect->getActualValue() / 100);
settings->setProperty("persistence", parameters.persistenceEffect->getActualValue() - 1.33);
settings->setProperty("saturation", parameters.saturationEffect->getActualValue());
settings->setProperty("hue", parameters.hueEffect->getActualValue());
settings->setProperty("focus", parameters.focusEffect->getActualValue() / 100);
settings->setProperty("graticule", parameters.graticuleEnabled->getBoolValue());
settings->setProperty("smudges", parameters.smudgesEnabled->getBoolValue());
settings->setProperty("upsampling", parameters.upsamplingEnabled->getBoolValue());
settings->setProperty("numChannels", numChannels);
return juce::var(settings);
}