Preliminary work to enable multichannel output again with a parameter to determine the output channels to render
This commit is contained in:
@ -61,16 +61,21 @@ inline void attachCallback(Button& button, std::function<void()> callback)
|
||||
class MySlider : public Slider
|
||||
{
|
||||
public:
|
||||
MySlider() {}
|
||||
MySlider(NormalisableRange<float>* range) : m_range(range)
|
||||
{
|
||||
}
|
||||
double proportionOfLengthToValue(double x) override
|
||||
{
|
||||
return m_range->convertFrom0to1(x);
|
||||
if (m_range)
|
||||
return m_range->convertFrom0to1(x);
|
||||
return Slider::proportionOfLengthToValue(x);
|
||||
}
|
||||
double valueToProportionOfLength(double x) override
|
||||
{
|
||||
return m_range->convertTo0to1(x);
|
||||
if (m_range)
|
||||
return m_range->convertTo0to1(x);
|
||||
return Slider::valueToProportionOfLength(x);
|
||||
}
|
||||
private:
|
||||
NormalisableRange<float>* m_range = nullptr;
|
||||
@ -94,6 +99,16 @@ public:
|
||||
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)
|
||||
{
|
||||
@ -121,7 +136,11 @@ public:
|
||||
if (m_notify_only_on_release == true)
|
||||
return;
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
*floatpar = slid->getValue();
|
||||
if (floatpar!=nullptr)
|
||||
*floatpar = slid->getValue();
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr)
|
||||
*intpar = slid->getValue();
|
||||
}
|
||||
void sliderDragStarted(Slider* slid) override
|
||||
{
|
||||
@ -133,7 +152,11 @@ public:
|
||||
if (m_notify_only_on_release == false)
|
||||
return;
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
*floatpar = slid->getValue();
|
||||
if (floatpar!=nullptr)
|
||||
*floatpar = slid->getValue();
|
||||
AudioParameterInt* intpar = dynamic_cast<AudioParameterInt*>(m_par);
|
||||
if (intpar != nullptr)
|
||||
*intpar = slid->getValue();
|
||||
}
|
||||
void buttonClicked(Button* but) override
|
||||
{
|
||||
@ -146,10 +169,15 @@ public:
|
||||
void updateComponent()
|
||||
{
|
||||
AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(m_par);
|
||||
if (m_slider != nullptr && m_dragging == false && (float)m_slider->getValue() != *floatpar)
|
||||
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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user