From 9bfa27d55033b58d2381568f4b65b03908abd4f1 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Wed, 28 Oct 2020 17:32:01 +1000 Subject: [PATCH] Qt/AudioSettings: Make auto buffer size a multiple of 128 --- src/duckstation-qt/audiosettingswidget.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/duckstation-qt/audiosettingswidget.cpp b/src/duckstation-qt/audiosettingswidget.cpp index 68dac77c4..d18ef873e 100644 --- a/src/duckstation-qt/audiosettingswidget.cpp +++ b/src/duckstation-qt/audiosettingswidget.cpp @@ -65,10 +65,17 @@ AudioSettingsWidget::~AudioSettingsWidget() = default; void AudioSettingsWidget::updateBufferingLabel() { - const u32 buffer_size = static_cast(m_ui.bufferSize->value()); - const float max_latency = AudioStream::GetMaxLatency(HostInterface::AUDIO_SAMPLE_RATE, buffer_size); + constexpr float step = 128; + const u32 actual_buffer_size = static_cast(std::round(static_cast(m_ui.bufferSize->value()) / step) * step); + if (static_cast(m_ui.bufferSize->value()) != actual_buffer_size) + { + m_ui.bufferSize->setValue(static_cast(actual_buffer_size)); + return; + } + + const float max_latency = AudioStream::GetMaxLatency(HostInterface::AUDIO_SAMPLE_RATE, actual_buffer_size); m_ui.bufferingLabel->setText( - tr("Maximum latency: %1 frames (%2ms)").arg(buffer_size).arg(max_latency * 1000.0f, 0, 'f', 2)); + tr("Maximum latency: %1 frames (%2ms)").arg(actual_buffer_size).arg(max_latency * 1000.0f, 0, 'f', 2)); } void AudioSettingsWidget::updateVolumeLabel()