using namespace PBD;
SoloIsolateControl::SoloIsolateControl (Session& session, std::string const & name, Soloable& s, Muteable& m)
- : SlavableAutomationControl (session, SoloAutomation, ParameterDescriptor (SoloIsolateAutomation),
+ : SlavableAutomationControl (session, SoloIsolateAutomation, ParameterDescriptor (SoloIsolateAutomation),
boost::shared_ptr<AutomationList>(new AutomationList(Evoral::Parameter(SoloIsolateAutomation))),
name)
, _soloable (s)
return;
}
- set_solo_isolated (val == 0.0 ? false : true, gcd);
+ set_solo_isolated (val, gcd);
/* this sets the Evoral::Control::_user_value for us, which will
be retrieved by AutomationControl::get_value (), and emits Changed
void
SoloIsolateControl::set_solo_isolated (bool yn, Controllable::GroupControlDisposition group_override)
{
- if (_soloable.can_solo()) {
+ if (!_soloable.can_solo()) {
return;
}
}
}
-
if (!changed) {
return;
}
SoloIsolateControl::get_value () const
{
if (slaved()) {
- Glib::Threads::RWLock::ReaderLock lm (master_lock);
- return get_masters_value_locked () ? 1.0 : 0.0;
+ return solo_isolated() || get_masters_value ();
}
if (_list && boost::dynamic_pointer_cast<AutomationList>(_list)->automation_playback()) {
return AutomationControl::get_value();
}
- return solo_isolated () ? 1.0 : 0.0;
+ return solo_isolated ();
}
int