From 75a990da8cf08a889ba6342d56b096188d8e6039 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 20 Oct 2022 22:08:00 -0600 Subject: [PATCH] a start at custom MIDI learn for trigger slots (GUI edition) --- gtk2_ardour/trigger_ui.cc | 20 +++++++++++++++++++- gtk2_ardour/trigger_ui.h | 3 +++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/trigger_ui.cc b/gtk2_ardour/trigger_ui.cc index 938bf18158..71d1af1044 100644 --- a/gtk2_ardour/trigger_ui.cc +++ b/gtk2_ardour/trigger_ui.cc @@ -437,13 +437,31 @@ TriggerUI::context_menu () items.push_back (MenuElem (_("Load..."), sigc::bind(sigc::mem_fun (*this, (&TriggerUI::choose_sample)), true))); items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Color..."), sigc::mem_fun (*this, &TriggerUI::choose_color))); - items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Clear"), sigc::mem_fun (*this, &TriggerUI::clear_trigger))); + items.push_back (SeparatorElem()); + items.push_back (MenuElem (_("MIDI Learn"), sigc::mem_fun (*this, &TriggerUI::trigger_midi_learn))); + items.push_back (MenuElem (_("MIDI un-Learn"), sigc::mem_fun (*this, &TriggerUI::trigger_midi_unlearn))); _context_menu->popup (3, gtk_get_current_event_time ()); } +void +TriggerUI::trigger_midi_learn () +{ + if (!trigger()) { + return; + } + + tref.box->begin_midi_learn (trigger()->index()); +} + +void +TriggerUI::trigger_midi_unlearn () +{ + tref.box->midi_unlearn (trigger()->index()); +} + void TriggerUI::launch_context_menu () { diff --git a/gtk2_ardour/trigger_ui.h b/gtk2_ardour/trigger_ui.h index 3d2864c5d2..83e4d4e09b 100644 --- a/gtk2_ardour/trigger_ui.h +++ b/gtk2_ardour/trigger_ui.h @@ -88,6 +88,9 @@ public: void clear_trigger (); void edit_trigger (); + void trigger_midi_learn (); + void trigger_midi_unlearn (); + private: void trigger_changed (PBD::PropertyChange const& ); //calls on_trigger_changed to subclasses