fix solo isolate controls
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 21 Apr 2016 16:32:35 +0000 (12:32 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 31 May 2016 19:30:41 +0000 (15:30 -0400)
libs/ardour/solo_isolate_control.cc

index 13770b174e616b8b673e3067782cf261ea17c0fe..a913a9810e45b4b9691cbde9f5595751b7bff099 100644 (file)
@@ -28,7 +28,7 @@ using namespace std;
 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)
@@ -97,7 +97,7 @@ SoloIsolateControl::actually_set_value (double val, PBD::Controllable::GroupCont
                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
@@ -110,7 +110,7 @@ SoloIsolateControl::actually_set_value (double val, PBD::Controllable::GroupCont
 void
 SoloIsolateControl::set_solo_isolated (bool yn, Controllable::GroupControlDisposition group_override)
 {
-       if (_soloable.can_solo()) {
+       if (!_soloable.can_solo()) {
                return;
        }
 
@@ -130,7 +130,6 @@ SoloIsolateControl::set_solo_isolated (bool yn, Controllable::GroupControlDispos
                }
        }
 
-
        if (!changed) {
                return;
        }