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:
parent
66255a13c1
commit
d1af0b89a8
@ -316,8 +316,10 @@ MackieControlProtocol::switch_banks (uint32_t initial, bool force)
|
||||
uint32_t strip_cnt = n_strips (false); // do not include locked strips
|
||||
// in this count
|
||||
|
||||
if (sorted.size() <= strip_cnt && !force) {
|
||||
/* no banking - not enough routes to fill all strips */
|
||||
if (sorted.size() <= strip_cnt && _current_initial_bank == 0 && !force) {
|
||||
/* no banking - not enough routes to fill all strips and we're
|
||||
* not at the first one.
|
||||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -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",
|
||||
_current_initial_bank, strip_cnt, route_cnt));
|
||||
|
||||
if (route_cnt && route_cnt > strip_cnt) {
|
||||
if (_current_initial_bank > strip_cnt) {
|
||||
switch_banks (_current_initial_bank - strip_cnt);
|
||||
} else {
|
||||
switch_banks (0);
|
||||
}
|
||||
|
||||
return on;
|
||||
if (_current_initial_bank > strip_cnt) {
|
||||
switch_banks (_current_initial_bank - strip_cnt);
|
||||
} else {
|
||||
switch_banks (0);
|
||||
}
|
||||
return off;
|
||||
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
@ -128,15 +125,12 @@ MackieControlProtocol::right_press (Button &)
|
||||
uint32_t route_cnt = sorted.size();
|
||||
|
||||
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);
|
||||
switch_banks (new_initial);
|
||||
return on;
|
||||
}
|
||||
uint32_t new_initial = std::min (_current_initial_bank + strip_cnt, route_cnt - 1);
|
||||
switch_banks (new_initial);
|
||||
|
||||
return off;
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
|
Loading…
Reference in New Issue
Block a user