Mercurial > audlegacy-plugins
comparison src/echo_plugin/gui.c @ 127:46730e83b1e2 trunk
[svn] - echo plugin support by Christian Birchinger <joker -at- gentoo.org>
| author | nenolod |
|---|---|
| date | Thu, 26 Oct 2006 12:41:45 -0700 |
| parents | |
| children | d124034ebea3 |
comparison
equal
deleted
inserted
replaced
| 126:29857e91c6d5 | 127:46730e83b1e2 |
|---|---|
| 1 #include <gtk/gtk.h> | |
| 2 #include <glib/gi18n.h> | |
| 3 #include "audacious/util.h" | |
| 4 #include "audacious/configdb.h" | |
| 5 #include "echo.h" | |
| 6 | |
| 7 static const char *echo_about_text = | |
| 8 N_("Echo Plugin\n" | |
| 9 "By Johan Levin 1999.\n\n" | |
| 10 "Surround echo by Carl van Schaik 1999"); | |
| 11 | |
| 12 static GtkWidget *conf_dialog = NULL, *surround_btn; | |
| 13 static GtkObject *echo_delay_adj, *echo_feedback_adj, *echo_volume_adj; | |
| 14 | |
| 15 void echo_about(void) | |
| 16 { | |
| 17 static GtkWidget *echo_about_dialog = NULL; | |
| 18 | |
| 19 if (echo_about_dialog != NULL) | |
| 20 return; | |
| 21 | |
| 22 echo_about_dialog = xmms_show_message(_("About Echo Plugin"), | |
| 23 _(echo_about_text), _("Ok"), | |
| 24 FALSE, NULL, NULL); | |
| 25 gtk_signal_connect(GTK_OBJECT(echo_about_dialog), "destroy", | |
| 26 GTK_SIGNAL_FUNC(gtk_widget_destroyed), | |
| 27 &echo_about_dialog); | |
| 28 } | |
| 29 | |
| 30 static void apply_changes(void) | |
| 31 { | |
| 32 ConfigDb *cfg; | |
| 33 echo_delay = GTK_ADJUSTMENT(echo_delay_adj)->value; | |
| 34 echo_feedback = GTK_ADJUSTMENT(echo_feedback_adj)->value; | |
| 35 echo_volume = GTK_ADJUSTMENT(echo_volume_adj)->value; | |
| 36 echo_surround_enable = | |
| 37 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(surround_btn)); | |
| 38 | |
| 39 cfg = bmp_cfg_db_open(); | |
| 40 bmp_cfg_db_set_int(cfg, "echo_plugin", "delay", echo_delay); | |
| 41 bmp_cfg_db_set_int(cfg, "echo_plugin", "feedback", echo_feedback); | |
| 42 bmp_cfg_db_set_int(cfg, "echo_plugin", "volume", echo_volume); | |
| 43 bmp_cfg_db_set_bool(cfg, "echo_plugin", "enable_surround", echo_surround_enable); | |
| 44 bmp_cfg_db_close(cfg); | |
| 45 } | |
| 46 | |
| 47 static void conf_ok_cb(GtkButton * button, gpointer data) | |
| 48 { | |
| 49 apply_changes(); | |
| 50 gtk_widget_destroy(GTK_WIDGET(conf_dialog)); | |
| 51 } | |
| 52 | |
| 53 static void conf_cancel_cb(GtkButton * button, gpointer data) | |
| 54 { | |
| 55 gtk_widget_destroy(GTK_WIDGET(conf_dialog)); | |
| 56 } | |
| 57 | |
| 58 static void conf_apply_cb(GtkButton * button, gpointer data) | |
| 59 { | |
| 60 apply_changes(); | |
| 61 } | |
| 62 | |
| 63 void echo_configure(void) | |
| 64 { | |
| 65 GtkWidget *button, *table, *label, *hscale, *bbox; | |
| 66 | |
| 67 if (conf_dialog != NULL) | |
| 68 return; | |
| 69 | |
| 70 conf_dialog = gtk_dialog_new(); | |
| 71 gtk_signal_connect(GTK_OBJECT(conf_dialog), "destroy", | |
| 72 GTK_SIGNAL_FUNC(gtk_widget_destroyed), &conf_dialog); | |
| 73 gtk_window_set_title(GTK_WINDOW(conf_dialog), _("Configure Echo")); | |
| 74 | |
| 75 echo_delay_adj = gtk_adjustment_new(echo_delay, 0, MAX_DELAY + 100, 10, 100, 100); | |
| 76 echo_feedback_adj = gtk_adjustment_new(echo_feedback, 0, 100 + 10, 2, 10, 10); | |
| 77 echo_volume_adj = gtk_adjustment_new(echo_volume, 0, 100 + 10, 2, 10, 10); | |
| 78 | |
| 79 table = gtk_table_new(2, 3, FALSE); | |
| 80 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 81 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
| 82 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(conf_dialog)->vbox), table, | |
| 83 TRUE, TRUE, 5); | |
| 84 gtk_widget_show(table); | |
| 85 | |
| 86 label = gtk_label_new(_("Delay: (ms)")); | |
| 87 gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); | |
| 88 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); | |
| 89 gtk_widget_show(label); | |
| 90 | |
| 91 label = gtk_label_new(_("Feedback: (%)")); | |
| 92 gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); | |
| 93 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0); | |
| 94 gtk_widget_show(label); | |
| 95 | |
| 96 label = gtk_label_new(_("Volume: (%)")); | |
| 97 gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); | |
| 98 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0); | |
| 99 gtk_widget_show(label); | |
| 100 | |
| 101 hscale = gtk_hscale_new(GTK_ADJUSTMENT(echo_delay_adj)); | |
| 102 gtk_widget_set_usize(hscale, 400, 35); | |
| 103 gtk_scale_set_digits(GTK_SCALE(hscale), 0); | |
| 104 gtk_table_attach_defaults(GTK_TABLE(table), hscale, 1, 2, 0, 1); | |
| 105 gtk_widget_show(hscale); | |
| 106 | |
| 107 hscale = gtk_hscale_new(GTK_ADJUSTMENT(echo_feedback_adj)); | |
| 108 gtk_widget_set_usize(hscale, 400, 35); | |
| 109 gtk_scale_set_digits(GTK_SCALE(hscale), 0); | |
| 110 gtk_table_attach_defaults(GTK_TABLE(table), hscale, 1, 2, 1, 2); | |
| 111 gtk_widget_show(hscale); | |
| 112 | |
| 113 hscale = gtk_hscale_new(GTK_ADJUSTMENT(echo_volume_adj)); | |
| 114 gtk_widget_set_usize(hscale, 400, 35); | |
| 115 gtk_scale_set_digits(GTK_SCALE(hscale), 0); | |
| 116 gtk_table_attach_defaults(GTK_TABLE(table), hscale, 1, 2, 2, 3); | |
| 117 gtk_widget_show(hscale); | |
| 118 | |
| 119 surround_btn = gtk_check_button_new_with_label(_("Surround echo")); | |
| 120 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(surround_btn), | |
| 121 echo_surround_enable); | |
| 122 gtk_widget_show(surround_btn); | |
| 123 | |
| 124 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(conf_dialog)->vbox), surround_btn, | |
| 125 TRUE, TRUE, 5); | |
| 126 | |
| 127 bbox = gtk_hbutton_box_new(); | |
| 128 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); | |
| 129 gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5); | |
| 130 gtk_box_pack_start(GTK_BOX((GTK_DIALOG(conf_dialog)->action_area)), | |
| 131 bbox, TRUE, TRUE, 0); | |
| 132 | |
| 133 | |
| 134 button = gtk_button_new_with_label(_("Ok")); | |
| 135 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
| 136 gtk_box_pack_start(GTK_BOX(bbox), button, TRUE, TRUE, 0); | |
| 137 gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
| 138 GTK_SIGNAL_FUNC(conf_ok_cb), NULL); | |
| 139 gtk_widget_grab_default(button); | |
| 140 gtk_widget_show(button); | |
| 141 | |
| 142 button = gtk_button_new_with_label(_("Cancel")); | |
| 143 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
| 144 gtk_box_pack_start(GTK_BOX(bbox), button, TRUE, TRUE, 0); | |
| 145 gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
| 146 GTK_SIGNAL_FUNC(conf_cancel_cb), NULL); | |
| 147 gtk_widget_show(button); | |
| 148 | |
| 149 button = gtk_button_new_with_label(_("Apply")); | |
| 150 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
| 151 gtk_box_pack_start(GTK_BOX(bbox), button, TRUE, TRUE, 0); | |
| 152 gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
| 153 GTK_SIGNAL_FUNC(conf_apply_cb), NULL); | |
| 154 gtk_widget_show(button); | |
| 155 gtk_widget_show(bbox); | |
| 156 | |
| 157 gtk_widget_show(conf_dialog); | |
| 158 } |
