summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-05-01 18:34:19 +0200
committerGravatar waker <wakeroid@gmail.com>2011-05-01 18:34:19 +0200
commitd7d4cb0eb1bd956a1f2fa4f48a1a2b4dc9e5fd98 (patch)
tree442447db7acc564ee44624b6fbdf169ec9335ab5
parent9cd88b754f57118dcdf7945a39c463f36a036984 (diff)
regenerate dsp preset dropdown after saving new preset
-rw-r--r--plugins/gtkui/dspconfig.c67
1 files changed, 38 insertions, 29 deletions
diff --git a/plugins/gtkui/dspconfig.c b/plugins/gtkui/dspconfig.c
index 268f1b16..38ec5b9a 100644
--- a/plugins/gtkui/dspconfig.c
+++ b/plugins/gtkui/dspconfig.c
@@ -77,6 +77,41 @@ scandir_preset_filter (const struct dirent *ent) {
return 0;
}
+static void
+dsp_fill_preset_list (GtkWidget *combobox) {
+ // fill list of presets
+ GtkListStore *mdl;
+ mdl = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)));
+ gtk_list_store_clear (mdl);
+ struct dirent **namelist = NULL;
+ char path[1024];
+ if (snprintf (path, sizeof (path), "%s/presets/dsp", deadbeef->get_config_dir ()) > 0) {
+ int n = scandir (path, &namelist, scandir_preset_filter, dirent_alphasort);
+ int i;
+ for (i = 0; i < n; i++) {
+ char title[100];
+ strcpy (title, namelist[i]->d_name);
+ char *e = strrchr (title, '.');
+ if (e) {
+ *e = 0;
+ }
+ GtkTreeIter iter;
+ gtk_list_store_append (mdl, &iter);
+ gtk_list_store_set (mdl, &iter, 0, title, -1);
+ free (namelist[i]);
+ }
+ free (namelist);
+ }
+
+ // set last preset name
+ GtkWidget *entry = gtk_bin_get_child (GTK_BIN (combobox));
+ if (entry) {
+ deadbeef->conf_lock ();
+ gtk_entry_set_text (GTK_ENTRY (entry), deadbeef->conf_get_str_fast ("gtkui.conf_dsp_preset", ""));
+ deadbeef->conf_unlock ();
+ }
+}
+
void
dsp_setup_init (GtkWidget *_prefwin) {
prefwin = _prefwin;
@@ -108,36 +143,8 @@ dsp_setup_init (GtkWidget *_prefwin) {
fill_dsp_chain (mdl);
- // set last preset name
GtkWidget *combobox = lookup_widget (prefwin, "dsp_preset");
- GtkWidget *entry = gtk_bin_get_child (GTK_BIN (combobox));
- if (entry) {
- deadbeef->conf_lock ();
- gtk_entry_set_text (GTK_ENTRY (entry), deadbeef->conf_get_str_fast ("gtkui.conf_dsp_preset", ""));
- deadbeef->conf_unlock ();
- }
-
- // fill list of presets
- mdl = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)));
- struct dirent **namelist = NULL;
- char path[1024];
- if (snprintf (path, sizeof (path), "%s/presets/dsp", deadbeef->get_config_dir ()) > 0) {
- int n = scandir (path, &namelist, scandir_preset_filter, dirent_alphasort);
- int i;
- for (i = 0; i < n; i++) {
- char title[100];
- strcpy (title, namelist[i]->d_name);
- char *e = strrchr (title, '.');
- if (e) {
- *e = 0;
- }
- GtkTreeIter iter;
- gtk_list_store_append (mdl, &iter);
- gtk_list_store_set (mdl, &iter, 0, title, -1);
- free (namelist[i]);
- }
- free (namelist);
- }
+ dsp_fill_preset_list (combobox);
}
void
@@ -452,6 +459,8 @@ on_dsp_preset_save_clicked (GtkButton *button,
return;
}
deadbeef->dsp_preset_save (path, chain);
+
+ dsp_fill_preset_list (combobox);
}