Move parameter component methods to cpp
This commit is contained in:
parent
4caaf1f5e0
commit
f8b98e05d1
@ -749,3 +749,112 @@ void SpectralChainEditor::drawBox(Graphics & g, int index, int x, int y, int w,
|
||||
g.drawRect(x, y, w, h);
|
||||
g.drawFittedText(txt, x,y,w,h, Justification::centred, 3);
|
||||
}
|
||||
|
||||
ParameterComponent::ParameterComponent(AudioProcessorParameter * par, bool notifyOnlyOnRelease) : m_par(par)
|
||||
{
|
||||
addAndMakeVisible(&m_label);
|
||||
m_label.setText(par->getName(50), dontSendNotification);
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(par);
|
||||
if (floatpar)
|
||||
{
|
||||
m_slider = std::make_unique<MySlider>(&floatpar->range);
|
||||
m_notify_only_on_release = notifyOnlyOnRelease;
|
||||
m_slider->setRange(floatpar->range.start, floatpar->range.end, floatpar->range.interval);
|
||||
m_slider->setValue(*floatpar, dontSendNotification);
|
||||
m_slider->addListener(this);
|
||||
addAndMakeVisible(m_slider.get());
|
||||
}
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(par);
|
||||
if (intpar)
|
||||
{
|
||||
m_slider = std::make_unique<MySlider>();
|
||||
m_notify_only_on_release = notifyOnlyOnRelease;
|
||||
m_slider->setRange(intpar->getRange().getStart(), intpar->getRange().getEnd(), 1.0);
|
||||
m_slider->setValue(*intpar, dontSendNotification);
|
||||
m_slider->addListener(this);
|
||||
addAndMakeVisible(m_slider.get());
|
||||
}
|
||||
AudioParameterChoice* choicepar = dynamic_cast<AudioParameterChoice*>(par);
|
||||
if (choicepar)
|
||||
{
|
||||
|
||||
}
|
||||
AudioParameterBool* boolpar = dynamic_cast<AudioParameterBool*>(par);
|
||||
if (boolpar)
|
||||
{
|
||||
m_togglebut = std::make_unique<ToggleButton>();
|
||||
m_togglebut->setToggleState(*boolpar, dontSendNotification);
|
||||
m_togglebut->addListener(this);
|
||||
m_togglebut->setButtonText(par->getName(50));
|
||||
addAndMakeVisible(m_togglebut.get());
|
||||
}
|
||||
}
|
||||
|
||||
void ParameterComponent::resized()
|
||||
{
|
||||
if (m_slider)
|
||||
{
|
||||
m_label.setBounds(0, 0, 200, 24);
|
||||
m_slider->setBounds(m_label.getRight() + 1, 0, getWidth() - 2 - m_label.getWidth(), 24);
|
||||
}
|
||||
if (m_togglebut)
|
||||
m_togglebut->setBounds(1, 0, getWidth() - 1, 24);
|
||||
}
|
||||
|
||||
void ParameterComponent::sliderValueChanged(Slider * slid)
|
||||
{
|
||||
if (m_notify_only_on_release == true)
|
||||
return;
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
if (floatpar != nullptr)
|
||||
*floatpar = slid->getValue();
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr)
|
||||
*intpar = slid->getValue();
|
||||
}
|
||||
|
||||
void ParameterComponent::sliderDragStarted(Slider * slid)
|
||||
{
|
||||
m_dragging = true;
|
||||
}
|
||||
|
||||
void ParameterComponent::sliderDragEnded(Slider * slid)
|
||||
{
|
||||
m_dragging = false;
|
||||
if (m_notify_only_on_release == false)
|
||||
return;
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
if (floatpar != nullptr)
|
||||
*floatpar = slid->getValue();
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr)
|
||||
*intpar = slid->getValue();
|
||||
}
|
||||
|
||||
void ParameterComponent::buttonClicked(Button * but)
|
||||
{
|
||||
AudioParameterBool* boolpar = dynamic_cast<AudioParameterBool*>(m_par);
|
||||
if (m_togglebut != nullptr && m_togglebut->getToggleState() != *boolpar)
|
||||
{
|
||||
*boolpar = m_togglebut->getToggleState();
|
||||
}
|
||||
}
|
||||
|
||||
void ParameterComponent::updateComponent()
|
||||
{
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
if (floatpar != nullptr && m_slider != nullptr && m_dragging == false && (float)m_slider->getValue() != *floatpar)
|
||||
{
|
||||
m_slider->setValue(*floatpar, dontSendNotification);
|
||||
}
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr && m_slider != nullptr && m_dragging == false && (int)m_slider->getValue() != *intpar)
|
||||
{
|
||||
m_slider->setValue(*intpar, dontSendNotification);
|
||||
}
|
||||
AudioParameterBool* boolpar = dynamic_cast<AudioParameterBool*>(m_par);
|
||||
if (m_togglebut != nullptr && m_togglebut->getToggleState() != *boolpar)
|
||||
{
|
||||
m_togglebut->setToggleState(*boolpar, dontSendNotification);
|
||||
}
|
||||
}
|
||||
|
@ -95,108 +95,13 @@ class ParameterComponent : public Component,
|
||||
public Slider::Listener, public Button::Listener
|
||||
{
|
||||
public:
|
||||
ParameterComponent(AudioProcessorParameter* par, bool notifyOnlyOnRelease) : m_par(par)
|
||||
{
|
||||
addAndMakeVisible(&m_label);
|
||||
m_label.setText(par->getName(50),dontSendNotification);
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(par);
|
||||
if (floatpar)
|
||||
{
|
||||
m_slider = std::make_unique<MySlider>(&floatpar->range);
|
||||
m_notify_only_on_release = notifyOnlyOnRelease;
|
||||
m_slider->setRange(floatpar->range.start, floatpar->range.end, floatpar->range.interval);
|
||||
m_slider->setValue(*floatpar, dontSendNotification);
|
||||
m_slider->addListener(this);
|
||||
addAndMakeVisible(m_slider.get());
|
||||
}
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(par);
|
||||
if (intpar)
|
||||
{
|
||||
m_slider = std::make_unique<MySlider>();
|
||||
m_notify_only_on_release = notifyOnlyOnRelease;
|
||||
m_slider->setRange(intpar->getRange().getStart(), intpar->getRange().getEnd(), 1.0);
|
||||
m_slider->setValue(*intpar, dontSendNotification);
|
||||
m_slider->addListener(this);
|
||||
addAndMakeVisible(m_slider.get());
|
||||
}
|
||||
AudioParameterChoice* choicepar = dynamic_cast<AudioParameterChoice*>(par);
|
||||
if (choicepar)
|
||||
{
|
||||
|
||||
}
|
||||
AudioParameterBool* boolpar = dynamic_cast<AudioParameterBool*>(par);
|
||||
if (boolpar)
|
||||
{
|
||||
m_togglebut = std::make_unique<ToggleButton>();
|
||||
m_togglebut->setToggleState(*boolpar, dontSendNotification);
|
||||
m_togglebut->addListener(this);
|
||||
m_togglebut->setButtonText(par->getName(50));
|
||||
addAndMakeVisible(m_togglebut.get());
|
||||
}
|
||||
}
|
||||
void resized() override
|
||||
{
|
||||
if (m_slider)
|
||||
{
|
||||
m_label.setBounds(0, 0, 200, 24);
|
||||
m_slider->setBounds(m_label.getRight() + 1, 0, getWidth() - 2 - m_label.getWidth(), 24);
|
||||
}
|
||||
if (m_togglebut)
|
||||
m_togglebut->setBounds(1, 0, getWidth() -1, 24);
|
||||
}
|
||||
void sliderValueChanged(Slider* slid) override
|
||||
{
|
||||
if (m_notify_only_on_release == true)
|
||||
return;
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
if (floatpar!=nullptr)
|
||||
*floatpar = slid->getValue();
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr)
|
||||
*intpar = slid->getValue();
|
||||
}
|
||||
void sliderDragStarted(Slider* slid) override
|
||||
{
|
||||
m_dragging = true;
|
||||
}
|
||||
void sliderDragEnded(Slider* slid) override
|
||||
{
|
||||
m_dragging = false;
|
||||
if (m_notify_only_on_release == false)
|
||||
return;
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
if (floatpar!=nullptr)
|
||||
*floatpar = slid->getValue();
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr)
|
||||
*intpar = slid->getValue();
|
||||
}
|
||||
void buttonClicked(Button* but) override
|
||||
{
|
||||
AudioParameterBool* boolpar = dynamic_cast<AudioParameterBool*>(m_par);
|
||||
if (m_togglebut != nullptr && m_togglebut->getToggleState() != *boolpar)
|
||||
{
|
||||
*boolpar = m_togglebut->getToggleState();
|
||||
}
|
||||
}
|
||||
void updateComponent()
|
||||
{
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
if (floatpar!=nullptr && m_slider != nullptr && m_dragging == false && (float)m_slider->getValue() != *floatpar)
|
||||
{
|
||||
m_slider->setValue(*floatpar, dontSendNotification);
|
||||
}
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr && m_slider != nullptr && m_dragging == false && (int)m_slider->getValue() != *intpar)
|
||||
{
|
||||
m_slider->setValue(*intpar, dontSendNotification);
|
||||
}
|
||||
AudioParameterBool* boolpar = dynamic_cast<AudioParameterBool*>(m_par);
|
||||
if (m_togglebut != nullptr && m_togglebut->getToggleState() != *boolpar)
|
||||
{
|
||||
m_togglebut->setToggleState(*boolpar, dontSendNotification);
|
||||
}
|
||||
}
|
||||
ParameterComponent(AudioProcessorParameter* par, bool notifyOnlyOnRelease);
|
||||
void resized() override;
|
||||
void sliderValueChanged(Slider* slid) override;
|
||||
void sliderDragStarted(Slider* slid) override;
|
||||
void sliderDragEnded(Slider* slid) override;
|
||||
void buttonClicked(Button* but) override;
|
||||
void updateComponent();
|
||||
private:
|
||||
Label m_label;
|
||||
AudioProcessorParameter* m_par = nullptr;
|
||||
|
Loading…
Reference in New Issue
Block a user