Mercurial > audlegacy
diff src/audacious/ui_equalizer.c @ 4306:172d49b1200b
- equalizer sliders range changed to -12..12 dB
- removed duplicated code
author | Eugene Zagidullin <e.asphyx@gmail.com> |
---|---|
date | Mon, 25 Feb 2008 01:32:18 +0300 |
parents | 8a848179e244 |
children | cfaecedace4e |
line wrap: on
line diff
--- a/src/audacious/ui_equalizer.c Sun Feb 24 18:35:50 2008 +0300 +++ b/src/audacious/ui_equalizer.c Mon Feb 25 01:32:18 2008 +0300 @@ -48,6 +48,7 @@ #include "ui_playlist.h" #include "util.h" #include "output.h" +#include "equalizer_flow.h" #include "rcfile.h" #include "vfs.h" @@ -766,23 +767,21 @@ } } - -static GList * -import_winamp_eqf(VFSFile * file) +static EqualizerPreset * +load_winamp_eqf(VFSFile * file) { gchar header[31]; gchar *name; gchar *filename; gchar bands[11]; gint i = 0; - GList *list = NULL; - EqualizerPreset *preset; + EqualizerPreset *preset = NULL; vfs_fread(header, 1, 31, file); if (!strncmp(header, "Winamp EQ library file v1.1", 27)) { - g_print("The EQF header is OK\n"); + AUDDBG("The EQF header is OK\n"); if(vfs_fseek(file, 0x120, SEEK_SET) == -1) return NULL; @@ -792,17 +791,28 @@ filename = g_filename_from_uri(file->uri,NULL,NULL); name = g_path_get_basename(filename); g_free(filename); - g_print("The preset name is '%s'\n", name); + AUDDBG("The preset name is '%s'\n", name); preset = equalizer_preset_new(name); g_free(name); - preset->preamp = 20.0 - ((bands[10] * 40.0) / 64.0); + /*this was divided by 63, but shouldn't it be 64? --majeru*/ + preset->preamp = EQUALIZER_MAX_GAIN - ((bands[10] * EQUALIZER_MAX_GAIN * 2) / 64.0); for (i = 0; i < 10; i++) - preset->bands[i] = 20.0 - ((bands[i] * 40.0) / 64.0); + preset->bands[i] = EQUALIZER_MAX_GAIN - ((bands[i] * EQUALIZER_MAX_GAIN) / 64.0); + } + + return preset; +} - list = g_list_prepend(list, preset); - } +static GList * +import_winamp_eqf(VFSFile * file) +{ + EqualizerPreset *preset; + GList *list = NULL; + + if((preset = load_winamp_eqf(file)) == NULL) return NULL; + list = g_list_prepend(list, preset); list = g_list_reverse(list); return list; } @@ -810,28 +820,17 @@ static void equalizerwin_read_winamp_eqf(VFSFile * file) { - gchar header[31]; - guchar bands[11]; + EqualizerPreset *preset; gint i; - vfs_fread(header, 1, 31, file); + if((preset = load_winamp_eqf(file)) == NULL) return; - if (!strncmp(header, "Winamp EQ library file v1.1", 27)) { - /* Skip name */ - if (vfs_fseek(file, 0x120, SEEK_SET) == -1) - return; + ui_skinned_equalizer_slider_set_position(equalizerwin_preamp, preset->preamp); - if (vfs_fread(bands, 1, 11, file) != 11) - return; - - ui_skinned_equalizer_slider_set_position(equalizerwin_preamp, - 20.0 - ((bands[10] * 40.0) / 64.0)); /*this was divided by 63, but shouldn't it be 64? --majeru*/ + for (i = 0; i < 10; i++) + ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i], preset->bands[i]); - for (i = 0; i < 10; i++) - ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i], - 20.0 - ((bands[i] * 40.0) / 64.0)); - } - + equalizer_preset_free(preset); equalizerwin_eq_changed(); } @@ -1089,8 +1088,8 @@ vfs_fwrite(name, 1, 257, file); for (i = 0; i < 10; i++) - bands[i] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_bands[i]) + 20) * 63) / 40); - bands[10] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_preamp) + 20) * 63) / 40); + bands[i] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_bands[i]) + EQUALIZER_MAX_GAIN) * 63) / EQUALIZER_MAX_GAIN / 2); + bands[10] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_preamp) + EQUALIZER_MAX_GAIN) * 63) / EQUALIZER_MAX_GAIN / 2); vfs_fwrite(bands, 1, 11, file); vfs_fclose(file);