Browse Source

Add beginChangeGesture/endChangeGesture support to audio demo plug-in

tags/2021-05-28
hogliux 10 years ago
parent
commit
b7a85c767a
2 changed files with 35 additions and 4 deletions
  1. +30
    -4
      examples/audio plugin demo/Source/PluginEditor.cpp
  2. +5
    -0
      examples/audio plugin demo/Source/PluginEditor.h

+ 30
- 4
examples/audio plugin demo/Source/PluginEditor.cpp 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))
{
param->beginChangeGesture();
}
}
void JuceDemoPluginAudioProcessorEditor::sliderDragEnded (Slider* slider)
{
if (AudioProcessorParameter* param = getParameterFromSlider (slider))
{
getProcessor().delay->setValueNotifyingHost ((float) delaySlider.getValue());
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)
{


+ 5
- 0
examples/audio plugin demo/Source/PluginEditor.h 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);
};


Loading…
Cancel
Save