From 43c37ae7016003ba841d709a467459be26a88fac Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Fri, 3 Sep 2021 22:55:41 +0200 Subject: [PATCH] SoundPlayer: Simplify Bars Visualization drawing logic a bit The freq_bin in bins_per_group was multiplied only to be divided later, which could even result in a crash if you set higher buffer size (like 1000ms) in PlaybackManager, due to rounding errors I presume. --- .../Applications/SoundPlayer/BarsVisualizationWidget.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Userland/Applications/SoundPlayer/BarsVisualizationWidget.cpp b/Userland/Applications/SoundPlayer/BarsVisualizationWidget.cpp index f6ccd353b2..587763b7ea 100644 --- a/Userland/Applications/SoundPlayer/BarsVisualizationWidget.cpp +++ b/Userland/Applications/SoundPlayer/BarsVisualizationWidget.cpp @@ -41,10 +41,9 @@ void BarsVisualizationWidget::paint_event(GUI::PaintEvent& event) for (double& d : groups) d = 0.; - int bins_per_group = ceil_div((m_sample_count - 1) / 2, group_count) * freq_bin; - + int bins_per_group = ceil_div((m_sample_count - 1) / 2, group_count); for (int i = 1; i < m_sample_count / 2; i++) { - groups[(i * freq_bin) / bins_per_group] += AK::fabs(m_sample_buffer.data()[i].real()); + groups[i / bins_per_group] += AK::fabs(m_sample_buffer.data()[i].real()); } for (int i = 0; i < group_count; i++) groups[i] /= max * freq_bin / (m_adjust_frequencies ? (clamp(AK::pow(AK::E, (double)i / group_count * 3.) - 1.75, 1., 15.)) : 1.);