osci-render/Source/visualiser/VisualiserSettings.cpp

75 wiersze
2.8 KiB
C++
Czysty Zwykły widok Historia

2024-08-10 19:26:56 +00:00
#include "VisualiserSettings.h"
#include "VisualiserComponent.h"
2024-08-10 19:26:56 +00:00
#include "../PluginEditor.h"
VisualiserSettings::VisualiserSettings(VisualiserParameters& p, int numChannels) : parameters(p), numChannels(numChannels) {
addAndMakeVisible(intensity);
2024-08-10 19:26:56 +00:00
addAndMakeVisible(persistence);
addAndMakeVisible(hue);
2024-09-29 18:46:35 +00:00
addAndMakeVisible(saturation);
2024-09-29 19:36:16 +00:00
addAndMakeVisible(focus);
addAndMakeVisible(noise);
addAndMakeVisible(glow);
addAndMakeVisible(ambient);
2024-11-09 22:51:42 +00:00
addAndMakeVisible(smooth);
2024-11-17 12:18:30 +00:00
addChildComponent(sweepMs);
addAndMakeVisible(upsamplingToggle);
2024-11-17 12:18:30 +00:00
addAndMakeVisible(sweepToggle);
addAndMakeVisible(screenTypeLabel);
addAndMakeVisible(screenType);
for (int i = 1; i <= parameters.screenType->max; i++) {
screenType.addItem(parameters.screenType->getText(parameters.screenType->getNormalisedValue(i)), i);
}
screenType.setSelectedId(parameters.screenType->getValueUnnormalised());
screenType.onChange = [this] {
parameters.screenType->setUnnormalisedValueNotifyingHost(screenType.getSelectedId());
};
intensity.setSliderOnValueChange();
persistence.setSliderOnValueChange();
hue.setSliderOnValueChange();
2024-09-29 18:46:35 +00:00
saturation.setSliderOnValueChange();
2024-09-29 19:36:16 +00:00
focus.setSliderOnValueChange();
noise.setSliderOnValueChange();
glow.setSliderOnValueChange();
ambient.setSliderOnValueChange();
2024-11-09 22:51:42 +00:00
smooth.setSliderOnValueChange();
2024-11-17 12:18:30 +00:00
sweepMs.setSliderOnValueChange();
sweepToggle.onClick = [this] {
sweepMs.setVisible(sweepToggle.getToggleState());
resized();
};
2024-08-10 19:26:56 +00:00
}
VisualiserSettings::~VisualiserSettings() {}
void VisualiserSettings::resized() {
auto area = getLocalBounds().reduced(20, 0).withTrimmedBottom(20);
2024-08-10 19:26:56 +00:00
double rowHeight = 30;
auto screenTypeArea = area.removeFromTop(2 * rowHeight);
screenTypeArea = screenTypeArea.withSizeKeepingCentre(300, rowHeight);
screenTypeLabel.setBounds(screenTypeArea.removeFromLeft(120));
screenType.setBounds(screenTypeArea.removeFromRight(180));
2024-08-10 19:26:56 +00:00
intensity.setBounds(area.removeFromTop(rowHeight));
persistence.setBounds(area.removeFromTop(rowHeight));
hue.setBounds(area.removeFromTop(rowHeight));
2024-09-29 18:46:35 +00:00
saturation.setBounds(area.removeFromTop(rowHeight));
2024-09-29 19:36:16 +00:00
focus.setBounds(area.removeFromTop(rowHeight));
noise.setBounds(area.removeFromTop(rowHeight));
glow.setBounds(area.removeFromTop(rowHeight));
ambient.setBounds(area.removeFromTop(rowHeight));
2024-11-09 22:51:42 +00:00
smooth.setBounds(area.removeFromTop(rowHeight));
upsamplingToggle.setBounds(area.removeFromTop(rowHeight));
2024-11-17 12:18:30 +00:00
sweepToggle.setBounds(area.removeFromTop(rowHeight));
if (sweepToggle.getToggleState()) {
sweepMs.setBounds(area.removeFromTop(rowHeight));
}
2024-08-10 19:26:56 +00:00
}