From 7fe7adb83c34923a76ae050d56ea1c073b3568fb Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Sat, 1 Oct 2022 07:49:41 -0500 Subject: [PATCH] push2: adapt to new unbang and 'stop' semantics (needs testing) --- libs/surfaces/push2/cues.cc | 34 +++++++++++++++++++++++----------- libs/surfaces/push2/cues.h | 1 + 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/libs/surfaces/push2/cues.cc b/libs/surfaces/push2/cues.cc index 6a35e4ae23..a990926470 100644 --- a/libs/surfaces/push2/cues.cc +++ b/libs/surfaces/push2/cues.cc @@ -274,16 +274,19 @@ CueLayout::show_knob_function () void CueLayout::button_lower (uint32_t n) { + boost::shared_ptr r = _session.get_remote_nth_route (n); + if (!r) { + return; + } + if (_p2.stop_down() || _long_stop) { - _p2.unbang (n + track_base); + boost::shared_ptr tb = r->triggerbox(); + if (tb) { + tb->stop_all_quantized(); + } } else { /* select track */ - - boost::shared_ptr r = _session.get_remote_nth_route (n); - - if (r) { - _session.selection().set (r, boost::shared_ptr()); - } + _session.selection().set (r, boost::shared_ptr()); } } @@ -576,15 +579,24 @@ CueLayout::pad_press (int y, int x) /* fix coordinate order one day */ return; } - if (!tb->trigger (y + scene_base)->region()) { - _p2.unbang (x + track_base); + tb->bang_trigger_at (y + scene_base); +} + +void +CueLayout::pad_release (int y, int x) /* fix coordinate order one day */ +{ + if (!_route[x]) { return; } - _p2.bang (x + track_base, y + scene_base); - + boost::shared_ptr tb = _route[x]->triggerbox(); + if (!tb) { + /* unpossible! */ + return; + } + tb->unbang_trigger_at (y + scene_base); } void diff --git a/libs/surfaces/push2/cues.h b/libs/surfaces/push2/cues.h index c846410edc..444eb7f52e 100644 --- a/libs/surfaces/push2/cues.h +++ b/libs/surfaces/push2/cues.h @@ -83,6 +83,7 @@ class CueLayout : public Push2Layout void strip_vpot_touch (int, bool); void pad_press (int x, int y); + void pad_release (int x, int y); /* override to use for clip progress */ void update_meters();