From ab6d46c24c1d2cc395e49a3210627b5566405695 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 13 Jul 2021 03:29:07 +0200 Subject: [PATCH] Add GUI control to block MIDI patch change on session load --- gtk2_ardour/midi_time_axis.cc | 11 +++++++++++ gtk2_ardour/midi_time_axis.h | 1 + 2 files changed, 12 insertions(+) diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 8969ac5699..4823eac1b2 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -635,11 +635,22 @@ MidiTimeAxisView::append_extra_display_menu_items () items.push_back (MenuElem (_("Patch Selector..."), sigc::mem_fun(*this, &RouteUI::select_midi_patch))); + items.push_back (CheckMenuElem (_("Restore Patch"))); + Gtk::CheckMenuItem* cmi = dynamic_cast (&items.back()); + cmi->set_active (midi_track ()->restore_pgm_on_load ()); + cmi->signal_activate().connect (sigc::mem_fun (*this, &MidiTimeAxisView::toggle_restore_pgm_on_load)); + items.push_back (MenuElem (_("Color Mode"), *build_color_mode_menu ())); items.push_back (SeparatorElem ()); } +void +MidiTimeAxisView::toggle_restore_pgm_on_load () +{ + midi_track ()->set_restore_pgm_on_load (!midi_track ()->restore_pgm_on_load ()); +} + void MidiTimeAxisView::toggle_channel_selector () { diff --git a/gtk2_ardour/midi_time_axis.h b/gtk2_ardour/midi_time_axis.h index fd4e168964..5458d74bf5 100644 --- a/gtk2_ardour/midi_time_axis.h +++ b/gtk2_ardour/midi_time_axis.h @@ -174,6 +174,7 @@ private: void add_single_channel_controller_item (Gtk::Menu_Helpers::MenuList& ctl_items, int ctl, const std::string& name); void add_multi_channel_controller_item (Gtk::Menu_Helpers::MenuList& ctl_items, uint16_t chanels, int ctl, const std::string& name); void build_controller_menu (); + void toggle_restore_pgm_on_load (); void toggle_channel_selector (); void channel_selector_hidden (); void set_channel_mode (ARDOUR::ChannelMode, uint16_t);