From bc8994d5c8753fc8d219eede4b23718599e8a102 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Thu, 23 Dec 2021 09:34:08 -0600 Subject: [PATCH] trigger_ui: implement Audition Action (press A to audition, spacebar to stop) --- gtk2_ardour/editor_ops.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 292f0f1585..e7e645171a 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -6365,6 +6365,16 @@ Editor::play_solo_selection (bool restart) _session->request_cancel_play_range(); transition_to_rolling (true); + } else if (! selection->triggers.empty()) { //a Trigger is selected, so we solo its parent Stripable + TriggerSelection ts = selection->triggers; + TriggerEntry* entry = *ts.begin(); + TriggerPtr slot = entry->trigger(); + ARDOUR::SessionObject *obj = slot->box().owner(); + boost::shared_ptr shared_strip = _session->stripable_by_id(obj->id()); + StripableList sl; sl.push_back(boost::shared_ptr(shared_strip)); + _session->solo_selection (sl, true); + _session->request_cancel_play_range(); + slot->bang(); //ToDo: how will this work with Gate+Repeat ? } else if (! selection->regions.empty()) { //solo any tracks with selected regions, and roll StripableList sl = tracklist_to_stripables (get_tracks_for_range_action()); _session->solo_selection (sl, true);