summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2010-12-09 22:36:46 +0100
committerGravatar waker <wakeroid@gmail.com>2010-12-09 22:36:46 +0100
commitd8a10a3c30197e3ff7fd566a101393057b759444 (patch)
tree7d91ed435cfd70a7e5d8ec77a0d2f35ef051798c /plugins
parent389527335a61182306b9bfc0dc43aac955edb2ef (diff)
converter DSP presets WIP
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dsp_libsrc/src.c5
-rw-r--r--plugins/gtkui/callbacks.h4
-rw-r--r--plugins/gtkui/converter.c281
-rw-r--r--plugins/gtkui/deadbeef.glade181
-rw-r--r--plugins/gtkui/interface.c51
5 files changed, 309 insertions, 213 deletions
diff --git a/plugins/dsp_libsrc/src.c b/plugins/dsp_libsrc/src.c
index 26a9ba7f..a292a95b 100644
--- a/plugins/dsp_libsrc/src.c
+++ b/plugins/dsp_libsrc/src.c
@@ -55,7 +55,8 @@ ddb_src_open (void) {
DDB_INIT_DSP_INSTANCE (src,ddb_src_libsamplerate_t,&plugin);
src->mutex = deadbeef->mutex_create ();
- src->samplerate = -1;
+ src->samplerate = 44100;
+ src->quality = 2;
src->channels = -1;
return (DB_dsp_instance_t *)src;
}
@@ -118,7 +119,7 @@ ddb_src_process (DB_dsp_instance_t *_src, float *samples, int nframes, int *samp
ddb_src_set_ratio (_src, ratio);
*samplerate = src->samplerate;
- if (src->channels != *nchannels || src->quality_changed) {
+ if (src->channels != *nchannels || src->quality_changed || !src->src) {
src->quality_changed = 0;
src->remaining = 0;
if (src->src) {
diff --git a/plugins/gtkui/callbacks.h b/plugins/gtkui/callbacks.h
index 3d6872bf..6f31d798 100644
--- a/plugins/gtkui/callbacks.h
+++ b/plugins/gtkui/callbacks.h
@@ -1073,3 +1073,7 @@ on_dsp_preset_remove_plugin_clicked (GtkButton *button,
void
on_converter_dsp_preset_changed (GtkComboBox *combobox,
gpointer user_data);
+
+void
+on_dsp_preset_plugin_configure_clicked (GtkButton *button,
+ gpointer user_data);
diff --git a/plugins/gtkui/converter.c b/plugins/gtkui/converter.c
index 80b0d77b..dd586938 100644
--- a/plugins/gtkui/converter.c
+++ b/plugins/gtkui/converter.c
@@ -27,7 +27,11 @@
#include "gtkui.h"
ddb_encoder_preset_t *encoder_presets;
+ddb_encoder_preset_t *current_encoder_preset;
+
ddb_dsp_preset_t *dsp_presets;
+ddb_dsp_preset_t *current_dsp_preset;
+
ddb_encoder_preset_t *
ddb_encoder_preset_alloc (void) {
@@ -691,8 +695,6 @@ init_encoder_preset_from_dlg (GtkWidget *dlg, ddb_encoder_preset_t *p) {
}
}
-ddb_encoder_preset_t *current_encoder_preset;
-
int
edit_encoder_preset (char *title, GtkWidget *toplevel, int overwrite) {
GtkWidget *dlg = create_convpreset_editor ();
@@ -775,7 +777,7 @@ edit_encoder_preset (char *title, GtkWidget *toplevel, int overwrite) {
}
void
-refresh_preset_lists (GtkComboBox *combo, GtkTreeView *list) {
+refresh_encoder_lists (GtkComboBox *combo, GtkTreeView *list) {
// presets list view
GtkListStore *mdl = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (list)));
@@ -823,7 +825,7 @@ on_encoder_preset_add (GtkButton *button,
}
GtkComboBox *combo = GTK_COMBO_BOX (lookup_widget (converter, "encoder"));
GtkWidget *list = lookup_widget (toplevel, "presets");
- refresh_preset_lists (combo, GTK_TREE_VIEW (list));
+ refresh_encoder_lists (combo, GTK_TREE_VIEW (list));
}
current_encoder_preset = NULL;
@@ -855,7 +857,7 @@ on_encoder_preset_edit (GtkButton *button,
int r = edit_encoder_preset (_("Edit encoder"), toplevel, 1);
if (r == GTK_RESPONSE_OK) {
GtkComboBox *combo = GTK_COMBO_BOX (lookup_widget (converter, "encoder"));
- refresh_preset_lists (combo, GTK_TREE_VIEW (list));
+ refresh_encoder_lists (combo, GTK_TREE_VIEW (list));
}
current_encoder_preset = NULL;
@@ -912,17 +914,8 @@ on_encoder_preset_remove (GtkButton *button,
}
ddb_encoder_preset_free (p);
- // presets list view
- GtkListStore *mdl = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (list)));
- gtk_list_store_clear (mdl);
- fill_presets (mdl, (ddb_preset_t *)encoder_presets);
-
- // presets combo box
GtkComboBox *combo = GTK_COMBO_BOX (lookup_widget (converter, "encoder"));
- mdl = GTK_LIST_STORE (gtk_combo_box_get_model (combo));
- gtk_list_store_clear (mdl);
- fill_presets (mdl, (ddb_preset_t *)encoder_presets);
- gtk_combo_box_set_active (combo, deadbeef->conf_get_int ("converter.encoder_preset", 0));
+ refresh_encoder_lists (combo, GTK_TREE_VIEW (list));
}
}
@@ -954,8 +947,6 @@ on_edit_encoder_presets_clicked (GtkButton *button,
///// dsp preset gui
-ddb_dsp_preset_t *current_dsp_preset;
-
void
fill_dsp_plugin_list (GtkListStore *mdl) {
struct DB_dsp_s **dsp = deadbeef->plug_get_dsp_list ();
@@ -996,9 +987,6 @@ on_dsp_preset_add_plugin_clicked (GtkButton *button,
int r = gtk_dialog_run (GTK_DIALOG (dlg));
if (r == GTK_RESPONSE_OK) {
- // get title
- const char *title = gtk_entry_get_text (GTK_ENTRY (lookup_widget (dlg, "title")));
-
// create new instance of the selected plugin
int idx = gtk_combo_box_get_active (combo);
struct DB_dsp_s **dsp = deadbeef->plug_get_dsp_list ();
@@ -1041,21 +1029,138 @@ void
on_dsp_preset_remove_plugin_clicked (GtkButton *button,
gpointer user_data)
{
+ GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
+ GtkWidget *list = lookup_widget (toplevel, "plugins");
+ GtkTreePath *path;
+ GtkTreeViewColumn *col;
+ gtk_tree_view_get_cursor (GTK_TREE_VIEW (list), &path, &col);
+ if (!path || !col) {
+ // nothing selected
+ return;
+ }
+ int *indices = gtk_tree_path_get_indices (path);
+ int idx = *indices;
+ g_free (indices);
+ if (idx == -1) {
+ return;
+ }
+ DB_dsp_instance_t *p = current_dsp_preset->chain;
+ DB_dsp_instance_t *prev = NULL;
+ int i = idx;
+ while (p && i--) {
+ prev = p;
+ p = p->next;
+ }
+ if (p) {
+ if (prev) {
+ prev->next = p->next;
+ }
+ else {
+ current_dsp_preset->chain = p->next;
+ }
+ p->plugin->close (p);
+ GtkListStore *mdl = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW(list)));
+ gtk_list_store_clear (mdl);
+ fill_dsp_preset_chain (mdl);
+ path = gtk_tree_path_new_from_indices (idx, -1);
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (list), path, col, FALSE);
+ gtk_tree_path_free (path);
+ }
+}
+
+void
+on_dsp_preset_plugin_configure_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
+ GtkWidget *list = lookup_widget (toplevel, "plugins");
+ GtkTreePath *path;
+ GtkTreeViewColumn *col;
+ gtk_tree_view_get_cursor (GTK_TREE_VIEW (list), &path, &col);
+ if (!path || !col) {
+ // nothing selected
+ return;
+ }
+ int *indices = gtk_tree_path_get_indices (path);
+ int idx = *indices;
+ g_free (indices);
+ if (idx == -1) {
+ return;
+ }
+
+ DB_dsp_instance_t *p = current_dsp_preset->chain;
+ DB_dsp_instance_t *prev = NULL;
+ int i = idx;
+ while (p && i--) {
+ prev = p;
+ p = p->next;
+ }
+ if (!p || !p->plugin->num_params || !p->plugin->num_params ()) {
+ return;
+ }
+
+ GtkWidget *dlg = gtk_dialog_new ();
+ gtk_window_set_title (GTK_WINDOW (dlg), _("Configure DSP plugin"));
+ gtk_window_set_modal (GTK_WINDOW (dlg), TRUE);
+ gtk_window_set_type_hint (GTK_WINDOW (dlg), GDK_WINDOW_TYPE_HINT_DIALOG);
+
+ GtkWidget *vbox = gtk_vbox_new (FALSE, 8);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
+ gtk_widget_show (vbox);
+
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), vbox, TRUE, TRUE, 0);
+
+ GtkWidget *w;
+
+ int n = p->plugin->num_params ();
+ for (i = 0; i < n; i++) {
+ GtkWidget *hbox = gtk_hbox_new (FALSE, 8);
+
+ gtk_widget_show (hbox);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+ const char *title = p->plugin->get_param_name (i);
+ w = gtk_label_new (_(title));
+ gtk_widget_show (w);
+ gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
+ w = gtk_entry_new ();
+ char s[100];
+ snprintf (s, sizeof (s), "%f", p->plugin->get_param (p, i));
+ gtk_entry_set_text (GTK_ENTRY (w), s);
+ gtk_widget_show (w);
+ gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0);
+ }
+
+
+
+ w = gtk_button_new_from_stock ("gtk-cancel");
+ gtk_widget_show (w);
+ gtk_dialog_add_action_widget (GTK_DIALOG (dlg), w, GTK_RESPONSE_CANCEL);
+ GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT);
+
+ w = gtk_button_new_from_stock ("gtk-ok");
+ gtk_widget_show (w);
+ gtk_dialog_add_action_widget (GTK_DIALOG (dlg), w, GTK_RESPONSE_OK);
+ GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT);
+
+ int r = gtk_dialog_run (GTK_DIALOG (dlg));
+ gtk_widget_destroy (dlg);
}
int
-edit_dsp_preset (GtkWidget *toplevel, int overwrite) {
+edit_dsp_preset (const char *title, GtkWidget *toplevel, int overwrite) {
int r = GTK_RESPONSE_CANCEL;
GtkWidget *dlg = create_dsppreset_editor ();
gtk_dialog_set_default_response (GTK_DIALOG (dlg), GTK_RESPONSE_OK);
gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (toplevel));
- gtk_window_set_title (GTK_WINDOW (dlg), _("New DSP Preset"));
+ gtk_window_set_title (GTK_WINDOW (dlg), title);
// title
- gtk_entry_set_text (GTK_ENTRY (lookup_widget (dlg, "title")), current_dsp_preset->title);
+ if (current_dsp_preset->title) {
+ gtk_entry_set_text (GTK_ENTRY (lookup_widget (dlg, "title")), current_dsp_preset->title);
+ }
{
// left list
@@ -1069,19 +1174,6 @@ edit_dsp_preset (GtkWidget *toplevel, int overwrite) {
fill_dsp_preset_chain (mdl);
}
- {
- // right list
- GtkWidget *list = lookup_widget (dlg, "params");
- GtkCellRenderer *title_cell = gtk_cell_renderer_text_new ();
- GtkTreeViewColumn *col1 = gtk_tree_view_column_new_with_attributes (_("Param"), title_cell, "text", 0, NULL);
- GtkTreeViewColumn *col2 = gtk_tree_view_column_new_with_attributes (_("Value"), title_cell, "text", 1, NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (list), GTK_TREE_VIEW_COLUMN (col1));
- gtk_tree_view_append_column (GTK_TREE_VIEW (list), GTK_TREE_VIEW_COLUMN (col2));
- GtkListStore *mdl = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
- gtk_tree_view_set_model (GTK_TREE_VIEW (list), GTK_TREE_MODEL (mdl));
- }
-
-
for (;;) {
r = gtk_dialog_run (GTK_DIALOG (dlg));
@@ -1102,23 +1194,8 @@ edit_dsp_preset (GtkWidget *toplevel, int overwrite) {
continue;
}
- // append to list of presets
- ddb_dsp_preset_t *tail = dsp_presets;
- while (tail && tail->next) {
- tail = tail->next;
- }
- if (tail) {
- tail->next = current_dsp_preset;
- }
- else {
- dsp_presets = current_dsp_preset;
- }
- }
- else {
- ddb_dsp_preset_free (current_dsp_preset);
}
- current_dsp_preset = NULL;
break;
}
@@ -1126,6 +1203,34 @@ edit_dsp_preset (GtkWidget *toplevel, int overwrite) {
return r;
}
+void
+refresh_dsp_lists (GtkComboBox *combo, GtkTreeView *list) {
+ // presets list view
+ GtkListStore *mdl = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (list)));
+
+ GtkTreePath *path;
+ GtkTreeViewColumn *col;
+ gtk_tree_view_get_cursor (GTK_TREE_VIEW (list), &path, &col);
+ if (path && col) {
+ int *indices = gtk_tree_path_get_indices (path);
+ int idx = *indices;
+ g_free (indices);
+
+ gtk_list_store_clear (mdl);
+ fill_presets (mdl, (ddb_preset_t *)dsp_presets);
+ path = gtk_tree_path_new_from_indices (idx, -1);
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (list), path, col, FALSE);
+ gtk_tree_path_free (path);
+ }
+
+ // presets combo box
+ int act = gtk_combo_box_get_active (combo);
+ mdl = GTK_LIST_STORE (gtk_combo_box_get_model (combo));
+ gtk_list_store_clear (mdl);
+ fill_presets (mdl, (ddb_preset_t *)dsp_presets);
+ gtk_combo_box_set_active (combo, act);
+}
+
void
on_dsp_preset_add (GtkButton *button,
@@ -1136,7 +1241,26 @@ on_dsp_preset_add (GtkButton *button,
GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
- edit_dsp_preset (toplevel, 0);
+ if (GTK_RESPONSE_OK == edit_dsp_preset (_("New DSP Preset"), toplevel, 0)) {
+ // append to list of presets
+ ddb_dsp_preset_t *tail = dsp_presets;
+ while (tail && tail->next) {
+ tail = tail->next;
+ }
+ if (tail) {
+ tail->next = current_dsp_preset;
+ }
+ else {
+ dsp_presets = current_dsp_preset;
+ }
+
+ GtkComboBox *combo = GTK_COMBO_BOX (lookup_widget (converter, "dsp_preset"));
+ GtkWidget *list = lookup_widget (toplevel, "presets");
+ refresh_dsp_lists (combo, GTK_TREE_VIEW (list));
+ }
+ else {
+ ddb_dsp_preset_free (current_dsp_preset);
+ }
current_dsp_preset = NULL;
}
@@ -1145,6 +1269,55 @@ void
on_dsp_preset_remove (GtkButton *button,
gpointer user_data)
{
+ GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
+ GtkWidget *list = lookup_widget (toplevel, "presets");
+ GtkTreePath *path;
+ GtkTreeViewColumn *col;
+ gtk_tree_view_get_cursor (GTK_TREE_VIEW (list), &path, &col);
+ if (!path || !col) {
+ // nothing selected
+ return;
+ }
+ int *indices = gtk_tree_path_get_indices (path);
+ int idx = *indices;
+ g_free (indices);
+
+ ddb_dsp_preset_t *p = dsp_presets;
+ ddb_dsp_preset_t *prev = NULL;
+ while (idx--) {
+ prev = p;
+ p = p->next;
+ }
+
+ if (!p) {
+ return;
+ }
+
+ GtkWidget *dlg = gtk_message_dialog_new (GTK_WINDOW (mainwin), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, _("Remove preset"));
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (toplevel));
+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg), _("This action will delete the selected preset. Are you sure?"));
+ gtk_window_set_title (GTK_WINDOW (dlg), _("Warning"));
+
+ int response = gtk_dialog_run (GTK_DIALOG (dlg));
+ gtk_widget_destroy (dlg);
+ if (response == GTK_RESPONSE_YES) {
+ char path[1024];
+ if (snprintf (path, sizeof (path), "%s/presets/dsp/%s.txt", deadbeef->get_config_dir (), p->title) > 0) {
+ unlink (path);
+ }
+
+ ddb_dsp_preset_t *next = p->next;
+ if (prev) {
+ prev->next = next;
+ }
+ else {
+ dsp_presets = next;
+ }
+ ddb_dsp_preset_free (p);
+
+ GtkComboBox *combo = GTK_COMBO_BOX (lookup_widget (converter, "dsp_preset"));
+ refresh_dsp_lists (combo, GTK_TREE_VIEW (list));
+ }
}
void
@@ -1182,7 +1355,7 @@ on_dsp_preset_edit (GtkButton *button,
current_dsp_preset = ddb_dsp_preset_alloc ();
ddb_dsp_preset_copy (current_dsp_preset, p);
- int r = edit_dsp_preset (toplevel, 1);
+ int r = edit_dsp_preset (_("Edit DSP Preset"), toplevel, 1);
if (r == GTK_RESPONSE_OK) {
// replace preset
if (prev) {
@@ -1193,6 +1366,8 @@ on_dsp_preset_edit (GtkButton *button,
}
current_dsp_preset->next = p->next;
ddb_dsp_preset_free (p);
+ GtkComboBox *combo = GTK_COMBO_BOX (lookup_widget (converter, "dsp_preset"));
+ refresh_dsp_lists (combo, GTK_TREE_VIEW (list));
}
else {
ddb_dsp_preset_free (current_dsp_preset);
diff --git a/plugins/gtkui/deadbeef.glade b/plugins/gtkui/deadbeef.glade
index e9a2f624..6544649f 100644
--- a/plugins/gtkui/deadbeef.glade
+++ b/plugins/gtkui/deadbeef.glade
@@ -7538,86 +7538,43 @@ Descending</property>
</child>
<child>
- <widget class="GtkHPaned" id="hpaned2">
+ <widget class="GtkVBox" id="vbox29">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">8</property>
<child>
- <widget class="GtkVBox" id="vbox29">
+ <widget class="GtkHBox" id="hbox82">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
+ <property name="homogeneous">True</property>
<property name="spacing">8</property>
<child>
- <widget class="GtkHBox" id="hbox82">
+ <widget class="GtkButton" id="add">
<property name="visible">True</property>
- <property name="homogeneous">True</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkButton" id="add">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Add</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <signal name="clicked" handler="on_dsp_preset_add_plugin_clicked" last_modification_time="Tue, 07 Dec 2010 20:11:31 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="remove">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Remove</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <signal name="clicked" handler="on_dsp_preset_remove_plugin_clicked" last_modification_time="Tue, 07 Dec 2010 20:12:20 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Add</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked" handler="on_dsp_preset_add_plugin_clicked" last_modification_time="Tue, 07 Dec 2010 20:11:31 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow7">
+ <widget class="GtkButton" id="remove">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="plugins">
- <property name="width_request">196</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
+ <property name="label" translatable="yes">Remove</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked" handler="on_dsp_preset_remove_plugin_clicked" last_modification_time="Tue, 07 Dec 2010 20:12:20 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -7625,77 +7582,59 @@ Descending</property>
<property name="fill">True</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="shrink">True</property>
- <property name="resize">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox32">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
<child>
- <widget class="GtkLabel" id="label110">
+ <widget class="GtkButton" id="configure">
<property name="visible">True</property>
- <property name="label" translatable="yes">Parameters</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Configure</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked" handler="on_dsp_preset_plugin_configure_clicked" last_modification_time="Thu, 09 Dec 2010 20:31:42 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow7">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow9">
+ <widget class="GtkTreeView" id="plugins">
+ <property name="width_request">196</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="params">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
</widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
</child>
</widget>
<packing>
- <property name="shrink">True</property>
- <property name="resize">True</property>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -7906,7 +7845,7 @@ Descending</property>
<widget class="GtkHBox" id="hbox94">
<property name="visible">True</property>
<property name="homogeneous">True</property>
- <property name="spacing">0</property>
+ <property name="spacing">8</property>
<child>
<widget class="GtkButton" id="add">
@@ -7920,7 +7859,7 @@ Descending</property>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
</packing>
</child>
@@ -7936,7 +7875,7 @@ Descending</property>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
</packing>
</child>
@@ -7952,7 +7891,7 @@ Descending</property>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c
index cfae083b..16df7678 100644
--- a/plugins/gtkui/interface.c
+++ b/plugins/gtkui/interface.c
@@ -3839,17 +3839,13 @@ create_dsppreset_editor (void)
GtkWidget *hbox81;
GtkWidget *label111;
GtkWidget *title;
- GtkWidget *hpaned2;
GtkWidget *vbox29;
GtkWidget *hbox82;
GtkWidget *add;
GtkWidget *remove;
+ GtkWidget *configure;
GtkWidget *scrolledwindow7;
GtkWidget *plugins;
- GtkWidget *vbox32;
- GtkWidget *label110;
- GtkWidget *scrolledwindow9;
- GtkWidget *params;
GtkWidget *dialog_action_area8;
GtkWidget *cancelbutton6;
GtkWidget *okbutton6;
@@ -3883,13 +3879,9 @@ create_dsppreset_editor (void)
gtk_entry_set_invisible_char (GTK_ENTRY (title), 9679);
gtk_entry_set_activates_default (GTK_ENTRY (title), TRUE);
- hpaned2 = gtk_hpaned_new ();
- gtk_widget_show (hpaned2);
- gtk_box_pack_start (GTK_BOX (vbox30), hpaned2, TRUE, TRUE, 0);
-
vbox29 = gtk_vbox_new (FALSE, 8);
gtk_widget_show (vbox29);
- gtk_paned_pack1 (GTK_PANED (hpaned2), vbox29, FALSE, TRUE);
+ gtk_box_pack_start (GTK_BOX (vbox30), vbox29, TRUE, TRUE, 0);
hbox82 = gtk_hbox_new (TRUE, 8);
gtk_widget_show (hbox82);
@@ -3903,6 +3895,10 @@ create_dsppreset_editor (void)
gtk_widget_show (remove);
gtk_box_pack_start (GTK_BOX (hbox82), remove, TRUE, TRUE, 0);
+ configure = gtk_button_new_with_mnemonic (_("Configure"));
+ gtk_widget_show (configure);
+ gtk_box_pack_start (GTK_BOX (hbox82), configure, TRUE, TRUE, 0);
+
scrolledwindow7 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow7);
gtk_box_pack_start (GTK_BOX (vbox29), scrolledwindow7, TRUE, TRUE, 0);
@@ -3915,24 +3911,6 @@ create_dsppreset_editor (void)
gtk_widget_set_size_request (plugins, 196, -1);
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (plugins), FALSE);
- vbox32 = gtk_vbox_new (FALSE, 8);
- gtk_widget_show (vbox32);
- gtk_paned_pack2 (GTK_PANED (hpaned2), vbox32, TRUE, TRUE);
-
- label110 = gtk_label_new (_("Parameters"));
- gtk_widget_show (label110);
- gtk_box_pack_start (GTK_BOX (vbox32), label110, FALSE, FALSE, 0);
-
- scrolledwindow9 = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scrolledwindow9);
- gtk_box_pack_start (GTK_BOX (vbox32), scrolledwindow9, TRUE, TRUE, 0);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow9), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow9), GTK_SHADOW_IN);
-
- params = gtk_tree_view_new ();
- gtk_widget_show (params);
- gtk_container_add (GTK_CONTAINER (scrolledwindow9), params);
-
dialog_action_area8 = GTK_DIALOG (dsppreset_editor)->action_area;
gtk_widget_show (dialog_action_area8);
gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area8), GTK_BUTTONBOX_END);
@@ -3953,6 +3931,9 @@ create_dsppreset_editor (void)
g_signal_connect ((gpointer) remove, "clicked",
G_CALLBACK (on_dsp_preset_remove_plugin_clicked),
NULL);
+ g_signal_connect ((gpointer) configure, "clicked",
+ G_CALLBACK (on_dsp_preset_plugin_configure_clicked),
+ NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (dsppreset_editor, dsppreset_editor, "dsppreset_editor");
@@ -3961,17 +3942,13 @@ create_dsppreset_editor (void)
GLADE_HOOKUP_OBJECT (dsppreset_editor, hbox81, "hbox81");
GLADE_HOOKUP_OBJECT (dsppreset_editor, label111, "label111");
GLADE_HOOKUP_OBJECT (dsppreset_editor, title, "title");
- GLADE_HOOKUP_OBJECT (dsppreset_editor, hpaned2, "hpaned2");
GLADE_HOOKUP_OBJECT (dsppreset_editor, vbox29, "vbox29");
GLADE_HOOKUP_OBJECT (dsppreset_editor, hbox82, "hbox82");
GLADE_HOOKUP_OBJECT (dsppreset_editor, add, "add");
GLADE_HOOKUP_OBJECT (dsppreset_editor, remove, "remove");
+ GLADE_HOOKUP_OBJECT (dsppreset_editor, configure, "configure");
GLADE_HOOKUP_OBJECT (dsppreset_editor, scrolledwindow7, "scrolledwindow7");
GLADE_HOOKUP_OBJECT (dsppreset_editor, plugins, "plugins");
- GLADE_HOOKUP_OBJECT (dsppreset_editor, vbox32, "vbox32");
- GLADE_HOOKUP_OBJECT (dsppreset_editor, label110, "label110");
- GLADE_HOOKUP_OBJECT (dsppreset_editor, scrolledwindow9, "scrolledwindow9");
- GLADE_HOOKUP_OBJECT (dsppreset_editor, params, "params");
GLADE_HOOKUP_OBJECT_NO_REF (dsppreset_editor, dialog_action_area8, "dialog_action_area8");
GLADE_HOOKUP_OBJECT (dsppreset_editor, cancelbutton6, "cancelbutton6");
GLADE_HOOKUP_OBJECT (dsppreset_editor, okbutton6, "okbutton6");
@@ -4073,21 +4050,21 @@ create_preset_list (void)
gtk_box_pack_start (GTK_BOX (dialog_vbox11), vbox33, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (vbox33), 12);
- hbox94 = gtk_hbox_new (TRUE, 0);
+ hbox94 = gtk_hbox_new (TRUE, 8);
gtk_widget_show (hbox94);
gtk_box_pack_start (GTK_BOX (vbox33), hbox94, FALSE, TRUE, 0);
add = gtk_button_new_from_stock ("gtk-add");
gtk_widget_show (add);
- gtk_box_pack_start (GTK_BOX (hbox94), add, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox94), add, FALSE, TRUE, 0);
remove = gtk_button_new_from_stock ("gtk-remove");
gtk_widget_show (remove);
- gtk_box_pack_start (GTK_BOX (hbox94), remove, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox94), remove, FALSE, TRUE, 0);
edit = gtk_button_new_from_stock ("gtk-edit");
gtk_widget_show (edit);
- gtk_box_pack_start (GTK_BOX (hbox94), edit, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox94), edit, FALSE, TRUE, 0);
scrolledwindow8 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow8);