LCXL: fix off by one cause by fader8master
[ardour.git] / libs / surfaces / faderport / operations.cc
index cb0351e615298026381600a05271c45c7532bc47..ad0bf3ebd9f398061daafce00c55ab863fdd78be 100644 (file)
@@ -22,6 +22,7 @@
 #include "ardour/pannable.h"
 #include "ardour/plugin_insert.h"
 #include "ardour/rc_configuration.h"
+#include "ardour/record_enable_control.h"
 #include "ardour/session.h"
 #include "ardour/track.h"
 #include "ardour/types.h"
@@ -40,7 +41,7 @@ static const double encoder_divider = 24.0;
 void
 FaderPort::left ()
 {
-       access_action ("Editor/select-prev-route");
+       access_action ("Editor/select-prev-stripable");
 
        //ToDo:  bank by 8?
        //if ( (button_state & ShiftDown) == ShiftDown )
@@ -50,7 +51,7 @@ FaderPort::left ()
 void
 FaderPort::right ()
 {
-       access_action ("Editor/select-next-route");
+       access_action ("Editor/select-next-stripable");
 
        //ToDo:  bank by 8?
        //if ( (button_state & ShiftDown) == ShiftDown )
@@ -129,9 +130,7 @@ FaderPort::mute ()
                return;
        }
 
-       boost::shared_ptr<ControlList> cl (new ControlList);
-       cl->push_back (_current_stripable->mute_control());
-       session->set_controls (cl, !_current_stripable->mute_control()->muted(), PBD::Controllable::UseGroup);
+       _current_stripable->mute_control()->set_value (!_current_stripable->mute_control()->muted(), PBD::Controllable::UseGroup);
 }
 
 void
@@ -141,7 +140,7 @@ FaderPort::solo ()
                return;
        }
 
-       _current_stripable->solo_control()->set_value (_current_stripable->solo_control()->soloed() ? 0.0 : 1.0, PBD::Controllable::UseGroup);
+       session->set_control (_current_stripable->solo_control(), !_current_stripable->solo_control()->self_soloed(), PBD::Controllable::UseGroup);
 }
 
 void