From 7a453d232923fc287f93bb0910e9c0bafc375a57 Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Tue, 20 Oct 2015 19:31:04 -0700 Subject: [PATCH] Make sure Mackie Control view modes start with route 1 except Mixer mode goes to last position. --- .../surfaces/mackie/mackie_control_protocol.h | 1 + libs/surfaces/mackie/mcp_buttons.cc | 27 ++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 05dada3d6c..0976da5197 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -328,6 +328,7 @@ class MackieControlProtocol ARDOUR::RouteNotificationList _last_selected_routes; XMLNode* configuration_state; int state_version; + int _last_mix_bank; boost::shared_ptr _master_surface; diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc index 4f8306d717..49550d2caf 100644 --- a/libs/surfaces/mackie/mcp_buttons.cc +++ b/libs/surfaces/mackie/mcp_buttons.cc @@ -857,8 +857,11 @@ MackieControlProtocol::miditracks_press (Mackie::Button&) Mackie::LedState MackieControlProtocol::miditracks_release (Mackie::Button&) { + if (_view_mode == Mixer) { + _last_mix_bank = _current_initial_bank; + } set_view_mode (MidiTracks); - refresh_current_bank(); + switch_banks(0, true); return none; } Mackie::LedState @@ -879,8 +882,11 @@ MackieControlProtocol::audiotracks_press (Mackie::Button&) Mackie::LedState MackieControlProtocol::audiotracks_release (Mackie::Button&) { + if (_view_mode == Mixer) { + _last_mix_bank = _current_initial_bank; + } set_view_mode (AudioTracks); - refresh_current_bank(); + switch_banks(0, true); return none; } Mackie::LedState @@ -901,8 +907,11 @@ MackieControlProtocol::aux_press (Mackie::Button&) Mackie::LedState MackieControlProtocol::aux_release (Mackie::Button&) { + if (_view_mode == Mixer) { + _last_mix_bank = _current_initial_bank; + } set_view_mode (Auxes); - refresh_current_bank(); + switch_banks(0, true); return none; } Mackie::LedState @@ -913,8 +922,11 @@ MackieControlProtocol::busses_press (Mackie::Button&) Mackie::LedState MackieControlProtocol::busses_release (Mackie::Button&) { + if (_view_mode == Mixer) { + _last_mix_bank = _current_initial_bank; + } set_view_mode (Busses); - refresh_current_bank(); + switch_banks(0, true); return none; } Mackie::LedState @@ -935,8 +947,11 @@ MackieControlProtocol::user_press (Mackie::Button&) Mackie::LedState MackieControlProtocol::user_release (Mackie::Button&) { + if (_view_mode == Mixer) { + _last_mix_bank = _current_initial_bank; + } set_view_mode (Selected); - refresh_current_bank(); + switch_banks(0, true); return none; } Mackie::LedState @@ -1003,7 +1018,7 @@ Mackie::LedState MackieControlProtocol::view_press (Mackie::Button&) { set_view_mode (Mixer); - refresh_current_bank(); + switch_banks (_last_mix_bank, true); return none; } Mackie::LedState