Mackie Control: Fix Flip mode getting confused if subview is not sends.
authorLen Ovens <len@ovenwerks.net>
Tue, 2 Feb 2016 17:38:55 +0000 (09:38 -0800)
committerLen Ovens <len@ovenwerks.net>
Tue, 2 Feb 2016 17:38:55 +0000 (09:38 -0800)
libs/surfaces/mackie/mackie_control_protocol.cc
libs/surfaces/mackie/mcp_buttons.cc

index 6b03d010ffc1cecee0b32d07ef8b46e88e31c7f4..d6a07ba64367a3b6a00d2bff9a934e7be869e4b6 100644 (file)
@@ -1708,6 +1708,10 @@ MackieControlProtocol::redisplay_subview_mode ()
 int
 MackieControlProtocol::set_subview_mode (SubViewMode sm, boost::shared_ptr<Route> r)
 {
+       if (_flip_mode != Normal) {
+               set_flip_mode (Normal);
+       }
+
        boost::shared_ptr<Route> old_route = _subview_route;
 
        if (!subview_mode_would_be_ok (sm, r)) {
@@ -1823,6 +1827,9 @@ MackieControlProtocol::set_subview_mode (SubViewMode sm, boost::shared_ptr<Route
 void
 MackieControlProtocol::set_view_mode (ViewMode m)
 {
+       if (_flip_mode != Normal) {
+               set_flip_mode (Normal);
+       }
        ViewMode old_view_mode = _view_mode;
 
        _view_mode = m;
index a08575fd7c5eb5d63965e14ad224ee5add250138..78d9596a9fb7a4d1b791d7ab27a5b38b33474d33 100644 (file)
@@ -738,12 +738,14 @@ MackieControlProtocol::dyn_release (Button &)
 LedState
 MackieControlProtocol::flip_press (Button &)
 {
-       if (_flip_mode != Normal) {
-               set_flip_mode (Normal);
-       } else {
-               set_flip_mode (Mirror);
+       if (subview_mode() == MackieControlProtocol::Sends) {
+               if (_flip_mode != Normal) {
+                       set_flip_mode (Normal);
+               } else {
+                       set_flip_mode (Mirror);
+               }
+               return ((_flip_mode != Normal) ? on : off);
        }
-       return ((_flip_mode != Normal) ? on : off);
 }
 LedState
 MackieControlProtocol::flip_release (Button &)