From d30c0502bfcb9bc3f9e063bfdc1e6858c4ddefbe Mon Sep 17 00:00:00 2001 From: ed Date: Mon, 19 Apr 2021 09:29:23 +0100 Subject: [PATCH] ASIO: Update buffer size list when opening a device This fixes a bug where a new buffer size set from the device control panel may not be added to the bufferSizes array --- .../juce_audio_devices/native/juce_win32_ASIO.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp index 954a3c5a56..2d0d89db8a 100644 --- a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp +++ b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp @@ -821,7 +821,15 @@ private: long refreshBufferSizes() { - return asioObject->getBufferSize (&minBufferSize, &maxBufferSize, &preferredBufferSize, &bufferGranularity); + const auto err = asioObject->getBufferSize (&minBufferSize, &maxBufferSize, &preferredBufferSize, &bufferGranularity); + + if (err == ASE_OK) + { + bufferSizes.clear(); + addBufferSizes (minBufferSize, maxBufferSize, preferredBufferSize, bufferGranularity); + } + + return err; } int readBufferSizes (int bufferSizeSamples) @@ -1214,8 +1222,6 @@ private: if ((err = refreshBufferSizes()) == 0) { - addBufferSizes (minBufferSize, maxBufferSize, preferredBufferSize, bufferGranularity); - auto currentRate = getSampleRate(); if (currentRate < 1.0 || currentRate > 192001.0)