Mackie Control: Added hidden tracks view mode.
authorLen Ovens <len@ovenwerks.net>
Sat, 16 Jan 2016 15:32:30 +0000 (07:32 -0800)
committerLen Ovens <len@ovenwerks.net>
Sat, 16 Jan 2016 15:32:30 +0000 (07:32 -0800)
libs/surfaces/mackie/mackie_control_protocol.cc
libs/surfaces/mackie/mackie_control_protocol.h
libs/surfaces/mackie/mcp_buttons.cc
libs/surfaces/mackie/surface.cc

index 5f8c959867b6f8fb7f0e496c5a5159d633128295..97f96157d0b838dc3dbdfae46cd17b2a79ff4e33 100644 (file)
@@ -304,15 +304,18 @@ MackieControlProtocol::get_sorted_routes()
                        }
                        break;
                case AudioTracks:
+                       if (route->route_group()) {
+                               route->route_group()->set_active (true, this);
+                       }
                        if (is_audio_track(route) && !is_hidden(route)) {
-                               if (route->route_group()) {
-                                       route->route_group()->set_active (true, this);
-                               }
                                sorted.push_back (route);
                                remote_ids.insert (route->remote_control_id());
                        }
                        break;
                case Busses:
+                       if (route->route_group()) {
+                               route->route_group()->set_active (true, this);
+                       }
                        if (Profile->get_mixbus()) {
 #ifdef MIXBUS
                                if (route->mixbus()) {
@@ -322,19 +325,16 @@ MackieControlProtocol::get_sorted_routes()
 #endif                         
                        } else {
                                if (!is_track(route) && !is_hidden(route)) {
-                                       if (route->route_group()) {
-                                               route->route_group()->set_active (true, this);
-                                       }
                                        sorted.push_back (route);
                                        remote_ids.insert (route->remote_control_id());
                                }
                        }
                        break;
                case MidiTracks:
+                       if (route->route_group()) {
+                               route->route_group()->set_active (true, this);
+                       }
                        if (is_midi_track(route) && !is_hidden(route)) {
-                               if (route->route_group()) {
-                                       route->route_group()->set_active (true, this);
-                               }
                                sorted.push_back (route);
                                remote_ids.insert (route->remote_control_id());
                        }
@@ -342,10 +342,20 @@ MackieControlProtocol::get_sorted_routes()
                case Plugins:
                        break;
                case Auxes: // in ardour, for now aux and buss are same. for mixbus, see "Busses" case above
+                       if (route->route_group()) {
+                               route->route_group()->set_active (true, this);
+                       }
                        if (!is_track(route) && !is_hidden(route)) {
-                               if (route->route_group()) {
-                                       route->route_group()->set_active (true, this);
-                               }
+                               sorted.push_back (route);
+                               remote_ids.insert (route->remote_control_id());
+                       }
+                       break;
+               case Hidden: // Show all the tracks we have hidden
+                       if (route->route_group()) {
+                               route->route_group()->set_active (true, this);
+                       }
+                       if (is_hidden(route)) {
+                               // maybe separate groups
                                sorted.push_back (route);
                                remote_ids.insert (route->remote_control_id());
                        }
index f5352731c551c3ded4b1110f2fd4666eb684bade..55696f4a3c3a8469ab636f1e6951ac4ebc37dcdd 100644 (file)
@@ -109,6 +109,7 @@ class MackieControlProtocol
                Busses,
                Auxes,
                Selected,
+               Hidden,
                Plugins,
        };
 
index d91cef0168c918844dd93335036b7e8cfc21198f..0d60fe70b62595754b45b1017566f297954eb9aa 100644 (file)
@@ -960,6 +960,7 @@ MackieControlProtocol::outputs_press (Mackie::Button&)
 Mackie::LedState
 MackieControlProtocol::outputs_release (Mackie::Button&)
 {
+       set_view_mode (Hidden);
        return none;
 }
 Mackie::LedState
index 7aa047fcf394dc6edf6457493e6736f0df68d57a..acc997e652f2d2bad88d16ce0ab9651669290c64 100644 (file)
@@ -1094,10 +1094,15 @@ Surface::update_view_mode_display ()
                id = Button::Aux;
                text = _("Auxes");
                break;
+       case MackieControlProtocol::Hidden:
+               show_two_char_display ("HI");
+               id = Button::Outputs;
+               text = _("Hidden Tracks");
+               break;
        case MackieControlProtocol::Selected:
                show_two_char_display ("SE");
                id = Button::User;
-               text = _("Selected Routes");
+               text = _("Selected Tracks");
                break;
        default:
                break;
@@ -1110,6 +1115,7 @@ Surface::update_view_mode_display ()
        view_mode_buttons.push_back (Button::AudioTracks);
        view_mode_buttons.push_back (Button::MidiTracks);
        view_mode_buttons.push_back (Button::Aux);
+       view_mode_buttons.push_back (Button::Outputs);
        view_mode_buttons.push_back (Button::User);
 
        if (id >= 0) {