Do not restore engine state if we don't have control
authorRobin Gareus <robin@gareus.org>
Tue, 6 Oct 2015 12:40:51 +0000 (14:40 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 6 Oct 2015 12:40:51 +0000 (14:40 +0200)
When connecting to already running jack, display jack's buffersize
correctly.

gtk2_ardour/engine_dialog.cc

index 8e9df2c5c505f481630e84cee445ec58de51df89..5e7d4f5a3ea956737843867463a88d5a81579162 100644 (file)
@@ -1016,6 +1016,11 @@ EngineControl::backend_changed ()
         */
        engine_stopped (); // set "active/inactive"
 
+       if (!_have_control) {
+               // set settings from backend that we do have control over
+               set_active_text_if_present (buffer_size_combo, bufsize_as_string (backend->buffer_size()));
+       }
+
        if (!ignore_changes) {
                maybe_display_saved_state ();
        }
@@ -2015,6 +2020,13 @@ EngineControl::set_current_state (const State& state)
        // do the right thing
        backend_combo.set_active_text (state->backend);
 
+       if (!ARDOUR::AudioEngine::instance()->setup_required ()) {
+               backend_changed ();
+               // we don't have control don't restore state
+               return true;
+       }
+
+
        if (!state->driver.empty ()) {
                if (!backend->requires_driver_selection ()) {
                        DEBUG_ECONTROL ("Backend should require driver selection");