summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Graef <aggraef@gmail.com>2018-09-24 09:31:16 +0200
committerPaul Davis <paul@linuxaudiosystems.com>2018-09-27 11:31:13 -0400
commit38bccabeca189d32278f4b3fda9cc6daf07d4714 (patch)
tree40d98bfec8ec12889d1adf77c719c747991cfa78
parent936f6814ac6456cd378495044ca78f12649b37b8 (diff)
MCP: Allow the current bank to move right one channel even if this results in a partial bank.
Rationale: This change is trivial, but Ardour's behavior of refusing to move right one channel unless a full bank remains has been there for a long time, and there are probably good reasons for it. This design was likely conceived when all MCP-compatible devices had banks of 8 faders anyway. However, with the advent of affordable single-strip devices like the X-Touch ONE it becomes a real issue. Single-strip devices can only access the first channel in the current bank, so relaxing this restriction is the easiest way to enable such devices to access all strips, while still maintaining the usual bank size of 8. Note that maintaining a bank size of 8 is beneficial even with single-strip devices for several reasons: - It allows use of the bank switch buttons to flip through a large number of strips more quickly. - It maintains compatibility with existing device descriptions. E.g., the X-Touch ONE can be used with the existing X-Touch device description without any ado. - Most importantly, it maintains compatibility with other MCP-compatible controllers which do have 8 strips and may be connected to Ardour at the same time. E.g., one might want to use an X-Touch Mini, or even a full-size X-Touch along with the X-Touch ONE in some use cases. Changing the bank size to 1 affects all connected MCP devices, so you'd rather keep the bank size to 8 in such scenarios. (Ardour should preferably have separate bank size settings for each connected MCP device, but that isn't possible right now since only one MCP device description can be active at the same time.)
-rwxr-xr-xlibs/surfaces/mackie/mackie_control_protocol.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index f4ed70c426..ba99737283 100755
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -218,7 +218,7 @@ void
MackieControlProtocol::next_track()
{
Sorted sorted = get_sorted_stripables();
- if (_current_initial_bank + n_strips() < sorted.size()) {
+ if (_current_initial_bank + 1 < sorted.size()) {
switch_banks (_current_initial_bank + 1);
}
}