X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fengine_dialog.cc;h=4b47fe1baf079482e692a4f8384df3acce0c4d26;hb=577140c0dde3b10945221971effd9f665188182c;hp=48cf35ba8f8b5ab06a7ab2b9528e04f87048260a;hpb=0077923dea412ecbd0abe8734237597dd59c2f5a;p=ardour.git diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 48cf35ba8f..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,7 +2773,8 @@ void EngineControl::set_desired_sample_rate (uint32_t sr) { _desired_sample_rate = sr; - if (ARDOUR::AudioEngine::instance()->running()) { + if (ARDOUR::AudioEngine::instance ()->running () + && ARDOUR::AudioEngine::instance ()->sample_rate () != sr) { stop_engine (); } device_changed ();