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> 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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
Ładowanie…
Reference in New Issue