From f777e4631d2d398006ed2ef4d459c7c43128960e Mon Sep 17 00:00:00 2001 From: Grygorii Zharun Date: Fri, 6 Jun 2014 06:34:40 -0500 Subject: [PATCH] [Summary] Fixed issue with device hanging when buffer size is updated on Windows [Details] Removed redundant actions which caused loop back effenct with device thread. [git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 465786] --- libs/ardour/engine_state_controller.cc | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/libs/ardour/engine_state_controller.cc b/libs/ardour/engine_state_controller.cc index 298ed5445d..a3243f45c5 100644 --- a/libs/ardour/engine_state_controller.cc +++ b/libs/ardour/engine_state_controller.cc @@ -1167,30 +1167,16 @@ EngineStateController::get_physical_midi_output_states (std::vector& void EngineStateController::_on_sample_rate_change(framecnt_t new_sample_rate) { - // validate the change - if (set_new_sample_rate_in_controller(new_sample_rate)) { - SampleRateChanged(); // emit a signal if successful - - } else { - // restore previous state in backend - push_current_state_to_backend(false); - } + _current_state->sample_rate = new_sample_rate; + SampleRateChanged(); // emit a signal } void EngineStateController::_on_buffer_size_change(pframes_t new_buffer_size) { - // validate the change - if (set_new_buffer_size_in_controller(new_buffer_size) ) { - BufferSizeChanged(); // emit a signal if successful - - } else { - // restore previous state in backend - push_current_state_to_backend(false); - } - - + _current_state->buffer_size = new_buffer_size; + BufferSizeChanged(); // emit a signal }