Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <algorithm>
+
#include "pbd/memento_command.h"
#include "ardour/debug.h"
MackieControlProtocol::left_press (Button &)
{
Sorted sorted = get_sorted_routes();
- uint32_t strip_cnt = n_strips ();
+ uint32_t strip_cnt = n_strips ();
+ uint32_t route_cnt = sorted.size();
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("bank left 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 (sorted.size() > strip_cnt) {
- int new_initial = _current_initial_bank - strip_cnt;
- if (new_initial < 0) {
- new_initial = 0;
- }
-
- if (new_initial != int (_current_initial_bank)) {
- switch_banks (new_initial);
- }
-
- return on;
+ if (_current_initial_bank > strip_cnt) {
+ switch_banks (_current_initial_bank - strip_cnt);
} else {
- return flashing;
+ switch_banks (0);
}
+
+ return on;
}
LedState
{
Sorted sorted = get_sorted_routes();
uint32_t strip_cnt = n_strips();
+ 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 (sorted.size() > strip_cnt) {
- uint32_t delta = sorted.size() - (strip_cnt + _current_initial_bank);
+ uint32_t new_initial = std::min (_current_initial_bank + strip_cnt, route_cnt - 1);
+ switch_banks (new_initial);
- if (delta > strip_cnt) {
- delta = strip_cnt;
- }
-
- if (delta > 0) {
- switch_banks (_current_initial_bank + delta);
- }
-
- return on;
- } else {
- return flashing;
- }
- return off;
+ return on;
}
LedState
} else {
VerticalZoomInAll (); /* EMIT SIGNAL */
}
+ } else {
+ StepTracksUp (); /* EMIT SIGNAL */
}
return off;
}
} else {
VerticalZoomOutAll (); /* EMIT SIGNAL */
}
+ } else {
+ StepTracksDown (); /* EMIT SIGNAL */
}
return off;
}
Mackie::LedState
MackieControlProtocol::scrub_press (Mackie::Button &)
{
- _scrub_mode = !_scrub_mode;
- return (_scrub_mode ? on : off);
+ if (!surfaces.empty()) {
+ surfaces.front()->next_jog_mode ();
+ }
+ return none;
}
Mackie::LedState
MackieControlProtocol::scrub_release (Mackie::Button &)
{
- return (_scrub_mode ? on : off);
+ return none;
}
LedState
// can use first_mark_before/after as well
unsigned long elapsed = _frm_left_last.restart();
- Location * loc = session->locations()->first_location_before (
- session->transport_frame()
- );
+ Location * loc = session->locations()->first_location_before (session->transport_frame());
// allow a quick double to go past a previous mark
if (session->transport_rolling() && elapsed < 500 && loc != 0) {
// move to the location, if it's valid
if (loc != 0) {
session->request_locate (loc->start(), session->transport_rolling());
+ } else {
+ session->request_locate (session->locations()->session_range_location()->start(), session->transport_rolling());
}
return on;
if (loc != 0) {
session->request_locate (loc->start(), session->transport_rolling());
+ } else {
+ session->request_locate (session->locations()->session_range_location()->end(), session->transport_rolling());
}
return on;
again, jump back to where we started last time
*/
- transport_play (session->transport_rolling() == 1.0);
+ transport_play (session->transport_speed() == 1.0);
return none;
}
LedState
MackieControlProtocol::rewind_press (Button &)
{
- rewind ();
+ if (_modifier_state == MODIFIER_CONTROL) {
+ goto_start ();
+ } else {
+ rewind ();
+ }
return none;
}
LedState
MackieControlProtocol::ffwd_press (Button &)
{
- ffwd ();
+ if (_modifier_state == MODIFIER_CONTROL) {
+ goto_end();
+ } else {
+ ffwd ();
+ }
return none;
}
{
return off;
}
+
LedState
MackieControlProtocol::F1_press (Button &)
{
- f_press (0);
return off;
}
LedState
LedState
MackieControlProtocol::F2_press (Button &)
{
- f_press (1);
return off;
}
LedState
LedState
MackieControlProtocol::F3_press (Button &)
{
- f_press (2);
return off;
}
LedState
LedState
MackieControlProtocol::F4_press (Button &)
{
- f_press (3);
return off;
}
LedState
LedState
MackieControlProtocol::F5_press (Button &)
{
- f_press (4);
return off;
}
LedState
LedState
MackieControlProtocol::F6_press (Button &)
{
- f_press (5);
return off;
}
LedState
LedState
MackieControlProtocol::F7_press (Button &)
{
- f_press (6);
return off;
}
LedState
LedState
MackieControlProtocol::flip_press (Button &)
{
- FlipMode m;
-
- if (_modifier_state == 0) {
- if (_flip_mode != Normal) {
- m = Normal;
- } else {
- m = Swap;
- }
- } else if (_modifier_state & MODIFIER_CONTROL) {
- m = Zero;
- }
-
- set_flip_mode (m);
-
- return (_flip_mode != Normal ? on : off);
+ set_flip_mode (!_flip_mode);
+ return (_flip_mode ? on : off);
}
LedState
MackieControlProtocol::flip_release (Button &)
{
return off;
}
+
+Mackie::LedState
+MackieControlProtocol::snapshot_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::snapshot_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::read_press (Mackie::Button&)
+{
+ _metering_active = !_metering_active;
+ notify_metering_state_changed ();
+ return _metering_active;
+}
+Mackie::LedState
+MackieControlProtocol::read_release (Mackie::Button&)
+{
+ return _metering_active;
+}
+Mackie::LedState
+MackieControlProtocol::write_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::write_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::fdrgroup_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::fdrgroup_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::clearsolo_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::clearsolo_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::track_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::track_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::send_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::send_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::miditracks_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::miditracks_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::inputs_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::inputs_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::audiotracks_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::audiotracks_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::audioinstruments_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::audioinstruments_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::aux_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::aux_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::busses_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::busses_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::outputs_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::outputs_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::user_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::user_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::trim_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::trim_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::latch_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::latch_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::grp_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::grp_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::nudge_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::nudge_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::replace_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::replace_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::click_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::click_release (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::view_press (Mackie::Button&)
+{
+ return none;
+}
+Mackie::LedState
+MackieControlProtocol::view_release (Mackie::Button&)
+{
+ return none;
+}