X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fengine_dialog.cc;h=4b47fe1baf079482e692a4f8384df3acce0c4d26;hb=4d14ae4e23bc58e356dcda387213d0ba4ab6364b;hp=be211702649a0f3fd2b3ea101f6bbb52c15010f2;hpb=652468a34430cb1c7ef841dcc278e2cfb9806ea5;p=ardour.git diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index be21170264..4b47fe1baf 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -1900,7 +1900,7 @@ EngineControl::maybe_display_saved_state () XMLNode& EngineControl::get_state () { - LocaleGuard lg (X_("C")); + LocaleGuard lg; XMLNode* root = new XMLNode ("AudioMIDISetup"); std::string path; @@ -1970,9 +1970,9 @@ EngineControl::set_state (const XMLNode& root) { XMLNodeList clist, cclist; XMLNodeConstIterator citer, cciter; - XMLNode* child; - XMLNode* grandchild; - XMLProperty* prop = NULL; + XMLNode const * child; + XMLNode const * grandchild; + XMLProperty const * prop = NULL; fprintf (stderr, "EngineControl::set_state\n"); @@ -2367,6 +2367,8 @@ EngineControl::push_state_to_backend (bool start) change_channels = true; change_latency = true; change_midi = true; + change_buffered_io = backend->can_use_buffered_io(); + change_channels = true; change_nperiods = backend->can_set_period_size() && get_popdown_string_count (nperiods_combo) > 0; } @@ -2428,7 +2430,7 @@ EngineControl::push_state_to_backend (bool start) if (change_driver || change_device || change_channels || change_nperiods || (change_latency && !backend->can_change_systemic_latency_when_running ()) || (change_rate && !backend->can_change_sample_rate_when_running()) || - change_midi || + change_midi || change_buffered_io || (change_bufsize && !backend->can_change_buffer_size_when_running())) { restart_required = true; } else { @@ -2771,6 +2773,10 @@ void EngineControl::set_desired_sample_rate (uint32_t sr) { _desired_sample_rate = sr; + if (ARDOUR::AudioEngine::instance ()->running () + && ARDOUR::AudioEngine::instance ()->sample_rate () != sr) { + stop_engine (); + } device_changed (); }