diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-10 14:27:44 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-10 14:27:44 +0000 |
commit | 5ace191bff634c0b09eca5e69065afcb7d0cb183 (patch) | |
tree | 26c7a337e87c2f3e419923016342b1b1b06dbcd6 /libs/surfaces/mackie/mcp_buttons.cc | |
parent | ac7ade93bda207d60a5276f8fea5a1f01567095b (diff) |
drastic, fundamental redesign of MCP code
git-svn-id: svn://localhost/ardour2/branches/3.0@11861 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces/mackie/mcp_buttons.cc')
-rw-r--r-- | libs/surfaces/mackie/mcp_buttons.cc | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc index 84674cb7af..253b39db82 100644 --- a/libs/surfaces/mackie/mcp_buttons.cc +++ b/libs/surfaces/mackie/mcp_buttons.cc @@ -25,6 +25,7 @@ #include "ardour/rc_configuration.h" #include "mackie_control_protocol.h" +#include "surface.h" #include "i18n.h" @@ -89,8 +90,8 @@ LedState MackieControlProtocol::left_press (Button &) { Sorted sorted = get_sorted_routes(); - if (sorted.size() > route_table.size()) { - int new_initial = _current_initial_bank - route_table.size(); + if (sorted.size() > n_strips()) { + int new_initial = _current_initial_bank - n_strips(); if (new_initial < 0) { new_initial = 0; } @@ -116,11 +117,13 @@ LedState MackieControlProtocol::right_press (Button &) { Sorted sorted = get_sorted_routes(); - if (sorted.size() > route_table.size()) { - uint32_t delta = sorted.size() - (route_table.size() + _current_initial_bank); + uint32_t strip_cnt = n_strips(); - if (delta > route_table.size()) { - delta = route_table.size(); + if (sorted.size() > strip_cnt) { + uint32_t delta = sorted.size() - (strip_cnt + _current_initial_bank); + + if (delta > strip_cnt) { + delta = strip_cnt; } if (delta > 0) { @@ -230,7 +233,7 @@ LedState MackieControlProtocol::channel_left_press (Button &) { Sorted sorted = get_sorted_routes(); - if (sorted.size() > route_table.size()) { + if (sorted.size() > n_strips()) { prev_track(); return on; } else { @@ -248,7 +251,7 @@ LedState MackieControlProtocol::channel_right_press (Button &) { Sorted sorted = get_sorted_routes(); - if (sorted.size() > route_table.size()) { + if (sorted.size() > n_strips()) { next_track(); return on; } else { @@ -505,17 +508,21 @@ MackieControlProtocol::record_release (Button &) LedState MackieControlProtocol::rewind_press (Button &) { - _jog_wheel.push (JogWheel::speed); - _jog_wheel.transport_direction (-1); - session->request_transport_speed (-_jog_wheel.transport_speed()); + JogWheel* jog = surfaces.front()->jog_wheel(); + assert (jog); + jog->push (JogWheel::speed); + jog->transport_direction (-1); + session->request_transport_speed (-jog->transport_speed()); return on; } LedState MackieControlProtocol::rewind_release (Button &) { - _jog_wheel.pop(); - _jog_wheel.transport_direction (0); + JogWheel* jog = surfaces.front()->jog_wheel(); + assert (jog); + jog->pop(); + jog->transport_direction (0); if (_transport_previously_rolling) { session->request_transport_speed (1.0); } else { @@ -527,17 +534,21 @@ MackieControlProtocol::rewind_release (Button &) LedState MackieControlProtocol::ffwd_press (Button &) { - _jog_wheel.push (JogWheel::speed); - _jog_wheel.transport_direction (1); - session->request_transport_speed (_jog_wheel.transport_speed()); + JogWheel* jog = surfaces.front()->jog_wheel(); + assert (jog); + jog->push (JogWheel::speed); + jog->transport_direction (1); + session->request_transport_speed (jog->transport_speed()); return on; } LedState MackieControlProtocol::ffwd_release (Button &) { - _jog_wheel.pop(); - _jog_wheel.transport_direction (0); + JogWheel* jog = surfaces.front()->jog_wheel(); + assert (jog); + jog->pop(); + jog->transport_direction (0); if (_transport_previously_rolling) { session->request_transport_speed (1.0); } else { |