Equalizer: change gain to int8 and memcmp-based update check

This commit is contained in:
David Carr
2024-09-04 15:07:42 -05:00
parent 57cd009e4c
commit e21e2cf7f9

View File

@@ -22,7 +22,8 @@ static EXT_RAM_ATTR struct {
void *handle; void *handle;
float loudness, volume; float loudness, volume;
uint32_t samplerate; uint32_t samplerate;
float gain[EQ_BANDS], loudness_gain[EQ_BANDS]; int8_t gain[EQ_BANDS];
float loudness_gain[EQ_BANDS];
bool update; bool update;
} equalizer; } equalizer;
@@ -151,6 +152,8 @@ void equalizer_set_gain(int8_t *gain) {
char config[EQ_BANDS * 4 + 1] = { }; char config[EQ_BANDS * 4 + 1] = { };
int n = 0; int n = 0;
if (memcmp(equalizer.gain, gain, EQ_BANDS) != 0) equalizer.update = true;
for (int i = 0; i < EQ_BANDS; i++) { for (int i = 0; i < EQ_BANDS; i++) {
equalizer.gain[i] = gain[i]; equalizer.gain[i] = gain[i];
n += sprintf(config + n, "%d,", gain[i]); n += sprintf(config + n, "%d,", gain[i]);
@@ -159,8 +162,6 @@ void equalizer_set_gain(int8_t *gain) {
config[n-1] = '\0'; config[n-1] = '\0';
config_set_value(NVS_TYPE_STR, "equalizer", config); config_set_value(NVS_TYPE_STR, "equalizer", config);
equalizer.update = true;
LOG_INFO("equalizer gain %s", config); LOG_INFO("equalizer gain %s", config);
#else #else
LOG_INFO("no equalizer with 32 bits samples"); LOG_INFO("no equalizer with 32 bits samples");