summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/engine_dialog.cc27
-rw-r--r--gtk2_ardour/engine_dialog.h2
2 files changed, 19 insertions, 10 deletions
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<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend();
vector<string> 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;