From 7c1a1081c454f0e775c0f48c31d11a9bb85c3ba0 Mon Sep 17 00:00:00 2001 From: philippe44 Date: Fri, 1 Sep 2023 21:44:54 -0700 Subject: [PATCH] as equalizer parameter change produced a small glitch, do not update these if volume has not changes --- components/squeezelite/equalizer.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/components/squeezelite/equalizer.c b/components/squeezelite/equalizer.c index 1072bb64..537fe48c 100644 --- a/components/squeezelite/equalizer.c +++ b/components/squeezelite/equalizer.c @@ -125,12 +125,15 @@ void equalizer_set_samplerate(uint32_t samplerate) { */ void equalizer_set_volume(unsigned left, unsigned right) { #if BYTES_PER_FRAME == 4 - equalizer.volume = (left + right) / 2; + float volume = (left + right) / 2; // do classic dB conversion and scale it 0..100 - if (equalizer.volume) equalizer.volume = log2(equalizer.volume); - equalizer.volume = equalizer.volume / 16.0 * 100.0; - calculate_loudness(); - equalizer.update = true; + if (volume) volume = log2(volume); + volume = volume / 16.0 * 100.0; + if (volume != equalizer.volume) { + equalizer.volume = volume; + calculate_loudness(); + equalizer.update = true; + } #endif }