summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/mcp_buttons.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-04-10 14:27:44 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-04-10 14:27:44 +0000
commit5ace191bff634c0b09eca5e69065afcb7d0cb183 (patch)
tree26c7a337e87c2f3e419923016342b1b1b06dbcd6 /libs/surfaces/mackie/mcp_buttons.cc
parentac7ade93bda207d60a5276f8fea5a1f01567095b (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.cc47
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 {