From 8f55ca6a5099f44de83330d3da267bd32fd769d9 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 12 Oct 2012 09:25:55 +0000 Subject: make the time axis view remember it midnam model/mode settings git-svn-id: svn://localhost/ardour2/branches/3.0@13255 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/midi_time_axis.cc | 46 +++++++++++++++++++++++-------------------- gtk2_ardour/midi_time_axis.h | 4 ++-- 2 files changed, 27 insertions(+), 23 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 51f628e7d0..af1e7b61c7 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -206,20 +206,19 @@ MidiTimeAxisView::set_route (boost::shared_ptr rt) MIDI::Name::MasterDeviceNames::Models::const_iterator m = patch_manager.all_models().begin(); for (; m != patch_manager.all_models().end(); ++m) { - _model_selector.append_text(m->c_str()); + _midnam_model_selector.append_text(m->c_str()); } + _midnam_model_selector.set_active_text (gui_property (X_("midnam-model-name"))); + model_changed(); + _midnam_custom_device_mode_selector.set_active_text (gui_property (X_("midnam-custom-device-mode"))); - _model_selector.signal_changed().connect(sigc::mem_fun(*this, &MidiTimeAxisView::model_changed)); - - _custom_device_mode_selector.signal_changed().connect( + _midnam_model_selector.signal_changed().connect(sigc::mem_fun(*this, &MidiTimeAxisView::model_changed)); + _midnam_custom_device_mode_selector.signal_changed().connect( sigc::mem_fun(*this, &MidiTimeAxisView::custom_device_mode_changed)); - _model_selector.set_active_text (gui_property (X_("midnam-model-name"))); - _custom_device_mode_selector.set_active_text (gui_property (X_("midnam-custom-device-mode"))); - - ARDOUR_UI::instance()->set_tip (_model_selector, _("External MIDI Device")); - ARDOUR_UI::instance()->set_tip (_custom_device_mode_selector, _("External Device Mode")); + ARDOUR_UI::instance()->set_tip (_midnam_model_selector, _("External MIDI Device")); + ARDOUR_UI::instance()->set_tip (_midnam_custom_device_mode_selector, _("External Device Mode")); _midi_controls_box.set_homogeneous(false); _midi_controls_box.set_border_width (10); @@ -230,13 +229,13 @@ MidiTimeAxisView::set_route (boost::shared_ptr rt) _midi_controls_box.attach(*manage(new HSeparator()), 0, 2, 1, 2); - _model_selector.set_size_request(22, 30); - _model_selector.set_border_width(2); - _midi_controls_box.attach(_model_selector, 0, 1, 2, 3); + _midnam_model_selector.set_size_request(22, 30); + _midnam_model_selector.set_border_width(2); + _midi_controls_box.attach(_midnam_model_selector, 0, 1, 2, 3); - _custom_device_mode_selector.set_size_request(10, 30); - _custom_device_mode_selector.set_border_width(2); - _midi_controls_box.attach(_custom_device_mode_selector, 1, 2, 2, 3); + _midnam_custom_device_mode_selector.set_size_request(10, 30); + _midnam_custom_device_mode_selector.set_border_width(2); + _midi_controls_box.attach(_midnam_custom_device_mode_selector, 1, 2, 2, 3); } else { _midi_controls_box.attach(_channel_selector, 0, 1, 0, 1); } @@ -331,25 +330,30 @@ MidiTimeAxisView::check_step_edit () void MidiTimeAxisView::model_changed() { + string model = _midnam_model_selector.get_active_text(); + set_gui_property (X_("midnam-model-name"), model); + std::list device_modes = MIDI::Name::MidiPatchManager::instance() - .custom_device_mode_names_by_model(_model_selector.get_active_text()); + .custom_device_mode_names_by_model(model); - _custom_device_mode_selector.clear_items(); + _midnam_custom_device_mode_selector.clear_items(); for (std::list::const_iterator i = device_modes.begin(); i != device_modes.end(); ++i) { - _custom_device_mode_selector.append_text(*i); + _midnam_custom_device_mode_selector.append_text(*i); } - _custom_device_mode_selector.set_active(0); + _midnam_custom_device_mode_selector.set_active(0); - _route->instrument_info().set_external_instrument (_model_selector.get_active_text(), _custom_device_mode_selector.get_active_text()); + _route->instrument_info().set_external_instrument (_midnam_model_selector.get_active_text(), _midnam_custom_device_mode_selector.get_active_text()); } void MidiTimeAxisView::custom_device_mode_changed() { - _route->instrument_info().set_external_instrument (_model_selector.get_active_text(), _custom_device_mode_selector.get_active_text()); + string mode = _midnam_custom_device_mode_selector.get_active_text(); + set_gui_property (X_("midnam-custom-device-mode"), mode); + _route->instrument_info().set_external_instrument (_midnam_model_selector.get_active_text(), mode); } MidiStreamView* diff --git a/gtk2_ardour/midi_time_axis.h b/gtk2_ardour/midi_time_axis.h index bad85bcc93..10ad5f8f10 100644 --- a/gtk2_ardour/midi_time_axis.h +++ b/gtk2_ardour/midi_time_axis.h @@ -132,8 +132,8 @@ class MidiTimeAxisView : public RouteTimeAxisView Gtk::RadioMenuItem* _track_color_mode_item; Gtk::Table _midi_controls_box; MidiMultipleChannelSelector _channel_selector; - Gtk::ComboBoxText _model_selector; - Gtk::ComboBoxText _custom_device_mode_selector; + Gtk::ComboBoxText _midnam_model_selector; + Gtk::ComboBoxText _midnam_custom_device_mode_selector; Gtk::CheckMenuItem* _step_edit_item; Gtk::Menu* default_channel_menu; -- cgit v1.2.3