Show different slider when non-static LFO chosen

pull/170/head
James Ball 2023-07-21 11:41:01 +01:00
rodzic 34adbc767d
commit 70de26bbb2
3 zmienionych plików z 32 dodań i 1 usunięć

Wyświetl plik

@ -107,7 +107,7 @@ public:
std::atomic<int> min = 0;
std::atomic<int> max = 10;
IntParameter(juce::String name, juce::String id, int value, int min, int max) : AudioProcessorParameterWithID(name, id), value(value), min(min), max(max) {}
IntParameter(juce::String name, juce::String id, int value, int min, int max) : AudioProcessorParameterWithID(id, name), value(value), min(min), max(max) {}
juce::String getName(int maximumStringLength) const override {
return name.substring(0, maximumStringLength);

Wyświetl plik

@ -2,6 +2,7 @@
EffectComponent::EffectComponent(OscirenderAudioProcessor& p, Effect& effect, int index) : effect(effect), index(index), audioProcessor(p) {
addAndMakeVisible(slider);
addAndMakeVisible(lfoSlider);
addAndMakeVisible(selected);
addAndMakeVisible(lfo);
@ -49,8 +50,36 @@ void EffectComponent::setupComponent() {
lfo.onChange = [this]() {
if (lfo.getSelectedId() != 0) {
effect.parameters[index]->lfo->setUnnormalisedValueNotifyingHost(lfo.getSelectedId());
if (lfo.getSelectedId() == static_cast<int>(LfoType::Static)) {
lfoSlider.setVisible(false);
slider.setVisible(true);
} else {
lfoSlider.setVisible(true);
slider.setVisible(false);
}
}
};
lfoSlider.setRange(parameter->lfoRate->min, parameter->lfoRate->max, parameter->lfoRate->step);
lfoSlider.setValue(parameter->lfoRate->getValueUnnormalised(), juce::dontSendNotification);
if (lfo.getSelectedId() == static_cast<int>(LfoType::Static)) {
lfoSlider.setVisible(false);
slider.setVisible(true);
} else {
lfoSlider.setVisible(true);
slider.setVisible(false);
}
lfoSlider.setSliderStyle(juce::Slider::LinearHorizontal);
lfoSlider.setTextBoxStyle(juce::Slider::TextBoxRight, false, 70, lfoSlider.getTextBoxHeight());
lfoSlider.setTextValueSuffix("Hz");
lfoSlider.setColour(juce::Slider::thumbColourId, juce::Colour(0xff00ff00));
lfoSlider.onValueChange = [this]() {
effect.parameters[index]->lfoRate->setUnnormalisedValueNotifyingHost(lfoSlider.getValue());
};
}
min.textBox.setValue(parameter->min, juce::dontSendNotification);
@ -109,6 +138,7 @@ void EffectComponent::resized() {
}
textBounds = checkboxLabel;
slider.setBounds(bounds);
lfoSlider.setBounds(bounds);
}
void EffectComponent::paint(juce::Graphics& g) {

Wyświetl plik

@ -51,6 +51,7 @@ public:
void setComponent(std::shared_ptr<juce::Component> component);
juce::Slider slider;
juce::Slider lfoSlider;
Effect& effect;
int index;
juce::ToggleButton selected;