boost::shared_ptr<AutomationControl> comp_speed_controllable () const;
boost::shared_ptr<AutomationControl> comp_mode_controllable () const;
boost::shared_ptr<AutomationControl> comp_makeup_controllable () const;
- boost::shared_ptr<AutomationControl> comp_redux_controllable () const;
+ boost::shared_ptr<ReadOnlyControl> comp_redux_controllable () const;
/* @param mode must be supplied by the comp_mode_controllable(). All other values
* result in undefined behaviour
namespace ARDOUR {
class AutomationControl;
+class ReadOnlyControl;
class GainControl;
class PeakMeter;
class SoloControl;
virtual boost::shared_ptr<AutomationControl> comp_speed_controllable () const = 0;
virtual boost::shared_ptr<AutomationControl> comp_mode_controllable () const = 0;
virtual boost::shared_ptr<AutomationControl> comp_makeup_controllable () const = 0;
- virtual boost::shared_ptr<AutomationControl> comp_redux_controllable () const = 0;
+ virtual boost::shared_ptr<ReadOnlyControl> comp_redux_controllable () const = 0;
/* @param mode must be supplied by the comp_mode_controllable(). All other values
* result in undefined behaviour
boost::shared_ptr<AutomationControl> comp_speed_controllable () const { return boost::shared_ptr<AutomationControl>(); }
boost::shared_ptr<AutomationControl> comp_mode_controllable () const { return boost::shared_ptr<AutomationControl>(); }
boost::shared_ptr<AutomationControl> comp_makeup_controllable () const { return boost::shared_ptr<AutomationControl>(); }
- boost::shared_ptr<AutomationControl> comp_redux_controllable () const { return boost::shared_ptr<AutomationControl>(); }
+ boost::shared_ptr<ReadOnlyControl> comp_redux_controllable () const { return boost::shared_ptr<ReadOnlyControl>(); }
std::string comp_mode_name (uint32_t mode) const { return std::string(); }
std::string comp_speed_name (uint32_t mode) const { return std::string(); }
boost::shared_ptr<AutomationControl> send_level_controllable (uint32_t n) const { return boost::shared_ptr<AutomationControl>(); }
return boost::shared_ptr<AutomationControl>();
#endif
}
-boost::shared_ptr<AutomationControl>
+boost::shared_ptr<ReadOnlyControl>
Route::comp_redux_controllable () const
{
#ifdef MIXBUS
boost::shared_ptr<PluginInsert> comp = ch_comp();
if (!comp) {
- return boost::shared_ptr<AutomationControl>();
+ return boost::shared_ptr<ReadOnlyControl>();
+ }
+ if (is_master()) {
+ return comp->control_output (2);
+ } else {
+ return comp->control_output (6);
}
- // XXX redux is an output-port, query via comp->plugin(0)->get_parameter (6)
- return boost::dynamic_pointer_cast<ARDOUR::AutomationControl> (comp->control (Evoral::Parameter (ARDOUR::PluginAutomation, 0, 6)));
#else
- return boost::shared_ptr<AutomationControl>();
+ return boost::shared_ptr<ReadOnlyControl>();
#endif
}
case CompMakeup:
control = r->comp_makeup_controllable ();
break;
- case CompRedux:
- control = r->comp_redux_controllable ();
- break;
case CompEnable:
control = r->comp_enable_controllable ();
break;
boost::shared_ptr<AutomationControl> sc = r->comp_speed_controllable ();
boost::shared_ptr<AutomationControl> mc = r->comp_mode_controllable ();
boost::shared_ptr<AutomationControl> kc = r->comp_makeup_controllable ();
- boost::shared_ptr<AutomationControl> rc = r->comp_redux_controllable ();
boost::shared_ptr<AutomationControl> ec = r->comp_enable_controllable ();
uint32_t pos = _surface->mcp().global_index (*this);
if (sc) { available.push_back (sc); params.push_back (CompSpeed); }
if (mc) { available.push_back (mc); params.push_back (CompMode); }
if (kc) { available.push_back (kc); params.push_back (CompMakeup); }
- if (rc) { available.push_back (rc); params.push_back (CompRedux); }
if (ec) { available.push_back (ec); params.push_back (CompEnable); }
if (pos >= available.size()) {