|
@@ -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
|
|
|
}
|
|
|
|