looper/subprojects/mpg123/src/equalizer.c

56 lines
1.4 KiB
C
Raw Normal View History

2024-09-28 10:31:06 -07:00
/*
equalizer: code for loading equalizer settings
copyright 1995-2019 by the mpg123 project - free software under the terms of the LGPL 2.1
see COPYING and AUTHORS files in distribution or http://mpg123.org
initially written by Michael Hipp (exported to this file by Thomas Orgis)
*/
#include "mpg123app.h"
#include "common/debug.h"
/* Load the settings from the path in the global variable equalfile.
If there is no file, restore equalizer defaults.
If NO_EQUALIZER is defined, it does nothing else that return zero */
int load_equalizer(mpg123_handle *mh)
{
#ifndef NO_EQUALIZER
if(equalfile != NULL)
{ /* tst; ThOr: not TRUE or FALSE: allocated or not... */
FILE *fe;
int i;
fe = fopen(equalfile,"r");
if(fe) {
char line[256];
for(i=0;i<32;i++) {
float e0 = 1.0;
float e1 = 1.0; /* %f -> float! */
do /* ignore comments */
{
line[0]=0;
if(!fgets(line,255,fe))
{
error("equalizer file read error");
return -1;
}
}
while(line[0]=='#');
/* Hm, why not use fscanf? Comments... */
sscanf(line,"%f %f",&e0,&e1);
/* If scanning failed, we have default 1.0 value. */
mpg123_eq(mh, MPG123_LEFT, i, e0);
mpg123_eq(mh, MPG123_RIGHT, i, e1);
}
fclose(fe);
}
else
{
merror("Can't open equalizer file '%s'.",equalfile);
return -1;
}
}
else mpg123_reset_eq(mh);
#endif
return 0;
}