From 82f31fe6242d709fd49d21b8cc27beef1addd809 Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Wed, 16 Dec 2015 14:38:21 -0800 Subject: [PATCH] Mackie Control: Re-enable view_mode display and make sure all text vanishes after timeout. --- .../mackie/mackie_control_protocol.cc | 1 + libs/surfaces/mackie/strip.cc | 28 ++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 45e2a9b0cb..dfd3fe6334 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -1706,6 +1706,7 @@ MackieControlProtocol::set_view_mode (ViewMode m) set_subview_mode (None, boost::shared_ptr()); switch_banks(_last_bank[_view_mode], true); + display_view_mode (); } void diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc index d3b366539d..6b4d55b237 100644 --- a/libs/surfaces/mackie/strip.cc +++ b/libs/surfaces/mackie/strip.cc @@ -522,11 +522,16 @@ Strip::show_route_name () return; } + string fullname = string(); if (!_route) { - return; + // make sure first three strips get cleared of view mode + if (_index > 2) { + return; + } + } else { + fullname = _route->name(); } string line1; - string fullname = _route->name(); if (fullname.length() <= 6) { line1 = fullname; @@ -1092,9 +1097,16 @@ Strip::periodic (ARDOUR::microseconds_t now) { bool reshow_vpot_mode = false; bool reshow_name = false; + bool good_strip = true; if (!_route) { - return; + // view mode may cover as many as 3 strips + // needs to be cleared when there are less than 3 routes + if (_index > 2) { + return; + } else { + good_strip = false; + } } if (_block_screen_redisplay_until >= now) { @@ -1109,7 +1121,7 @@ Strip::periodic (ARDOUR::microseconds_t now) /* timeout reached, reset */ _block_screen_redisplay_until = 0; - reshow_vpot_mode = true; + reshow_vpot_mode = (true && good_strip); reshow_name = true; } @@ -1120,7 +1132,7 @@ Strip::periodic (ARDOUR::microseconds_t now) /* timeout reached, reset */ _block_vpot_mode_redisplay_until = 0; - reshow_vpot_mode = true; + reshow_vpot_mode = (true && good_strip); } if (reshow_name) { @@ -1129,14 +1141,16 @@ Strip::periodic (ARDOUR::microseconds_t now) if (reshow_vpot_mode) { return_to_vpot_mode_display (); - } else { + } else if (good_strip) { /* no point doing this if we just switched back to vpot mode display */ update_automation (); } meters: - update_meter (); + if (good_strip) { + update_meter (); + } } void