# HG changeset patch # User Matti Hamalainen # Date 1189036983 -10800 # Node ID d6d8e3cd23c5d356eb3e7314d9f49cfb4e9f2ffc # Parent d158ce84fda716c202f307d8b29e0c2febc8c3ba# Parent 75b8e7737bcd5eb435d4d7ea61e6600ba618f279 Branch merge. diff -r d158ce84fda7 -r d6d8e3cd23c5 src/modplug/gui/interface.cxx --- a/src/modplug/gui/interface.cxx Wed Sep 05 09:29:26 2007 +0300 +++ b/src/modplug/gui/interface.cxx Thu Sep 06 03:03:03 2007 +0300 @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -18,6 +19,13 @@ #include "interface.h" #include "support.h" +#define GLADE_HOOKUP_OBJECT(component,widget,name) \ + g_object_set_data_full (G_OBJECT (component), name, \ + gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) + +#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ + g_object_set_data (G_OBJECT (component), name, widget) + GtkWidget* create_Config (void) { @@ -28,31 +36,73 @@ GtkWidget *hbox2; GtkWidget *frame1; GtkWidget *vbox4; - GSList *vbox4_group = NULL; GtkWidget *bit16; + GSList *bit16_group = NULL; GtkWidget *bit8; + GtkWidget *xlabel2; GtkWidget *frame2; GtkWidget *vbox5; - GSList *vbox5_group = NULL; GtkWidget *stereo; + GSList *stereo_group = NULL; GtkWidget *mono; - GtkWidget *hbox10; - GtkWidget *frame3; - GtkWidget *vbox6; - GSList *vbox6_group = NULL; - GtkWidget *samp48; - GtkWidget *samp44; - GtkWidget *samp22; - GtkWidget *samp11; + GtkWidget *label3; + GtkWidget *hbox14; GtkWidget *frame9; GtkWidget *vbox15; - GSList *vbox15_group = NULL; GtkWidget *resampNearest; + GSList *resampNearest_group = NULL; GtkWidget *resampLinear; GtkWidget *resampSpline; GtkWidget *resampPolyphase; + GtkWidget *label4; + GtkWidget *frame3; + GtkWidget *vbox6; + GtkWidget *samp44; + GSList *samp44_group = NULL; + GtkWidget *samp22; + GtkWidget *samp11; + GtkWidget *label5; GtkWidget *label2; GtkWidget *vbox7; + GtkWidget *hbox15; + GtkWidget *frame5; + GtkWidget *vbox20; + GtkWidget *fxReverb; + GtkWidget *table1; + GtkWidget *fxReverbDepth; + GtkWidget *fxReverbDelay; + GtkWidget *xlabel3; + GtkWidget *xlabel4; + GtkWidget *label6; + GtkWidget *frame6; + GtkWidget *vbox21; + GtkWidget *fxBassBoost; + GtkWidget *table2; + GtkWidget *fxBassAmount; + GtkWidget *fxBassRange; + GtkWidget *xlabel5; + GtkWidget *xlabel6; + GtkWidget *label7; + GtkWidget *hbox16; + GtkWidget *frame7; + GtkWidget *vbox22; + GtkWidget *fxSurround; + GtkWidget *table3; + GtkWidget *fxSurroundDepth; + GtkWidget *fxSurroundDelay; + GtkWidget *xlabel7; + GtkWidget *label8; + GtkWidget *xlabel8; + GtkWidget *frame10; + GtkWidget *vbox16; + GtkWidget *fxPreamp; + GtkWidget *hbox11; + GtkWidget *label19; + GtkWidget *fxPreampLevel; + GtkWidget *label20; + GtkWidget *label9; + GtkWidget *label10; + GtkWidget *vbox19; GtkWidget *frame4; GtkWidget *hbox3; GtkWidget *vbox8; @@ -61,703 +111,711 @@ GtkWidget *vbox9; GtkWidget *fxNR; GtkWidget *fxAmigaMOD; - GtkWidget *frame5; - GtkWidget *hbox4; - GtkWidget *fxReverb; - GtkWidget *vbox10; - GtkWidget *table1; - GtkWidget *fxReverbDepth; - GtkWidget *fxReverbDelay; - GtkWidget *label3; - GtkWidget *label4; - GtkWidget *frame6; - GtkWidget *hbox5; - GtkWidget *fxBassBoost; - GtkWidget *vbox11; - GtkWidget *table2; - GtkWidget *fxBassAmount; - GtkWidget *fxBassRange; - GtkWidget *label5; - GtkWidget *label6; - GtkWidget *frame7; - GtkWidget *hbox6; - GtkWidget *fxSurround; - GtkWidget *vbox12; - GtkWidget *table3; - GtkWidget *fxSurroundDepth; - GtkWidget *fxSurroundDelay; - GtkWidget *label7; - GtkWidget *label8; - GtkWidget *frame10; - GtkWidget *vbox16; - GtkWidget *label20; - GtkWidget *hbox11; - GtkWidget *fxPreamp; - GtkWidget *label19; - GtkWidget *fxPreampLevel; + GtkWidget *label21; GtkWidget *frame11; GtkWidget *vbox17; - GSList *loopGroup_group = NULL; GtkWidget *fxNoLoop; + GSList *fxNoLoop_group = NULL; GtkWidget *hbox13; GtkWidget *fxLoopFinite; GtkObject *fxLoopCount_adj; GtkWidget *fxLoopCount; - GtkWidget *label21; + GtkWidget *xlabel21; GtkWidget *fxLoopForever; - GtkWidget *label10; + GtkWidget *label22; + GtkWidget *xlabel22; GtkWidget *hbuttonbox2; GtkWidget *config_ok; GtkWidget *config_apply; GtkWidget *config_cancel; Config = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_object_set_data (GTK_OBJECT (Config), "Config", Config); - gtk_widget_set_usize (Config, -1, -1); + gtk_widget_set_name (Config, "Config"); + gtk_widget_set_size_request (Config, 500, -1); gtk_window_set_title (GTK_WINDOW (Config), _("ModPlug Configuration")); - gtk_window_set_policy (GTK_WINDOW (Config), FALSE, FALSE, FALSE); + gtk_window_set_resizable (GTK_WINDOW (Config), FALSE); vbox2 = gtk_vbox_new (FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(vbox2),5); - gtk_widget_ref (vbox2); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox2", vbox2, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox2, "vbox2"); gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (Config), vbox2); notebook1 = gtk_notebook_new (); - gtk_widget_ref (notebook1); - gtk_object_set_data_full (GTK_OBJECT (Config), "notebook1", notebook1, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (notebook1, "notebook1"); gtk_widget_show (notebook1); - gtk_box_pack_start (GTK_BOX (vbox2), notebook1, TRUE, TRUE, 5); - gtk_container_set_border_width (GTK_CONTAINER (notebook1), 0); + gtk_box_pack_start (GTK_BOX (vbox2), notebook1, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (notebook1), 4); vbox3 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox3); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox3", vbox3, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox3, "vbox3"); gtk_widget_show (vbox3); gtk_container_add (GTK_CONTAINER (notebook1), vbox3); - gtk_container_set_border_width (GTK_CONTAINER (vbox3), 6); + gtk_container_set_border_width (GTK_CONTAINER (vbox3), 2); - hbox2 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox2); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox2", hbox2, - (GtkDestroyNotify) gtk_widget_unref); + hbox2 = gtk_hbox_new (FALSE, 2); + gtk_widget_set_name (hbox2, "hbox2"); gtk_widget_show (hbox2); - gtk_box_pack_start (GTK_BOX (vbox3), hbox2, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox3), hbox2, FALSE, TRUE, 0); - frame1 = gtk_frame_new (_("Resolution")); - gtk_widget_ref (frame1); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame1", frame1, - (GtkDestroyNotify) gtk_widget_unref); + frame1 = gtk_frame_new (NULL); + gtk_widget_set_name (frame1, "frame1"); gtk_widget_show (frame1); gtk_box_pack_start (GTK_BOX (hbox2), frame1, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame1), 2); vbox4 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox4); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox4", vbox4, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox4, "vbox4"); gtk_widget_show (vbox4); gtk_container_add (GTK_CONTAINER (frame1), vbox4); + gtk_container_set_border_width (GTK_CONTAINER (vbox4), 2); - bit16 = gtk_radio_button_new_with_label (vbox4_group, _("16 bit")); - vbox4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (bit16)); - gtk_widget_ref (bit16); - gtk_object_set_data_full (GTK_OBJECT (Config), "bit16", bit16, - (GtkDestroyNotify) gtk_widget_unref); + bit16 = gtk_radio_button_new_with_mnemonic (NULL, _("16 bit")); + gtk_widget_set_name (bit16, "bit16"); gtk_widget_show (bit16); gtk_box_pack_start (GTK_BOX (vbox4), bit16, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (bit16), bit16_group); + bit16_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (bit16)); - bit8 = gtk_radio_button_new_with_label (vbox4_group, _("8 bit")); - vbox4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (bit8)); - gtk_widget_ref (bit8); - gtk_object_set_data_full (GTK_OBJECT (Config), "bit8", bit8, - (GtkDestroyNotify) gtk_widget_unref); + bit8 = gtk_radio_button_new_with_mnemonic (NULL, _("8 bit")); + gtk_widget_set_name (bit8, "bit8"); gtk_widget_show (bit8); gtk_box_pack_start (GTK_BOX (vbox4), bit8, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (bit8), bit16_group); + bit16_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (bit8)); - frame2 = gtk_frame_new (_("Channels")); - gtk_widget_ref (frame2); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame2", frame2, - (GtkDestroyNotify) gtk_widget_unref); + xlabel2 = gtk_label_new (_("Resolution")); + gtk_widget_set_name (xlabel2, "xlabel2"); + gtk_widget_show (xlabel2); + gtk_frame_set_label_widget (GTK_FRAME (frame1), xlabel2); + + frame2 = gtk_frame_new (NULL); + gtk_widget_set_name (frame2, "frame2"); gtk_widget_show (frame2); gtk_box_pack_start (GTK_BOX (hbox2), frame2, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame2), 2); vbox5 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox5); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox5", vbox5, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox5, "vbox5"); gtk_widget_show (vbox5); gtk_container_add (GTK_CONTAINER (frame2), vbox5); + gtk_container_set_border_width (GTK_CONTAINER (vbox5), 2); - stereo = gtk_radio_button_new_with_label (vbox5_group, _("Stereo")); - vbox5_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stereo)); - gtk_widget_ref (stereo); - gtk_object_set_data_full (GTK_OBJECT (Config), "stereo", stereo, - (GtkDestroyNotify) gtk_widget_unref); + stereo = gtk_radio_button_new_with_mnemonic (NULL, _("Stereo")); + gtk_widget_set_name (stereo, "stereo"); gtk_widget_show (stereo); gtk_box_pack_start (GTK_BOX (vbox5), stereo, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (stereo), stereo_group); + stereo_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (stereo)); - mono = gtk_radio_button_new_with_label (vbox5_group, _("Mono (downmix)")); - vbox5_group = gtk_radio_button_group (GTK_RADIO_BUTTON (mono)); - gtk_widget_ref (mono); - gtk_object_set_data_full (GTK_OBJECT (Config), "mono", mono, - (GtkDestroyNotify) gtk_widget_unref); + mono = gtk_radio_button_new_with_mnemonic (NULL, _("Mono (downmix)")); + gtk_widget_set_name (mono, "mono"); gtk_widget_show (mono); gtk_box_pack_start (GTK_BOX (vbox5), mono, FALSE, FALSE, 0); - - hbox10 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox10); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox10", hbox10, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox10); - gtk_box_pack_start (GTK_BOX (vbox3), hbox10, TRUE, TRUE, 0); - - frame3 = gtk_frame_new (_("Sampling Rate")); - gtk_widget_ref (frame3); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame3", frame3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame3); - gtk_box_pack_start (GTK_BOX (hbox10), frame3, TRUE, TRUE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (mono), stereo_group); + stereo_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (mono)); - vbox6 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox6); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox6", vbox6, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox6); - gtk_container_add (GTK_CONTAINER (frame3), vbox6); - - samp48 = gtk_radio_button_new_with_label (vbox6_group, _("48 kHz")); - vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp48)); - gtk_widget_ref (samp48); - gtk_object_set_data_full (GTK_OBJECT (Config), "samp48", samp48, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (samp48); - gtk_box_pack_start (GTK_BOX (vbox6), samp48, FALSE, FALSE, 0); + label3 = gtk_label_new (_("Channels")); + gtk_widget_set_name (label3, "label3"); + gtk_widget_show (label3); + gtk_frame_set_label_widget (GTK_FRAME (frame2), label3); - samp44 = gtk_radio_button_new_with_label (vbox6_group, _("44 kHz")); - vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp44)); - gtk_widget_ref (samp44); - gtk_object_set_data_full (GTK_OBJECT (Config), "samp44", samp44, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (samp44); - gtk_box_pack_start (GTK_BOX (vbox6), samp44, FALSE, FALSE, 0); + hbox14 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox14, "hbox14"); + gtk_widget_show (hbox14); + gtk_box_pack_start (GTK_BOX (vbox3), hbox14, FALSE, TRUE, 0); - samp22 = gtk_radio_button_new_with_label (vbox6_group, _("22 kHz")); - vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp22)); - gtk_widget_ref (samp22); - gtk_object_set_data_full (GTK_OBJECT (Config), "samp22", samp22, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (samp22); - gtk_box_pack_start (GTK_BOX (vbox6), samp22, FALSE, FALSE, 0); - - samp11 = gtk_radio_button_new_with_label (vbox6_group, _("11 kHz")); - vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp11)); - gtk_widget_ref (samp11); - gtk_object_set_data_full (GTK_OBJECT (Config), "samp11", samp11, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (samp11); - gtk_box_pack_start (GTK_BOX (vbox6), samp11, FALSE, FALSE, 0); - - frame9 = gtk_frame_new (_("Resampling")); - gtk_widget_ref (frame9); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame9", frame9, - (GtkDestroyNotify) gtk_widget_unref); + frame9 = gtk_frame_new (NULL); + gtk_widget_set_name (frame9, "frame9"); gtk_widget_show (frame9); - gtk_box_pack_start (GTK_BOX (hbox10), frame9, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox14), frame9, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame9), 2); vbox15 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox15); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox15", vbox15, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox15, "vbox15"); gtk_widget_show (vbox15); gtk_container_add (GTK_CONTAINER (frame9), vbox15); + gtk_container_set_border_width (GTK_CONTAINER (vbox15), 2); - resampNearest = gtk_radio_button_new_with_label (vbox15_group, _("Nearest (fastest)")); - vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampNearest)); - gtk_widget_ref (resampNearest); - gtk_object_set_data_full (GTK_OBJECT (Config), "resampNearest", resampNearest, - (GtkDestroyNotify) gtk_widget_unref); + resampNearest = gtk_radio_button_new_with_mnemonic (NULL, _("Nearest (fastest)")); + gtk_widget_set_name (resampNearest, "resampNearest"); gtk_widget_show (resampNearest); gtk_box_pack_start (GTK_BOX (vbox15), resampNearest, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampNearest), resampNearest_group); + resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampNearest)); - resampLinear = gtk_radio_button_new_with_label (vbox15_group, _("Linear (fast)")); - vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampLinear)); - gtk_widget_ref (resampLinear); - gtk_object_set_data_full (GTK_OBJECT (Config), "resampLinear", resampLinear, - (GtkDestroyNotify) gtk_widget_unref); + resampLinear = gtk_radio_button_new_with_mnemonic (NULL, _("Linear (fast)")); + gtk_widget_set_name (resampLinear, "resampLinear"); gtk_widget_show (resampLinear); gtk_box_pack_start (GTK_BOX (vbox15), resampLinear, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampLinear), resampNearest_group); + resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampLinear)); - resampSpline = gtk_radio_button_new_with_label (vbox15_group, _("Spline (good quality)")); - vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampSpline)); - gtk_widget_ref (resampSpline); - gtk_object_set_data_full (GTK_OBJECT (Config), "resampSpline", resampSpline, - (GtkDestroyNotify) gtk_widget_unref); + resampSpline = gtk_radio_button_new_with_mnemonic (NULL, _("Spline (good quality)")); + gtk_widget_set_name (resampSpline, "resampSpline"); gtk_widget_show (resampSpline); gtk_box_pack_start (GTK_BOX (vbox15), resampSpline, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampSpline), resampNearest_group); + resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampSpline)); - resampPolyphase = gtk_radio_button_new_with_label (vbox15_group, _("8-tap Fir (extremely high quality)")); - vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampPolyphase)); - gtk_widget_ref (resampPolyphase); - gtk_object_set_data_full (GTK_OBJECT (Config), "resampPolyphase", resampPolyphase, - (GtkDestroyNotify) gtk_widget_unref); + resampPolyphase = gtk_radio_button_new_with_mnemonic (NULL, _("8-tap Fir (extremely high quality)")); + gtk_widget_set_name (resampPolyphase, "resampPolyphase"); gtk_widget_show (resampPolyphase); gtk_box_pack_start (GTK_BOX (vbox15), resampPolyphase, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampPolyphase), resampNearest_group); + resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampPolyphase)); + + label4 = gtk_label_new (_("Resampling")); + gtk_widget_set_name (label4, "label4"); + gtk_widget_show (label4); + gtk_frame_set_label_widget (GTK_FRAME (frame9), label4); + + frame3 = gtk_frame_new (NULL); + gtk_widget_set_name (frame3, "frame3"); + gtk_widget_show (frame3); + gtk_box_pack_start (GTK_BOX (hbox14), frame3, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame3), 2); + + vbox6 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox6, "vbox6"); + gtk_widget_show (vbox6); + gtk_container_add (GTK_CONTAINER (frame3), vbox6); + gtk_container_set_border_width (GTK_CONTAINER (vbox6), 2); + + samp44 = gtk_radio_button_new_with_mnemonic (NULL, _("44 kHz")); + gtk_widget_set_name (samp44, "samp44"); + gtk_widget_show (samp44); + gtk_box_pack_start (GTK_BOX (vbox6), samp44, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (samp44), samp44_group); + samp44_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (samp44)); + + samp22 = gtk_radio_button_new_with_mnemonic (NULL, _("22 kHz")); + gtk_widget_set_name (samp22, "samp22"); + gtk_widget_show (samp22); + gtk_box_pack_start (GTK_BOX (vbox6), samp22, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (samp22), samp44_group); + samp44_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (samp22)); + + samp11 = gtk_radio_button_new_with_mnemonic (NULL, _("11 kHz")); + gtk_widget_set_name (samp11, "samp11"); + gtk_widget_show (samp11); + gtk_box_pack_start (GTK_BOX (vbox6), samp11, FALSE, FALSE, 0); + gtk_button_set_focus_on_click (GTK_BUTTON (samp11), FALSE); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (samp11), samp44_group); + samp44_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (samp11)); + + label5 = gtk_label_new (_("Sampling Rate")); + gtk_widget_set_name (label5, "label5"); + gtk_widget_show (label5); + gtk_frame_set_label_widget (GTK_FRAME (frame3), label5); label2 = gtk_label_new (_("Quality")); - gtk_widget_ref (label2); - gtk_object_set_data_full (GTK_OBJECT (Config), "label2", label2, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label2, "label2"); gtk_widget_show (label2); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label2); + gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_CENTER); vbox7 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox7); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox7", vbox7, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox7, "vbox7"); gtk_widget_show (vbox7); gtk_container_add (GTK_CONTAINER (notebook1), vbox7); - gtk_container_set_border_width (GTK_CONTAINER (vbox7), 6); - - frame4 = gtk_frame_new (_("General")); - gtk_widget_ref (frame4); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame4", frame4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame4); - gtk_box_pack_start (GTK_BOX (vbox7), frame4, TRUE, TRUE, 0); - - hbox3 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox3); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox3", hbox3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox3); - gtk_container_add (GTK_CONTAINER (frame4), hbox3); + gtk_container_set_border_width (GTK_CONTAINER (vbox7), 2); - vbox8 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox8); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox8", vbox8, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox8); - gtk_box_pack_start (GTK_BOX (hbox3), vbox8, TRUE, TRUE, 0); - - fxUseFilename = gtk_check_button_new_with_label (_("Use Filename as Song Title")); - gtk_widget_ref (fxUseFilename); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxUseFilename", fxUseFilename, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fxUseFilename); - gtk_box_pack_start (GTK_BOX (vbox8), fxUseFilename, FALSE, FALSE, 0); - - fxFastInfo = gtk_check_button_new_with_label (_("Fast Playlist Info")); - gtk_widget_ref (fxFastInfo); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxFastInfo", fxFastInfo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fxFastInfo); - gtk_box_pack_start (GTK_BOX (vbox8), fxFastInfo, FALSE, FALSE, 0); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxFastInfo), TRUE); + hbox15 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox15, "hbox15"); + gtk_widget_show (hbox15); + gtk_box_pack_start (GTK_BOX (vbox7), hbox15, FALSE, TRUE, 0); - vbox9 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox9); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox9", vbox9, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox9); - gtk_box_pack_start (GTK_BOX (hbox3), vbox9, TRUE, TRUE, 0); - - fxNR = gtk_check_button_new_with_label (_("Noise Reduction")); - gtk_widget_ref (fxNR); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxNR", fxNR, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fxNR); - gtk_box_pack_start (GTK_BOX (vbox9), fxNR, FALSE, FALSE, 0); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxNR), TRUE); + frame5 = gtk_frame_new (NULL); + gtk_widget_set_name (frame5, "frame5"); + gtk_widget_show (frame5); + gtk_box_pack_start (GTK_BOX (hbox15), frame5, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame5), 2); - fxAmigaMOD = gtk_check_button_new_with_label (_("Play Amiga MOD")); - gtk_widget_ref (fxAmigaMOD); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxAmigaMOD", fxAmigaMOD, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fxAmigaMOD); - gtk_box_pack_start (GTK_BOX (vbox9), fxAmigaMOD, FALSE, FALSE, 0); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxAmigaMOD), TRUE); + vbox20 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox20, "vbox20"); + gtk_widget_show (vbox20); + gtk_container_add (GTK_CONTAINER (frame5), vbox20); + gtk_container_set_border_width (GTK_CONTAINER (vbox20), 2); - frame5 = gtk_frame_new (_("Reverb")); - gtk_widget_ref (frame5); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame5", frame5, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame5); - gtk_box_pack_start (GTK_BOX (vbox7), frame5, TRUE, TRUE, 0); - - hbox4 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox4); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox4", hbox4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox4); - gtk_container_add (GTK_CONTAINER (frame5), hbox4); - - fxReverb = gtk_check_button_new_with_label (_("Enable")); - gtk_widget_ref (fxReverb); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxReverb", fxReverb, - (GtkDestroyNotify) gtk_widget_unref); + fxReverb = gtk_check_button_new_with_mnemonic (_("Enable")); + gtk_widget_set_name (fxReverb, "fxReverb"); gtk_widget_show (fxReverb); - gtk_box_pack_start (GTK_BOX (hbox4), fxReverb, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox20), fxReverb, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (fxReverb), 2); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxReverb), TRUE); - vbox10 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox10); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox10", vbox10, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox10); - gtk_box_pack_start (GTK_BOX (hbox4), vbox10, TRUE, TRUE, 0); - table1 = gtk_table_new (2, 2, FALSE); - gtk_widget_ref (table1); - gtk_object_set_data_full (GTK_OBJECT (Config), "table1", table1, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (table1, "table1"); gtk_widget_show (table1); - gtk_box_pack_start (GTK_BOX (vbox10), table1, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox20), table1, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (table1), 2); + gtk_table_set_row_spacings (GTK_TABLE (table1), 4); + gtk_table_set_col_spacings (GTK_TABLE (table1), 4); fxReverbDepth = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (30, 0, 100, 0, 0, 0))); - gtk_widget_ref (fxReverbDepth); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxReverbDepth", fxReverbDepth, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxReverbDepth, "fxReverbDepth"); gtk_widget_show (fxReverbDepth); gtk_table_attach (GTK_TABLE (table1), fxReverbDepth, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); fxReverbDelay = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (90, 40, 200, 0, 0, 0))); - gtk_widget_ref (fxReverbDelay); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxReverbDelay", fxReverbDelay, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxReverbDelay, "fxReverbDelay"); gtk_widget_show (fxReverbDelay); gtk_table_attach (GTK_TABLE (table1), fxReverbDelay, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - label3 = gtk_label_new (_("Depth")); - gtk_widget_ref (label3); - gtk_object_set_data_full (GTK_OBJECT (Config), "label3", label3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label3); - gtk_table_attach (GTK_TABLE (table1), label3, 0, 1, 0, 1, + xlabel3 = gtk_label_new (_("Depth")); + gtk_widget_set_name (xlabel3, "xlabel3"); + gtk_widget_show (xlabel3); + gtk_table_attach (GTK_TABLE (table1), xlabel3, 0, 1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); + gtk_label_set_justify (GTK_LABEL (xlabel3), GTK_JUSTIFY_CENTER); - label4 = gtk_label_new (_("Delay")); - gtk_widget_ref (label4); - gtk_object_set_data_full (GTK_OBJECT (Config), "label4", label4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label4); - gtk_table_attach (GTK_TABLE (table1), label4, 0, 1, 1, 2, + xlabel4 = gtk_label_new (_("Delay")); + gtk_widget_set_name (xlabel4, "xlabel4"); + gtk_widget_show (xlabel4); + gtk_table_attach (GTK_TABLE (table1), xlabel4, 0, 1, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); + gtk_label_set_justify (GTK_LABEL (xlabel4), GTK_JUSTIFY_CENTER); - frame6 = gtk_frame_new (_("Bass Boost")); - gtk_widget_ref (frame6); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame6", frame6, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame6); - gtk_box_pack_start (GTK_BOX (vbox7), frame6, TRUE, TRUE, 0); + label6 = gtk_label_new (_("Reverb")); + gtk_widget_set_name (label6, "label6"); + gtk_widget_show (label6); + gtk_frame_set_label_widget (GTK_FRAME (frame5), label6); - hbox5 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox5); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox5", hbox5, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox5); - gtk_container_add (GTK_CONTAINER (frame6), hbox5); + frame6 = gtk_frame_new (NULL); + gtk_widget_set_name (frame6, "frame6"); + gtk_widget_show (frame6); + gtk_box_pack_start (GTK_BOX (hbox15), frame6, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame6), 2); - fxBassBoost = gtk_check_button_new_with_label (_("Enable")); - gtk_widget_ref (fxBassBoost); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxBassBoost", fxBassBoost, - (GtkDestroyNotify) gtk_widget_unref); + vbox21 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox21, "vbox21"); + gtk_widget_show (vbox21); + gtk_container_add (GTK_CONTAINER (frame6), vbox21); + gtk_container_set_border_width (GTK_CONTAINER (vbox21), 2); + + fxBassBoost = gtk_check_button_new_with_mnemonic (_("Enable")); + gtk_widget_set_name (fxBassBoost, "fxBassBoost"); gtk_widget_show (fxBassBoost); - gtk_box_pack_start (GTK_BOX (hbox5), fxBassBoost, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox21), fxBassBoost, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (fxBassBoost), 2); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxBassBoost), TRUE); - vbox11 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox11); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox11", vbox11, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox11); - gtk_box_pack_start (GTK_BOX (hbox5), vbox11, TRUE, TRUE, 0); - table2 = gtk_table_new (2, 2, FALSE); - gtk_widget_ref (table2); - gtk_object_set_data_full (GTK_OBJECT (Config), "table2", table2, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (table2, "table2"); gtk_widget_show (table2); - gtk_box_pack_start (GTK_BOX (vbox11), table2, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox21), table2, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (table2), 2); + gtk_table_set_row_spacings (GTK_TABLE (table2), 4); + gtk_table_set_col_spacings (GTK_TABLE (table2), 4); fxBassAmount = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (30, 0, 100, 0, 0, 0))); - gtk_widget_ref (fxBassAmount); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxBassAmount", fxBassAmount, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxBassAmount, "fxBassAmount"); gtk_widget_show (fxBassAmount); gtk_table_attach (GTK_TABLE (table2), fxBassAmount, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); fxBassRange = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (30, 10, 100, 0, 0, 0))); - gtk_widget_ref (fxBassRange); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxBassRange", fxBassRange, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxBassRange, "fxBassRange"); gtk_widget_show (fxBassRange); gtk_table_attach (GTK_TABLE (table2), fxBassRange, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - label5 = gtk_label_new (_("Amount")); - gtk_widget_ref (label5); - gtk_object_set_data_full (GTK_OBJECT (Config), "label5", label5, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label5); - gtk_table_attach (GTK_TABLE (table2), label5, 0, 1, 0, 1, + xlabel5 = gtk_label_new (_("Amount")); + gtk_widget_set_name (xlabel5, "xlabel5"); + gtk_widget_show (xlabel5); + gtk_table_attach (GTK_TABLE (table2), xlabel5, 0, 1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); + gtk_label_set_justify (GTK_LABEL (xlabel5), GTK_JUSTIFY_CENTER); - label6 = gtk_label_new (_("Range")); - gtk_widget_ref (label6); - gtk_object_set_data_full (GTK_OBJECT (Config), "label6", label6, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label6); - gtk_table_attach (GTK_TABLE (table2), label6, 0, 1, 1, 2, + xlabel6 = gtk_label_new (_("Range")); + gtk_widget_set_name (xlabel6, "xlabel6"); + gtk_widget_show (xlabel6); + gtk_table_attach (GTK_TABLE (table2), xlabel6, 0, 1, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); + gtk_label_set_justify (GTK_LABEL (xlabel6), GTK_JUSTIFY_CENTER); - frame7 = gtk_frame_new (_("Surround")); - gtk_widget_ref (frame7); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame7", frame7, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame7); - gtk_box_pack_start (GTK_BOX (vbox7), frame7, TRUE, TRUE, 0); + label7 = gtk_label_new (_("Bass Boost")); + gtk_widget_set_name (label7, "label7"); + gtk_widget_show (label7); + gtk_frame_set_label_widget (GTK_FRAME (frame6), label7); + + hbox16 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox16, "hbox16"); + gtk_widget_show (hbox16); + gtk_box_pack_start (GTK_BOX (vbox7), hbox16, FALSE, TRUE, 0); - hbox6 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox6); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox6", hbox6, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox6); - gtk_container_add (GTK_CONTAINER (frame7), hbox6); + frame7 = gtk_frame_new (NULL); + gtk_widget_set_name (frame7, "frame7"); + gtk_widget_show (frame7); + gtk_box_pack_start (GTK_BOX (hbox16), frame7, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame7), 2); - fxSurround = gtk_check_button_new_with_label (_("Enable")); - gtk_widget_ref (fxSurround); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxSurround", fxSurround, - (GtkDestroyNotify) gtk_widget_unref); + vbox22 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox22, "vbox22"); + gtk_widget_show (vbox22); + gtk_container_add (GTK_CONTAINER (frame7), vbox22); + + fxSurround = gtk_check_button_new_with_mnemonic (_("Enable")); + gtk_widget_set_name (fxSurround, "fxSurround"); gtk_widget_show (fxSurround); - gtk_box_pack_start (GTK_BOX (hbox6), fxSurround, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox22), fxSurround, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (fxSurround), 2); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxSurround), TRUE); - vbox12 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox12); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox12", vbox12, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox12); - gtk_box_pack_start (GTK_BOX (hbox6), vbox12, TRUE, TRUE, 0); - table3 = gtk_table_new (2, 2, FALSE); - gtk_widget_ref (table3); - gtk_object_set_data_full (GTK_OBJECT (Config), "table3", table3, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (table3, "table3"); gtk_widget_show (table3); - gtk_box_pack_start (GTK_BOX (vbox12), table3, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox22), table3, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (table3), 2); + gtk_table_set_row_spacings (GTK_TABLE (table3), 4); + gtk_table_set_col_spacings (GTK_TABLE (table3), 4); fxSurroundDepth = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (20, 0, 100, 0, 0, 0))); - gtk_widget_ref (fxSurroundDepth); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxSurroundDepth", fxSurroundDepth, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxSurroundDepth, "fxSurroundDepth"); gtk_widget_show (fxSurroundDepth); gtk_table_attach (GTK_TABLE (table3), fxSurroundDepth, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); fxSurroundDelay = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (20, 5, 40, 0, 0, 0))); - gtk_widget_ref (fxSurroundDelay); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxSurroundDelay", fxSurroundDelay, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxSurroundDelay, "fxSurroundDelay"); gtk_widget_show (fxSurroundDelay); gtk_table_attach (GTK_TABLE (table3), fxSurroundDelay, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - label7 = gtk_label_new (_("Depth")); - gtk_widget_ref (label7); - gtk_object_set_data_full (GTK_OBJECT (Config), "label7", label7, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label7); - gtk_table_attach (GTK_TABLE (table3), label7, 0, 1, 0, 1, + xlabel7 = gtk_label_new (_("Depth")); + gtk_widget_set_name (xlabel7, "xlabel7"); + gtk_widget_show (xlabel7); + gtk_table_attach (GTK_TABLE (table3), xlabel7, 0, 1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); + gtk_label_set_justify (GTK_LABEL (xlabel7), GTK_JUSTIFY_CENTER); label8 = gtk_label_new (_("Delay")); - gtk_widget_ref (label8); - gtk_object_set_data_full (GTK_OBJECT (Config), "label8", label8, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label8, "label8"); gtk_widget_show (label8); gtk_table_attach (GTK_TABLE (table3), label8, 0, 1, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); + gtk_label_set_justify (GTK_LABEL (label8), GTK_JUSTIFY_CENTER); - frame10 = gtk_frame_new (_("Preamp")); - gtk_widget_ref (frame10); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame10", frame10, - (GtkDestroyNotify) gtk_widget_unref); + xlabel8 = gtk_label_new (_("Surround")); + gtk_widget_set_name (xlabel8, "xlabel8"); + gtk_widget_show (xlabel8); + gtk_frame_set_label_widget (GTK_FRAME (frame7), xlabel8); + + frame10 = gtk_frame_new (NULL); + gtk_widget_set_name (frame10, "frame10"); gtk_widget_show (frame10); - gtk_box_pack_start (GTK_BOX (vbox7), frame10, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox16), frame10, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame10), 2); - vbox16 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox16); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox16", vbox16, - (GtkDestroyNotify) gtk_widget_unref); + vbox16 = gtk_vbox_new (FALSE, 2); + gtk_widget_set_name (vbox16, "vbox16"); gtk_widget_show (vbox16); gtk_container_add (GTK_CONTAINER (frame10), vbox16); + gtk_container_set_border_width (GTK_CONTAINER (vbox16), 4); - label20 = gtk_label_new (_("Note: Setting the preamp too high may cause\nclipping / distortion!")); - gtk_widget_ref (label20); - gtk_object_set_data_full (GTK_OBJECT (Config), "label20", label20, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label20); - gtk_box_pack_start (GTK_BOX (vbox16), label20, FALSE, FALSE, 0); + fxPreamp = gtk_check_button_new_with_mnemonic (_("Enable")); + gtk_widget_set_name (fxPreamp, "fxPreamp"); + gtk_widget_show (fxPreamp); + gtk_box_pack_start (GTK_BOX (vbox16), fxPreamp, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (fxPreamp), 2); - hbox11 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox11); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox11", hbox11, - (GtkDestroyNotify) gtk_widget_unref); + hbox11 = gtk_hbox_new (FALSE, 4); + gtk_widget_set_name (hbox11, "hbox11"); gtk_widget_show (hbox11); gtk_box_pack_start (GTK_BOX (vbox16), hbox11, TRUE, TRUE, 0); - fxPreamp = gtk_check_button_new_with_label (_("Enable")); - gtk_widget_ref (fxPreamp); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxPreamp", fxPreamp, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fxPreamp); - gtk_box_pack_start (GTK_BOX (hbox11), fxPreamp, FALSE, FALSE, 0); - label19 = gtk_label_new (_("Volume")); - gtk_widget_ref (label19); - gtk_object_set_data_full (GTK_OBJECT (Config), "label19", label19, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label19, "label19"); gtk_widget_show (label19); gtk_box_pack_start (GTK_BOX (hbox11), label19, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (label19), GTK_JUSTIFY_CENTER); fxPreampLevel = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, -3, 3, 1, 0, 0))); - gtk_widget_ref (fxPreampLevel); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxPreampLevel", fxPreampLevel, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxPreampLevel, "fxPreampLevel"); gtk_widget_show (fxPreampLevel); gtk_box_pack_start (GTK_BOX (hbox11), fxPreampLevel, TRUE, TRUE, 0); - frame11 = gtk_frame_new (_("Looping")); - gtk_widget_ref (frame11); - gtk_object_set_data_full (GTK_OBJECT (Config), "frame11", frame11, - (GtkDestroyNotify) gtk_widget_unref); + label20 = gtk_label_new (_("Note: Setting the preamp\ntoo high may cause clipping\n(annoying clicks and pops)!")); + gtk_widget_set_name (label20, "label20"); + gtk_widget_show (label20); + gtk_box_pack_start (GTK_BOX (vbox16), label20, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (label20), GTK_JUSTIFY_CENTER); + + label9 = gtk_label_new (_("Preamp")); + gtk_widget_set_name (label9, "label9"); + gtk_widget_show (label9); + gtk_frame_set_label_widget (GTK_FRAME (frame10), label9); + + label10 = gtk_label_new (_("Effects")); + gtk_widget_set_name (label10, "label10"); + gtk_widget_show (label10); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label10); + gtk_label_set_justify (GTK_LABEL (label10), GTK_JUSTIFY_CENTER); + + vbox19 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox19, "vbox19"); + gtk_widget_show (vbox19); + gtk_container_add (GTK_CONTAINER (notebook1), vbox19); + gtk_container_set_border_width (GTK_CONTAINER (vbox19), 2); + + frame4 = gtk_frame_new (NULL); + gtk_widget_set_name (frame4, "frame4"); + gtk_widget_show (frame4); + gtk_box_pack_start (GTK_BOX (vbox19), frame4, FALSE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame4), 2); + + hbox3 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox3, "hbox3"); + gtk_widget_show (hbox3); + gtk_container_add (GTK_CONTAINER (frame4), hbox3); + gtk_container_set_border_width (GTK_CONTAINER (hbox3), 2); + + vbox8 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox8, "vbox8"); + gtk_widget_show (vbox8); + gtk_box_pack_start (GTK_BOX (hbox3), vbox8, TRUE, TRUE, 0); + + fxUseFilename = gtk_check_button_new_with_mnemonic (_("Use Filename as Song Title")); + gtk_widget_set_name (fxUseFilename, "fxUseFilename"); + gtk_widget_show (fxUseFilename); + gtk_box_pack_start (GTK_BOX (vbox8), fxUseFilename, FALSE, FALSE, 0); + + fxFastInfo = gtk_check_button_new_with_mnemonic (_("Fast Playlist Info")); + gtk_widget_set_name (fxFastInfo, "fxFastInfo"); + gtk_widget_show (fxFastInfo); + gtk_box_pack_start (GTK_BOX (vbox8), fxFastInfo, FALSE, FALSE, 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxFastInfo), TRUE); + + vbox9 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox9, "vbox9"); + gtk_widget_show (vbox9); + gtk_box_pack_start (GTK_BOX (hbox3), vbox9, TRUE, TRUE, 0); + + fxNR = gtk_check_button_new_with_mnemonic (_("Noise Reduction")); + gtk_widget_set_name (fxNR, "fxNR"); + gtk_widget_show (fxNR); + gtk_box_pack_start (GTK_BOX (vbox9), fxNR, FALSE, FALSE, 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxNR), TRUE); + + fxAmigaMOD = gtk_check_button_new_with_mnemonic (_("Play Amiga MOD")); + gtk_widget_set_name (fxAmigaMOD, "fxAmigaMOD"); + gtk_widget_show (fxAmigaMOD); + gtk_box_pack_start (GTK_BOX (vbox9), fxAmigaMOD, FALSE, FALSE, 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxAmigaMOD), TRUE); + + label21 = gtk_label_new (_("General")); + gtk_widget_set_name (label21, "label21"); + gtk_widget_show (label21); + gtk_frame_set_label_widget (GTK_FRAME (frame4), label21); + + frame11 = gtk_frame_new (NULL); + gtk_widget_set_name (frame11, "frame11"); gtk_widget_show (frame11); - gtk_box_pack_start (GTK_BOX (vbox7), frame11, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox19), frame11, FALSE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame11), 2); vbox17 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox17); - gtk_object_set_data_full (GTK_OBJECT (Config), "vbox17", vbox17, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox17, "vbox17"); gtk_widget_show (vbox17); gtk_container_add (GTK_CONTAINER (frame11), vbox17); + gtk_container_set_border_width (GTK_CONTAINER (vbox17), 2); - fxNoLoop = gtk_radio_button_new_with_label (loopGroup_group, _("Don't loop")); - loopGroup_group = gtk_radio_button_group (GTK_RADIO_BUTTON (fxNoLoop)); - gtk_widget_ref (fxNoLoop); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxNoLoop", fxNoLoop, - (GtkDestroyNotify) gtk_widget_unref); + fxNoLoop = gtk_radio_button_new_with_mnemonic (NULL, _("Don't loop")); + gtk_widget_set_name (fxNoLoop, "fxNoLoop"); gtk_widget_show (fxNoLoop); gtk_box_pack_start (GTK_BOX (vbox17), fxNoLoop, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (fxNoLoop), fxNoLoop_group); + fxNoLoop_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (fxNoLoop)); hbox13 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox13); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbox13", hbox13, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (hbox13, "hbox13"); gtk_widget_show (hbox13); gtk_box_pack_start (GTK_BOX (vbox17), hbox13, FALSE, FALSE, 0); - fxLoopFinite = gtk_radio_button_new_with_label (loopGroup_group, _("Loop")); - loopGroup_group = gtk_radio_button_group (GTK_RADIO_BUTTON (fxLoopFinite)); - gtk_widget_ref (fxLoopFinite); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxLoopFinite", fxLoopFinite, - (GtkDestroyNotify) gtk_widget_unref); + fxLoopFinite = gtk_radio_button_new_with_mnemonic (NULL, _("Loop")); + gtk_widget_set_name (fxLoopFinite, "fxLoopFinite"); gtk_widget_show (fxLoopFinite); gtk_box_pack_start (GTK_BOX (hbox13), fxLoopFinite, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (fxLoopFinite), fxNoLoop_group); + fxNoLoop_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (fxLoopFinite)); fxLoopCount_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); fxLoopCount = gtk_spin_button_new (GTK_ADJUSTMENT (fxLoopCount_adj), 1, 0); - gtk_widget_ref (fxLoopCount); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxLoopCount", fxLoopCount, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (fxLoopCount, "fxLoopCount"); gtk_widget_show (fxLoopCount); gtk_box_pack_start (GTK_BOX (hbox13), fxLoopCount, FALSE, TRUE, 0); - label21 = gtk_label_new (_("time(s)")); - gtk_widget_ref (label21); - gtk_object_set_data_full (GTK_OBJECT (Config), "label21", label21, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label21); - gtk_box_pack_start (GTK_BOX (hbox13), label21, FALSE, FALSE, 0); + xlabel21 = gtk_label_new (_("time(s)")); + gtk_widget_set_name (xlabel21, "xlabel21"); + gtk_widget_show (xlabel21); + gtk_box_pack_start (GTK_BOX (hbox13), xlabel21, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (xlabel21), GTK_JUSTIFY_CENTER); - fxLoopForever = gtk_radio_button_new_with_label (loopGroup_group, _("Loop forever")); - loopGroup_group = gtk_radio_button_group (GTK_RADIO_BUTTON (fxLoopForever)); - gtk_widget_ref (fxLoopForever); - gtk_object_set_data_full (GTK_OBJECT (Config), "fxLoopForever", fxLoopForever, - (GtkDestroyNotify) gtk_widget_unref); + fxLoopForever = gtk_radio_button_new_with_mnemonic (NULL, _("Loop forever")); + gtk_widget_set_name (fxLoopForever, "fxLoopForever"); gtk_widget_show (fxLoopForever); gtk_box_pack_start (GTK_BOX (vbox17), fxLoopForever, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (fxLoopForever), fxNoLoop_group); + fxNoLoop_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (fxLoopForever)); - label10 = gtk_label_new (_("Effects")); - gtk_widget_ref (label10); - gtk_object_set_data_full (GTK_OBJECT (Config), "label10", label10, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label10); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label10); + label22 = gtk_label_new (_("Looping")); + gtk_widget_set_name (label22, "label22"); + gtk_widget_show (label22); + gtk_frame_set_label_widget (GTK_FRAME (frame11), label22); + + xlabel22 = gtk_label_new (_("Misc")); + gtk_widget_set_name (xlabel22, "xlabel22"); + gtk_widget_show (xlabel22); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), xlabel22); + gtk_label_set_justify (GTK_LABEL (xlabel22), GTK_JUSTIFY_CENTER); hbuttonbox2 = gtk_hbutton_box_new (); - gtk_widget_ref (hbuttonbox2); - gtk_object_set_data_full (GTK_OBJECT (Config), "hbuttonbox2", hbuttonbox2, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (hbuttonbox2, "hbuttonbox2"); gtk_widget_show (hbuttonbox2); gtk_box_pack_start (GTK_BOX (vbox2), hbuttonbox2, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox2), 4); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_END); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox2), 5); + gtk_box_set_spacing (GTK_BOX (hbuttonbox2), 8); - config_ok = gtk_button_new_with_label (_("OK")); - gtk_widget_ref (config_ok); - gtk_object_set_data_full (GTK_OBJECT (Config), "config_ok", config_ok, - (GtkDestroyNotify) gtk_widget_unref); + config_ok = gtk_button_new_with_mnemonic (_("OK")); + gtk_widget_set_name (config_ok, "config_ok"); gtk_widget_show (config_ok); gtk_container_add (GTK_CONTAINER (hbuttonbox2), config_ok); GTK_WIDGET_SET_FLAGS (config_ok, GTK_CAN_DEFAULT); - config_apply = gtk_button_new_with_label (_("Apply")); - gtk_widget_ref (config_apply); - gtk_object_set_data_full (GTK_OBJECT (Config), "config_apply", config_apply, - (GtkDestroyNotify) gtk_widget_unref); + config_apply = gtk_button_new_with_mnemonic (_("Apply")); + gtk_widget_set_name (config_apply, "config_apply"); gtk_widget_show (config_apply); gtk_container_add (GTK_CONTAINER (hbuttonbox2), config_apply); GTK_WIDGET_SET_FLAGS (config_apply, GTK_CAN_DEFAULT); - config_cancel = gtk_button_new_with_label (_("Cancel")); - gtk_widget_ref (config_cancel); - gtk_object_set_data_full (GTK_OBJECT (Config), "config_cancel", config_cancel, - (GtkDestroyNotify) gtk_widget_unref); + config_cancel = gtk_button_new_with_mnemonic (_("Cancel")); + gtk_widget_set_name (config_cancel, "config_cancel"); gtk_widget_show (config_cancel); gtk_container_add (GTK_CONTAINER (hbuttonbox2), config_cancel); GTK_WIDGET_SET_FLAGS (config_cancel, GTK_CAN_DEFAULT); - gtk_signal_connect (GTK_OBJECT (Config), "delete_event", - GTK_SIGNAL_FUNC (hide_window), - NULL); - gtk_signal_connect (GTK_OBJECT (config_ok), "clicked", - GTK_SIGNAL_FUNC (on_config_ok_clicked), - NULL); - gtk_signal_connect (GTK_OBJECT (config_apply), "clicked", - GTK_SIGNAL_FUNC (on_config_apply_clicked), - NULL); - gtk_signal_connect (GTK_OBJECT (config_cancel), "clicked", - GTK_SIGNAL_FUNC (on_config_cancel_clicked), - NULL); + g_signal_connect ((gpointer) Config, "delete_event", + G_CALLBACK (hide_window), + NULL); + g_signal_connect ((gpointer) config_ok, "clicked", + G_CALLBACK (on_config_ok_clicked), + NULL); + g_signal_connect ((gpointer) config_apply, "clicked", + G_CALLBACK (on_config_apply_clicked), + NULL); + g_signal_connect ((gpointer) config_cancel, "clicked", + G_CALLBACK (on_config_cancel_clicked), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (Config, Config, "Config"); + GLADE_HOOKUP_OBJECT (Config, vbox2, "vbox2"); + GLADE_HOOKUP_OBJECT (Config, notebook1, "notebook1"); + GLADE_HOOKUP_OBJECT (Config, vbox3, "vbox3"); + GLADE_HOOKUP_OBJECT (Config, hbox2, "hbox2"); + GLADE_HOOKUP_OBJECT (Config, frame1, "frame1"); + GLADE_HOOKUP_OBJECT (Config, vbox4, "vbox4"); + GLADE_HOOKUP_OBJECT (Config, bit16, "bit16"); + GLADE_HOOKUP_OBJECT (Config, bit8, "bit8"); + GLADE_HOOKUP_OBJECT (Config, xlabel2, "xlabel2"); + GLADE_HOOKUP_OBJECT (Config, frame2, "frame2"); + GLADE_HOOKUP_OBJECT (Config, vbox5, "vbox5"); + GLADE_HOOKUP_OBJECT (Config, stereo, "stereo"); + GLADE_HOOKUP_OBJECT (Config, mono, "mono"); + GLADE_HOOKUP_OBJECT (Config, label3, "label3"); + GLADE_HOOKUP_OBJECT (Config, hbox14, "hbox14"); + GLADE_HOOKUP_OBJECT (Config, frame9, "frame9"); + GLADE_HOOKUP_OBJECT (Config, vbox15, "vbox15"); + GLADE_HOOKUP_OBJECT (Config, resampNearest, "resampNearest"); + GLADE_HOOKUP_OBJECT (Config, resampLinear, "resampLinear"); + GLADE_HOOKUP_OBJECT (Config, resampSpline, "resampSpline"); + GLADE_HOOKUP_OBJECT (Config, resampPolyphase, "resampPolyphase"); + GLADE_HOOKUP_OBJECT (Config, label4, "label4"); + GLADE_HOOKUP_OBJECT (Config, frame3, "frame3"); + GLADE_HOOKUP_OBJECT (Config, vbox6, "vbox6"); + GLADE_HOOKUP_OBJECT (Config, samp44, "samp44"); + GLADE_HOOKUP_OBJECT (Config, samp22, "samp22"); + GLADE_HOOKUP_OBJECT (Config, samp11, "samp11"); + GLADE_HOOKUP_OBJECT (Config, label5, "label5"); + GLADE_HOOKUP_OBJECT (Config, label2, "label2"); + GLADE_HOOKUP_OBJECT (Config, vbox7, "vbox7"); + GLADE_HOOKUP_OBJECT (Config, hbox15, "hbox15"); + GLADE_HOOKUP_OBJECT (Config, frame5, "frame5"); + GLADE_HOOKUP_OBJECT (Config, vbox20, "vbox20"); + GLADE_HOOKUP_OBJECT (Config, fxReverb, "fxReverb"); + GLADE_HOOKUP_OBJECT (Config, table1, "table1"); + GLADE_HOOKUP_OBJECT (Config, fxReverbDepth, "fxReverbDepth"); + GLADE_HOOKUP_OBJECT (Config, fxReverbDelay, "fxReverbDelay"); + GLADE_HOOKUP_OBJECT (Config, xlabel3, "xlabel3"); + GLADE_HOOKUP_OBJECT (Config, xlabel4, "xlabel4"); + GLADE_HOOKUP_OBJECT (Config, label6, "label6"); + GLADE_HOOKUP_OBJECT (Config, frame6, "frame6"); + GLADE_HOOKUP_OBJECT (Config, vbox21, "vbox21"); + GLADE_HOOKUP_OBJECT (Config, fxBassBoost, "fxBassBoost"); + GLADE_HOOKUP_OBJECT (Config, table2, "table2"); + GLADE_HOOKUP_OBJECT (Config, fxBassAmount, "fxBassAmount"); + GLADE_HOOKUP_OBJECT (Config, fxBassRange, "fxBassRange"); + GLADE_HOOKUP_OBJECT (Config, xlabel5, "xlabel5"); + GLADE_HOOKUP_OBJECT (Config, xlabel6, "xlabel6"); + GLADE_HOOKUP_OBJECT (Config, label7, "label7"); + GLADE_HOOKUP_OBJECT (Config, hbox16, "hbox16"); + GLADE_HOOKUP_OBJECT (Config, frame7, "frame7"); + GLADE_HOOKUP_OBJECT (Config, vbox22, "vbox22"); + GLADE_HOOKUP_OBJECT (Config, fxSurround, "fxSurround"); + GLADE_HOOKUP_OBJECT (Config, table3, "table3"); + GLADE_HOOKUP_OBJECT (Config, fxSurroundDepth, "fxSurroundDepth"); + GLADE_HOOKUP_OBJECT (Config, fxSurroundDelay, "fxSurroundDelay"); + GLADE_HOOKUP_OBJECT (Config, xlabel7, "xlabel7"); + GLADE_HOOKUP_OBJECT (Config, label8, "label8"); + GLADE_HOOKUP_OBJECT (Config, xlabel8, "xlabel8"); + GLADE_HOOKUP_OBJECT (Config, frame10, "frame10"); + GLADE_HOOKUP_OBJECT (Config, vbox16, "vbox16"); + GLADE_HOOKUP_OBJECT (Config, fxPreamp, "fxPreamp"); + GLADE_HOOKUP_OBJECT (Config, hbox11, "hbox11"); + GLADE_HOOKUP_OBJECT (Config, label19, "label19"); + GLADE_HOOKUP_OBJECT (Config, fxPreampLevel, "fxPreampLevel"); + GLADE_HOOKUP_OBJECT (Config, label20, "label20"); + GLADE_HOOKUP_OBJECT (Config, label9, "label9"); + GLADE_HOOKUP_OBJECT (Config, label10, "label10"); + GLADE_HOOKUP_OBJECT (Config, vbox19, "vbox19"); + GLADE_HOOKUP_OBJECT (Config, frame4, "frame4"); + GLADE_HOOKUP_OBJECT (Config, hbox3, "hbox3"); + GLADE_HOOKUP_OBJECT (Config, vbox8, "vbox8"); + GLADE_HOOKUP_OBJECT (Config, fxUseFilename, "fxUseFilename"); + GLADE_HOOKUP_OBJECT (Config, fxFastInfo, "fxFastInfo"); + GLADE_HOOKUP_OBJECT (Config, vbox9, "vbox9"); + GLADE_HOOKUP_OBJECT (Config, fxNR, "fxNR"); + GLADE_HOOKUP_OBJECT (Config, fxAmigaMOD, "fxAmigaMOD"); + GLADE_HOOKUP_OBJECT (Config, label21, "label21"); + GLADE_HOOKUP_OBJECT (Config, frame11, "frame11"); + GLADE_HOOKUP_OBJECT (Config, vbox17, "vbox17"); + GLADE_HOOKUP_OBJECT (Config, fxNoLoop, "fxNoLoop"); + GLADE_HOOKUP_OBJECT (Config, hbox13, "hbox13"); + GLADE_HOOKUP_OBJECT (Config, fxLoopFinite, "fxLoopFinite"); + GLADE_HOOKUP_OBJECT (Config, fxLoopCount, "fxLoopCount"); + GLADE_HOOKUP_OBJECT (Config, xlabel21, "xlabel21"); + GLADE_HOOKUP_OBJECT (Config, fxLoopForever, "fxLoopForever"); + GLADE_HOOKUP_OBJECT (Config, label22, "label22"); + GLADE_HOOKUP_OBJECT (Config, xlabel22, "xlabel22"); + GLADE_HOOKUP_OBJECT (Config, hbuttonbox2, "hbuttonbox2"); + GLADE_HOOKUP_OBJECT (Config, config_ok, "config_ok"); + GLADE_HOOKUP_OBJECT (Config, config_apply, "config_apply"); + GLADE_HOOKUP_OBJECT (Config, config_cancel, "config_cancel"); return Config; } @@ -781,182 +839,160 @@ GtkWidget *info_instruments; GtkWidget *label17; GtkWidget *scrolledwindow3; - GtkWidget *viewport3; GtkWidget *info_message; GtkWidget *label18; GtkWidget *hbuttonbox3; GtkWidget *info_close; Info = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_object_set_data (GTK_OBJECT (Info), "Info", Info); - gtk_widget_set_usize (Info, -1, 264); + gtk_widget_set_name (Info, "Info"); gtk_window_set_title (GTK_WINDOW (Info), _("MOD Info")); vbox14 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox14); - gtk_object_set_data_full (GTK_OBJECT (Info), "vbox14", vbox14, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (vbox14, "vbox14"); gtk_widget_show (vbox14); gtk_container_add (GTK_CONTAINER (Info), vbox14); notebook2 = gtk_notebook_new (); - gtk_widget_ref (notebook2); - gtk_object_set_data_full (GTK_OBJECT (Info), "notebook2", notebook2, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (notebook2, "notebook2"); gtk_widget_show (notebook2); gtk_box_pack_start (GTK_BOX (vbox14), notebook2, TRUE, TRUE, 8); - gtk_container_set_border_width (GTK_CONTAINER (notebook2), 6); + gtk_container_set_border_width (GTK_CONTAINER (notebook2), 4); hbox9 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox9); - gtk_object_set_data_full (GTK_OBJECT (Info), "hbox9", hbox9, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (hbox9, "hbox9"); gtk_widget_show (hbox9); gtk_container_add (GTK_CONTAINER (notebook2), hbox9); + gtk_container_set_border_width (GTK_CONTAINER (hbox9), 2); label11 = gtk_label_new (_("Filename:\nTitle:\nType:\nLength:\nSpeed:\nTempo:\nSamples:\nInstruments:\nPatterns:\nChannels:")); - gtk_widget_ref (label11); - gtk_object_set_data_full (GTK_OBJECT (Info), "label11", label11, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label11, "label11"); gtk_widget_show (label11); gtk_box_pack_start (GTK_BOX (hbox9), label11, FALSE, FALSE, 4); - gtk_label_set_justify (GTK_LABEL (label11), GTK_JUSTIFY_LEFT); - info_general = gtk_label_new ("---\n---\n---\n---\n---\n---\n---\n---\n---\n---"); - gtk_widget_ref (info_general); - gtk_object_set_data_full (GTK_OBJECT (Info), "info_general", info_general, - (GtkDestroyNotify) gtk_widget_unref); + info_general = gtk_label_new (_("---\n---\n---\n---\n---\n---\n---\n---\n---\n---")); + gtk_widget_set_name (info_general, "info_general"); gtk_widget_show (info_general); gtk_box_pack_start (GTK_BOX (hbox9), info_general, FALSE, FALSE, 4); - gtk_label_set_justify (GTK_LABEL (info_general), GTK_JUSTIFY_LEFT); label13 = gtk_label_new (_("General")); - gtk_widget_ref (label13); - gtk_object_set_data_full (GTK_OBJECT (Info), "label13", label13, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label13, "label13"); gtk_widget_show (label13); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 0), label13); + gtk_label_set_justify (GTK_LABEL (label13), GTK_JUSTIFY_CENTER); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_ref (scrolledwindow1); - gtk_object_set_data_full (GTK_OBJECT (Info), "scrolledwindow1", scrolledwindow1, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (scrolledwindow1, "scrolledwindow1"); gtk_widget_show (scrolledwindow1); gtk_container_add (GTK_CONTAINER (notebook2), scrolledwindow1); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow1), 6); + GTK_WIDGET_UNSET_FLAGS (scrolledwindow1, GTK_CAN_FOCUS); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); viewport1 = gtk_viewport_new (NULL, NULL); - gtk_widget_ref (viewport1); - gtk_object_set_data_full (GTK_OBJECT (Info), "viewport1", viewport1, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (viewport1, "viewport1"); gtk_widget_show (viewport1); gtk_container_add (GTK_CONTAINER (scrolledwindow1), viewport1); info_samples = gtk_label_new (""); - gtk_widget_ref (info_samples); - gtk_object_set_data_full (GTK_OBJECT (Info), "info_samples", info_samples, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (info_samples, "info_samples"); gtk_widget_show (info_samples); gtk_container_add (GTK_CONTAINER (viewport1), info_samples); - gtk_label_set_justify (GTK_LABEL (info_samples), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (info_samples), 7.45058e-09, 7.45058e-09); - gtk_label_set_selectable(GTK_LABEL (info_samples), TRUE); label15 = gtk_label_new (_("Samples")); - gtk_widget_ref (label15); - gtk_object_set_data_full (GTK_OBJECT (Info), "label15", label15, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label15, "label15"); gtk_widget_show (label15); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 1), label15); + gtk_label_set_justify (GTK_LABEL (label15), GTK_JUSTIFY_CENTER); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_ref (scrolledwindow2); - gtk_object_set_data_full (GTK_OBJECT (Info), "scrolledwindow2", scrolledwindow2, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (scrolledwindow2, "scrolledwindow2"); gtk_widget_show (scrolledwindow2); gtk_container_add (GTK_CONTAINER (notebook2), scrolledwindow2); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow2), 6); + GTK_WIDGET_UNSET_FLAGS (scrolledwindow2, GTK_CAN_FOCUS); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); viewport2 = gtk_viewport_new (NULL, NULL); - gtk_widget_ref (viewport2); - gtk_object_set_data_full (GTK_OBJECT (Info), "viewport2", viewport2, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (viewport2, "viewport2"); gtk_widget_show (viewport2); gtk_container_add (GTK_CONTAINER (scrolledwindow2), viewport2); info_instruments = gtk_label_new (""); - gtk_widget_ref (info_instruments); - gtk_object_set_data_full (GTK_OBJECT (Info), "info_instruments", info_instruments, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (info_instruments, "info_instruments"); gtk_widget_show (info_instruments); gtk_container_add (GTK_CONTAINER (viewport2), info_instruments); - gtk_label_set_justify (GTK_LABEL (info_instruments), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (info_instruments), 1.49012e-08, 7.45058e-09); - gtk_label_set_selectable(GTK_LABEL (info_instruments), TRUE); label17 = gtk_label_new (_("Instruments")); - gtk_widget_ref (label17); - gtk_object_set_data_full (GTK_OBJECT (Info), "label17", label17, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label17, "label17"); gtk_widget_show (label17); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 2), label17); + gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_CENTER); scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_ref (scrolledwindow3); - gtk_object_set_data_full (GTK_OBJECT (Info), "scrolledwindow3", scrolledwindow3, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (scrolledwindow3, "scrolledwindow3"); gtk_widget_show (scrolledwindow3); gtk_container_add (GTK_CONTAINER (notebook2), scrolledwindow3); - gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow3), 6); + GTK_WIDGET_UNSET_FLAGS (scrolledwindow3, GTK_CAN_FOCUS); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); - - viewport3 = gtk_viewport_new (NULL, NULL); - gtk_widget_ref (viewport3); - gtk_object_set_data_full (GTK_OBJECT (Info), "viewport3", viewport3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (viewport3); - gtk_container_add (GTK_CONTAINER (scrolledwindow3), viewport3); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_SHADOW_IN); - info_message = gtk_label_new (""); - gtk_widget_ref (info_message); - gtk_object_set_data_full (GTK_OBJECT (Info), "info_message", info_message, - (GtkDestroyNotify) gtk_widget_unref); + info_message = gtk_text_view_new (); + gtk_widget_set_name (info_message, "info_message"); gtk_widget_show (info_message); - gtk_container_add (GTK_CONTAINER (viewport3), info_message); - gtk_label_set_justify (GTK_LABEL (info_message), GTK_JUSTIFY_LEFT); - gtk_label_set_line_wrap(GTK_LABEL (info_message), TRUE); - gtk_label_set_selectable(GTK_LABEL (info_message), TRUE); + gtk_container_add (GTK_CONTAINER (scrolledwindow3), info_message); + gtk_text_view_set_editable (GTK_TEXT_VIEW (info_message), FALSE); + gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (info_message), GTK_WRAP_WORD); label18 = gtk_label_new (_("Message")); - gtk_widget_ref (label18); - gtk_object_set_data_full (GTK_OBJECT (Info), "label18", label18, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (label18, "label18"); gtk_widget_show (label18); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 3), label18); + gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_CENTER); hbuttonbox3 = gtk_hbutton_box_new (); - gtk_widget_ref (hbuttonbox3); - gtk_object_set_data_full (GTK_OBJECT (Info), "hbuttonbox3", hbuttonbox3, - (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_set_name (hbuttonbox3, "hbuttonbox3"); gtk_widget_show (hbuttonbox3); gtk_box_pack_start (GTK_BOX (vbox14), hbuttonbox3, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox3), 2); + gtk_box_set_spacing (GTK_BOX (hbuttonbox3), 30); - info_close = gtk_button_new_with_label (_("Close")); - gtk_widget_ref (info_close); - gtk_object_set_data_full (GTK_OBJECT (Info), "info_close", info_close, - (GtkDestroyNotify) gtk_widget_unref); + info_close = gtk_button_new_with_mnemonic (_("Close")); + gtk_widget_set_name (info_close, "info_close"); gtk_widget_show (info_close); gtk_container_add (GTK_CONTAINER (hbuttonbox3), info_close); GTK_WIDGET_SET_FLAGS (info_close, GTK_CAN_DEFAULT); - gtk_signal_connect (GTK_OBJECT (Info), "delete_event", - GTK_SIGNAL_FUNC (hide_window), - NULL); - gtk_signal_connect (GTK_OBJECT (info_close), "clicked", - GTK_SIGNAL_FUNC (on_info_close_clicked), - NULL); + g_signal_connect ((gpointer) Info, "delete_event", + G_CALLBACK (hide_window), + NULL); + g_signal_connect ((gpointer) info_close, "clicked", + G_CALLBACK (on_info_close_clicked), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (Info, Info, "Info"); + GLADE_HOOKUP_OBJECT (Info, vbox14, "vbox14"); + GLADE_HOOKUP_OBJECT (Info, notebook2, "notebook2"); + GLADE_HOOKUP_OBJECT (Info, hbox9, "hbox9"); + GLADE_HOOKUP_OBJECT (Info, label11, "label11"); + GLADE_HOOKUP_OBJECT (Info, info_general, "info_general"); + GLADE_HOOKUP_OBJECT (Info, label13, "label13"); + GLADE_HOOKUP_OBJECT (Info, scrolledwindow1, "scrolledwindow1"); + GLADE_HOOKUP_OBJECT (Info, viewport1, "viewport1"); + GLADE_HOOKUP_OBJECT (Info, info_samples, "info_samples"); + GLADE_HOOKUP_OBJECT (Info, label15, "label15"); + GLADE_HOOKUP_OBJECT (Info, scrolledwindow2, "scrolledwindow2"); + GLADE_HOOKUP_OBJECT (Info, viewport2, "viewport2"); + GLADE_HOOKUP_OBJECT (Info, info_instruments, "info_instruments"); + GLADE_HOOKUP_OBJECT (Info, label17, "label17"); + GLADE_HOOKUP_OBJECT (Info, scrolledwindow3, "scrolledwindow3"); + GLADE_HOOKUP_OBJECT (Info, info_message, "info_message"); + GLADE_HOOKUP_OBJECT (Info, label18, "label18"); + GLADE_HOOKUP_OBJECT (Info, hbuttonbox3, "hbuttonbox3"); + GLADE_HOOKUP_OBJECT (Info, info_close, "info_close"); return Info; } diff -r d158ce84fda7 -r d6d8e3cd23c5 src/modplug/gui/main.cxx --- a/src/modplug/gui/main.cxx Wed Sep 05 09:29:26 2007 +0300 +++ b/src/modplug/gui/main.cxx Thu Sep 06 03:03:03 2007 +0300 @@ -9,7 +9,10 @@ #include #include +extern "C" { #include "audacious/util.h" +#include "audacious/strings.h" +} #include "interface.h" #include "support.h" @@ -152,7 +155,7 @@ uint32 lSongTime, lNumSamples, lNumInstruments, i; string lInfo; - char lBuffer[33]; + gchar lBuffer[33]; stringstream lStrStream(ios::out); //C++ replacement for sprintf() CSoundFile* lSoundFile; @@ -160,6 +163,7 @@ Archive* lArchive; string lShortFN; uint32 lPos; + gchar *tmps; lPos = aFilename.find_last_of('/') + 1; lShortFN = aFilename.substr(lPos); @@ -177,7 +181,9 @@ lInfo = lShortFN; lInfo += '\n'; - lInfo += lSoundFile->GetTitle(); + tmps = str_to_utf8(lSoundFile->GetTitle()); + lInfo += tmps; + g_free(tmps); lInfo += '\n'; switch(lSoundFile->GetType()) @@ -275,7 +281,9 @@ for(i = 0; i < lNumSamples; i++) { lSoundFile->GetSampleName(i, lBuffer); - lInfo += lBuffer; + tmps = str_to_utf8(lBuffer); + lInfo += tmps; + g_free(tmps); lInfo += '\n'; } gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_samples"), lInfo.c_str()); @@ -284,7 +292,9 @@ for(i = 0; i < lNumInstruments; i++) { lSoundFile->GetInstrumentName(i, lBuffer); - lInfo += lBuffer; + tmps = str_to_utf8(lBuffer); + lInfo += tmps; + g_free(tmps); lInfo += '\n'; } gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_instruments"), lInfo.c_str()); @@ -296,7 +306,9 @@ //gtk_text_backward_delete(textbox, length); length = lSoundFile->GetSongComments(message, MAX_MESSAGE_LENGTH, 80); if (length != 0) { - gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_message"), message); + tmps = str_to_utf8(message); + gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_message"), tmps); + g_free(tmps); } //unload the file diff -r d158ce84fda7 -r d6d8e3cd23c5 src/modplug/gui/modplug.glade --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/modplug/gui/modplug.glade Thu Sep 06 03:03:03 2007 +0300 @@ -0,0 +1,2028 @@ + + + + + + + 500 + True + ModPlug Configuration + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + False + False + True + False + False + GDK_WINDOW_TYPE_HINT_NORMAL + GDK_GRAVITY_NORTH_WEST + True + False + + + + + True + False + 0 + + + + 4 + True + True + True + True + GTK_POS_TOP + False + False + + + + 2 + True + False + 0 + + + + True + False + 2 + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + True + True + 16 bit + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + 8 bit + True + GTK_RELIEF_NORMAL + True + False + False + True + bit16 + + + 0 + False + False + + + + + + + + True + Resolution + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + True + True + Stereo + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + Mono (downmix) + True + GTK_RELIEF_NORMAL + True + False + False + True + stereo + + + 0 + False + False + + + + + + + + True + Channels + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + 0 + False + True + + + + + + True + False + 0 + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + True + True + Nearest (fastest) + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + Linear (fast) + True + GTK_RELIEF_NORMAL + True + False + False + True + resampNearest + + + 0 + False + False + + + + + + True + True + Spline (good quality) + True + GTK_RELIEF_NORMAL + True + False + False + True + resampNearest + + + 0 + False + False + + + + + + True + True + 8-tap Fir (extremely high quality) + True + GTK_RELIEF_NORMAL + True + False + False + True + resampNearest + + + 0 + False + False + + + + + + + + True + Resampling + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + True + True + 44 kHz + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + 22 kHz + True + GTK_RELIEF_NORMAL + True + False + False + True + samp44 + + + 0 + False + False + + + + + + True + True + 11 kHz + True + GTK_RELIEF_NORMAL + False + False + False + True + samp44 + + + 0 + False + False + + + + + + + + True + Sampling Rate + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + 0 + False + True + + + + + False + True + + + + + + True + Quality + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 2 + True + False + 0 + + + + True + False + 0 + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + 2 + True + True + Enable + True + GTK_RELIEF_NORMAL + True + True + False + True + + + 0 + False + False + + + + + + 2 + True + 2 + 2 + False + 4 + 4 + + + + True + True + True + GTK_POS_TOP + 1 + GTK_UPDATE_CONTINUOUS + False + 30 0 100 0 0 0 + + + 1 + 2 + 0 + 1 + + + + + + True + True + True + GTK_POS_TOP + 1 + GTK_UPDATE_CONTINUOUS + False + 90 40 200 0 0 0 + + + 1 + 2 + 1 + 2 + fill + + + + + + True + Depth + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + + + + + + + + True + Delay + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + + + + + + + 0 + True + True + + + + + + + + True + Reverb + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + 2 + True + True + Enable + True + GTK_RELIEF_NORMAL + True + True + False + True + + + 0 + False + False + + + + + + 2 + True + 2 + 2 + False + 4 + 4 + + + + True + True + True + GTK_POS_TOP + 1 + GTK_UPDATE_CONTINUOUS + False + 30 0 100 0 0 0 + + + 1 + 2 + 0 + 1 + + + + + + True + True + True + GTK_POS_TOP + 1 + GTK_UPDATE_CONTINUOUS + False + 30 10 100 0 0 0 + + + 1 + 2 + 1 + 2 + fill + + + + + + True + Amount + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + + + + + + + + True + Range + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + + + + + + + 0 + True + True + + + + + + + + True + Bass Boost + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + 0 + False + True + + + + + + True + False + 0 + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + False + 0 + + + + 2 + True + True + Enable + True + GTK_RELIEF_NORMAL + True + True + False + True + + + 0 + False + False + + + + + + 2 + True + 2 + 2 + False + 4 + 4 + + + + True + True + True + GTK_POS_TOP + 1 + GTK_UPDATE_CONTINUOUS + False + 20 0 100 0 0 0 + + + 1 + 2 + 0 + 1 + + + + + + True + True + True + GTK_POS_TOP + 1 + GTK_UPDATE_CONTINUOUS + False + 20 5 40 0 0 0 + + + 1 + 2 + 1 + 2 + fill + + + + + + True + Depth + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + + + + + + + + True + Delay + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + + + + + + + 0 + True + True + + + + + + + + True + Surround + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 4 + True + False + 2 + + + + 2 + True + True + Enable + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 4 + + + + True + Volume + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + True + True + GTK_POS_TOP + 1 + GTK_UPDATE_CONTINUOUS + False + 0 -3 3 1 0 0 + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + Note: Setting the preamp +too high may cause clipping +(annoying clicks and pops)! + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + + + True + Preamp + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + 0 + False + True + + + + + False + True + + + + + + True + Effects + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 2 + True + False + 0 + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + True + False + 0 + + + + True + True + Use Filename as Song Title + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + Fast Playlist Info + True + GTK_RELIEF_NORMAL + True + True + False + True + + + 0 + False + False + + + + + 0 + True + True + + + + + + True + False + 0 + + + + True + True + Noise Reduction + True + GTK_RELIEF_NORMAL + True + True + False + True + + + 0 + False + False + + + + + + True + True + Play Amiga MOD + True + GTK_RELIEF_NORMAL + True + True + False + True + + + 0 + False + False + + + + + 0 + True + True + + + + + + + + True + General + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + True + + + + + + 2 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 0 + + + + True + True + Don't loop + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 0 + + + + True + True + Loop + True + GTK_RELIEF_NORMAL + True + False + False + True + fxNoLoop + + + 0 + False + False + + + + + + True + True + 1 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 0 100 1 10 10 + + + 0 + False + True + + + + + + True + time(s) + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + False + False + + + + + + True + True + Loop forever + True + GTK_RELIEF_NORMAL + True + False + False + True + fxNoLoop + + + 0 + False + False + + + + + + + + True + Looping + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + True + + + + + False + True + + + + + + True + Misc + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + 0 + True + True + + + + + + 4 + True + GTK_BUTTONBOX_END + 8 + + + + True + True + True + OK + True + GTK_RELIEF_NORMAL + True + + + + + + + True + True + True + Apply + True + GTK_RELIEF_NORMAL + True + + + + + + + True + True + True + Cancel + True + GTK_RELIEF_NORMAL + True + + + + + + 0 + True + True + + + + + + + + True + MOD Info + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_NORMAL + GDK_GRAVITY_NORTH_WEST + True + False + + + + + True + False + 0 + + + + 4 + True + True + True + True + GTK_POS_TOP + False + False + + + + 2 + True + False + 0 + + + + True + Filename: +Title: +Type: +Length: +Speed: +Tempo: +Samples: +Instruments: +Patterns: +Channels: + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 4 + False + False + + + + + + True + --- +--- +--- +--- +--- +--- +--- +--- +--- +--- + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 4 + False + False + + + + + False + True + + + + + + True + General + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 6 + True + GTK_POLICY_NEVER + GTK_POLICY_ALWAYS + GTK_SHADOW_NONE + GTK_CORNER_TOP_LEFT + + + + True + GTK_SHADOW_IN + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 7.45058015283e-09 + 7.45058015283e-09 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + False + True + + + + + + True + Samples + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 6 + True + GTK_POLICY_NEVER + GTK_POLICY_ALWAYS + GTK_SHADOW_NONE + GTK_CORNER_TOP_LEFT + + + + True + GTK_SHADOW_IN + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 1.49012002737e-08 + 7.45058015283e-09 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + False + True + + + + + + True + Instruments + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + True + GTK_POLICY_NEVER + GTK_POLICY_ALWAYS + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + + True + True + False + False + True + GTK_JUSTIFY_LEFT + GTK_WRAP_WORD + True + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + False + True + + + + + + True + Message + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + 8 + True + True + + + + + + 2 + True + GTK_BUTTONBOX_DEFAULT_STYLE + 30 + + + + True + True + True + Close + True + GTK_RELIEF_NORMAL + True + + + + + + 0 + False + False + + + + + + + diff -r d158ce84fda7 -r d6d8e3cd23c5 src/modplug/gui/modplug.gladep --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/modplug/gui/modplug.gladep Thu Sep 06 03:03:03 2007 +0300 @@ -0,0 +1,16 @@ + + + + + ModPlug + modplug + . + . + FALSE + TRUE + FALSE + FALSE + interface.cxx + callbacks.cxx + support.cxx + diff -r d158ce84fda7 -r d6d8e3cd23c5 src/modplug/gui/support.cxx --- a/src/modplug/gui/support.cxx Wed Sep 05 09:29:26 2007 +0300 +++ b/src/modplug/gui/support.cxx Thu Sep 06 03:03:03 2007 +0300 @@ -10,18 +10,12 @@ #include #include #include +#include #include #include "support.h" -/* This is an internally used function to check if a pixmap file exists. */ -static gchar* check_file_exists (const gchar *directory, - const gchar *filename); - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* create_dummy_pixmap (GtkWidget *widget); - GtkWidget* lookup_widget (GtkWidget *widget, const gchar *widget_name) @@ -34,47 +28,20 @@ parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); else parent = widget->parent; + if (!parent) + parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); if (parent == NULL) break; widget = parent; } - found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), - widget_name); + found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), + widget_name); if (!found_widget) g_warning ("Widget not found: %s", widget_name); return found_widget; } -/* This is a dummy pixmap we use when a pixmap can't be found. */ -static const char *dummy_pixmap_xpm[] = { -/* columns rows colors chars-per-pixel */ -"1 1 1 1", -" c None", -/* pixels */ -" " -}; - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* -create_dummy_pixmap (GtkWidget *widget) -{ - GdkColormap *colormap; - GdkPixmap *gdkpixmap; - GdkBitmap *mask; - GtkWidget *pixmap; - - colormap = gtk_widget_get_colormap (widget); - gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, - NULL, (gchar **)dummy_pixmap_xpm); - if (gdkpixmap == NULL) - g_error ("Couldn't create replacement pixmap."); - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); - return pixmap; -} - static GList *pixmaps_directories = NULL; /* Use this function to set the directory containing installed pixmaps. */ @@ -85,75 +52,93 @@ g_strdup (directory)); } +/* This is an internally used function to find pixmap files. */ +static gchar* +find_pixmap_file (const gchar *filename) +{ + GList *elem; + + /* We step through each of the pixmaps directory to find it. */ + elem = pixmaps_directories; + while (elem) + { + gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, + G_DIR_SEPARATOR_S, filename); + if (g_file_test (pathname, G_FILE_TEST_EXISTS)) + return pathname; + g_free (pathname); + elem = elem->next; + } + return NULL; +} + /* This is an internally used function to create pixmaps. */ GtkWidget* create_pixmap (GtkWidget *widget, const gchar *filename) { - gchar *found_filename = NULL; - GdkColormap *colormap; - GdkPixmap *gdkpixmap; - GdkBitmap *mask; + gchar *pathname = NULL; GtkWidget *pixmap; - GList *elem; + + if (!filename || !filename[0]) + return gtk_image_new (); - /* We first try any pixmaps directories set by the application. */ - elem = pixmaps_directories; - while (elem) + pathname = find_pixmap_file (filename); + + if (!pathname) { - found_filename = check_file_exists ((gchar*)elem->data, filename); - if (found_filename) - break; - elem = elem->next; + g_warning (_("Couldn't find pixmap file: %s"), filename); + return gtk_image_new (); } - /* If we haven't found the pixmap, try the source directory. */ - if (!found_filename) - { - found_filename = check_file_exists ("../pixmaps", filename); - } - - if (!found_filename) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return create_dummy_pixmap (widget); - } - - colormap = gtk_widget_get_colormap (widget); - gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, - NULL, found_filename); - if (gdkpixmap == NULL) - { - g_warning (_("Error loading pixmap file: %s"), found_filename); - g_free (found_filename); - return create_dummy_pixmap (widget); - } - g_free (found_filename); - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); + pixmap = gtk_image_new_from_file (pathname); + g_free (pathname); return pixmap; } -/* This is an internally used function to check if a pixmap file exists. */ -gchar* -check_file_exists (const gchar *directory, - const gchar *filename) +/* This is an internally used function to create pixmaps. */ +GdkPixbuf* +create_pixbuf (const gchar *filename) { - gchar *full_filename; - struct stat s; - gint status; + gchar *pathname = NULL; + GdkPixbuf *pixbuf; + GError *error = NULL; + + if (!filename || !filename[0]) + return NULL; + + pathname = find_pixmap_file (filename); - full_filename = (gchar*) g_malloc (strlen (directory) + 1 - + strlen (filename) + 1); - strcpy (full_filename, directory); - strcat (full_filename, G_DIR_SEPARATOR_S); - strcat (full_filename, filename); + if (!pathname) + { + g_warning (_("Couldn't find pixmap file: %s"), filename); + return NULL; + } - status = stat (full_filename, &s); - if (status == 0 && S_ISREG (s.st_mode)) - return full_filename; - g_free (full_filename); - return NULL; + pixbuf = gdk_pixbuf_new_from_file (pathname, &error); + if (!pixbuf) + { + fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", + pathname, error->message); + g_error_free (error); + } + g_free (pathname); + return pixbuf; } +/* This is used to set ATK action descriptions. */ +void +glade_set_atk_action_description (AtkAction *action, + const gchar *action_name, + const gchar *description) +{ + gint n_actions, i; + + n_actions = atk_action_get_n_actions (action); + for (i = 0; i < n_actions; i++) + { + if (!strcmp (atk_action_get_name (action, i), action_name)) + atk_action_set_description (action, i, description); + } +} + diff -r d158ce84fda7 -r d6d8e3cd23c5 src/modplug/gui/support.h --- a/src/modplug/gui/support.h Wed Sep 05 09:29:26 2007 +0300 +++ b/src/modplug/gui/support.h Thu Sep 06 03:03:03 2007 +0300 @@ -11,10 +11,11 @@ /* * Standard gettext macros. */ -#if defined ENABLE_NLS && !defined __NetBSD__ +#ifdef ENABLE_NLS # include # undef _ # define _(String) dgettext (PACKAGE, String) +# define Q_(String) g_strip_context ((String), gettext (String)) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else @@ -27,6 +28,7 @@ # define dcgettext(Domain,Message,Type) (Message) # define bindtextdomain(Domain,Directory) (Domain) # define _(String) (String) +# define Q_(String) g_strip_context ((String), (String)) # define N_(String) (String) #endif @@ -44,8 +46,6 @@ GtkWidget* lookup_widget (GtkWidget *widget, const gchar *widget_name); -/* get_widget() is deprecated. Use lookup_widget instead. */ -#define get_widget lookup_widget /* Use this function to set the directory containing installed pixmaps. */ void add_pixmap_directory (const gchar *directory); @@ -55,7 +55,15 @@ * Private Functions. */ -/* This is used to create the pixmaps in the interface. */ +/* This is used to create the pixmaps used in the interface. */ GtkWidget* create_pixmap (GtkWidget *widget, const gchar *filename); +/* This is used to create the pixbufs used in the interface. */ +GdkPixbuf* create_pixbuf (const gchar *filename); + +/* This is used to set ATK action descriptions. */ +void glade_set_atk_action_description (AtkAction *action, + const gchar *action_name, + const gchar *description); + diff -r d158ce84fda7 -r d6d8e3cd23c5 src/modplug/modplugbmp.cxx --- a/src/modplug/modplugbmp.cxx Wed Sep 05 09:29:26 2007 +0300 +++ b/src/modplug/modplugbmp.cxx Thu Sep 06 03:03:03 2007 +0300 @@ -19,6 +19,7 @@ #include "audacious/tuple.h" #include "audacious/tuple_formatter.h" #include "audacious/vfs.h" +#include "audacious/strings.h" } static char* format_and_free_ti( Tuple* ti, int* length ) @@ -505,7 +506,7 @@ { CSoundFile* lSoundFile; Archive* lArchive; - char* tmps; + gchar* tmps; //open and mmap the file lArchive = OpenArchive(aFilename); @@ -546,8 +547,15 @@ } tuple_associate_string(ti, FIELD_CODEC, NULL, tmps); tuple_associate_string(ti, FIELD_QUALITY, NULL, "sequenced"); + tuple_associate_int(ti, FIELD_LENGTH, NULL, lSoundFile->GetSongTime() * 1000); + + /* NOTICE! FIXME? This is actually incorrect. We _cannot_ know what charset + * an arbitrary module file uses .. typically it is some DOS CP-variant, + * except for true Amiga modules. + */ + tmps = str_to_utf8(lSoundFile->GetTitle()); tuple_associate_string(ti, FIELD_TITLE, NULL, lSoundFile->GetTitle()); - tuple_associate_int(ti, FIELD_LENGTH, NULL, lSoundFile->GetSongTime() * 1000); + g_free(tmps); //unload the file lSoundFile->Destroy(); diff -r d158ce84fda7 -r d6d8e3cd23c5 src/sid/xmms-sid.c --- a/src/sid/xmms-sid.c Wed Sep 05 09:29:26 2007 +0300 +++ b/src/sid/xmms-sid.c Thu Sep 06 03:03:03 2007 +0300 @@ -88,7 +88,7 @@ XS_MUTEX(xs_status); static XS_THREAD_T xs_decode_thread; -Tuple * xs_get_song_tuple_info(gchar *songFilename, gint subTune); +void xs_get_song_tuple_info(Tuple *pResult, t_xs_tuneinfo *pInfo, gint subTune); /* * Error messages @@ -460,11 +460,12 @@ /* Set song information for current subtune */ XSDEBUG("foobar #1\n"); xs_status.sidPlayer->plrUpdateSIDInfo(&xs_status); - XSDEBUG("foobar #2\n"); XS_MUTEX_UNLOCK(xs_status); - tmpTuple = xs_get_song_tuple_info(tmpTune->sidFilename, xs_status.currSong); - XSDEBUG("foobar #3\n"); - tmpTitle = tuple_formatter_process_string(tmpTuple, get_gentitle_format()); + tmpTuple = tuple_new_from_filename(tmpTune->sidFilename); + xs_get_song_tuple_info(tmpTuple, tmpTune, xs_status.currSong); + + tmpTitle = tuple_formatter_process_string(tmpTuple, + xs_cfg.titleOverride ? xs_cfg.titleFormat : get_gentitle_format()); XSDEBUG("foobar #4\n"); XS_MUTEX_LOCK(xs_status); @@ -655,29 +656,17 @@ /* Return song information Tuple */ -Tuple * xs_get_song_tuple_info(gchar *songFilename, gint subTune) +void xs_get_song_tuple_info(Tuple *pResult, t_xs_tuneinfo *pInfo, gint subTune) { - t_xs_tuneinfo *pInfo; - Tuple *pResult; - gchar *tmpStr; - - pResult = tuple_new_from_filename(songFilename); + gchar *tmpStr, tmpStr2[64]; - /* Get tune information from emulation engine */ - XS_MUTEX_LOCK(xs_status); - pInfo = xs_status.sidPlayer->plrGetSIDInfo(songFilename); - if (!pInfo) { - XS_MUTEX_UNLOCK(xs_status); - return pResult; - } - XS_MUTEX_UNLOCK(xs_status); - - tuple_associate_string(pResult, FIELD_TITLE, "title", pInfo->sidName); - tuple_associate_string(pResult, FIELD_ARTIST, "artist", pInfo->sidComposer); - tuple_associate_string(pResult, FIELD_GENRE, "genre", "SID-tune"); - tuple_associate_string(pResult, FIELD_COPYRIGHT, "copyright", pInfo->sidCopyright); + tuple_associate_string(pResult, FIELD_TITLE, NULL, pInfo->sidName); + tuple_associate_string(pResult, FIELD_ARTIST, NULL, pInfo->sidComposer); + tuple_associate_string(pResult, FIELD_GENRE, NULL, "SID-tune"); + tuple_associate_string(pResult, FIELD_COPYRIGHT, NULL, pInfo->sidCopyright); + + tuple_associate_int(pResult, -1, "subtunes", pInfo->nsubTunes); tuple_associate_string(pResult, -1, "sid-format", pInfo->sidFormat); - tuple_associate_int(pResult, -1, "subtunes", pInfo->nsubTunes); switch (pInfo->sidModel) { case XS_SIDMODEL_6581: tmpStr = "6581"; break; @@ -686,34 +675,69 @@ default: tmpStr = "?"; break; } tuple_associate_string(pResult, -1, "sid-model", tmpStr); - + /* Get sub-tune information, if available */ if (subTune < 0 || pInfo->startTune > pInfo->nsubTunes) subTune = pInfo->startTune; if ((subTune > 0) && (subTune <= pInfo->nsubTunes)) { gint tmpInt = pInfo->subTunes[subTune - 1].tuneLength; - tuple_associate_int(pResult, FIELD_LENGTH, "length", (tmpInt < 0) ? -1 : tmpInt * 1000); + tuple_associate_int(pResult, FIELD_LENGTH, NULL, (tmpInt < 0) ? -1 : tmpInt * 1000); + + tmpInt = pInfo->subTunes[subTune - 1].tuneSpeed; + if (tmpInt > 0) { + switch (tmpInt) { + case XS_CLOCK_PAL: tmpStr = "PAL"; break; + case XS_CLOCK_NTSC: tmpStr = "NTSC"; break; + case XS_CLOCK_ANY: tmpStr = "ANY"; break; + case XS_CLOCK_VBI: tmpStr = "VBI"; break; + case XS_CLOCK_CIA: tmpStr = "CIA"; break; + default: + g_snprintf(tmpStr2, sizeof(tmpStr2), "%dHz", tmpInt); + tmpStr = tmpStr2; + break; + } + } else + tmpStr = "?"; + + tuple_associate_string(pResult, -1, "sid-speed", tmpStr); } else subTune = 1; tuple_associate_int(pResult, -1, "subtune", subTune); - tuple_associate_int(pResult, FIELD_TRACK_NUMBER, "track-number", subTune); + tuple_associate_int(pResult, FIELD_TRACK_NUMBER, NULL, subTune); - /* Free tune information */ - xs_tuneinfo_free(pInfo); - return pResult; + if (xs_cfg.titleOverride) + tuple_associate_string(pResult, FIELD_FORMATTER, NULL, xs_cfg.titleFormat); } Tuple * xs_get_song_tuple(gchar *songFilename) { - Tuple *pResult; + Tuple *tmpResult; gchar *tmpFilename; + t_xs_tuneinfo *tmpInfo; gint subTune; + /* Get information from URL */ xs_get_trackinfo(songFilename, &tmpFilename, &subTune); - pResult = xs_get_song_tuple_info(tmpFilename, subTune); + + tmpResult = tuple_new_from_filename(tmpFilename); + if (!tmpResult) { + g_free(tmpFilename); + return NULL; + } + + /* Get tune information from emulation engine */ + XS_MUTEX_LOCK(xs_status); + tmpInfo = xs_status.sidPlayer->plrGetSIDInfo(tmpFilename); + XS_MUTEX_UNLOCK(xs_status); g_free(tmpFilename); - return pResult; + if (!tmpInfo) + return tmpResult; + + xs_get_song_tuple_info(tmpResult, tmpInfo, subTune); + xs_tuneinfo_free(tmpInfo); + + return tmpResult; } diff -r d158ce84fda7 -r d6d8e3cd23c5 src/sid/xmms-sid.glade --- a/src/sid/xmms-sid.glade Wed Sep 05 09:29:26 2007 +0300 +++ b/src/sid/xmms-sid.glade Thu Sep 06 03:03:03 2007 +0300 @@ -2410,6 +2410,154 @@ + + 4 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + 2 + True + False + 2 + + + + True + By enabling this option you can specify a custom Tuplez formatting string for SID-files. The SID-plugin specific Tuplez tags are described shortly below. + True + Override generic Tuplez format string + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + 0 + False + False + + + + + + True + False + 0 + + + + True + Tuplez format string for SID-files + True + True + True + 0 + + True + + False + + + 0 + False + False + + + + + + True + Descriptions of <i>SID-specific</i> Tuplez fields go here. <b>:D</b> + False + True + GTK_JUSTIFY_LEFT + True + False + 0.5 + 0.5 + 8 + 8 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + 0 + True + True + + + + + + + + True + Song title format: + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + False + True + + + + + + True + Title + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + True False @@ -2433,6 +2581,7 @@ True + If enabled, sub-tunes of each file will be added to playlist. If disabled, only the default sub-tune will be added. True Add sub-tunes to playlist True @@ -2453,8 +2602,9 @@ True + Only add sub-tunes that have a duration of at least specified time. True - Only tunes with specified minimum length + Only tunes with specified minimum duration True GTK_RELIEF_NORMAL True diff -r d158ce84fda7 -r d6d8e3cd23c5 src/sid/xs_config.c --- a/src/sid/xs_config.c Wed Sep 05 09:29:26 2007 +0300 +++ b/src/sid/xs_config.c Thu Sep 06 03:03:03 2007 +0300 @@ -127,10 +127,10 @@ #ifndef AUDACIOUS_PLUGIN { CTYPE_INT, &xs_cfg.subsongControl, "subsongControl" }, { CTYPE_BOOL, &xs_cfg.detectMagic, "detectMagic" }, +#endif { CTYPE_BOOL, &xs_cfg.titleOverride, "titleOverride" }, { CTYPE_STR, &xs_cfg.titleFormat, "titleFormat" }, -#endif { CTYPE_BOOL, &xs_cfg.subAutoEnable, "subAutoEnable" }, { CTYPE_BOOL, &xs_cfg.subAutoMinOnly, "subAutoMinOnly" }, @@ -191,10 +191,10 @@ { WTYPE_BGROUP, CTYPE_INT, "cfg_subctrl_patch", &xs_cfg.subsongControl, XS_SSC_PATCH }, { WTYPE_BUTTON, CTYPE_BOOL, "cfg_detectmagic", &xs_cfg.detectMagic, 0 }, +#endif { WTYPE_BUTTON, CTYPE_BOOL, "cfg_ftitle_override", &xs_cfg.titleOverride, 0 }, { WTYPE_TEXT, CTYPE_STR, "cfg_ftitle_format", &xs_cfg.titleFormat, 0 }, -#endif { WTYPE_BUTTON, CTYPE_BOOL, "cfg_subauto_enable", &xs_cfg.subAutoEnable, 0 }, { WTYPE_BUTTON, CTYPE_BOOL, "cfg_subauto_min_only", &xs_cfg.subAutoMinOnly, 0 }, @@ -275,7 +275,7 @@ xs_pstrcpy(&xs_cfg.stilDBPath, "~/C64Music/DOCUMENTS/STIL.txt"); xs_pstrcpy(&xs_cfg.hvscPath, "~/C64Music"); -#ifdef HAVE_SONG_POSITION +#if defined(HAVE_SONG_POSITION) && !defined(AUDACIOUS_PLUGIN) xs_cfg.subsongControl = XS_SSC_PATCH; #else xs_cfg.subsongControl = XS_SSC_POPUP; @@ -283,9 +283,7 @@ xs_cfg.detectMagic = FALSE; -#if defined(HAVE_XMMSEXTRA) || defined(AUDACIOUS_PLUGIN) - xs_cfg.titleOverride = FALSE; -#else +#ifndef HAVE_XMMSEXTRA xs_cfg.titleOverride = TRUE; #endif xs_pstrcpy(&xs_cfg.titleFormat, "%p - %t (%c) [%n/%N][%m/%C]"); @@ -1280,29 +1278,26 @@ /* Based on available optional parts, gray out options */ #ifndef HAVE_SIDPLAY1 gtk_widget_set_sensitive(LUW("cfg_emu_sidplay1"), FALSE); - gtk_widget_set_sensitive(LUW("cfg_box_sidplay1"), FALSE); + gtk_widget_set_sensitive(LUW("cfg_box_filter_sidplay1"), FALSE); #endif #ifndef HAVE_SIDPLAY2 gtk_widget_set_sensitive(LUW("cfg_emu_sidplay2"), FALSE); - gtk_widget_set_sensitive(LUW("cfg_box_sidplay2"), FALSE); + gtk_widget_set_sensitive(LUW("cfg_box_filter_sidplay2"), FALSE); #endif -#ifndef HAVE_XMMSEXTRA + gtk_widget_set_sensitive(LUW("cfg_resid_frame"), FALSE); + +#if !defined(HAVE_XMMSEXTRA) && !defined(AUDACIOUS_PLUGIN) gtk_widget_set_sensitive(LUW("cfg_ftitle_override"), FALSE); xs_cfg.titleOverride = TRUE; #endif -#ifndef HAVE_SONG_POSITION +#if !defined(HAVE_SONG_POSITION) && !defined(AUDACIOUS_PLUGIN) gtk_widget_set_sensitive(LUW("cfg_subctrl_patch"), FALSE); #endif - /* Update the widget sensitivities */ - gtk_widget_set_sensitive(LUW("cfg_resid_frame"), FALSE); - -#ifndef AUDACIOUS_PLUGIN xs_cfg_ftitle_override_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_ftitle_override")), NULL); -#endif xs_cfg_emu_filters_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_emu_filters")), NULL); xs_cfg_emu_sidplay1_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_emu_sidplay1")), NULL); xs_cfg_emu_sidplay2_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_emu_sidplay2")), NULL); diff -r d158ce84fda7 -r d6d8e3cd23c5 src/sid/xs_genui.h --- a/src/sid/xs_genui.h Wed Sep 05 09:29:26 2007 +0300 +++ b/src/sid/xs_genui.h Thu Sep 06 03:03:03 2007 +0300 @@ -188,3 +188,7 @@ xs_confirmwin_delete (GtkWidget *widget, GdkEvent *event, gpointer user_data); + +void +xs_cfg_ftitle_override_toggled (GtkToggleButton *togglebutton, + gpointer user_data); diff -r d158ce84fda7 -r d6d8e3cd23c5 src/sid/xs_interface.c --- a/src/sid/xs_interface.c Wed Sep 05 09:29:26 2007 +0300 +++ b/src/sid/xs_interface.c Thu Sep 06 03:03:03 2007 +0300 @@ -173,6 +173,14 @@ GtkWidget *cfg_sld_dbbrowse; GtkWidget *label17; GtkWidget *w_label26; + GtkWidget *frame1; + GtkWidget *vbox1; + GtkWidget *cfg_ftitle_override; + GtkWidget *cfg_ftitle_box; + GtkWidget *cfg_ftitle_format; + GtkWidget *cfg_ftitle_descs; + GtkWidget *label29; + GtkWidget *w_label27; GtkWidget *w_vbox19; GtkWidget *w_frame31; GtkWidget *w_vbox35; @@ -1016,6 +1024,54 @@ gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 4), w_label26); gtk_label_set_justify (GTK_LABEL (w_label26), GTK_JUSTIFY_CENTER); + frame1 = gtk_frame_new (NULL); + gtk_widget_set_name (frame1, "frame1"); + gtk_widget_show (frame1); + gtk_container_add (GTK_CONTAINER (cfg_notebook), frame1); + gtk_container_set_border_width (GTK_CONTAINER (frame1), 4); + + vbox1 = gtk_vbox_new (FALSE, 2); + gtk_widget_set_name (vbox1, "vbox1"); + gtk_widget_show (vbox1); + gtk_container_add (GTK_CONTAINER (frame1), vbox1); + gtk_container_set_border_width (GTK_CONTAINER (vbox1), 2); + + cfg_ftitle_override = gtk_check_button_new_with_mnemonic (_("Override generic Tuplez format string")); + gtk_widget_set_name (cfg_ftitle_override, "cfg_ftitle_override"); + gtk_widget_show (cfg_ftitle_override); + gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_override, FALSE, FALSE, 0); + gtk_tooltips_set_tip (tooltips, cfg_ftitle_override, _("By enabling this option you can specify a custom Tuplez formatting string for SID-files. The SID-plugin specific Tuplez tags are described shortly below."), NULL); + + cfg_ftitle_box = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (cfg_ftitle_box, "cfg_ftitle_box"); + gtk_widget_show (cfg_ftitle_box); + gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_box, TRUE, TRUE, 0); + + cfg_ftitle_format = gtk_entry_new (); + gtk_widget_set_name (cfg_ftitle_format, "cfg_ftitle_format"); + gtk_widget_show (cfg_ftitle_format); + gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), cfg_ftitle_format, FALSE, FALSE, 0); + gtk_tooltips_set_tip (tooltips, cfg_ftitle_format, _("Tuplez format string for SID-files"), NULL); + gtk_entry_set_invisible_char (GTK_ENTRY (cfg_ftitle_format), 9679); + + cfg_ftitle_descs = gtk_label_new (_("Descriptions of SID-specific Tuplez fields go here. :D")); + gtk_widget_set_name (cfg_ftitle_descs, "cfg_ftitle_descs"); + gtk_widget_show (cfg_ftitle_descs); + gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), cfg_ftitle_descs, TRUE, TRUE, 0); + gtk_label_set_use_markup (GTK_LABEL (cfg_ftitle_descs), TRUE); + gtk_label_set_line_wrap (GTK_LABEL (cfg_ftitle_descs), TRUE); + gtk_misc_set_padding (GTK_MISC (cfg_ftitle_descs), 8, 8); + + label29 = gtk_label_new (_("Song title format:")); + gtk_widget_set_name (label29, "label29"); + gtk_widget_show (label29); + gtk_frame_set_label_widget (GTK_FRAME (frame1), label29); + + w_label27 = gtk_label_new (_("Title")); + gtk_widget_set_name (w_label27, "w_label27"); + gtk_widget_show (w_label27); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 5), w_label27); + w_vbox19 = gtk_vbox_new (FALSE, 0); gtk_widget_set_name (w_vbox19, "w_vbox19"); gtk_widget_show (w_vbox19); @@ -1037,11 +1093,13 @@ gtk_widget_set_name (cfg_subauto_enable, "cfg_subauto_enable"); gtk_widget_show (cfg_subauto_enable); gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_enable, FALSE, FALSE, 0); + gtk_tooltips_set_tip (tooltips, cfg_subauto_enable, _("If enabled, sub-tunes of each file will be added to playlist. If disabled, only the default sub-tune will be added."), NULL); - cfg_subauto_min_only = gtk_check_button_new_with_mnemonic (_("Only tunes with specified minimum length ")); + cfg_subauto_min_only = gtk_check_button_new_with_mnemonic (_("Only tunes with specified minimum duration")); gtk_widget_set_name (cfg_subauto_min_only, "cfg_subauto_min_only"); gtk_widget_show (cfg_subauto_min_only); gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_min_only, FALSE, FALSE, 0); + gtk_tooltips_set_tip (tooltips, cfg_subauto_min_only, _("Only add sub-tunes that have a duration of at least specified time."), NULL); cfg_subauto_box = gtk_hbox_new (FALSE, 2); gtk_widget_set_name (cfg_subauto_box, "cfg_subauto_box"); @@ -1171,7 +1229,7 @@ w_label3 = gtk_label_new (_("Misc")); gtk_widget_set_name (w_label3, "w_label3"); gtk_widget_show (w_label3); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 5), w_label3); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 6), w_label3); gtk_label_set_justify (GTK_LABEL (w_label3), GTK_JUSTIFY_CENTER); hbuttonbox1 = gtk_hbutton_box_new (); @@ -1247,6 +1305,9 @@ g_signal_connect ((gpointer) cfg_sld_dbbrowse, "clicked", G_CALLBACK (xs_cfg_sldb_browse), NULL); + g_signal_connect ((gpointer) cfg_ftitle_override, "toggled", + G_CALLBACK (xs_cfg_ftitle_override_toggled), + NULL); g_signal_connect ((gpointer) cfg_subauto_enable, "toggled", G_CALLBACK (xs_cfg_subauto_enable_toggled), NULL); @@ -1401,6 +1462,14 @@ GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sld_dbbrowse, "cfg_sld_dbbrowse"); GLADE_HOOKUP_OBJECT (xs_configwin, label17, "label17"); GLADE_HOOKUP_OBJECT (xs_configwin, w_label26, "w_label26"); + GLADE_HOOKUP_OBJECT (xs_configwin, frame1, "frame1"); + GLADE_HOOKUP_OBJECT (xs_configwin, vbox1, "vbox1"); + GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_override, "cfg_ftitle_override"); + GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_box, "cfg_ftitle_box"); + GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_format, "cfg_ftitle_format"); + GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_descs, "cfg_ftitle_descs"); + GLADE_HOOKUP_OBJECT (xs_configwin, label29, "label29"); + GLADE_HOOKUP_OBJECT (xs_configwin, w_label27, "w_label27"); GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox19, "w_vbox19"); GLADE_HOOKUP_OBJECT (xs_configwin, w_frame31, "w_frame31"); GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox35, "w_vbox35");