diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 1636f1a1ee..28e0adcdca 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -880,6 +880,23 @@ EngineControl::backend_changed () list_devices (); } + update_midi_options (); + + connect_disconnect_button.hide(); + + midi_option_changed(); + + started_at_least_once = false; + + if (!ignore_changes) { + maybe_display_saved_state (); + } +} + +void +EngineControl::update_midi_options () +{ + boost::shared_ptr backend = ARDOUR::AudioEngine::instance()->current_backend(); vector midi_options = backend->enumerate_midi_options(); if (midi_options.size() == 1) { @@ -894,16 +911,6 @@ EngineControl::backend_changed () midi_option_combo.set_sensitive (false); } } - - connect_disconnect_button.hide(); - - midi_option_changed(); - - started_at_least_once = false; - - if (!ignore_changes) { - maybe_display_saved_state (); - } } bool diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h index bb4965884d..59b2094499 100644 --- a/gtk2_ardour/engine_dialog.h +++ b/gtk2_ardour/engine_dialog.h @@ -134,6 +134,8 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList { void setup_midi_tab_for_jack (); void refresh_midi_display (std::string focus = ""); + void update_midi_options (); + std::string bufsize_as_string (uint32_t); float get_rate() const;