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
This commit is contained in:
Hans Baier 2012-10-12 09:25:55 +00:00
parent e3fb47d990
commit 8f55ca6a50
2 changed files with 28 additions and 24 deletions

View File

@ -206,20 +206,19 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> 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<Route> 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()
{
std::list<std::string> device_modes = MIDI::Name::MidiPatchManager::instance()
.custom_device_mode_names_by_model(_model_selector.get_active_text());
string model = _midnam_model_selector.get_active_text();
set_gui_property (X_("midnam-model-name"), model);
_custom_device_mode_selector.clear_items();
std::list<std::string> device_modes = MIDI::Name::MidiPatchManager::instance()
.custom_device_mode_names_by_model(model);
_midnam_custom_device_mode_selector.clear_items();
for (std::list<std::string>::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*

View File

@ -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;