1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Add beginChangeGesture/endChangeGesture support to audio demo plug-in

This commit is contained in:
hogliux 2015-05-05 11:28:24 +01:00
parent a401655297
commit b7a85c767a
2 changed files with 35 additions and 4 deletions

View file

@ -102,16 +102,28 @@ void JuceDemoPluginAudioProcessorEditor::timerCallback()
// This is our Slider::Listener callback, when the user drags a slider.
void JuceDemoPluginAudioProcessorEditor::sliderValueChanged (Slider* slider)
{
if (slider == &gainSlider)
if (AudioProcessorParameter* param = getParameterFromSlider (slider))
{
// It's vital to use setValueNotifyingHost to change any parameters that are automatable
// by the host, rather than just modifying them directly, otherwise the host won't know
// that they've changed.
getProcessor().gain->setValueNotifyingHost ((float) gainSlider.getValue());
param->setValueNotifyingHost ((float) slider->getValue());
}
else if (slider == &delaySlider)
}
void JuceDemoPluginAudioProcessorEditor::sliderDragStarted (Slider* slider)
{
if (AudioProcessorParameter* param = getParameterFromSlider (slider))
{
getProcessor().delay->setValueNotifyingHost ((float) delaySlider.getValue());
param->beginChangeGesture();
}
}
void JuceDemoPluginAudioProcessorEditor::sliderDragEnded (Slider* slider)
{
if (AudioProcessorParameter* param = getParameterFromSlider (slider))
{
param->endChangeGesture();
}
}
@ -153,6 +165,20 @@ static String ppqToBarsBeatsString (double ppq, double /*lastBarPPQ*/, int numer
return s;
}
AudioProcessorParameter* JuceDemoPluginAudioProcessorEditor::getParameterFromSlider (const Slider* slider) const
{
if (slider == &gainSlider)
{
return getProcessor().gain;
}
else if (slider == &delaySlider)
{
return getProcessor().delay;
}
return nullptr;
}
// Updates the text in our position label.
void JuceDemoPluginAudioProcessorEditor::displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos)
{

View file

@ -31,6 +31,8 @@ public:
void paint (Graphics&) override;
void resized() override;
void sliderValueChanged (Slider*) override;
void sliderDragStarted (Slider*) override;
void sliderDragEnded (Slider*) override;
private:
MidiKeyboardComponent midiKeyboard;
@ -41,11 +43,14 @@ private:
AudioPlayHead::CurrentPositionInfo lastDisplayedPosition;
//==============================================================================
JuceDemoPluginAudioProcessor& getProcessor() const
{
return static_cast<JuceDemoPluginAudioProcessor&> (processor);
}
AudioProcessorParameter* getParameterFromSlider (const Slider*) const;
void displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos);
};