diff options
author | Robin Gareus <robin@gareus.org> | 2017-09-08 00:30:55 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-09-08 02:19:31 +0200 |
commit | 637673009304a4c23d9f26442e08cbde05fafb4d (patch) | |
tree | 672fd0a34457d3ee58ee46708f8e9f1f323defc8 /gtk2_ardour/midi_time_axis.cc | |
parent | 187748874c288321f3197fb1e3dfb64f86c9c0bf (diff) |
Rework Patch-Change/Select Dialog
Diffstat (limited to 'gtk2_ardour/midi_time_axis.cc')
-rw-r--r-- | gtk2_ardour/midi_time_axis.cc | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 33160f8da3..ca67244731 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -77,6 +77,7 @@ #include "midi_region_view.h" #include "midi_time_axis.h" #include "patch_change_dialog.h" +#include "patch_change_widget.h" #include "piano_roll_header.h" #include "playlist_selector.h" #include "plugin_selector.h" @@ -1082,33 +1083,6 @@ MidiTimeAxisView::build_color_mode_menu() } void -MidiTimeAxisView::immediate_patch_chnage_response (int response) -{ - if (response != RESPONSE_ACCEPT || !_route) { - delete _patch_change_dialog; - _patch_change_dialog = 0; - return; - } - Evoral::PatchChange<Evoral::Beats> p (_patch_change_dialog->patch ()); - - uint8_t chn = p.channel(); - - boost::shared_ptr<AutomationControl> bank_msb = _route->automation_control(Evoral::Parameter (MidiCCAutomation, chn, MIDI_CTL_MSB_BANK), true); - boost::shared_ptr<AutomationControl> bank_lsb = _route->automation_control(Evoral::Parameter (MidiCCAutomation, chn, MIDI_CTL_LSB_BANK), true); - boost::shared_ptr<AutomationControl> program = _route->automation_control(Evoral::Parameter (MidiPgmChangeAutomation, chn), true); - - if (!bank_msb || ! bank_lsb || !program) { - _patch_change_dialog->show (); - return; - } - - bank_msb->set_value (p.bank_msb (), Controllable::NoGroup); - bank_lsb->set_value (p.bank_lsb (), Controllable::NoGroup); - program->set_value (p.program () , Controllable::NoGroup); - _patch_change_dialog->show (); -} - -void MidiTimeAxisView::send_patch_change () { if (!_route) { @@ -1119,11 +1093,9 @@ MidiTimeAxisView::send_patch_change () return; } - Evoral::PatchChange<Evoral::Beats> empty (Evoral::Beats(), 0, 0, 0); - PatchChangeDialog* d = new PatchChangeDialog (0, 0, empty, _route->instrument_info(), Gtk::Stock::APPLY, false, false); - d->signal_response().connect (sigc::mem_fun (*this, &MidiTimeAxisView::immediate_patch_chnage_response)); + PatchChangeGridDialog* d = new PatchChangeGridDialog (string_compose (_("Select Patch for '%1'"), _route->name ()), _route); _patch_change_dialog = d; - _patch_change_dialog->present (); + d->present (); } void |