summaryrefslogtreecommitdiff
path: root/muse2/muse/plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/plugin.cpp')
-rw-r--r--muse2/muse/plugin.cpp92
1 files changed, 69 insertions, 23 deletions
diff --git a/muse2/muse/plugin.cpp b/muse2/muse/plugin.cpp
index 215a7844..e6027c6f 100644
--- a/muse2/muse/plugin.cpp
+++ b/muse2/muse/plugin.cpp
@@ -445,7 +445,44 @@ float midi2LadspaValue(const LADSPA_Descriptor* plugin, unsigned long port, int
return ret;
}
+//---------------------------------------------------------
+// ladspaCtrlValueType
+//---------------------------------------------------------
+CtrlValueType ladspaCtrlValueType(const LADSPA_Descriptor* plugin, int port)
+{
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[port];
+ LADSPA_PortRangeHintDescriptor desc = range.HintDescriptor;
+
+ if(desc & LADSPA_HINT_INTEGER)
+ return VAL_INT;
+ else if(desc & LADSPA_HINT_LOGARITHMIC)
+ return VAL_LOG;
+ else if(desc & LADSPA_HINT_TOGGLED)
+ return VAL_BOOL;
+ else
+ return VAL_LINEAR;
+}
+
+//---------------------------------------------------------
+// ladspaCtrlMode
+//---------------------------------------------------------
+
+CtrlList::Mode ladspaCtrlMode(const LADSPA_Descriptor* plugin, int port)
+{
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[port];
+ LADSPA_PortRangeHintDescriptor desc = range.HintDescriptor;
+
+ if(desc & LADSPA_HINT_INTEGER)
+ return CtrlList::DISCRETE;
+ else if(desc & LADSPA_HINT_LOGARITHMIC)
+ return CtrlList::INTERPOLATE;
+ else if(desc & LADSPA_HINT_TOGGLED)
+ return CtrlList::DISCRETE;
+ else
+ return CtrlList::INTERPOLATE;
+}
+
// Works but not needed.
/*
//---------------------------------------------------------
@@ -1003,6 +1040,24 @@ float Plugin::defaultValue(unsigned long port) const
}
//---------------------------------------------------------
+// ctrlValueType
+//---------------------------------------------------------
+
+CtrlValueType Plugin::ctrlValueType(unsigned long i) const
+ {
+ return ladspaCtrlValueType(plugin, i);
+ }
+
+//---------------------------------------------------------
+// ctrlMode
+//---------------------------------------------------------
+
+CtrlList::Mode Plugin::ctrlMode(unsigned long i) const
+ {
+ return ladspaCtrlMode(plugin, i);
+ }
+
+//---------------------------------------------------------
// loadPluginLib
//---------------------------------------------------------
@@ -1699,21 +1754,12 @@ void PluginI::updateControllers()
for(unsigned long i = 0; i < controlPorts; ++i)
//audio->msgSetPluginCtrlVal(this, genACnum(_id, i), controls[i].val);
// p3.3.43
- //audio->msgSetPluginCtrlVal(_track, genACnum(_id, i), controls[i].val);
+ audio->msgSetPluginCtrlVal(_track, genACnum(_id, i), controls[i].val);
// p4.0.21 audio->msgXXX waits. Do we really need to?
- _track->setPluginCtrlVal(genACnum(_id, i), controls[i].val);
+ //_track->setPluginCtrlVal(genACnum(_id, i), controls[i].val); // TODO A faster bulk message
}
//---------------------------------------------------------
-// valueType
-//---------------------------------------------------------
-
-CtrlValueType PluginI::valueType() const
- {
- return VAL_LINEAR;
- }
-
-//---------------------------------------------------------
// setChannel
//---------------------------------------------------------
@@ -3718,9 +3764,9 @@ void PluginGui::ctrlPressed(int param)
if(track)
{
// p3.3.43
- //audio->msgSetPluginCtrlVal(track, id, val);
+ audio->msgSetPluginCtrlVal(track, id, val);
// p4.0.21 audio->msgXXX waits. Do we really need to?
- track->setPluginCtrlVal(id, val);
+ //track->setPluginCtrlVal(id, val);
track->startAutoRecord(id, val);
}
@@ -3737,9 +3783,9 @@ void PluginGui::ctrlPressed(int param)
if(track)
{
// p3.3.43
- //audio->msgSetPluginCtrlVal(track, id, val);
+ audio->msgSetPluginCtrlVal(track, id, val);
// p4.0.21 audio->msgXXX waits. Do we really need to?
- track->setPluginCtrlVal(id, val);
+ //track->setPluginCtrlVal(id, val);
track->startAutoRecord(id, val);
}
@@ -3831,9 +3877,9 @@ void PluginGui::sliderChanged(double val, int param)
if(track)
{
// p3.3.43
- //audio->msgSetPluginCtrlVal(track, id, val);
+ audio->msgSetPluginCtrlVal(track, id, val);
// p4.0.21 audio->msgXXX waits. Do we really need to?
- track->setPluginCtrlVal(id, val);
+ //track->setPluginCtrlVal(id, val);
track->recordAutomation(id, val);
}
@@ -3875,9 +3921,9 @@ void PluginGui::labelChanged(double val, int param)
if(track)
{
// p3.3.43
- //audio->msgSetPluginCtrlVal(track, id, val);
+ audio->msgSetPluginCtrlVal(track, id, val);
// p4.0.21 audio->msgXXX waits. Do we really need to?
- track->setPluginCtrlVal(id, val);
+ //track->setPluginCtrlVal(id, val);
track->startAutoRecord(id, val);
}
@@ -4277,9 +4323,9 @@ void PluginGui::guiParamChanged(int idx)
//if(track)
//{
// p3.3.43
- //audio->msgSetPluginCtrlVal(track, id, val);
+ audio->msgSetPluginCtrlVal(track, id, val);
// p4.0.21 audio->msgXXX waits. Do we really need to?
- track->setPluginCtrlVal(id, val);
+ //track->setPluginCtrlVal(id, val);
switch(type)
{
@@ -4413,9 +4459,9 @@ void PluginGui::guiSliderPressed(int idx)
//audio->msgSetPluginCtrlVal(((PluginI*)plugin), id, val);
// p3.3.43
- //audio->msgSetPluginCtrlVal(track, id, val);
+ audio->msgSetPluginCtrlVal(track, id, val);
// p4.0.21 audio->msgXXX waits. Do we really need to?
- track->setPluginCtrlVal(id, val);
+ //track->setPluginCtrlVal(id, val);
track->startAutoRecord(id, val);