kopia lustrzana https://github.com/jameshball/osci-render
Show different slider when non-static LFO chosen
rodzic
34adbc767d
commit
70de26bbb2
|
@ -107,7 +107,7 @@ public:
|
||||||
std::atomic<int> min = 0;
|
std::atomic<int> min = 0;
|
||||||
std::atomic<int> max = 10;
|
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 {
|
juce::String getName(int maximumStringLength) const override {
|
||||||
return name.substring(0, maximumStringLength);
|
return name.substring(0, maximumStringLength);
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
EffectComponent::EffectComponent(OscirenderAudioProcessor& p, Effect& effect, int index) : effect(effect), index(index), audioProcessor(p) {
|
EffectComponent::EffectComponent(OscirenderAudioProcessor& p, Effect& effect, int index) : effect(effect), index(index), audioProcessor(p) {
|
||||||
addAndMakeVisible(slider);
|
addAndMakeVisible(slider);
|
||||||
|
addAndMakeVisible(lfoSlider);
|
||||||
addAndMakeVisible(selected);
|
addAndMakeVisible(selected);
|
||||||
addAndMakeVisible(lfo);
|
addAndMakeVisible(lfo);
|
||||||
|
|
||||||
|
@ -49,7 +50,35 @@ void EffectComponent::setupComponent() {
|
||||||
lfo.onChange = [this]() {
|
lfo.onChange = [this]() {
|
||||||
if (lfo.getSelectedId() != 0) {
|
if (lfo.getSelectedId() != 0) {
|
||||||
effect.parameters[index]->lfo->setUnnormalisedValueNotifyingHost(lfo.getSelectedId());
|
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());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,6 +138,7 @@ void EffectComponent::resized() {
|
||||||
}
|
}
|
||||||
textBounds = checkboxLabel;
|
textBounds = checkboxLabel;
|
||||||
slider.setBounds(bounds);
|
slider.setBounds(bounds);
|
||||||
|
lfoSlider.setBounds(bounds);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EffectComponent::paint(juce::Graphics& g) {
|
void EffectComponent::paint(juce::Graphics& g) {
|
||||||
|
|
|
@ -51,6 +51,7 @@ public:
|
||||||
void setComponent(std::shared_ptr<juce::Component> component);
|
void setComponent(std::shared_ptr<juce::Component> component);
|
||||||
|
|
||||||
juce::Slider slider;
|
juce::Slider slider;
|
||||||
|
juce::Slider lfoSlider;
|
||||||
Effect& effect;
|
Effect& effect;
|
||||||
int index;
|
int index;
|
||||||
juce::ToggleButton selected;
|
juce::ToggleButton selected;
|
||||||
|
|
Ładowanie…
Reference in New Issue