diff options
-rw-r--r-- | plugins/gtkui/dspconfig.c | 67 |
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); } |