Mercurial > audlegacy
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 |