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