I have a vu meter that I have in a 101 frame png strip. But where do I update the parameter for it? Here’s what I have so far:
#include "PluginProcessor.h"
#include "PluginEditor.h"
//==============================================================================
JuceDemoPluginAudioProcessorEditor::JuceDemoPluginAudioProcessorEditor (JuceDemoPluginAudioProcessor* ownerFilter)
: AudioProcessorEditor (ownerFilter)
{
internalCachedBackgroundImage = ImageCache::getFromMemory(stbg_png, stbg_pngSize);
cachedImage_bungkno_png = ImageCache::getFromMemory (bungkno_png, bungkno_pngSize);
addAndMakeVisible(gainSlider = new FilmStripKnob(cachedImage_bungkno_png, cachedImage_bungkno_png->getHeight() /cachedImage_bungkno_png->getWidth(), false));
gainSlider->addListener (this);
gainSlider->setRange (0.0, 1.0, 0.01);
addAndMakeVisible (hiPassSlider = new Slider ("hipass"));
hiPassSlider->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20);
hiPassSlider->setSliderStyle (Slider::Rotary);
hiPassSlider->addListener (this);
hiPassSlider->setRange (0.0,1.0,0.01);
Label* l = new Label ("", "Throughput level:");
l->attachToComponent (gainSlider, false);
l->setFont (Font (11.0f));
addAndMakeVisible (delaySlider = new Slider ("delay"));
delaySlider->setSliderStyle (Slider::Rotary);
delaySlider->addListener (this);
delaySlider->setRange (0.0, 1.0, 0.01);
l = new Label ("", "Delay:");
l->attachToComponent (delaySlider, false);
l->setFont (Font (11.0f));
// add a label that will display the current timecode and status..
addAndMakeVisible (infoLabel = new Label (String::empty, String::empty));
infoLabel->setColour (Label::textColourId, Colours::blue);
// add the triangular resizer component for the bottom-right of the UI
addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits));
resizeLimits.setSizeLimits (150, 150, 800, 300);
// set our component's initial size to be the last one that was stored in the filter's settings
setSize (ownerFilter->lastUIWidth,
ownerFilter->lastUIHeight);
startTimer (50);
}
JuceDemoPluginAudioProcessorEditor::~JuceDemoPluginAudioProcessorEditor()
{
deleteAllChildren();
}
//==============================================================================
void JuceDemoPluginAudioProcessorEditor::paint (Graphics& g)
{
g.fillAll (Colour::greyLevel (0.9f));
g.drawImage (internalCachedBackgroundImage, 0, 0, 562, 177,
0, 0, internalCachedBackgroundImage->getWidth(), internalCachedBackgroundImage->getHeight());
}
void JuceDemoPluginAudioProcessorEditor::resized()
{
infoLabel->setBounds (10, 4, 400, 25);
gainSlider->setBounds (20, 60, cachedImage_bungkno_png->getWidth(), cachedImage_bungkno_png->getWidth());
delaySlider->setBounds (200, 60, 150, 40);
hiPassSlider->setBounds (88, 128, 150, 40);
resizer->setBounds (getWidth() - 16, getHeight() - 16, 16, 16);
}
// This timer periodically checks whether any of the filter's parameters have changed...
void JuceDemoPluginAudioProcessorEditor::timerCallback()
{
JuceDemoPluginAudioProcessor* ourProcessor = getProcessor();
gainSlider->setValue (ourProcessor->gain, false);
delaySlider->setValue (ourProcessor->delay, false);
hiPassSlider->setValue (ourProcessor->hipass,false);
}
void JuceDemoPluginAudioProcessorEditor::sliderValueChanged (Slider* slider)
{
if (slider == gainSlider) getProcessor()->setParameterNotifyingHost (JuceDemoPluginAudioProcessor::GAIN,(float) gainSlider->getValue());
if (slider == delaySlider) getProcessor()->setParameterNotifyingHost (JuceDemoPluginAudioProcessor::DELAY,(float) delaySlider->getValue());
if (slider == hiPassSlider) getProcessor()->setParameterNotifyingHost (JuceDemoPluginAudioProcessor::HIPASS,(float)hiPassSlider->getValue());
}
Do I have to put in the ::updateParametersFromFilter() ? Trying to get the compressor gain reduction that is calculated in the processing function, to update the filmstrip control…
Any Idears?
~RR.