comparison 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
comparison
equal deleted inserted replaced
4305:59b573234ba2 4306:172d49b1200b
46 #include "actions-equalizer.h" 46 #include "actions-equalizer.h"
47 #include "playlist.h" 47 #include "playlist.h"
48 #include "ui_playlist.h" 48 #include "ui_playlist.h"
49 #include "util.h" 49 #include "util.h"
50 #include "output.h" 50 #include "output.h"
51 #include "equalizer_flow.h"
51 52
52 #include "rcfile.h" 53 #include "rcfile.h"
53 #include "vfs.h" 54 #include "vfs.h"
54 55
55 #include "images/audacious_eq.xpm" 56 #include "images/audacious_eq.xpm"
764 765
765 gtk_list_store_remove(GTK_LIST_STORE(model), &iter); 766 gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
766 } 767 }
767 } 768 }
768 769
769 770 static EqualizerPreset *
770 static GList * 771 load_winamp_eqf(VFSFile * file)
771 import_winamp_eqf(VFSFile * file)
772 { 772 {
773 gchar header[31]; 773 gchar header[31];
774 gchar *name; 774 gchar *name;
775 gchar *filename; 775 gchar *filename;
776 gchar bands[11]; 776 gchar bands[11];
777 gint i = 0; 777 gint i = 0;
778 GList *list = NULL; 778 EqualizerPreset *preset = NULL;
779 EqualizerPreset *preset;
780 779
781 vfs_fread(header, 1, 31, file); 780 vfs_fread(header, 1, 31, file);
782 if (!strncmp(header, "Winamp EQ library file v1.1", 27)) 781 if (!strncmp(header, "Winamp EQ library file v1.1", 27))
783 { 782 {
784 783
785 g_print("The EQF header is OK\n"); 784 AUDDBG("The EQF header is OK\n");
786 785
787 if(vfs_fseek(file, 0x120, SEEK_SET) == -1) 786 if(vfs_fseek(file, 0x120, SEEK_SET) == -1)
788 return NULL; 787 return NULL;
789 if(vfs_fread(bands, 1, 11, file) != 11) 788 if(vfs_fread(bands, 1, 11, file) != 11)
790 return NULL; 789 return NULL;
791 790
792 filename = g_filename_from_uri(file->uri,NULL,NULL); 791 filename = g_filename_from_uri(file->uri,NULL,NULL);
793 name = g_path_get_basename(filename); 792 name = g_path_get_basename(filename);
794 g_free(filename); 793 g_free(filename);
795 g_print("The preset name is '%s'\n", name); 794 AUDDBG("The preset name is '%s'\n", name);
796 795
797 preset = equalizer_preset_new(name); 796 preset = equalizer_preset_new(name);
798 g_free(name); 797 g_free(name);
799 preset->preamp = 20.0 - ((bands[10] * 40.0) / 64.0); 798 /*this was divided by 63, but shouldn't it be 64? --majeru*/
799 preset->preamp = EQUALIZER_MAX_GAIN - ((bands[10] * EQUALIZER_MAX_GAIN * 2) / 64.0);
800 800
801 for (i = 0; i < 10; i++) 801 for (i = 0; i < 10; i++)
802 preset->bands[i] = 20.0 - ((bands[i] * 40.0) / 64.0); 802 preset->bands[i] = EQUALIZER_MAX_GAIN - ((bands[i] * EQUALIZER_MAX_GAIN) / 64.0);
803 803 }
804 list = g_list_prepend(list, preset); 804
805 } 805 return preset;
806 }
807
808 static GList *
809 import_winamp_eqf(VFSFile * file)
810 {
811 EqualizerPreset *preset;
812 GList *list = NULL;
813
814 if((preset = load_winamp_eqf(file)) == NULL) return NULL;
815 list = g_list_prepend(list, preset);
806 list = g_list_reverse(list); 816 list = g_list_reverse(list);
807 return list; 817 return list;
808 } 818 }
809 819
810 static void 820 static void
811 equalizerwin_read_winamp_eqf(VFSFile * file) 821 equalizerwin_read_winamp_eqf(VFSFile * file)
812 { 822 {
813 gchar header[31]; 823 EqualizerPreset *preset;
814 guchar bands[11];
815 gint i; 824 gint i;
816 825
817 vfs_fread(header, 1, 31, file); 826 if((preset = load_winamp_eqf(file)) == NULL) return;
818 827
819 if (!strncmp(header, "Winamp EQ library file v1.1", 27)) { 828 ui_skinned_equalizer_slider_set_position(equalizerwin_preamp, preset->preamp);
820 /* Skip name */ 829
821 if (vfs_fseek(file, 0x120, SEEK_SET) == -1) 830 for (i = 0; i < 10; i++)
822 return; 831 ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i], preset->bands[i]);
823 832
824 if (vfs_fread(bands, 1, 11, file) != 11) 833 equalizer_preset_free(preset);
825 return;
826
827 ui_skinned_equalizer_slider_set_position(equalizerwin_preamp,
828 20.0 - ((bands[10] * 40.0) / 64.0)); /*this was divided by 63, but shouldn't it be 64? --majeru*/
829
830 for (i = 0; i < 10; i++)
831 ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i],
832 20.0 - ((bands[i] * 40.0) / 64.0));
833 }
834
835 equalizerwin_eq_changed(); 834 equalizerwin_eq_changed();
836 } 835 }
837 836
838 static void 837 static void
839 equalizerwin_read_bmp_preset(RcFile * rcfile) 838 equalizerwin_read_bmp_preset(RcFile * rcfile)
1087 memset(name, 0, 257); 1086 memset(name, 0, 257);
1088 g_strlcpy(name, "Entry1", 257); 1087 g_strlcpy(name, "Entry1", 257);
1089 vfs_fwrite(name, 1, 257, file); 1088 vfs_fwrite(name, 1, 257, file);
1090 1089
1091 for (i = 0; i < 10; i++) 1090 for (i = 0; i < 10; i++)
1092 bands[i] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_bands[i]) + 20) * 63) / 40); 1091 bands[i] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_bands[i]) + EQUALIZER_MAX_GAIN) * 63) / EQUALIZER_MAX_GAIN / 2);
1093 bands[10] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_preamp) + 20) * 63) / 40); 1092 bands[10] = 63 - (((ui_skinned_equalizer_slider_get_position(equalizerwin_preamp) + EQUALIZER_MAX_GAIN) * 63) / EQUALIZER_MAX_GAIN / 2);
1094 vfs_fwrite(bands, 1, 11, file); 1093 vfs_fwrite(bands, 1, 11, file);
1095 1094
1096 vfs_fclose(file); 1095 vfs_fclose(file);
1097 } 1096 }
1098 1097