/* equalizer: code for loading equalizer settings copyright 1995-2008 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" /* 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; fgets(line,255,fe); } 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 { fprintf(stderr,"Can't open equalizer file '%s'\n",equalfile); return -1; } } else mpg123_reset_eq(mh); #endif return 0; }