Mercurial > audlegacy
diff src/audacious/legacy/ui_equalizer.c @ 4711:a33facf19590
more work on seperating presets from legacy ui
author | Tomasz Mon <desowin@gmail.com> |
---|---|
date | Tue, 08 Jul 2008 15:35:48 +0200 |
parents | 7375fa718dd8 |
children | 7e0685ceeb86 |
line wrap: on
line diff
--- a/src/audacious/legacy/ui_equalizer.c Tue Jul 08 12:26:34 2008 +0900 +++ b/src/audacious/legacy/ui_equalizer.c Tue Jul 08 15:35:48 2008 +0200 @@ -173,6 +173,21 @@ } static void +equalizerwin_apply_preset(EqualizerPreset *preset) +{ + if (preset == NULL) + return; + + gint i; + + ui_skinned_equalizer_slider_set_position(equalizerwin_preamp, preset->preamp); + for (i = 0; i < 10; i++) { + ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i], preset->bands[i]); + } + equalizerwin_eq_changed(); +} + +static void equalizerwin_on_pushed(void) { cfg.equalizer_active = UI_SKINNED_BUTTON(equalizerwin_on)->inside; @@ -672,20 +687,13 @@ } static void -equalizerwin_read_aud_preset(RcFile * rcfile) +equalizerwin_read_aud_preset(gchar * filename) { - gfloat val; - gint i; - - if (aud_rcfile_read_float(rcfile, "Equalizer preset", "Preamp", &val)) - ui_skinned_equalizer_slider_set_position(equalizerwin_preamp, val); - for (i = 0; i < 10; i++) { - gchar tmp[7]; - g_snprintf(tmp, sizeof(tmp), "Band%d", i); - if (aud_rcfile_read_float(rcfile, "Equalizer preset", tmp, &val)) - ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i], val); + EqualizerPreset *preset = equalizer_read_aud_preset(filename); + if (preset) { + equalizerwin_apply_preset(preset); + equalizer_preset_free(preset); } - equalizerwin_eq_changed(); } static void @@ -831,18 +839,6 @@ equalizerwin_delete_selected_presets(GTK_TREE_VIEW(data), "eq.auto_preset"); } - -static void -load_preset_file(const gchar *filename) -{ - RcFile *rcfile; - - if ((rcfile = aud_rcfile_open(filename)) != NULL) { - equalizerwin_read_aud_preset(rcfile); - aud_rcfile_free(rcfile); - } -} - static VFSFile * open_vfs_file(const gchar *filename, const gchar *mode) { @@ -892,27 +888,6 @@ } static void -save_preset_file(const gchar * filename) -{ - RcFile *rcfile; - gint i; - - rcfile = aud_rcfile_new(); - aud_rcfile_write_float(rcfile, "Equalizer preset", "Preamp", - ui_skinned_equalizer_slider_get_position(equalizerwin_preamp)); - - for (i = 0; i < 10; i++) { - gchar tmp[7]; - g_snprintf(tmp, sizeof(tmp), "Band%d", i); - aud_rcfile_write_float(rcfile, "Equalizer preset", tmp, - ui_skinned_equalizer_slider_get_position(equalizerwin_bands[i])); - } - - aud_rcfile_write(rcfile, filename); - aud_rcfile_free(rcfile); -} - -static void save_winamp_file(const gchar * filename) { VFSFile *file; @@ -1052,7 +1027,6 @@ equalizerwin_load_auto_preset(const gchar * filename) { gchar *presetfilename, *directory; - RcFile *rcfile; g_return_if_fail(filename != NULL); @@ -1062,11 +1036,9 @@ presetfilename = g_strconcat(filename, ".", cfg.eqpreset_extension, NULL); /* First try to find a per file preset file */ - if (strlen(cfg.eqpreset_extension) > 0 && - (rcfile = aud_rcfile_open(presetfilename)) != NULL) { + if (strlen(cfg.eqpreset_extension) > 0) { + equalizerwin_read_aud_preset(presetfilename); g_free(presetfilename); - equalizerwin_read_aud_preset(rcfile); - aud_rcfile_free(rcfile); return; } @@ -1078,10 +1050,8 @@ g_free(directory); /* Try to find a per directory preset file */ - if (strlen(cfg.eqpreset_default_file) > 0 && - (rcfile = aud_rcfile_open(presetfilename)) != NULL) { - equalizerwin_read_aud_preset(rcfile); - aud_rcfile_free(rcfile); + if (strlen(cfg.eqpreset_default_file) > 0) { + equalizerwin_read_aud_preset(presetfilename); } else if (!equalizerwin_load_preset (equalizer_auto_presets, g_basename(filename))) { @@ -1126,7 +1096,7 @@ gtk_window_present(GTK_WINDOW(equalizerwin_load_window)); return; } - + equalizerwin_create_list_window(equalizer_presets, Q_("Load preset"), &equalizerwin_load_window, @@ -1181,7 +1151,9 @@ if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { file_uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog)); - load_preset_file(file_uri); + EqualizerPreset *preset = load_preset_file(file_uri); + equalizerwin_apply_preset(preset); + equalizer_preset_free(preset); g_free(file_uri); } gtk_widget_destroy(dialog); @@ -1277,12 +1249,19 @@ gchar *file_uri; gchar *songname; Playlist *playlist = playlist_get_active(); + int i; dialog = make_filebrowser(Q_("Save equalizer preset"), TRUE); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { file_uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog)); - save_preset_file(file_uri); + EqualizerPreset *preset = g_new0(EqualizerPreset, 1); + preset->name = g_strdup(file_uri); + preset->preamp = ui_skinned_equalizer_slider_get_position(equalizerwin_preamp); + for (i = 0; i < 10; i++) + preset->bands[i] = ui_skinned_equalizer_slider_get_position(equalizerwin_bands[i]); + save_preset_file(preset, file_uri); + equalizer_preset_free(preset); g_free(file_uri); }