13
0

MCP: failure to rebank for cases where num_routes < num_strips but we're not on bank 0

git-svn-id: svn://localhost/ardour2/branches/3.0@12112 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-04-27 20:35:45 +00:00
parent 66255a13c1
commit d1af0b89a8
2 changed files with 14 additions and 18 deletions

View File

@ -316,8 +316,10 @@ MackieControlProtocol::switch_banks (uint32_t initial, bool force)
uint32_t strip_cnt = n_strips (false); // do not include locked strips uint32_t strip_cnt = n_strips (false); // do not include locked strips
// in this count // in this count
if (sorted.size() <= strip_cnt && !force) { if (sorted.size() <= strip_cnt && _current_initial_bank == 0 && !force) {
/* no banking - not enough routes to fill all strips */ /* no banking - not enough routes to fill all strips and we're
* not at the first one.
*/
return; return;
} }

View File

@ -102,16 +102,13 @@ MackieControlProtocol::left_press (Button &)
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("bank left with current initial = %1 nstrips = %2 tracks/busses = %3\n", DEBUG_TRACE (DEBUG::MackieControl, string_compose ("bank left with current initial = %1 nstrips = %2 tracks/busses = %3\n",
_current_initial_bank, strip_cnt, route_cnt)); _current_initial_bank, strip_cnt, route_cnt));
if (route_cnt && route_cnt > strip_cnt) { if (_current_initial_bank > strip_cnt) {
if (_current_initial_bank > strip_cnt) { switch_banks (_current_initial_bank - strip_cnt);
switch_banks (_current_initial_bank - strip_cnt); } else {
} else { switch_banks (0);
switch_banks (0);
}
return on;
} }
return off;
return on;
} }
LedState LedState
@ -128,15 +125,12 @@ MackieControlProtocol::right_press (Button &)
uint32_t route_cnt = sorted.size(); uint32_t route_cnt = sorted.size();
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("bank right with current initial = %1 nstrips = %2 tracks/busses = %3\n", DEBUG_TRACE (DEBUG::MackieControl, string_compose ("bank right with current initial = %1 nstrips = %2 tracks/busses = %3\n",
_current_initial_bank, strip_cnt, sorted.size())); _current_initial_bank, strip_cnt, route_cnt));
if (route_cnt && route_cnt > strip_cnt) { uint32_t new_initial = std::min (_current_initial_bank + strip_cnt, route_cnt - 1);
uint32_t new_initial = std::min (_current_initial_bank + strip_cnt, route_cnt - 1); switch_banks (new_initial);
switch_banks (new_initial);
return on;
}
return off; return on;
} }
LedState LedState