We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e615c18 commit da07d70Copy full SHA for da07d70
src/Driver/es8311/es8311.c
@@ -659,7 +659,14 @@ error_t es8311_codec_get_voice_volume(int *volume)
659
*volume = 0;
660
res = RESULT_FAIL;
661
} else {
662
- *volume = regv * 100 / 256;
+ // Inverse of the logarithmic mapping used in set_voice_volume
663
+ if (regv <= 0) {
664
+ *volume = 0;
665
+ } else {
666
+ double v = (double)regv / 255.0;
667
+ *volume = (int)((pow(10.0, v * log10(10.0)) - 1.0) / 9.0 * 100.0 + 0.5);
668
+ if (*volume > 100) *volume = 100;
669
+ }
670
}
671
AD_LOGD( "GET: res:%d, volume:%d", regv, *volume);
672
return res;
0 commit comments