changeset 1103:8bdcd65a57b7 trunk

[svn] Updating of some deprecated GTK functions.
author nemo
date Tue, 23 May 2006 16:05:38 -0700
parents a8cad51dbf9f
children c2fc86e40fba
files Plugins/Effect/audiocompress/audacious-glue.c Plugins/Effect/ladspa/ladspa.c Plugins/Input/aac/src/libmp4.c Plugins/Input/adplug/adplug-xmms.cc Plugins/Input/flac/http.c Plugins/Input/musepack/libmpc.cpp Plugins/Input/sid/xmms-sid.c Plugins/Input/sid/xs_about.c Plugins/Input/sid/xs_glade.c Plugins/Input/sid/xs_interface.c Plugins/Input/timidity/src/interface.c Plugins/Input/timidity/src/xmms-timidity.c Plugins/Input/wav/wav-sndfile.c Plugins/Input/wav/wav.c Plugins/Input/wma/wma.c
diffstat 15 files changed, 963 insertions(+), 862 deletions(-) [+]
line wrap: on
line diff
--- a/Plugins/Effect/audiocompress/audacious-glue.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Effect/audiocompress/audacious-glue.c	Tue May 23 16:05:38 2006 -0700
@@ -194,7 +194,7 @@
 		widget = parent;
 	}
 
-	found_widget =(GtkWidget *)gtk_object_get_data(GTK_OBJECT(widget),
+	found_widget =(GtkWidget *)g_object_get_data(G_OBJECT(widget),
 							widget_name);
 	if (!GTK_IS_WIDGET(found_widget))
 		g_warning("Widget not found: %s", widget_name);
@@ -363,7 +363,7 @@
 	tooltips = gtk_tooltips_new();
 
 	preferences = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_object_set_data(GTK_OBJECT(preferences), "preferences",
+	g_object_set_data(G_OBJECT(preferences), "preferences",
 			     preferences);
 	gtk_container_set_border_width(GTK_CONTAINER(preferences), 10);
 	gtk_window_set_title(GTK_WINDOW(preferences),
@@ -391,7 +391,7 @@
 	clipping = gtk_check_button_new_with_label
 		(" Aggressively prevent clipping");
 	gtk_widget_ref(clipping);
-	gtk_object_set_data_full(GTK_OBJECT(preferences), "anticlip",
+	g_object_set_data_full(G_OBJECT(preferences), "anticlip",
 				  clipping,
 				 (GtkDestroyNotify)gtk_widget_unref);
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(clipping),
@@ -441,7 +441,7 @@
 				   1 << (31 - GAINSHIFT), 1, 2, 5);
 	gainmax_sp = gtk_spin_button_new(GTK_ADJUSTMENT(gainmax_adj), 1, 0);
 	gtk_widget_ref(gainmax_sp);
-	gtk_object_set_data_full(GTK_OBJECT(preferences), "gainmax",
+	g_object_set_data_full(G_OBJECT(preferences), "gainmax",
 				  gainmax_sp,
 				 (GtkDestroyNotify)gtk_widget_unref);
 	gtk_widget_show(gainmax_sp);
@@ -457,7 +457,7 @@
 	gainsmooth_sp =
 		gtk_spin_button_new(GTK_ADJUSTMENT(gainsmooth_adj), 1, 0);
 	gtk_widget_ref(gainsmooth_sp);
-	gtk_object_set_data_full(GTK_OBJECT(preferences), "gainsmooth",
+	g_object_set_data_full(G_OBJECT(preferences), "gainsmooth",
 				  gainsmooth_sp,
 				 (GtkDestroyNotify)gtk_widget_unref);
 	gtk_widget_show(gainsmooth_sp);
@@ -470,7 +470,7 @@
 	target_adj = gtk_adjustment_new(prefs->target, 0, 100000, 1, 10, 10);
 	target_sp = gtk_spin_button_new(GTK_ADJUSTMENT(target_adj), 1, 0);
 	gtk_widget_ref(target_sp);
-	gtk_object_set_data_full(GTK_OBJECT(preferences), "target",
+	g_object_set_data_full(G_OBJECT(preferences), "target",
 				  target_sp,
 				 (GtkDestroyNotify)gtk_widget_unref);
 	gtk_widget_show(target_sp);
@@ -503,7 +503,7 @@
 		gtk_adjustment_new(prefs->buckets, 1, 10000, 1, 10, 10);
 	buckets_sp = gtk_spin_button_new(GTK_ADJUSTMENT(buckets_adj), 1, 0);
 	gtk_widget_ref(buckets_sp);
-	gtk_object_set_data_full(GTK_OBJECT(preferences), "buckets",
+	g_object_set_data_full(G_OBJECT(preferences), "buckets",
 				  buckets_sp,
 				 (GtkDestroyNotify)gtk_widget_unref);
 	gtk_widget_show(buckets_sp);
--- a/Plugins/Effect/ladspa/ladspa.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Effect/ladspa/ladspa.c	Tue May 23 16:05:38 2006 -0700
@@ -613,8 +613,8 @@
 
     if (LADSPA_IS_HINT_TOGGLED(hints[k].HintDescriptor)) {
       widget = gtk_toggle_button_new_with_label("Press");
-      gtk_signal_connect(GTK_OBJECT(widget), "toggled",
-                       GTK_SIGNAL_FUNC(toggled), &(instance->knobs[k]));
+      g_signal_connect(G_OBJECT(widget), "toggled",
+                       G_CALLBACK(toggled), &(instance->knobs[k]));
       gtk_container_add(GTK_CONTAINER(hbox), widget);
       gtk_container_add(GTK_CONTAINER(vbox), hbox);
       continue;
@@ -706,8 +706,8 @@
     if (LADSPA_IS_PORT_OUTPUT(plugin->PortDescriptors[k])) {
       gtk_widget_set_sensitive(widget, FALSE);
     } else {
-      gtk_signal_connect(adjustment, "value-changed",
-                   GTK_SIGNAL_FUNC(value_changed), &(instance->knobs[k]));
+      g_signal_connect(adjustment, "value-changed",
+                   G_CALLBACK(value_changed), &(instance->knobs[k]));
     }
     gtk_container_add(GTK_CONTAINER(hbox), widget);
     widget = gtk_hscale_new(GTK_ADJUSTMENT(adjustment));
@@ -729,8 +729,8 @@
 
   gtk_container_add(GTK_CONTAINER(instance->window), vbox);
 
-  gtk_signal_connect (GTK_OBJECT (instance->window), "delete_event",
-                      GTK_SIGNAL_FUNC (gtk_widget_hide_on_delete), NULL);
+  g_signal_connect (G_OBJECT (instance->window), "delete_event",
+                      G_CALLBACK (gtk_widget_hide_on_delete), NULL);
   gtk_widget_show_all(instance->window);
 }
 
@@ -772,12 +772,12 @@
   run_clist = gtk_clist_new_with_titles(1, titles);
   gtk_clist_column_titles_passive(GTK_CLIST (run_clist));
   gtk_clist_set_reorderable(GTK_CLIST (run_clist), TRUE);
-  gtk_signal_connect(GTK_OBJECT(run_clist), "select-row",
-                     GTK_SIGNAL_FUNC(select_instance), NULL);
-  gtk_signal_connect(GTK_OBJECT(run_clist), "unselect-row",
-                     GTK_SIGNAL_FUNC(unselect_instance), NULL);
-  gtk_signal_connect(GTK_OBJECT(run_clist), "row-move",
-                     GTK_SIGNAL_FUNC(reorder_instance), NULL);
+  g_signal_connect(G_OBJECT(run_clist), "select-row",
+                     G_CALLBACK(select_instance), NULL);
+  g_signal_connect(G_OBJECT(run_clist), "unselect-row",
+                     G_CALLBACK(unselect_instance), NULL);
+  g_signal_connect(G_OBJECT(run_clist), "row-move",
+                     G_CALLBACK(reorder_instance), NULL);
 
   G_LOCK (running_plugins);
   for (list= running_plugins; list != NULL; list = g_slist_next(list)) {
@@ -873,12 +873,12 @@
   }
   gtk_clist_sort(GTK_CLIST (clist));
 
-  gtk_signal_connect(GTK_OBJECT(clist), "click-column",
-                     GTK_SIGNAL_FUNC(sort_column), NULL);
-  gtk_signal_connect(GTK_OBJECT(clist), "select-row",
-                     GTK_SIGNAL_FUNC(select_plugin), NULL);
-  gtk_signal_connect(GTK_OBJECT(clist), "unselect-row",
-                     GTK_SIGNAL_FUNC(unselect_plugin), NULL);
+  g_signal_connect(G_OBJECT(clist), "click-column",
+                     G_CALLBACK(sort_column), NULL);
+  g_signal_connect(G_OBJECT(clist), "select-row",
+                     G_CALLBACK(select_plugin), NULL);
+  g_signal_connect(G_OBJECT(clist), "unselect-row",
+                     G_CALLBACK(unselect_plugin), NULL);
 
   return clist;
 }
@@ -952,16 +952,16 @@
   bbox = gtk_hbutton_box_new();
   gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
   widget = gtk_button_new_with_label("Add");
-  gtk_signal_connect(GTK_OBJECT(widget), "clicked",
-                     GTK_SIGNAL_FUNC(add_plugin_clicked), NULL);
+  g_signal_connect(G_OBJECT(widget), "clicked",
+                     G_CALLBACK(add_plugin_clicked), NULL);
   gtk_box_pack_end_defaults(GTK_BOX(bbox), widget);
   widget = gtk_button_new_with_label("Remove");
-  gtk_signal_connect(GTK_OBJECT(widget), "clicked",
-                     GTK_SIGNAL_FUNC(remove_plugin_clicked), NULL);
+  g_signal_connect(G_OBJECT(widget), "clicked",
+                     G_CALLBACK(remove_plugin_clicked), NULL);
   gtk_box_pack_end_defaults(GTK_BOX(bbox), widget);
   widget = gtk_button_new_with_label("Configure");
-  gtk_signal_connect(GTK_OBJECT(widget), "clicked",
-                     GTK_SIGNAL_FUNC(configure_plugin_clicked), NULL);
+  g_signal_connect(G_OBJECT(widget), "clicked",
+                     G_CALLBACK(configure_plugin_clicked), NULL);
   gtk_box_pack_end_defaults(GTK_BOX(bbox), widget);
 
   gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
@@ -970,8 +970,8 @@
 
   gtk_window_set_title(GTK_WINDOW(config_window), "LADSPA Plugin Catalog");
   gtk_widget_set_usize(config_window, 380, 400);
-  gtk_signal_connect (GTK_OBJECT (config_window), "delete_event",
-                      GTK_SIGNAL_FUNC (gtk_widget_hide_on_delete), NULL);
+  g_signal_connect (G_OBJECT (config_window), "delete_event",
+                      G_CALLBACK (gtk_widget_hide_on_delete), NULL);
 
   gtk_widget_show_all(config_window);
 }
--- a/Plugins/Input/aac/src/libmp4.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/aac/src/libmp4.c	Tue May 23 16:05:38 2006 -0700
@@ -240,8 +240,8 @@
 			       "Using libfaad2-" FAAD2_VERSION " for decoding.\n"
 			       "Copyright (c) 2005-2006 Audacious team",
 			       "Ok", FALSE, NULL, NULL);
-  gtk_signal_connect(GTK_OBJECT(aboutbox), "destroy",
-                     GTK_SIGNAL_FUNC(gtk_widget_destroyed),
+  g_signal_connect(G_OBJECT(aboutbox), "destroy",
+                     G_CALLBACK(gtk_widget_destroyed),
                      &aboutbox);
 }
 
--- a/Plugins/Input/adplug/adplug-xmms.cc	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/adplug/adplug-xmms.cc	Tue May 23 16:05:38 2006 -0700
@@ -132,7 +132,7 @@
   strcpy(tmptitle, title); strcpy(tmptxt, text); strcpy(tmpbutton, button);
 
   GtkWidget *msgbox = xmms_show_message(tmptitle, tmptxt, tmpbutton, FALSE,
-					GTK_SIGNAL_FUNC(gtk_widget_destroyed), &msgbox);
+					G_CALLBACK(gtk_widget_destroyed), &msgbox);
 
   free(tmptitle); free(tmptxt); free(tmpbutton);
 }
@@ -153,8 +153,8 @@
                               "Linked AdPlug library version: ") ,
                               version_text , NULL );
     about_win = xmms_show_message( about_title , about_text , _("Ok") , FALSE , NULL , NULL );
-    gtk_signal_connect( GTK_OBJECT(about_win) , "destroy" ,
-                        GTK_SIGNAL_FUNC(gtk_widget_destroyed), &about_win );
+    g_signal_connect( G_OBJECT(about_win) , "destroy" ,
+                        G_CALLBACK(gtk_widget_destroyed), &about_win );
     g_free( about_text );
     g_free( about_title );
   }
@@ -217,20 +217,20 @@
     GtkWidget *button;
 
     button = gtk_button_new_with_label("Ok");
-    gtk_signal_connect(GTK_OBJECT(button), "clicked",
-		       GTK_SIGNAL_FUNC(close_config_box_ok),
+    g_signal_connect(G_OBJECT(button), "clicked",
+		       G_CALLBACK(close_config_box_ok),
 		       (gpointer)rblist);
-    gtk_signal_connect_object_after(GTK_OBJECT(button), "clicked",
-				    GTK_SIGNAL_FUNC(gtk_widget_destroy),
-				    GTK_OBJECT(config_dlg));
+    g_signal_connect_data(G_OBJECT(button), "clicked",
+				    G_CALLBACK(gtk_widget_destroy),
+				    GTK_OBJECT(config_dlg),NULL,(GConnectFlags) (G_CONNECT_AFTER|G_CONNECT_SWAPPED));
     gtk_container_add(GTK_CONTAINER(config_dlg->action_area), button);
 
     button = gtk_button_new_with_label("Cancel");
-    gtk_signal_connect(GTK_OBJECT(button), "clicked",
-		       GTK_SIGNAL_FUNC(close_config_box_cancel),
+    g_signal_connect(G_OBJECT(button), "clicked",
+		       G_CALLBACK(close_config_box_cancel),
 		       (gpointer)rblist);
-    gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
-			      GTK_SIGNAL_FUNC(gtk_widget_destroy),
+    g_signal_connect_swapped(G_OBJECT(button), "clicked",
+			      G_CALLBACK(gtk_widget_destroy),
 			      GTK_OBJECT(config_dlg));
     gtk_container_add(GTK_CONTAINER(config_dlg->action_area), button);
   }
@@ -361,10 +361,10 @@
       gtk_scrolled_window_set_policy(formatswnd, GTK_POLICY_AUTOMATIC,
 				     GTK_POLICY_AUTOMATIC);
       gpointer pl = (gpointer)new CPlayers(cfg.players);
-      gtk_signal_connect(GTK_OBJECT(fl), "select-row",
-			 GTK_SIGNAL_FUNC(config_fl_row_select), pl);
-      gtk_signal_connect(GTK_OBJECT(fl), "unselect-row",
-			 GTK_SIGNAL_FUNC(config_fl_row_unselect), pl);
+      g_signal_connect(G_OBJECT(fl), "select-row",
+			 G_CALLBACK(config_fl_row_select), pl);
+      g_signal_connect(G_OBJECT(fl), "unselect-row",
+			 G_CALLBACK(config_fl_row_unselect), pl);
       gtk_container_add(GTK_CONTAINER(formatswnd), GTK_WIDGET(fl));
       gtk_container_add(GTK_CONTAINER(eventbox), GTK_WIDGET(formatswnd));
       gtk_container_add(GTK_CONTAINER(vb), GTK_WIDGET(eventbox));
@@ -445,11 +445,11 @@
 //  gtk_packer_set_default_border_width(packer, 2);
 
   gtk_box_set_homogeneous(GTK_BOX(hbox), FALSE);
-  gtk_signal_connect_object(GTK_OBJECT(okay_button), "clicked",
-			    GTK_SIGNAL_FUNC(gtk_widget_destroy),
+  g_signal_connect_swapped(G_OBJECT(okay_button), "clicked",
+			    G_CALLBACK(gtk_widget_destroy),
 			    GTK_OBJECT(infobox));
-  gtk_signal_connect(GTK_OBJECT(infobox), "destroy",
-		     GTK_SIGNAL_FUNC(close_infobox), 0);
+  g_signal_connect(G_OBJECT(infobox), "destroy",
+		     G_CALLBACK(close_infobox), 0);
   gtk_container_add(GTK_CONTAINER(infobox->action_area), GTK_WIDGET(okay_button));
 
   // Add filename section
@@ -541,8 +541,8 @@
 							   1, 5, 1));
     GtkHScale *slider = GTK_HSCALE(gtk_hscale_new(adj));
 
-    gtk_signal_connect(GTK_OBJECT(adj), "value_changed",
-		       GTK_SIGNAL_FUNC(subsong_slider), NULL);
+    g_signal_connect(G_OBJECT(adj), "value_changed",
+		       G_CALLBACK(subsong_slider), NULL);
     gtk_range_set_update_policy(GTK_RANGE(slider), GTK_UPDATE_DISCONTINUOUS);
     gtk_scale_set_digits(GTK_SCALE(slider), 0);
 // Former packer layout, for future reproduction
--- a/Plugins/Input/flac/http.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/flac/http.c	Tue May 23 16:05:38 2006 -0700
@@ -218,9 +218,9 @@
 		GDK_THREADS_ENTER();
 		error_dialog = xmms_show_message(_("Error"), error, _("Ok"), FALSE,
 						 NULL, NULL);
-		gtk_signal_connect(GTK_OBJECT(error_dialog),
+		g_signal_connect(G_OBJECT(error_dialog),
 				   "destroy",
-				   GTK_SIGNAL_FUNC(gtk_widget_destroyed),
+				   G_CALLBACK(gtk_widget_destroyed),
 				   &error_dialog);
 		GDK_THREADS_LEAVE();
 	}
--- a/Plugins/Input/musepack/libmpc.cpp	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/musepack/libmpc.cpp	Tue May 23 16:05:38 2006 -0700
@@ -73,7 +73,7 @@
         char* buttonText  = "Nevermind";
         aboutBox = xmms_show_message(titleText, contentText, buttonText, FALSE, NULL, NULL);
         widgets.aboutBox = aboutBox;
-        gtk_signal_connect(GTK_OBJECT(aboutBox), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &widgets.aboutBox);
+        g_signal_connect(G_OBJECT(aboutBox), "destroy", G_CALLBACK(gtk_widget_destroyed), &widgets.aboutBox);
     }
 }
 
@@ -87,7 +87,7 @@
         configBox = gtk_window_new(GTK_WINDOW_TOPLEVEL);
         gtk_window_set_type_hint(GTK_WINDOW(configBox), GDK_WINDOW_TYPE_HINT_DIALOG);
         widgets.configBox = configBox;
-        gtk_signal_connect(GTK_OBJECT(configBox), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &widgets.configBox);
+        g_signal_connect(G_OBJECT(configBox), "destroy", G_CALLBACK(gtk_widget_destroyed), &widgets.configBox);
         gtk_window_set_title(GTK_WINDOW(configBox), "Musepack Decoder Configuration");
         gtk_window_set_policy(GTK_WINDOW(configBox), FALSE, FALSE, FALSE);
         gtk_container_border_width(GTK_CONTAINER(configBox), 10);
@@ -131,7 +131,7 @@
 
         GtkWidget* replaygainType = gtk_frame_new("ReplayGain Type");
         gtk_box_pack_start(GTK_BOX(rSVbox), replaygainType, FALSE, FALSE, 0);
-        gtk_signal_connect(GTK_OBJECT(replaygainCheck), "toggled", GTK_SIGNAL_FUNC(toggleSwitch), replaygainType);
+        g_signal_connect(G_OBJECT(replaygainCheck), "toggled", G_CALLBACK(toggleSwitch), replaygainType);
 
         GtkWidget* rgVbox = gtk_vbox_new(FALSE, 5);
         gtk_container_set_border_width(GTK_CONTAINER(rgVbox), 5);
@@ -155,12 +155,12 @@
         gtk_box_pack_start(GTK_BOX(vbox), buttonBox, FALSE, FALSE, 0);
 
         GtkWidget* okButton = gtk_button_new_with_label("Ok");
-        gtk_signal_connect(GTK_OBJECT(okButton), "clicked", GTK_SIGNAL_FUNC(saveConfigBox), NULL);
+        g_signal_connect(G_OBJECT(okButton), "clicked", G_CALLBACK(saveConfigBox), NULL);
         GTK_WIDGET_SET_FLAGS(okButton, GTK_CAN_DEFAULT);
         gtk_box_pack_start(GTK_BOX(buttonBox), okButton, TRUE, TRUE, 0);
 
         GtkWidget* cancelButton = gtk_button_new_with_label("Cancel");
-        gtk_signal_connect_object(GTK_OBJECT(cancelButton), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(widgets.configBox));
+        g_signal_connect_swapped(G_OBJECT(cancelButton), "clicked", G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(widgets.configBox));
         GTK_WIDGET_SET_FLAGS(cancelButton, GTK_CAN_DEFAULT);
         gtk_widget_grab_default(cancelButton);
         gtk_box_pack_start(GTK_BOX(buttonBox), cancelButton, TRUE, TRUE, 0);
@@ -346,7 +346,7 @@
         gtk_window_set_type_hint(GTK_WINDOW(infoBox), GDK_WINDOW_TYPE_HINT_DIALOG);
         widgets.infoBox = infoBox;
         gtk_window_set_policy(GTK_WINDOW(infoBox), FALSE, FALSE, FALSE);
-        gtk_signal_connect(GTK_OBJECT(infoBox), "destroy", GTK_SIGNAL_FUNC(closeInfoBox), NULL);
+        g_signal_connect(G_OBJECT(infoBox), "destroy", G_CALLBACK(closeInfoBox), NULL);
         gtk_container_set_border_width(GTK_CONTAINER(infoBox), 10);
 
         GtkWidget* iVbox = gtk_vbox_new(FALSE, 10);
@@ -416,13 +416,13 @@
         gtk_box_pack_start(GTK_BOX(leftBox), buttonBox, FALSE, FALSE, 0);
 
         GtkWidget* saveButton = mpcGtkButton("Save", buttonBox);
-        gtk_signal_connect(GTK_OBJECT(saveButton), "clicked", GTK_SIGNAL_FUNC(saveTags), NULL);
+        g_signal_connect(G_OBJECT(saveButton), "clicked", G_CALLBACK(saveTags), NULL);
 
         GtkWidget* removeButton = mpcGtkButton("Remove Tag", buttonBox);
-        gtk_signal_connect_object(GTK_OBJECT(removeButton), "clicked", GTK_SIGNAL_FUNC(removeTags), NULL);
+        g_signal_connect_swapped(G_OBJECT(removeButton), "clicked", G_CALLBACK(removeTags), NULL);
 
         GtkWidget* cancelButton = mpcGtkButton("Cancel", buttonBox);
-        gtk_signal_connect_object(GTK_OBJECT(cancelButton), "clicked", GTK_SIGNAL_FUNC(closeInfoBox), NULL);
+        g_signal_connect_swapped(G_OBJECT(cancelButton), "clicked", G_CALLBACK(closeInfoBox), NULL);
         gtk_widget_grab_default(cancelButton);
 
         //File information
--- a/Plugins/Input/sid/xmms-sid.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/sid/xmms-sid.c	Tue May 23 16:05:38 2006 -0700
@@ -725,16 +725,16 @@
 	xs_subctrl = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 	gtk_window_set_type_hint (GTK_WINDOW(xs_subctrl), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_widget_set_name(xs_subctrl, "xs_subctrl");
-	gtk_object_set_data(GTK_OBJECT(xs_subctrl), "xs_subctrl", xs_subctrl);
+	g_object_set_data(G_OBJECT(xs_subctrl), "xs_subctrl", xs_subctrl);
 
 	gtk_window_set_title(GTK_WINDOW(xs_subctrl), "Subtune Control");
 	gtk_window_set_position(GTK_WINDOW(xs_subctrl), GTK_WIN_POS_MOUSE);
 	gtk_container_set_border_width(GTK_CONTAINER(xs_subctrl), 0);
 	gtk_window_set_policy(GTK_WINDOW(xs_subctrl), FALSE, FALSE, FALSE);
 
-	gtk_signal_connect(GTK_OBJECT(xs_subctrl), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &xs_subctrl);
+	g_signal_connect(G_OBJECT(xs_subctrl), "destroy", G_CALLBACK(gtk_widget_destroyed), &xs_subctrl);
 
-	gtk_signal_connect(GTK_OBJECT(xs_subctrl), "focus_out_event", GTK_SIGNAL_FUNC(xs_subctrl_close), NULL);
+	g_signal_connect(G_OBJECT(xs_subctrl), "focus_out_event", G_CALLBACK(xs_subctrl_close), NULL);
 
 	gtk_widget_realize(xs_subctrl);
 	gdk_window_set_decorations(xs_subctrl->window, (GdkWMDecoration) 0);
@@ -754,7 +754,7 @@
 	gtk_box_pack_start(GTK_BOX(hbox15), subctrl_prev, FALSE, FALSE, 0);
 
 	xs_subctrl_adj = gtk_adjustment_new(xs_status.currSong, 1, xs_status.tuneInfo->nsubTunes, 1, 1, 0);
-	gtk_signal_connect(GTK_OBJECT(xs_subctrl_adj), "value_changed", GTK_SIGNAL_FUNC(xs_subctrl_setsong), NULL);
+	g_signal_connect(G_OBJECT(xs_subctrl_adj), "value_changed", G_CALLBACK(xs_subctrl_setsong), NULL);
 
 	subctrl_current = gtk_hscale_new(GTK_ADJUSTMENT(xs_subctrl_adj));
 	gtk_widget_set_name(subctrl_current, "subctrl_current");
@@ -768,11 +768,11 @@
 	gtk_widget_set_name(subctrl_next, "subctrl_next");
 	gtk_box_pack_start(GTK_BOX(hbox15), subctrl_next, FALSE, FALSE, 0);
 
-	gtk_signal_connect(GTK_OBJECT(subctrl_prev), "clicked", GTK_SIGNAL_FUNC(xs_subctrl_prevsong), NULL);
+	g_signal_connect(G_OBJECT(subctrl_prev), "clicked", G_CALLBACK(xs_subctrl_prevsong), NULL);
 
-	gtk_signal_connect(GTK_OBJECT(subctrl_next), "clicked", GTK_SIGNAL_FUNC(xs_subctrl_nextsong), NULL);
+	g_signal_connect(G_OBJECT(subctrl_next), "clicked", G_CALLBACK(xs_subctrl_nextsong), NULL);
 
-	gtk_signal_connect(GTK_OBJECT(xs_subctrl), "key_press_event", GTK_SIGNAL_FUNC(xs_subctrl_keypress), NULL);
+	g_signal_connect(G_OBJECT(xs_subctrl), "key_press_event", G_CALLBACK(xs_subctrl_keypress), NULL);
 
 	gtk_widget_show_all(xs_subctrl);
 
--- a/Plugins/Input/sid/xs_about.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/sid/xs_about.c	Tue May 23 16:05:38 2006 -0700
@@ -60,14 +60,14 @@
 	xs_aboutwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 	gtk_window_set_type_hint (GTK_WINDOW(xs_aboutwin), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_widget_set_name(xs_aboutwin, "xs_aboutwin");
-	gtk_object_set_data(GTK_OBJECT(xs_aboutwin), "xs_aboutwin", xs_aboutwin);
+	g_object_set_data(G_OBJECT(xs_aboutwin), "xs_aboutwin", xs_aboutwin);
 	gtk_window_set_title(GTK_WINDOW(xs_aboutwin), "About " PACKAGE_STRING);
 	gtk_window_set_default_size(GTK_WINDOW(xs_aboutwin), 300, -1);
 
 	about_vbox1 = gtk_vbox_new(FALSE, 0);
 	gtk_widget_set_name(about_vbox1, "about_vbox1");
 	gtk_widget_ref(about_vbox1);
-	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "about_vbox1", about_vbox1,
+	g_object_set_data_full(G_OBJECT(xs_aboutwin), "about_vbox1", about_vbox1,
 				 (GtkDestroyNotify) gtk_widget_unref);
 	gtk_widget_show(about_vbox1);
 	gtk_container_add(GTK_CONTAINER(xs_aboutwin), about_vbox1);
@@ -75,7 +75,7 @@
 	about_frame = gtk_frame_new(NULL);
 	gtk_widget_set_name(about_frame, "about_frame");
 	gtk_widget_ref(about_frame);
-	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "about_frame", about_frame,
+	g_object_set_data_full(G_OBJECT(xs_aboutwin), "about_frame", about_frame,
 				 (GtkDestroyNotify) gtk_widget_unref);
 	gtk_widget_show(about_frame);
 	gtk_box_pack_start(GTK_BOX(about_vbox1), about_frame, FALSE, FALSE, 0);
@@ -93,7 +93,7 @@
 	/* Create logo widget */
 	gtk_widget_set_name(about_logo, "about_logo");
 	gtk_widget_ref(about_logo);
-	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "about_logo", about_logo,
+	g_object_set_data_full(G_OBJECT(xs_aboutwin), "about_logo", about_logo,
 				 (GtkDestroyNotify) gtk_widget_unref);
 	gtk_widget_show(about_logo);
 	gtk_container_add(GTK_CONTAINER(about_frame), about_logo);
@@ -102,7 +102,7 @@
 	about_scrwin = gtk_scrolled_window_new(NULL, NULL);
 	gtk_widget_set_name(about_scrwin, "about_scrwin");
 	gtk_widget_ref(about_scrwin);
-	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "about_scrwin", about_scrwin,
+	g_object_set_data_full(G_OBJECT(xs_aboutwin), "about_scrwin", about_scrwin,
 				 (GtkDestroyNotify) gtk_widget_unref);
 	gtk_widget_show(about_scrwin);
 	gtk_box_pack_start(GTK_BOX(about_vbox1), about_scrwin, TRUE, TRUE, 0);
@@ -112,7 +112,7 @@
 	about_text = gtk_text_view_new();
 	gtk_widget_set_name(about_text, "about_text");
 	gtk_widget_ref(about_text);
-	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "about_text", about_text,
+	g_object_set_data_full(G_OBJECT(xs_aboutwin), "about_text", about_text,
 				 (GtkDestroyNotify) gtk_widget_unref);
 	gtk_widget_show(about_text);
 	gtk_container_add(GTK_CONTAINER(about_scrwin), about_text);
@@ -150,7 +150,7 @@
 	alignment6 = gtk_alignment_new(0.5, 0.5, 0.18, 1);
 	gtk_widget_set_name(alignment6, "alignment6");
 	gtk_widget_ref(alignment6);
-	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "alignment6", alignment6,
+	g_object_set_data_full(G_OBJECT(xs_aboutwin), "alignment6", alignment6,
 				 (GtkDestroyNotify) gtk_widget_unref);
 	gtk_widget_show(alignment6);
 	gtk_box_pack_start(GTK_BOX(about_vbox1), alignment6, FALSE, TRUE, 0);
@@ -159,7 +159,7 @@
 	about_close = gtk_button_new_with_label("Close");
 	gtk_widget_set_name(about_close, "about_close");
 	gtk_widget_ref(about_close);
-	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "about_close", about_close,
+	g_object_set_data_full(G_OBJECT(xs_aboutwin), "about_close", about_close,
 				 (GtkDestroyNotify) gtk_widget_unref);
 	gtk_widget_show(about_close);
 	gtk_container_add(GTK_CONTAINER(alignment6), about_close);
--- a/Plugins/Input/sid/xs_glade.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/sid/xs_glade.c	Tue May 23 16:05:38 2006 -0700
@@ -39,7 +39,7 @@
       widget = parent;
     }
 
-  found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget),
+  found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
                                                    widget_name);
   if (!found_widget)
     g_warning ("Widget not found: %s", widget_name);
--- a/Plugins/Input/sid/xs_interface.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/sid/xs_interface.c	Tue May 23 16:05:38 2006 -0700
@@ -192,14 +192,14 @@
   xs_configwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_type_hint (GTK_WINDOW(xs_configwin), GDK_WINDOW_TYPE_HINT_DIALOG);
   gtk_widget_set_name (xs_configwin, "xs_configwin");
-  gtk_object_set_data (GTK_OBJECT (xs_configwin), "xs_configwin", xs_configwin);
+  g_object_set_data (G_OBJECT (xs_configwin), "xs_configwin", xs_configwin);
   gtk_window_set_title (GTK_WINDOW (xs_configwin), "XMMS-SID configuration");
   gtk_window_set_policy (GTK_WINDOW (xs_configwin), FALSE, FALSE, FALSE);
 
   vbox1 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox1, "vbox1");
   gtk_widget_ref (vbox1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox1", vbox1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox1", vbox1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox1);
   gtk_container_add (GTK_CONTAINER (xs_configwin), vbox1);
@@ -208,7 +208,7 @@
   cfg_notebook = gtk_notebook_new ();
   gtk_widget_set_name (cfg_notebook, "cfg_notebook");
   gtk_widget_ref (cfg_notebook);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_notebook", cfg_notebook,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_notebook", cfg_notebook,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_notebook);
   gtk_box_pack_start (GTK_BOX (vbox1), cfg_notebook, TRUE, TRUE, 0);
@@ -217,7 +217,7 @@
   vbox6 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox6, "vbox6");
   gtk_widget_ref (vbox6);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox6", vbox6,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox6", vbox6,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox6);
   gtk_container_add (GTK_CONTAINER (cfg_notebook), vbox6);
@@ -225,7 +225,7 @@
   hbox2 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox2, "hbox2");
   gtk_widget_ref (hbox2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox2", hbox2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox2", hbox2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox2);
   gtk_box_pack_start (GTK_BOX (vbox6), hbox2, FALSE, TRUE, 0);
@@ -233,7 +233,7 @@
   frame4 = gtk_frame_new ("Resolution:");
   gtk_widget_set_name (frame4, "frame4");
   gtk_widget_ref (frame4);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame4", frame4,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame4", frame4,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame4);
   gtk_box_pack_start (GTK_BOX (hbox2), frame4, TRUE, TRUE, 0);
@@ -242,7 +242,7 @@
   vbox9 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox9, "vbox9");
   gtk_widget_ref (vbox9);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox9", vbox9,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox9", vbox9,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox9);
   gtk_container_add (GTK_CONTAINER (frame4), vbox9);
@@ -252,7 +252,7 @@
   resolution_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_res_8bit));
   gtk_widget_set_name (cfg_res_8bit, "cfg_res_8bit");
   gtk_widget_ref (cfg_res_8bit);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_res_8bit", cfg_res_8bit,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_res_8bit", cfg_res_8bit,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_res_8bit);
   gtk_box_pack_start (GTK_BOX (vbox9), cfg_res_8bit, FALSE, FALSE, 0);
@@ -261,7 +261,7 @@
   resolution_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_res_16bit));
   gtk_widget_set_name (cfg_res_16bit, "cfg_res_16bit");
   gtk_widget_ref (cfg_res_16bit);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_res_16bit", cfg_res_16bit,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_res_16bit", cfg_res_16bit,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_res_16bit);
   gtk_box_pack_start (GTK_BOX (vbox9), cfg_res_16bit, FALSE, FALSE, 0);
@@ -269,7 +269,7 @@
   frame5 = gtk_frame_new ("Channels:");
   gtk_widget_set_name (frame5, "frame5");
   gtk_widget_ref (frame5);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame5", frame5,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame5", frame5,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame5);
   gtk_box_pack_start (GTK_BOX (hbox2), frame5, TRUE, TRUE, 0);
@@ -278,7 +278,7 @@
   vbox10 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox10, "vbox10");
   gtk_widget_ref (vbox10);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox10", vbox10,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox10", vbox10,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox10);
   gtk_container_add (GTK_CONTAINER (frame5), vbox10);
@@ -288,7 +288,7 @@
   channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_chn_mono));
   gtk_widget_set_name (cfg_chn_mono, "cfg_chn_mono");
   gtk_widget_ref (cfg_chn_mono);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_chn_mono", cfg_chn_mono,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_chn_mono", cfg_chn_mono,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_chn_mono);
   gtk_box_pack_start (GTK_BOX (vbox10), cfg_chn_mono, FALSE, FALSE, 0);
@@ -297,7 +297,7 @@
   channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_chn_stereo));
   gtk_widget_set_name (cfg_chn_stereo, "cfg_chn_stereo");
   gtk_widget_ref (cfg_chn_stereo);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_chn_stereo", cfg_chn_stereo,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_chn_stereo", cfg_chn_stereo,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_chn_stereo);
   gtk_box_pack_start (GTK_BOX (vbox10), cfg_chn_stereo, FALSE, FALSE, 0);
@@ -306,7 +306,7 @@
   channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_chn_autopan));
   gtk_widget_set_name (cfg_chn_autopan, "cfg_chn_autopan");
   gtk_widget_ref (cfg_chn_autopan);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_chn_autopan", cfg_chn_autopan,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_chn_autopan", cfg_chn_autopan,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_chn_autopan);
   gtk_box_pack_start (GTK_BOX (vbox10), cfg_chn_autopan, FALSE, FALSE, 0);
@@ -314,7 +314,7 @@
   frame8 = gtk_frame_new ("Samplerate:");
   gtk_widget_set_name (frame8, "frame8");
   gtk_widget_ref (frame8);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame8", frame8,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame8", frame8,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame8);
   gtk_box_pack_start (GTK_BOX (vbox6), frame8, FALSE, TRUE, 0);
@@ -323,7 +323,7 @@
   hbox4 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox4, "hbox4");
   gtk_widget_ref (hbox4);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox4", hbox4,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox4", hbox4,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox4);
   gtk_container_add (GTK_CONTAINER (frame8), hbox4);
@@ -332,7 +332,7 @@
   cfg_samplerate_menu = gtk_option_menu_new ();
   gtk_widget_set_name (cfg_samplerate_menu, "cfg_samplerate_menu");
   gtk_widget_ref (cfg_samplerate_menu);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_samplerate_menu", cfg_samplerate_menu,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_samplerate_menu", cfg_samplerate_menu,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_samplerate_menu);
   gtk_box_pack_start (GTK_BOX (hbox4), cfg_samplerate_menu, FALSE, FALSE, 0);
@@ -364,7 +364,7 @@
   label8 = gtk_label_new ("Hz");
   gtk_widget_set_name (label8, "label8");
   gtk_widget_ref (label8);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label8", label8,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label8", label8,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label8);
   gtk_box_pack_start (GTK_BOX (hbox4), label8, FALSE, TRUE, 4);
@@ -372,7 +372,7 @@
   vseparator1 = gtk_vseparator_new ();
   gtk_widget_set_name (vseparator1, "vseparator1");
   gtk_widget_ref (vseparator1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vseparator1", vseparator1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vseparator1", vseparator1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vseparator1);
   gtk_box_pack_start (GTK_BOX (hbox4), vseparator1, TRUE, TRUE, 0);
@@ -381,7 +381,7 @@
   cfg_samplerate = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_samplerate_adj), 8000, 0);
   gtk_widget_set_name (cfg_samplerate, "cfg_samplerate");
   gtk_widget_ref (cfg_samplerate);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_samplerate", cfg_samplerate,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_samplerate", cfg_samplerate,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_samplerate);
   gtk_box_pack_start (GTK_BOX (hbox4), cfg_samplerate, TRUE, TRUE, 0);
@@ -390,7 +390,7 @@
   label54 = gtk_label_new ("Hz");
   gtk_widget_set_name (label54, "label54");
   gtk_widget_ref (label54);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label54", label54,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label54", label54,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label54);
   gtk_box_pack_start (GTK_BOX (hbox4), label54, FALSE, TRUE, 0);
@@ -398,7 +398,7 @@
   cfg_oversample_grp = gtk_frame_new ("Oversampling:");
   gtk_widget_set_name (cfg_oversample_grp, "cfg_oversample_grp");
   gtk_widget_ref (cfg_oversample_grp);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_oversample_grp", cfg_oversample_grp,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_oversample_grp", cfg_oversample_grp,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_oversample_grp);
   gtk_box_pack_start (GTK_BOX (vbox6), cfg_oversample_grp, FALSE, TRUE, 0);
@@ -407,7 +407,7 @@
   vbox27 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox27, "vbox27");
   gtk_widget_ref (vbox27);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox27", vbox27,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox27", vbox27,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox27);
   gtk_container_add (GTK_CONTAINER (cfg_oversample_grp), vbox27);
@@ -416,7 +416,7 @@
   cfg_oversample = gtk_check_button_new_with_label ("Use oversampling");
   gtk_widget_set_name (cfg_oversample, "cfg_oversample");
   gtk_widget_ref (cfg_oversample);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_oversample", cfg_oversample,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_oversample", cfg_oversample,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_oversample);
   gtk_box_pack_start (GTK_BOX (vbox27), cfg_oversample, FALSE, FALSE, 0);
@@ -424,7 +424,7 @@
   hbox16 = gtk_hbox_new (FALSE, 4);
   gtk_widget_set_name (hbox16, "hbox16");
   gtk_widget_ref (hbox16);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox16", hbox16,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox16", hbox16,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox16);
   gtk_box_pack_start (GTK_BOX (vbox27), hbox16, FALSE, TRUE, 0);
@@ -433,7 +433,7 @@
   cfg_oversample_label1 = gtk_label_new ("Factor:");
   gtk_widget_set_name (cfg_oversample_label1, "cfg_oversample_label1");
   gtk_widget_ref (cfg_oversample_label1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_oversample_label1", cfg_oversample_label1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_oversample_label1", cfg_oversample_label1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_oversample_label1);
   gtk_box_pack_start (GTK_BOX (hbox16), cfg_oversample_label1, FALSE, FALSE, 0);
@@ -442,7 +442,7 @@
   cfg_oversample_factor = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_oversample_factor_adj), 1, 0);
   gtk_widget_set_name (cfg_oversample_factor, "cfg_oversample_factor");
   gtk_widget_ref (cfg_oversample_factor);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_oversample_factor", cfg_oversample_factor,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_oversample_factor", cfg_oversample_factor,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_oversample_factor);
   gtk_box_pack_start (GTK_BOX (hbox16), cfg_oversample_factor, FALSE, TRUE, 0);
@@ -450,7 +450,7 @@
   cfg_oversample_label2 = gtk_label_new ("Large factors require more CPU-power");
   gtk_widget_set_name (cfg_oversample_label2, "cfg_oversample_label2");
   gtk_widget_ref (cfg_oversample_label2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_oversample_label2", cfg_oversample_label2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_oversample_label2", cfg_oversample_label2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_oversample_label2);
   gtk_box_pack_start (GTK_BOX (hbox16), cfg_oversample_label2, FALSE, FALSE, 0);
@@ -458,7 +458,7 @@
   label1 = gtk_label_new ("Audio");
   gtk_widget_set_name (label1, "label1");
   gtk_widget_ref (label1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label1", label1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label1", label1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label1);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 0), label1);
@@ -466,7 +466,7 @@
   vbox2 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox2, "vbox2");
   gtk_widget_ref (vbox2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox2", vbox2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox2", vbox2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox2);
   gtk_container_add (GTK_CONTAINER (cfg_notebook), vbox2);
@@ -474,7 +474,7 @@
   frame26 = gtk_frame_new ("Emulation library selection: ");
   gtk_widget_set_name (frame26, "frame26");
   gtk_widget_ref (frame26);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame26", frame26,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame26", frame26,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame26);
   gtk_box_pack_start (GTK_BOX (vbox2), frame26, FALSE, FALSE, 0);
@@ -483,7 +483,7 @@
   vbox26 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox26, "vbox26");
   gtk_widget_ref (vbox26);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox26", vbox26,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox26", vbox26,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox26);
   gtk_container_add (GTK_CONTAINER (frame26), vbox26);
@@ -493,7 +493,7 @@
   emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay1));
   gtk_widget_set_name (cfg_emu_sidplay1, "cfg_emu_sidplay1");
   gtk_widget_ref (cfg_emu_sidplay1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplay1", cfg_emu_sidplay1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_sidplay1", cfg_emu_sidplay1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_sidplay1);
   gtk_box_pack_start (GTK_BOX (vbox26), cfg_emu_sidplay1, FALSE, FALSE, 0);
@@ -503,7 +503,7 @@
   emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay2));
   gtk_widget_set_name (cfg_emu_sidplay2, "cfg_emu_sidplay2");
   gtk_widget_ref (cfg_emu_sidplay2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplay2", cfg_emu_sidplay2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_sidplay2", cfg_emu_sidplay2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_sidplay2);
   gtk_box_pack_start (GTK_BOX (vbox26), cfg_emu_sidplay2, FALSE, FALSE, 0);
@@ -512,7 +512,7 @@
   frame1 = gtk_frame_new ("Memory mode:");
   gtk_widget_set_name (frame1, "frame1");
   gtk_widget_ref (frame1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame1", frame1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame1", frame1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame1);
   gtk_box_pack_start (GTK_BOX (vbox2), frame1, FALSE, FALSE, 0);
@@ -521,7 +521,7 @@
   vbox5 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox5, "vbox5");
   gtk_widget_ref (vbox5);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox5", vbox5,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox5", vbox5,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox5);
   gtk_container_add (GTK_CONTAINER (frame1), vbox5);
@@ -531,7 +531,7 @@
   memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_real));
   gtk_widget_set_name (cfg_emu_mem_real, "cfg_emu_mem_real");
   gtk_widget_ref (cfg_emu_mem_real);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_real", cfg_emu_mem_real,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_mem_real", cfg_emu_mem_real,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_mem_real);
   gtk_box_pack_start (GTK_BOX (vbox5), cfg_emu_mem_real, FALSE, FALSE, 0);
@@ -540,7 +540,7 @@
   memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_banksw));
   gtk_widget_set_name (cfg_emu_mem_banksw, "cfg_emu_mem_banksw");
   gtk_widget_ref (cfg_emu_mem_banksw);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_banksw", cfg_emu_mem_banksw,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_mem_banksw", cfg_emu_mem_banksw,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_mem_banksw);
   gtk_box_pack_start (GTK_BOX (vbox5), cfg_emu_mem_banksw, FALSE, FALSE, 0);
@@ -549,7 +549,7 @@
   memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_transrom));
   gtk_widget_set_name (cfg_emu_mem_transrom, "cfg_emu_mem_transrom");
   gtk_widget_ref (cfg_emu_mem_transrom);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_transrom", cfg_emu_mem_transrom,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_mem_transrom", cfg_emu_mem_transrom,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_mem_transrom);
   gtk_box_pack_start (GTK_BOX (vbox5), cfg_emu_mem_transrom, FALSE, FALSE, 0);
@@ -558,7 +558,7 @@
   memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_playsid));
   gtk_widget_set_name (cfg_emu_mem_playsid, "cfg_emu_mem_playsid");
   gtk_widget_ref (cfg_emu_mem_playsid);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_playsid", cfg_emu_mem_playsid,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_mem_playsid", cfg_emu_mem_playsid,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_mem_playsid);
   gtk_box_pack_start (GTK_BOX (vbox5), cfg_emu_mem_playsid, FALSE, FALSE, 0);
@@ -566,7 +566,7 @@
   label2 = gtk_label_new ("Emu#1");
   gtk_widget_set_name (label2, "label2");
   gtk_widget_ref (label2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label2", label2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label2", label2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label2);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 1), label2);
@@ -574,7 +574,7 @@
   vbox29 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox29, "vbox29");
   gtk_widget_ref (vbox29);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox29", vbox29,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox29", vbox29,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox29);
   gtk_container_add (GTK_CONTAINER (cfg_notebook), vbox29);
@@ -582,7 +582,7 @@
   hbox1 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox1, "hbox1");
   gtk_widget_ref (hbox1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox1", hbox1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox1", hbox1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox1);
   gtk_box_pack_start (GTK_BOX (vbox29), hbox1, FALSE, TRUE, 0);
@@ -590,7 +590,7 @@
   frame2 = gtk_frame_new ("Clock speed:");
   gtk_widget_set_name (frame2, "frame2");
   gtk_widget_ref (frame2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame2", frame2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame2", frame2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame2);
   gtk_box_pack_start (GTK_BOX (hbox1), frame2, TRUE, TRUE, 0);
@@ -599,7 +599,7 @@
   vbox4 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox4, "vbox4");
   gtk_widget_ref (vbox4);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox4", vbox4,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox4", vbox4,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox4);
   gtk_container_add (GTK_CONTAINER (frame2), vbox4);
@@ -608,7 +608,7 @@
   cfg_emu_clock_force = gtk_check_button_new_with_label ("Force speed");
   gtk_widget_set_name (cfg_emu_clock_force, "cfg_emu_clock_force");
   gtk_widget_ref (cfg_emu_clock_force);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_clock_force", cfg_emu_clock_force,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_clock_force", cfg_emu_clock_force,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_clock_force);
   gtk_box_pack_start (GTK_BOX (vbox4), cfg_emu_clock_force, FALSE, FALSE, 0);
@@ -618,7 +618,7 @@
   speed_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_clock_pal));
   gtk_widget_set_name (cfg_emu_clock_pal, "cfg_emu_clock_pal");
   gtk_widget_ref (cfg_emu_clock_pal);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_clock_pal", cfg_emu_clock_pal,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_clock_pal", cfg_emu_clock_pal,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_clock_pal);
   gtk_box_pack_start (GTK_BOX (vbox4), cfg_emu_clock_pal, FALSE, FALSE, 0);
@@ -628,7 +628,7 @@
   speed_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_clock_ntsc));
   gtk_widget_set_name (cfg_emu_clock_ntsc, "cfg_emu_clock_ntsc");
   gtk_widget_ref (cfg_emu_clock_ntsc);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_clock_ntsc", cfg_emu_clock_ntsc,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_clock_ntsc", cfg_emu_clock_ntsc,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_clock_ntsc);
   gtk_box_pack_start (GTK_BOX (vbox4), cfg_emu_clock_ntsc, FALSE, FALSE, 0);
@@ -637,7 +637,7 @@
   frame3 = gtk_frame_new ("SID model: ");
   gtk_widget_set_name (frame3, "frame3");
   gtk_widget_ref (frame3);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame3", frame3,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame3", frame3,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame3);
   gtk_box_pack_start (GTK_BOX (hbox1), frame3, TRUE, TRUE, 0);
@@ -646,7 +646,7 @@
   vbox3 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox3, "vbox3");
   gtk_widget_ref (vbox3);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox3", vbox3,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox3", vbox3,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox3);
   gtk_container_add (GTK_CONTAINER (frame3), vbox3);
@@ -655,7 +655,7 @@
   cfg_emu_sid_force = gtk_check_button_new_with_label ("Force model");
   gtk_widget_set_name (cfg_emu_sid_force, "cfg_emu_sid_force");
   gtk_widget_ref (cfg_emu_sid_force);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sid_force", cfg_emu_sid_force,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_sid_force", cfg_emu_sid_force,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_sid_force);
   gtk_box_pack_start (GTK_BOX (vbox3), cfg_emu_sid_force, FALSE, FALSE, 0);
@@ -665,7 +665,7 @@
   waveforms_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mos6581));
   gtk_widget_set_name (cfg_emu_mos6581, "cfg_emu_mos6581");
   gtk_widget_ref (cfg_emu_mos6581);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mos6581", cfg_emu_mos6581,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_mos6581", cfg_emu_mos6581,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_mos6581);
   gtk_box_pack_start (GTK_BOX (vbox3), cfg_emu_mos6581, FALSE, FALSE, 0);
@@ -675,7 +675,7 @@
   waveforms_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mos8580));
   gtk_widget_set_name (cfg_emu_mos8580, "cfg_emu_mos8580");
   gtk_widget_ref (cfg_emu_mos8580);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mos8580", cfg_emu_mos8580,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_mos8580", cfg_emu_mos8580,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_mos8580);
   gtk_box_pack_start (GTK_BOX (vbox3), cfg_emu_mos8580, FALSE, FALSE, 0);
@@ -683,7 +683,7 @@
   cfg_sidplay2_grp = gtk_frame_new ("SIDPlay 2 options: ");
   gtk_widget_set_name (cfg_sidplay2_grp, "cfg_sidplay2_grp");
   gtk_widget_ref (cfg_sidplay2_grp);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sidplay2_grp", cfg_sidplay2_grp,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_sidplay2_grp", cfg_sidplay2_grp,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_sidplay2_grp);
   gtk_box_pack_start (GTK_BOX (vbox29), cfg_sidplay2_grp, FALSE, TRUE, 0);
@@ -692,7 +692,7 @@
   vbox30 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox30, "vbox30");
   gtk_widget_ref (vbox30);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox30", vbox30,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox30", vbox30,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox30);
   gtk_container_add (GTK_CONTAINER (cfg_sidplay2_grp), vbox30);
@@ -701,7 +701,7 @@
   cfg_emu_sidplay2_opt = gtk_check_button_new_with_label ("Optimization mode (faster, inaccurate)");
   gtk_widget_set_name (cfg_emu_sidplay2_opt, "cfg_emu_sidplay2_opt");
   gtk_widget_ref (cfg_emu_sidplay2_opt);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplay2_opt", cfg_emu_sidplay2_opt,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_sidplay2_opt", cfg_emu_sidplay2_opt,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_sidplay2_opt);
   gtk_box_pack_start (GTK_BOX (vbox30), cfg_emu_sidplay2_opt, FALSE, FALSE, 0);
@@ -711,7 +711,7 @@
   emutype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay2_resid));
   gtk_widget_set_name (cfg_emu_sidplay2_resid, "cfg_emu_sidplay2_resid");
   gtk_widget_ref (cfg_emu_sidplay2_resid);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplay2_resid", cfg_emu_sidplay2_resid,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_sidplay2_resid", cfg_emu_sidplay2_resid,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_sidplay2_resid);
   gtk_box_pack_start (GTK_BOX (vbox30), cfg_emu_sidplay2_resid, FALSE, FALSE, 0);
@@ -721,7 +721,7 @@
   emutype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay2_hardsid));
   gtk_widget_set_name (cfg_emu_sidplay2_hardsid, "cfg_emu_sidplay2_hardsid");
   gtk_widget_ref (cfg_emu_sidplay2_hardsid);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplay2_hardsid", cfg_emu_sidplay2_hardsid,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_sidplay2_hardsid", cfg_emu_sidplay2_hardsid,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_sidplay2_hardsid);
   gtk_box_pack_start (GTK_BOX (vbox30), cfg_emu_sidplay2_hardsid, FALSE, FALSE, 0);
@@ -730,7 +730,7 @@
   label48 = gtk_label_new ("Emu#2");
   gtk_widget_set_name (label48, "label48");
   gtk_widget_ref (label48);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label48", label48,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label48", label48,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label48);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 2), label48);
@@ -738,7 +738,7 @@
   vbox25 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox25, "vbox25");
   gtk_widget_ref (vbox25);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox25", vbox25,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox25", vbox25,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox25);
   gtk_container_add (GTK_CONTAINER (cfg_notebook), vbox25);
@@ -747,7 +747,7 @@
   cfg_emu_filters = gtk_check_button_new_with_label ("Emulate filters");
   gtk_widget_set_name (cfg_emu_filters, "cfg_emu_filters");
   gtk_widget_ref (cfg_emu_filters);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_filters", cfg_emu_filters,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_filters", cfg_emu_filters,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_filters);
   gtk_box_pack_start (GTK_BOX (vbox25), cfg_emu_filters, FALSE, FALSE, 0);
@@ -756,7 +756,7 @@
   cfg_filters_notebook = gtk_notebook_new ();
   gtk_widget_set_name (cfg_filters_notebook, "cfg_filters_notebook");
   gtk_widget_ref (cfg_filters_notebook);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_filters_notebook", cfg_filters_notebook,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_filters_notebook", cfg_filters_notebook,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_filters_notebook);
   gtk_box_pack_start (GTK_BOX (vbox25), cfg_filters_notebook, TRUE, TRUE, 0);
@@ -764,7 +764,7 @@
   cfg_box_sidplay1 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (cfg_box_sidplay1, "cfg_box_sidplay1");
   gtk_widget_ref (cfg_box_sidplay1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_box_sidplay1", cfg_box_sidplay1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_box_sidplay1", cfg_box_sidplay1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_box_sidplay1);
   gtk_container_add (GTK_CONTAINER (cfg_filters_notebook), cfg_box_sidplay1);
@@ -773,7 +773,7 @@
   cfg_frm_fs = gtk_frame_new ("FS");
   gtk_widget_set_name (cfg_frm_fs, "cfg_frm_fs");
   gtk_widget_ref (cfg_frm_fs);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_frm_fs", cfg_frm_fs,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_frm_fs", cfg_frm_fs,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_frm_fs);
   gtk_box_pack_start (GTK_BOX (cfg_box_sidplay1), cfg_frm_fs, FALSE, TRUE, 0);
@@ -783,7 +783,7 @@
   cfg_emu_filt_fs = gtk_vscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 1000, 1, 100, 0)));
   gtk_widget_set_name (cfg_emu_filt_fs, "cfg_emu_filt_fs");
   gtk_widget_ref (cfg_emu_filt_fs);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_filt_fs", cfg_emu_filt_fs,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_filt_fs", cfg_emu_filt_fs,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_filt_fs);
   gtk_container_add (GTK_CONTAINER (cfg_frm_fs), cfg_emu_filt_fs);
@@ -792,7 +792,7 @@
   cfg_frm_fm = gtk_frame_new ("FM");
   gtk_widget_set_name (cfg_frm_fm, "cfg_frm_fm");
   gtk_widget_ref (cfg_frm_fm);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_frm_fm", cfg_frm_fm,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_frm_fm", cfg_frm_fm,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_frm_fm);
   gtk_box_pack_start (GTK_BOX (cfg_box_sidplay1), cfg_frm_fm, FALSE, TRUE, 0);
@@ -802,7 +802,7 @@
   cfg_emu_filt_fm = gtk_vscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 10, 0)));
   gtk_widget_set_name (cfg_emu_filt_fm, "cfg_emu_filt_fm");
   gtk_widget_ref (cfg_emu_filt_fm);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_filt_fm", cfg_emu_filt_fm,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_filt_fm", cfg_emu_filt_fm,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_filt_fm);
   gtk_container_add (GTK_CONTAINER (cfg_frm_fm), cfg_emu_filt_fm);
@@ -811,7 +811,7 @@
   cfg_frm_ft = gtk_frame_new ("FT");
   gtk_widget_set_name (cfg_frm_ft, "cfg_frm_ft");
   gtk_widget_ref (cfg_frm_ft);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_frm_ft", cfg_frm_ft,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_frm_ft", cfg_frm_ft,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_frm_ft);
   gtk_box_pack_start (GTK_BOX (cfg_box_sidplay1), cfg_frm_ft, FALSE, TRUE, 0);
@@ -821,7 +821,7 @@
   cfg_emu_filt_ft = gtk_vscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 1, 0.01, 0.1, 0)));
   gtk_widget_set_name (cfg_emu_filt_ft, "cfg_emu_filt_ft");
   gtk_widget_ref (cfg_emu_filt_ft);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_filt_ft", cfg_emu_filt_ft,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_emu_filt_ft", cfg_emu_filt_ft,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_emu_filt_ft);
   gtk_container_add (GTK_CONTAINER (cfg_frm_ft), cfg_emu_filt_ft);
@@ -830,7 +830,7 @@
   vbox17 = gtk_vbox_new (FALSE, 8);
   gtk_widget_set_name (vbox17, "vbox17");
   gtk_widget_ref (vbox17);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox17", vbox17,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox17", vbox17,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox17);
   gtk_box_pack_start (GTK_BOX (cfg_box_sidplay1), vbox17, TRUE, TRUE, 0);
@@ -839,7 +839,7 @@
   cfg_filter_reset = gtk_button_new_with_label ("Reset values");
   gtk_widget_set_name (cfg_filter_reset, "cfg_filter_reset");
   gtk_widget_ref (cfg_filter_reset);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_filter_reset", cfg_filter_reset,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_filter_reset", cfg_filter_reset,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_filter_reset);
   gtk_box_pack_start (GTK_BOX (vbox17), cfg_filter_reset, FALSE, FALSE, 0);
@@ -847,7 +847,7 @@
   cfg_filter_sync = gtk_button_new_with_label ("Synchronize from\nSIDPlay2");
   gtk_widget_set_name (cfg_filter_sync, "cfg_filter_sync");
   gtk_widget_ref (cfg_filter_sync);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_filter_sync", cfg_filter_sync,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_filter_sync", cfg_filter_sync,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_filter_sync);
   gtk_box_pack_start (GTK_BOX (vbox17), cfg_filter_sync, FALSE, FALSE, 0);
@@ -855,7 +855,7 @@
   label55 = gtk_label_new ("SIDPlay1");
   gtk_widget_set_name (label55, "label55");
   gtk_widget_ref (label55);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label55", label55,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label55", label55,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label55);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_filters_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_filters_notebook), 0), label55);
@@ -863,7 +863,7 @@
   cfg_box_sidplay2 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (cfg_box_sidplay2, "cfg_box_sidplay2");
   gtk_widget_ref (cfg_box_sidplay2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_box_sidplay2", cfg_box_sidplay2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_box_sidplay2", cfg_box_sidplay2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_box_sidplay2);
   gtk_container_add (GTK_CONTAINER (cfg_filters_notebook), cfg_box_sidplay2);
@@ -872,7 +872,7 @@
   vbox36 = gtk_vbox_new (FALSE, 8);
   gtk_widget_set_name (vbox36, "vbox36");
   gtk_widget_ref (vbox36);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox36", vbox36,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox36", vbox36,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox36);
   gtk_box_pack_start (GTK_BOX (cfg_box_sidplay2), vbox36, FALSE, TRUE, 0);
@@ -881,7 +881,7 @@
   cfg_filter2_reset = gtk_button_new_with_label ("Reset values");
   gtk_widget_set_name (cfg_filter2_reset, "cfg_filter2_reset");
   gtk_widget_ref (cfg_filter2_reset);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_filter2_reset", cfg_filter2_reset,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_filter2_reset", cfg_filter2_reset,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_filter2_reset);
   gtk_box_pack_start (GTK_BOX (vbox36), cfg_filter2_reset, FALSE, FALSE, 0);
@@ -889,7 +889,7 @@
   cfg_filter2_sync = gtk_button_new_with_label ("Synchronize from\nSIDPlay1");
   gtk_widget_set_name (cfg_filter2_sync, "cfg_filter2_sync");
   gtk_widget_ref (cfg_filter2_sync);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_filter2_sync", cfg_filter2_sync,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_filter2_sync", cfg_filter2_sync,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_filter2_sync);
   gtk_box_pack_start (GTK_BOX (vbox36), cfg_filter2_sync, FALSE, FALSE, 0);
@@ -897,7 +897,7 @@
   label56 = gtk_label_new ("SIDPlay2");
   gtk_widget_set_name (label56, "label56");
   gtk_widget_ref (label56);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label56", label56,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label56", label56,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label56);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_filters_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_filters_notebook), 1), label56);
@@ -905,7 +905,7 @@
   label24 = gtk_label_new ("Filters");
   gtk_widget_set_name (label24, "label24");
   gtk_widget_ref (label24);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label24", label24,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label24", label24,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label24);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 3), label24);
@@ -913,7 +913,7 @@
   vbox20 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox20, "vbox20");
   gtk_widget_ref (vbox20);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox20", vbox20,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox20", vbox20,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox20);
   gtk_container_add (GTK_CONTAINER (cfg_notebook), vbox20);
@@ -921,7 +921,7 @@
   frame29 = gtk_frame_new ("Minimum playtime: ");
   gtk_widget_set_name (frame29, "frame29");
   gtk_widget_ref (frame29);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame29", frame29,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame29", frame29,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame29);
   gtk_box_pack_start (GTK_BOX (vbox20), frame29, FALSE, FALSE, 0);
@@ -930,7 +930,7 @@
   vbox32 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox32, "vbox32");
   gtk_widget_ref (vbox32);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox32", vbox32,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox32", vbox32,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox32);
   gtk_container_add (GTK_CONTAINER (frame29), vbox32);
@@ -939,7 +939,7 @@
   cfg_mintime_enable = gtk_check_button_new_with_label ("Play at least for specified time");
   gtk_widget_set_name (cfg_mintime_enable, "cfg_mintime_enable");
   gtk_widget_ref (cfg_mintime_enable);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime_enable", cfg_mintime_enable,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_mintime_enable", cfg_mintime_enable,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_mintime_enable);
   gtk_box_pack_start (GTK_BOX (vbox32), cfg_mintime_enable, FALSE, FALSE, 0);
@@ -948,7 +948,7 @@
   hbox18 = gtk_hbox_new (FALSE, 2);
   gtk_widget_set_name (hbox18, "hbox18");
   gtk_widget_ref (hbox18);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox18", hbox18,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox18", hbox18,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox18);
   gtk_box_pack_start (GTK_BOX (vbox32), hbox18, FALSE, TRUE, 2);
@@ -956,7 +956,7 @@
   cfg_mintime_label1 = gtk_label_new ("Playtime: ");
   gtk_widget_set_name (cfg_mintime_label1, "cfg_mintime_label1");
   gtk_widget_ref (cfg_mintime_label1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime_label1", cfg_mintime_label1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_mintime_label1", cfg_mintime_label1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_mintime_label1);
   gtk_box_pack_start (GTK_BOX (hbox18), cfg_mintime_label1, FALSE, FALSE, 0);
@@ -966,7 +966,7 @@
   cfg_mintime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_mintime_adj), 1, 0);
   gtk_widget_set_name (cfg_mintime, "cfg_mintime");
   gtk_widget_ref (cfg_mintime);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime", cfg_mintime,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_mintime", cfg_mintime,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_mintime);
   gtk_box_pack_start (GTK_BOX (hbox18), cfg_mintime, FALSE, TRUE, 0);
@@ -974,7 +974,7 @@
   cfg_mintime_label2 = gtk_label_new ("seconds");
   gtk_widget_set_name (cfg_mintime_label2, "cfg_mintime_label2");
   gtk_widget_ref (cfg_mintime_label2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime_label2", cfg_mintime_label2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_mintime_label2", cfg_mintime_label2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_mintime_label2);
   gtk_box_pack_start (GTK_BOX (hbox18), cfg_mintime_label2, FALSE, FALSE, 0);
@@ -983,7 +983,7 @@
   frame21 = gtk_frame_new ("Maximum playtime: ");
   gtk_widget_set_name (frame21, "frame21");
   gtk_widget_ref (frame21);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame21", frame21,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame21", frame21,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame21);
   gtk_box_pack_start (GTK_BOX (vbox20), frame21, FALSE, TRUE, 0);
@@ -992,7 +992,7 @@
   vbox21 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox21, "vbox21");
   gtk_widget_ref (vbox21);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox21", vbox21,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox21", vbox21,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox21);
   gtk_container_add (GTK_CONTAINER (frame21), vbox21);
@@ -1001,7 +1001,7 @@
   cfg_maxtime_enable = gtk_check_button_new_with_label ("Play for specified time maximum");
   gtk_widget_set_name (cfg_maxtime_enable, "cfg_maxtime_enable");
   gtk_widget_ref (cfg_maxtime_enable);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_enable", cfg_maxtime_enable,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_maxtime_enable", cfg_maxtime_enable,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_maxtime_enable);
   gtk_box_pack_start (GTK_BOX (vbox21), cfg_maxtime_enable, FALSE, FALSE, 0);
@@ -1010,7 +1010,7 @@
   cfg_maxtime_unknown = gtk_check_button_new_with_label ("Only when song length is unknown");
   gtk_widget_set_name (cfg_maxtime_unknown, "cfg_maxtime_unknown");
   gtk_widget_ref (cfg_maxtime_unknown);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_unknown", cfg_maxtime_unknown,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_maxtime_unknown", cfg_maxtime_unknown,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_maxtime_unknown);
   gtk_box_pack_start (GTK_BOX (vbox21), cfg_maxtime_unknown, FALSE, FALSE, 0);
@@ -1019,7 +1019,7 @@
   hbox14 = gtk_hbox_new (FALSE, 2);
   gtk_widget_set_name (hbox14, "hbox14");
   gtk_widget_ref (hbox14);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox14", hbox14,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox14", hbox14,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox14);
   gtk_box_pack_start (GTK_BOX (vbox21), hbox14, FALSE, TRUE, 2);
@@ -1027,7 +1027,7 @@
   cfg_maxtime_label1 = gtk_label_new ("Playtime: ");
   gtk_widget_set_name (cfg_maxtime_label1, "cfg_maxtime_label1");
   gtk_widget_ref (cfg_maxtime_label1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_label1", cfg_maxtime_label1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_maxtime_label1", cfg_maxtime_label1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_maxtime_label1);
   gtk_box_pack_start (GTK_BOX (hbox14), cfg_maxtime_label1, FALSE, FALSE, 0);
@@ -1037,7 +1037,7 @@
   cfg_maxtime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_maxtime_adj), 1, 0);
   gtk_widget_set_name (cfg_maxtime, "cfg_maxtime");
   gtk_widget_ref (cfg_maxtime);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime", cfg_maxtime,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_maxtime", cfg_maxtime,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_maxtime);
   gtk_box_pack_start (GTK_BOX (hbox14), cfg_maxtime, FALSE, TRUE, 0);
@@ -1045,7 +1045,7 @@
   cfg_maxtime_label2 = gtk_label_new ("seconds");
   gtk_widget_set_name (cfg_maxtime_label2, "cfg_maxtime_label2");
   gtk_widget_ref (cfg_maxtime_label2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_label2", cfg_maxtime_label2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_maxtime_label2", cfg_maxtime_label2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_maxtime_label2);
   gtk_box_pack_start (GTK_BOX (hbox14), cfg_maxtime_label2, FALSE, FALSE, 0);
@@ -1054,7 +1054,7 @@
   frame18 = gtk_frame_new ("Song length database: ");
   gtk_widget_set_name (frame18, "frame18");
   gtk_widget_ref (frame18);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame18", frame18,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame18", frame18,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame18);
   gtk_box_pack_start (GTK_BOX (vbox20), frame18, FALSE, TRUE, 0);
@@ -1063,7 +1063,7 @@
   vbox18 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox18, "vbox18");
   gtk_widget_ref (vbox18);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox18", vbox18,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox18", vbox18,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox18);
   gtk_container_add (GTK_CONTAINER (frame18), vbox18);
@@ -1072,7 +1072,7 @@
   cfg_sld_enable = gtk_check_button_new_with_label ("Use XSIDPLAY-compatible database");
   gtk_widget_set_name (cfg_sld_enable, "cfg_sld_enable");
   gtk_widget_ref (cfg_sld_enable);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_enable", cfg_sld_enable,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_sld_enable", cfg_sld_enable,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_sld_enable);
   gtk_box_pack_start (GTK_BOX (vbox18), cfg_sld_enable, FALSE, FALSE, 0);
@@ -1081,7 +1081,7 @@
   hbox13 = gtk_hbox_new (FALSE, 4);
   gtk_widget_set_name (hbox13, "hbox13");
   gtk_widget_ref (hbox13);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox13", hbox13,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox13", hbox13,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox13);
   gtk_box_pack_start (GTK_BOX (vbox18), hbox13, FALSE, TRUE, 0);
@@ -1089,7 +1089,7 @@
   cfg_sld_label1 = gtk_label_new ("DB-file: ");
   gtk_widget_set_name (cfg_sld_label1, "cfg_sld_label1");
   gtk_widget_ref (cfg_sld_label1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_label1", cfg_sld_label1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_sld_label1", cfg_sld_label1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_sld_label1);
   gtk_box_pack_start (GTK_BOX (hbox13), cfg_sld_label1, FALSE, TRUE, 0);
@@ -1097,7 +1097,7 @@
   cfg_sld_dbpath = gtk_entry_new ();
   gtk_widget_set_name (cfg_sld_dbpath, "cfg_sld_dbpath");
   gtk_widget_ref (cfg_sld_dbpath);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_dbpath", cfg_sld_dbpath,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_sld_dbpath", cfg_sld_dbpath,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_sld_dbpath);
   gtk_box_pack_start (GTK_BOX (hbox13), cfg_sld_dbpath, TRUE, TRUE, 0);
@@ -1106,7 +1106,7 @@
   cfg_sld_dbbrowse = gtk_button_new_with_label ("Browse");
   gtk_widget_set_name (cfg_sld_dbbrowse, "cfg_sld_dbbrowse");
   gtk_widget_ref (cfg_sld_dbbrowse);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_dbbrowse", cfg_sld_dbbrowse,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_sld_dbbrowse", cfg_sld_dbbrowse,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_sld_dbbrowse);
   gtk_box_pack_start (GTK_BOX (hbox13), cfg_sld_dbbrowse, FALSE, FALSE, 0);
@@ -1115,7 +1115,7 @@
   label26 = gtk_label_new ("Songlength");
   gtk_widget_set_name (label26, "label26");
   gtk_widget_ref (label26);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label26", label26,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label26", label26,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label26);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 4), label26);
@@ -1123,7 +1123,7 @@
   vbox33 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox33, "vbox33");
   gtk_widget_ref (vbox33);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox33", vbox33,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox33", vbox33,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox33);
   gtk_container_add (GTK_CONTAINER (cfg_notebook), vbox33);
@@ -1131,7 +1131,7 @@
   frame7 = gtk_frame_new ("SID Tune Information List (STIL) database: ");
   gtk_widget_set_name (frame7, "frame7");
   gtk_widget_ref (frame7);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame7", frame7,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame7", frame7,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame7);
   gtk_box_pack_start (GTK_BOX (vbox33), frame7, FALSE, TRUE, 0);
@@ -1140,7 +1140,7 @@
   vbox8 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox8, "vbox8");
   gtk_widget_ref (vbox8);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox8", vbox8,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox8", vbox8,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox8);
   gtk_container_add (GTK_CONTAINER (frame7), vbox8);
@@ -1149,7 +1149,7 @@
   cfg_stil_enable = gtk_check_button_new_with_label ("Use STIL database");
   gtk_widget_set_name (cfg_stil_enable, "cfg_stil_enable");
   gtk_widget_ref (cfg_stil_enable);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_enable", cfg_stil_enable,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_stil_enable", cfg_stil_enable,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_stil_enable);
   gtk_box_pack_start (GTK_BOX (vbox8), cfg_stil_enable, TRUE, FALSE, 0);
@@ -1158,7 +1158,7 @@
   hbox3 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox3, "hbox3");
   gtk_widget_ref (hbox3);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox3", hbox3,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox3", hbox3,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox3);
   gtk_box_pack_start (GTK_BOX (vbox8), hbox3, TRUE, TRUE, 0);
@@ -1166,7 +1166,7 @@
   cfg_stil_label1 = gtk_label_new ("STIL file:");
   gtk_widget_set_name (cfg_stil_label1, "cfg_stil_label1");
   gtk_widget_ref (cfg_stil_label1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_label1", cfg_stil_label1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_stil_label1", cfg_stil_label1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_stil_label1);
   gtk_box_pack_start (GTK_BOX (hbox3), cfg_stil_label1, FALSE, FALSE, 0);
@@ -1175,7 +1175,7 @@
   alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
   gtk_widget_set_name (alignment2, "alignment2");
   gtk_widget_ref (alignment2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "alignment2", alignment2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "alignment2", alignment2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (alignment2);
   gtk_box_pack_start (GTK_BOX (hbox3), alignment2, TRUE, TRUE, 4);
@@ -1183,7 +1183,7 @@
   cfg_stil_dbpath = gtk_entry_new ();
   gtk_widget_set_name (cfg_stil_dbpath, "cfg_stil_dbpath");
   gtk_widget_ref (cfg_stil_dbpath);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_dbpath", cfg_stil_dbpath,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_stil_dbpath", cfg_stil_dbpath,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_stil_dbpath);
   gtk_container_add (GTK_CONTAINER (alignment2), cfg_stil_dbpath);
@@ -1192,7 +1192,7 @@
   alignment1 = gtk_alignment_new (0.5, 0.5, 1, 0.300001);
   gtk_widget_set_name (alignment1, "alignment1");
   gtk_widget_ref (alignment1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "alignment1", alignment1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "alignment1", alignment1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (alignment1);
   gtk_box_pack_end (GTK_BOX (hbox3), alignment1, FALSE, FALSE, 0);
@@ -1201,7 +1201,7 @@
   cfg_stil_browse = gtk_button_new_with_label ("Browse");
   gtk_widget_set_name (cfg_stil_browse, "cfg_stil_browse");
   gtk_widget_ref (cfg_stil_browse);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_browse", cfg_stil_browse,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_stil_browse", cfg_stil_browse,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_stil_browse);
   gtk_container_add (GTK_CONTAINER (alignment1), cfg_stil_browse);
@@ -1210,7 +1210,7 @@
   hbox17 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox17, "hbox17");
   gtk_widget_ref (hbox17);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox17", hbox17,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox17", hbox17,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox17);
   gtk_box_pack_start (GTK_BOX (vbox8), hbox17, TRUE, TRUE, 0);
@@ -1218,7 +1218,7 @@
   cfg_hvsc_label1 = gtk_label_new ("HVSC path:");
   gtk_widget_set_name (cfg_hvsc_label1, "cfg_hvsc_label1");
   gtk_widget_ref (cfg_hvsc_label1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_hvsc_label1", cfg_hvsc_label1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_hvsc_label1", cfg_hvsc_label1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_hvsc_label1);
   gtk_box_pack_start (GTK_BOX (hbox17), cfg_hvsc_label1, FALSE, FALSE, 0);
@@ -1227,7 +1227,7 @@
   alignment6 = gtk_alignment_new (0.5, 0.5, 1, 1);
   gtk_widget_set_name (alignment6, "alignment6");
   gtk_widget_ref (alignment6);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "alignment6", alignment6,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "alignment6", alignment6,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (alignment6);
   gtk_box_pack_start (GTK_BOX (hbox17), alignment6, TRUE, TRUE, 4);
@@ -1235,7 +1235,7 @@
   cfg_hvsc_path = gtk_entry_new ();
   gtk_widget_set_name (cfg_hvsc_path, "cfg_hvsc_path");
   gtk_widget_ref (cfg_hvsc_path);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_hvsc_path", cfg_hvsc_path,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_hvsc_path", cfg_hvsc_path,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_hvsc_path);
   gtk_container_add (GTK_CONTAINER (alignment6), cfg_hvsc_path);
@@ -1244,7 +1244,7 @@
   alignment7 = gtk_alignment_new (0.5, 0.5, 1, 0.300001);
   gtk_widget_set_name (alignment7, "alignment7");
   gtk_widget_ref (alignment7);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "alignment7", alignment7,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "alignment7", alignment7,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (alignment7);
   gtk_box_pack_end (GTK_BOX (hbox17), alignment7, FALSE, FALSE, 0);
@@ -1253,7 +1253,7 @@
   cfg_hvsc_browse = gtk_button_new_with_label ("Browse");
   gtk_widget_set_name (cfg_hvsc_browse, "cfg_hvsc_browse");
   gtk_widget_ref (cfg_hvsc_browse);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_hvsc_browse", cfg_hvsc_browse,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_hvsc_browse", cfg_hvsc_browse,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_hvsc_browse);
   gtk_container_add (GTK_CONTAINER (alignment7), cfg_hvsc_browse);
@@ -1262,7 +1262,7 @@
   frame16 = gtk_frame_new ("Song name/title format: ");
   gtk_widget_set_name (frame16, "frame16");
   gtk_widget_ref (frame16);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame16", frame16,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame16", frame16,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame16);
   gtk_box_pack_start (GTK_BOX (vbox33), frame16, FALSE, TRUE, 0);
@@ -1271,7 +1271,7 @@
   vbox16 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox16, "vbox16");
   gtk_widget_ref (vbox16);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox16", vbox16,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox16", vbox16,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox16);
   gtk_container_add (GTK_CONTAINER (frame16), vbox16);
@@ -1280,7 +1280,7 @@
   cfg_ftitle_override = gtk_check_button_new_with_label ("Override generic XMMS titles");
   gtk_widget_set_name (cfg_ftitle_override, "cfg_ftitle_override");
   gtk_widget_ref (cfg_ftitle_override);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_override", cfg_ftitle_override,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_ftitle_override", cfg_ftitle_override,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_ftitle_override);
   gtk_box_pack_start (GTK_BOX (vbox16), cfg_ftitle_override, FALSE, FALSE, 0);
@@ -1289,7 +1289,7 @@
   cfg_ftitle_format = gtk_entry_new ();
   gtk_widget_set_name (cfg_ftitle_format, "cfg_ftitle_format");
   gtk_widget_ref (cfg_ftitle_format);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_format", cfg_ftitle_format,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_ftitle_format", cfg_ftitle_format,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_ftitle_format);
   gtk_box_pack_start (GTK_BOX (vbox16), cfg_ftitle_format, FALSE, FALSE, 2);
@@ -1297,7 +1297,7 @@
   hbox9 = gtk_hbox_new (TRUE, 0);
   gtk_widget_set_name (hbox9, "hbox9");
   gtk_widget_ref (hbox9);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox9", hbox9,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox9", hbox9,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox9);
   gtk_box_pack_start (GTK_BOX (vbox16), hbox9, FALSE, FALSE, 2);
@@ -1305,7 +1305,7 @@
   cfg_ftitle_desc1 = gtk_label_new ("%p - Performer/composer\n%t - Song name (title)\n%c - Copyright\n%s - File type\n%m - SID model");
   gtk_widget_set_name (cfg_ftitle_desc1, "cfg_ftitle_desc1");
   gtk_widget_ref (cfg_ftitle_desc1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_desc1", cfg_ftitle_desc1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_ftitle_desc1", cfg_ftitle_desc1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_ftitle_desc1);
   gtk_box_pack_start (GTK_BOX (hbox9), cfg_ftitle_desc1, FALSE, FALSE, 0);
@@ -1315,7 +1315,7 @@
   cfg_ftitle_desc2 = gtk_label_new ("%n - Subtune\n%N - Number of subtunes\n%f - Filename\n%F - File path\n%e - File extension");
   gtk_widget_set_name (cfg_ftitle_desc2, "cfg_ftitle_desc2");
   gtk_widget_ref (cfg_ftitle_desc2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_desc2", cfg_ftitle_desc2,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_ftitle_desc2", cfg_ftitle_desc2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_ftitle_desc2);
   gtk_box_pack_start (GTK_BOX (hbox9), cfg_ftitle_desc2, FALSE, FALSE, 0);
@@ -1325,7 +1325,7 @@
   label23 = gtk_label_new ("Title");
   gtk_widget_set_name (label23, "label23");
   gtk_widget_ref (label23);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label23", label23,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label23", label23,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label23);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 5), label23);
@@ -1333,7 +1333,7 @@
   vbox19 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox19, "vbox19");
   gtk_widget_ref (vbox19);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox19", vbox19,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox19", vbox19,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox19);
   gtk_container_add (GTK_CONTAINER (cfg_notebook), vbox19);
@@ -1341,7 +1341,7 @@
   frame28 = gtk_frame_new ("Sub-tune control: ");
   gtk_widget_set_name (frame28, "frame28");
   gtk_widget_ref (frame28);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame28", frame28,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame28", frame28,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame28);
   gtk_box_pack_start (GTK_BOX (vbox19), frame28, FALSE, TRUE, 0);
@@ -1350,7 +1350,7 @@
   vbox31 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox31, "vbox31");
   gtk_widget_ref (vbox31);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox31", vbox31,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox31", vbox31,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox31);
   gtk_container_add (GTK_CONTAINER (frame28), vbox31);
@@ -1360,7 +1360,7 @@
   subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_none));
   gtk_widget_set_name (cfg_subctrl_none, "cfg_subctrl_none");
   gtk_widget_ref (cfg_subctrl_none);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_none", cfg_subctrl_none,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_subctrl_none", cfg_subctrl_none,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_subctrl_none);
   gtk_box_pack_start (GTK_BOX (vbox31), cfg_subctrl_none, FALSE, FALSE, 0);
@@ -1370,7 +1370,7 @@
   subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_seek));
   gtk_widget_set_name (cfg_subctrl_seek, "cfg_subctrl_seek");
   gtk_widget_ref (cfg_subctrl_seek);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_seek", cfg_subctrl_seek,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_subctrl_seek", cfg_subctrl_seek,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_subctrl_seek);
   gtk_box_pack_start (GTK_BOX (vbox31), cfg_subctrl_seek, FALSE, FALSE, 0);
@@ -1380,7 +1380,7 @@
   subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_popup));
   gtk_widget_set_name (cfg_subctrl_popup, "cfg_subctrl_popup");
   gtk_widget_ref (cfg_subctrl_popup);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_popup", cfg_subctrl_popup,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_subctrl_popup", cfg_subctrl_popup,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_subctrl_popup);
   gtk_box_pack_start (GTK_BOX (vbox31), cfg_subctrl_popup, FALSE, FALSE, 0);
@@ -1390,7 +1390,7 @@
   subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_patch));
   gtk_widget_set_name (cfg_subctrl_patch, "cfg_subctrl_patch");
   gtk_widget_ref (cfg_subctrl_patch);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_patch", cfg_subctrl_patch,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_subctrl_patch", cfg_subctrl_patch,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_subctrl_patch);
   gtk_box_pack_start (GTK_BOX (vbox31), cfg_subctrl_patch, FALSE, FALSE, 0);
@@ -1399,7 +1399,7 @@
   frame31 = gtk_frame_new ("Automatic sub-tune changes: ");
   gtk_widget_set_name (frame31, "frame31");
   gtk_widget_ref (frame31);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame31", frame31,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame31", frame31,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame31);
   gtk_box_pack_start (GTK_BOX (vbox19), frame31, FALSE, TRUE, 0);
@@ -1408,7 +1408,7 @@
   vbox35 = gtk_vbox_new (FALSE, 2);
   gtk_widget_set_name (vbox35, "vbox35");
   gtk_widget_ref (vbox35);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox35", vbox35,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox35", vbox35,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox35);
   gtk_container_add (GTK_CONTAINER (frame31), vbox35);
@@ -1417,7 +1417,7 @@
   cfg_subauto_enable = gtk_check_button_new_with_label ("Go through all sub-tunes in file");
   gtk_widget_set_name (cfg_subauto_enable, "cfg_subauto_enable");
   gtk_widget_ref (cfg_subauto_enable);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subauto_enable", cfg_subauto_enable,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_subauto_enable", cfg_subauto_enable,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_subauto_enable);
   gtk_box_pack_start (GTK_BOX (vbox35), cfg_subauto_enable, FALSE, FALSE, 0);
@@ -1425,7 +1425,7 @@
   cfg_subauto_min_only = gtk_check_button_new_with_label ("Only tunes with specified minimum length ");
   gtk_widget_set_name (cfg_subauto_min_only, "cfg_subauto_min_only");
   gtk_widget_ref (cfg_subauto_min_only);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subauto_min_only", cfg_subauto_min_only,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_subauto_min_only", cfg_subauto_min_only,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_subauto_min_only);
   gtk_box_pack_start (GTK_BOX (vbox35), cfg_subauto_min_only, FALSE, FALSE, 0);
@@ -1433,7 +1433,7 @@
   hbox20 = gtk_hbox_new (FALSE, 2);
   gtk_widget_set_name (hbox20, "hbox20");
   gtk_widget_ref (hbox20);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbox20", hbox20,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbox20", hbox20,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox20);
   gtk_box_pack_start (GTK_BOX (vbox35), hbox20, TRUE, TRUE, 0);
@@ -1441,7 +1441,7 @@
   label52 = gtk_label_new ("Playtime: ");
   gtk_widget_set_name (label52, "label52");
   gtk_widget_ref (label52);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label52", label52,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label52", label52,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label52);
   gtk_box_pack_start (GTK_BOX (hbox20), label52, FALSE, FALSE, 0);
@@ -1451,7 +1451,7 @@
   cfg_subauto_mintime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_subauto_mintime_adj), 1, 0);
   gtk_widget_set_name (cfg_subauto_mintime, "cfg_subauto_mintime");
   gtk_widget_ref (cfg_subauto_mintime);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subauto_mintime", cfg_subauto_mintime,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_subauto_mintime", cfg_subauto_mintime,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_subauto_mintime);
   gtk_box_pack_start (GTK_BOX (hbox20), cfg_subauto_mintime, FALSE, TRUE, 0);
@@ -1459,7 +1459,7 @@
   label53 = gtk_label_new ("seconds");
   gtk_widget_set_name (label53, "label53");
   gtk_widget_ref (label53);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label53", label53,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label53", label53,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label53);
   gtk_box_pack_start (GTK_BOX (hbox20), label53, FALSE, FALSE, 0);
@@ -1468,7 +1468,7 @@
   frame22 = gtk_frame_new ("Miscellaneous options: ");
   gtk_widget_set_name (frame22, "frame22");
   gtk_widget_ref (frame22);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "frame22", frame22,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "frame22", frame22,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame22);
   gtk_box_pack_start (GTK_BOX (vbox19), frame22, FALSE, TRUE, 0);
@@ -1477,7 +1477,7 @@
   vbox22 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox22, "vbox22");
   gtk_widget_ref (vbox22);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox22", vbox22,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "vbox22", vbox22,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox22);
   gtk_container_add (GTK_CONTAINER (frame22), vbox22);
@@ -1486,7 +1486,7 @@
   cfg_detectmagic = gtk_check_button_new_with_label ("Detect file by contents (slower)");
   gtk_widget_set_name (cfg_detectmagic, "cfg_detectmagic");
   gtk_widget_ref (cfg_detectmagic);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_detectmagic", cfg_detectmagic,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_detectmagic", cfg_detectmagic,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_detectmagic);
   gtk_box_pack_start (GTK_BOX (vbox22), cfg_detectmagic, FALSE, FALSE, 0);
@@ -1495,7 +1495,7 @@
   label3 = gtk_label_new ("Misc");
   gtk_widget_set_name (label3, "label3");
   gtk_widget_ref (label3);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "label3", label3,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "label3", label3,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label3);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 6), label3);
@@ -1503,7 +1503,7 @@
   hbuttonbox1 = gtk_hbutton_box_new ();
   gtk_widget_set_name (hbuttonbox1, "hbuttonbox1");
   gtk_widget_ref (hbuttonbox1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbuttonbox1", hbuttonbox1,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "hbuttonbox1", hbuttonbox1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbuttonbox1);
   gtk_box_pack_end (GTK_BOX (vbox1), hbuttonbox1, FALSE, FALSE, 0);
@@ -1514,7 +1514,7 @@
   cfg_ok = gtk_button_new_with_label ("OK");
   gtk_widget_set_name (cfg_ok, "cfg_ok");
   gtk_widget_ref (cfg_ok);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ok", cfg_ok,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_ok", cfg_ok,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_ok);
   gtk_container_add (GTK_CONTAINER (hbuttonbox1), cfg_ok);
@@ -1524,84 +1524,84 @@
   cfg_cancel = gtk_button_new_with_label ("Cancel");
   gtk_widget_set_name (cfg_cancel, "cfg_cancel");
   gtk_widget_ref (cfg_cancel);
-  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_cancel", cfg_cancel,
+  g_object_set_data_full (G_OBJECT (xs_configwin), "cfg_cancel", cfg_cancel,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_cancel);
   gtk_container_add (GTK_CONTAINER (hbuttonbox1), cfg_cancel);
   GTK_WIDGET_SET_FLAGS (cfg_cancel, GTK_CAN_DEFAULT);
   gtk_tooltips_set_tip (tooltips, cfg_cancel, "Cancel any changes", NULL);
 
-  gtk_signal_connect (GTK_OBJECT (cfg_samplerate_menu), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_samplerate_menu_clicked),
+  g_signal_connect (G_OBJECT (cfg_samplerate_menu), "clicked",
+                      G_CALLBACK (xs_cfg_samplerate_menu_clicked),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_oversample), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_oversample_toggled),
+  g_signal_connect (G_OBJECT (cfg_oversample), "toggled",
+                      G_CALLBACK (xs_cfg_oversample_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplay1), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay1_toggled),
+  g_signal_connect (G_OBJECT (cfg_emu_sidplay1), "toggled",
+                      G_CALLBACK (xs_cfg_emu_sidplay1_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplay2), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay2_toggled),
+  g_signal_connect (G_OBJECT (cfg_emu_sidplay2), "toggled",
+                      G_CALLBACK (xs_cfg_emu_sidplay2_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_emu_filters), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_emu_filters_toggled),
+  g_signal_connect (G_OBJECT (cfg_emu_filters), "toggled",
+                      G_CALLBACK (xs_cfg_emu_filters_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_filter_reset), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_filter_reset),
+  g_signal_connect (G_OBJECT (cfg_filter_reset), "clicked",
+                      G_CALLBACK (xs_cfg_filter_reset),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_filter_sync), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_filter_sync_clicked),
+  g_signal_connect (G_OBJECT (cfg_filter_sync), "clicked",
+                      G_CALLBACK (xs_cfg_filter_sync_clicked),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_filter2_reset), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_filter2_reset),
+  g_signal_connect (G_OBJECT (cfg_filter2_reset), "clicked",
+                      G_CALLBACK (xs_cfg_filter2_reset),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_filter2_sync), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_filter2_sync_clicked),
+  g_signal_connect (G_OBJECT (cfg_filter2_sync), "clicked",
+                      G_CALLBACK (xs_cfg_filter2_sync_clicked),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_mintime_enable), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_mintime_enable_toggled),
+  g_signal_connect (G_OBJECT (cfg_mintime_enable), "toggled",
+                      G_CALLBACK (xs_cfg_mintime_enable_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_mintime), "changed",
-                      GTK_SIGNAL_FUNC (xs_cfg_mintime_changed),
+  g_signal_connect (G_OBJECT (cfg_mintime), "changed",
+                      G_CALLBACK (xs_cfg_mintime_changed),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_maxtime_enable), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_maxtime_enable_toggled),
+  g_signal_connect (G_OBJECT (cfg_maxtime_enable), "toggled",
+                      G_CALLBACK (xs_cfg_maxtime_enable_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_maxtime), "changed",
-                      GTK_SIGNAL_FUNC (xs_cfg_maxtime_changed),
+  g_signal_connect (G_OBJECT (cfg_maxtime), "changed",
+                      G_CALLBACK (xs_cfg_maxtime_changed),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_sld_enable), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_sld_enable_toggled),
+  g_signal_connect (G_OBJECT (cfg_sld_enable), "toggled",
+                      G_CALLBACK (xs_cfg_sld_enable_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_sld_dbbrowse), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_sld_dbbrowse),
+  g_signal_connect (G_OBJECT (cfg_sld_dbbrowse), "clicked",
+                      G_CALLBACK (xs_cfg_sld_dbbrowse),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_stil_enable), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_stil_enable_toggled),
+  g_signal_connect (G_OBJECT (cfg_stil_enable), "toggled",
+                      G_CALLBACK (xs_cfg_stil_enable_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_stil_browse), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_stil_browse),
+  g_signal_connect (G_OBJECT (cfg_stil_browse), "clicked",
+                      G_CALLBACK (xs_cfg_stil_browse),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_hvsc_browse), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_hvsc_browse),
+  g_signal_connect (G_OBJECT (cfg_hvsc_browse), "clicked",
+                      G_CALLBACK (xs_cfg_hvsc_browse),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_ftitle_override), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_ftitle_override_toggled),
+  g_signal_connect (G_OBJECT (cfg_ftitle_override), "toggled",
+                      G_CALLBACK (xs_cfg_ftitle_override_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_subauto_enable), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_subauto_enable_toggled),
+  g_signal_connect (G_OBJECT (cfg_subauto_enable), "toggled",
+                      G_CALLBACK (xs_cfg_subauto_enable_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_subauto_min_only), "toggled",
-                      GTK_SIGNAL_FUNC (xs_cfg_subauto_min_only_toggled),
+  g_signal_connect (G_OBJECT (cfg_subauto_min_only), "toggled",
+                      G_CALLBACK (xs_cfg_subauto_min_only_toggled),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_ok), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_ok),
+  g_signal_connect (G_OBJECT (cfg_ok), "clicked",
+                      G_CALLBACK (xs_cfg_ok),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cfg_cancel), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_cancel),
+  g_signal_connect (G_OBJECT (cfg_cancel), "clicked",
+                      G_CALLBACK (xs_cfg_cancel),
                       NULL);
 
-  gtk_object_set_data (GTK_OBJECT (xs_configwin), "tooltips", tooltips);
+  g_object_set_data (G_OBJECT (xs_configwin), "tooltips", tooltips);
 
   return xs_configwin;
 }
@@ -1645,7 +1645,7 @@
   xs_fileinfowin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_type_hint (GTK_WINDOW(xs_fileinfowin), GDK_WINDOW_TYPE_HINT_DIALOG);
   gtk_widget_set_name (xs_fileinfowin, "xs_fileinfowin");
-  gtk_object_set_data (GTK_OBJECT (xs_fileinfowin), "xs_fileinfowin", xs_fileinfowin);
+  g_object_set_data (G_OBJECT (xs_fileinfowin), "xs_fileinfowin", xs_fileinfowin);
   gtk_widget_set_usize (xs_fileinfowin, 400, -2);
   gtk_window_set_title (GTK_WINDOW (xs_fileinfowin), "XMMS-SID Fileinfo");
   gtk_window_set_position (GTK_WINDOW (xs_fileinfowin), GTK_WIN_POS_MOUSE);
@@ -1653,7 +1653,7 @@
   vbox14 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox14, "vbox14");
   gtk_widget_ref (vbox14);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "vbox14", vbox14,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "vbox14", vbox14,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox14);
   gtk_container_add (GTK_CONTAINER (xs_fileinfowin), vbox14);
@@ -1661,7 +1661,7 @@
   alignment8 = gtk_alignment_new (0.5, 0.5, 0.1, 1);
   gtk_widget_set_name (alignment8, "alignment8");
   gtk_widget_ref (alignment8);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "alignment8", alignment8,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "alignment8", alignment8,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (alignment8);
   gtk_box_pack_start (GTK_BOX (vbox14), alignment8, FALSE, FALSE, 0);
@@ -1669,7 +1669,7 @@
   frame30 = gtk_frame_new (NULL);
   gtk_widget_set_name (frame30, "frame30");
   gtk_widget_ref (frame30);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "frame30", frame30,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "frame30", frame30,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame30);
   gtk_container_add (GTK_CONTAINER (alignment8), frame30);
@@ -1679,7 +1679,7 @@
   hbox19 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox19, "hbox19");
   gtk_widget_ref (hbox19);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "hbox19", hbox19,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "hbox19", hbox19,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbox19);
   gtk_container_add (GTK_CONTAINER (frame30), hbox19);
@@ -1688,7 +1688,7 @@
   fileinfo_subctrl_prev = gtk_button_new_with_label (" < ");
   gtk_widget_set_name (fileinfo_subctrl_prev, "fileinfo_subctrl_prev");
   gtk_widget_ref (fileinfo_subctrl_prev);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_subctrl_prev", fileinfo_subctrl_prev,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_subctrl_prev", fileinfo_subctrl_prev,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_subctrl_prev);
   gtk_box_pack_start (GTK_BOX (hbox19), fileinfo_subctrl_prev, FALSE, FALSE, 0);
@@ -1696,7 +1696,7 @@
   fileinfo_subctrl_adj = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 0, 0, 0, 0)));
   gtk_widget_set_name (fileinfo_subctrl_adj, "fileinfo_subctrl_adj");
   gtk_widget_ref (fileinfo_subctrl_adj);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_subctrl_adj", fileinfo_subctrl_adj,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_subctrl_adj", fileinfo_subctrl_adj,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_subctrl_adj);
   gtk_box_pack_start (GTK_BOX (hbox19), fileinfo_subctrl_adj, TRUE, TRUE, 0);
@@ -1706,7 +1706,7 @@
   fileinfo_subctrl_next = gtk_button_new_with_label (" > ");
   gtk_widget_set_name (fileinfo_subctrl_next, "fileinfo_subctrl_next");
   gtk_widget_ref (fileinfo_subctrl_next);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_subctrl_next", fileinfo_subctrl_next,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_subctrl_next", fileinfo_subctrl_next,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_subctrl_next);
   gtk_box_pack_start (GTK_BOX (hbox19), fileinfo_subctrl_next, FALSE, FALSE, 0);
@@ -1714,7 +1714,7 @@
   frame14 = gtk_frame_new ("Song Information:");
   gtk_widget_set_name (frame14, "frame14");
   gtk_widget_ref (frame14);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "frame14", frame14,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "frame14", frame14,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame14);
   gtk_box_pack_start (GTK_BOX (vbox14), frame14, FALSE, TRUE, 0);
@@ -1723,7 +1723,7 @@
   table1 = gtk_table_new (4, 2, FALSE);
   gtk_widget_set_name (table1, "table1");
   gtk_widget_ref (table1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "table1", table1,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "table1", table1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (table1);
   gtk_container_add (GTK_CONTAINER (frame14), table1);
@@ -1734,7 +1734,7 @@
   label16 = gtk_label_new ("Filename:");
   gtk_widget_set_name (label16, "label16");
   gtk_widget_ref (label16);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "label16", label16,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "label16", label16,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label16);
   gtk_table_attach (GTK_TABLE (table1), label16, 0, 1, 0, 1,
@@ -1744,7 +1744,7 @@
   label17 = gtk_label_new ("Songname:");
   gtk_widget_set_name (label17, "label17");
   gtk_widget_ref (label17);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "label17", label17,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "label17", label17,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label17);
   gtk_table_attach (GTK_TABLE (table1), label17, 0, 1, 1, 2,
@@ -1754,7 +1754,7 @@
   label18 = gtk_label_new ("Composer:");
   gtk_widget_set_name (label18, "label18");
   gtk_widget_ref (label18);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "label18", label18,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "label18", label18,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label18);
   gtk_table_attach (GTK_TABLE (table1), label18, 0, 1, 2, 3,
@@ -1764,7 +1764,7 @@
   label19 = gtk_label_new ("Copyright:");
   gtk_widget_set_name (label19, "label19");
   gtk_widget_ref (label19);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "label19", label19,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "label19", label19,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label19);
   gtk_table_attach (GTK_TABLE (table1), label19, 0, 1, 3, 4,
@@ -1774,7 +1774,7 @@
   fileinfo_filename = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_filename, "fileinfo_filename");
   gtk_widget_ref (fileinfo_filename);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_filename", fileinfo_filename,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_filename", fileinfo_filename,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_filename);
   gtk_table_attach (GTK_TABLE (table1), fileinfo_filename, 1, 2, 0, 1,
@@ -1785,7 +1785,7 @@
   fileinfo_songname = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_songname, "fileinfo_songname");
   gtk_widget_ref (fileinfo_songname);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_songname", fileinfo_songname,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_songname", fileinfo_songname,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_songname);
   gtk_table_attach (GTK_TABLE (table1), fileinfo_songname, 1, 2, 1, 2,
@@ -1796,7 +1796,7 @@
   fileinfo_composer = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_composer, "fileinfo_composer");
   gtk_widget_ref (fileinfo_composer);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_composer", fileinfo_composer,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_composer", fileinfo_composer,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_composer);
   gtk_table_attach (GTK_TABLE (table1), fileinfo_composer, 1, 2, 2, 3,
@@ -1807,7 +1807,7 @@
   fileinfo_copyright = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_copyright, "fileinfo_copyright");
   gtk_widget_ref (fileinfo_copyright);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_copyright", fileinfo_copyright,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_copyright", fileinfo_copyright,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_copyright);
   gtk_table_attach (GTK_TABLE (table1), fileinfo_copyright, 1, 2, 3, 4,
@@ -1818,7 +1818,7 @@
   frame15 = gtk_frame_new ("Sub-tune Information:");
   gtk_widget_set_name (frame15, "frame15");
   gtk_widget_ref (frame15);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "frame15", frame15,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "frame15", frame15,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame15);
   gtk_box_pack_start (GTK_BOX (vbox14), frame15, TRUE, TRUE, 0);
@@ -1827,7 +1827,7 @@
   vbox15 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox15, "vbox15");
   gtk_widget_ref (vbox15);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "vbox15", vbox15,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "vbox15", vbox15,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox15);
   gtk_container_add (GTK_CONTAINER (frame15), vbox15);
@@ -1835,7 +1835,7 @@
   fileinfo_sub_tune = gtk_option_menu_new ();
   gtk_widget_set_name (fileinfo_sub_tune, "fileinfo_sub_tune");
   gtk_widget_ref (fileinfo_sub_tune);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_tune", fileinfo_sub_tune,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_sub_tune", fileinfo_sub_tune,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_sub_tune);
   gtk_box_pack_start (GTK_BOX (vbox15), fileinfo_sub_tune, FALSE, FALSE, 0);
@@ -1846,7 +1846,7 @@
   table2 = gtk_table_new (3, 2, FALSE);
   gtk_widget_set_name (table2, "table2");
   gtk_widget_ref (table2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "table2", table2,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "table2", table2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (table2);
   gtk_box_pack_start (GTK_BOX (vbox15), table2, FALSE, FALSE, 0);
@@ -1857,7 +1857,7 @@
   label41 = gtk_label_new ("Author:");
   gtk_widget_set_name (label41, "label41");
   gtk_widget_ref (label41);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "label41", label41,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "label41", label41,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label41);
   gtk_table_attach (GTK_TABLE (table2), label41, 0, 1, 1, 2,
@@ -1867,7 +1867,7 @@
   fileinfo_sub_author = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_sub_author, "fileinfo_sub_author");
   gtk_widget_ref (fileinfo_sub_author);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_author", fileinfo_sub_author,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_sub_author", fileinfo_sub_author,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_sub_author);
   gtk_table_attach (GTK_TABLE (table2), fileinfo_sub_author, 1, 2, 1, 2,
@@ -1878,7 +1878,7 @@
   label50 = gtk_label_new ("Name:");
   gtk_widget_set_name (label50, "label50");
   gtk_widget_ref (label50);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "label50", label50,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "label50", label50,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label50);
   gtk_table_attach (GTK_TABLE (table2), label50, 0, 1, 0, 1,
@@ -1888,7 +1888,7 @@
   fileinfo_sub_name = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_sub_name, "fileinfo_sub_name");
   gtk_widget_ref (fileinfo_sub_name);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_name", fileinfo_sub_name,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_sub_name", fileinfo_sub_name,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_sub_name);
   gtk_table_attach (GTK_TABLE (table2), fileinfo_sub_name, 1, 2, 0, 1,
@@ -1899,7 +1899,7 @@
   label51 = gtk_label_new ("Duration:");
   gtk_widget_set_name (label51, "label51");
   gtk_widget_ref (label51);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "label51", label51,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "label51", label51,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (label51);
   gtk_table_attach (GTK_TABLE (table2), label51, 0, 1, 2, 3,
@@ -1910,7 +1910,7 @@
   entry1 = gtk_entry_new ();
   gtk_widget_set_name (entry1, "entry1");
   gtk_widget_ref (entry1);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "entry1", entry1,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "entry1", entry1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (entry1);
   gtk_table_attach (GTK_TABLE (table2), entry1, 1, 2, 2, 3,
@@ -1921,7 +1921,7 @@
   scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
   gtk_widget_set_name (scrolledwindow2, "scrolledwindow2");
   gtk_widget_ref (scrolledwindow2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "scrolledwindow2", scrolledwindow2,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "scrolledwindow2", scrolledwindow2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (scrolledwindow2);
   gtk_box_pack_start (GTK_BOX (vbox15), scrolledwindow2, TRUE, TRUE, 0);
@@ -1931,7 +1931,7 @@
   fileinfo_sub_info = gtk_text_view_new ();
   gtk_widget_set_name (fileinfo_sub_info, "fileinfo_sub_info");
   gtk_widget_ref (fileinfo_sub_info);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_info", fileinfo_sub_info,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "fileinfo_sub_info", fileinfo_sub_info,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (fileinfo_sub_info);
   gtk_container_add (GTK_CONTAINER (scrolledwindow2), fileinfo_sub_info);
@@ -1939,23 +1939,23 @@
   button2 = gtk_button_new_with_label ("Close");
   gtk_widget_set_name (button2, "button2");
   gtk_widget_ref (button2);
-  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "button2", button2,
+  g_object_set_data_full (G_OBJECT (xs_fileinfowin), "button2", button2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (button2);
   gtk_box_pack_start (GTK_BOX (vbox14), button2, FALSE, FALSE, 0);
   GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);
 
-  gtk_signal_connect (GTK_OBJECT (xs_fileinfowin), "delete_event",
-                      GTK_SIGNAL_FUNC (xs_fileinfo_delete),
+  g_signal_connect (G_OBJECT (xs_fileinfowin), "delete_event",
+                      G_CALLBACK (xs_fileinfo_delete),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (fileinfo_subctrl_prev), "clicked",
-                      GTK_SIGNAL_FUNC (xs_subctrl_prevsong),
+  g_signal_connect (G_OBJECT (fileinfo_subctrl_prev), "clicked",
+                      G_CALLBACK (xs_subctrl_prevsong),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (fileinfo_subctrl_next), "clicked",
-                      GTK_SIGNAL_FUNC (xs_subctrl_nextsong),
+  g_signal_connect (G_OBJECT (fileinfo_subctrl_next), "clicked",
+                      G_CALLBACK (xs_subctrl_nextsong),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (button2), "clicked",
-                      GTK_SIGNAL_FUNC (xs_fileinfo_ok),
+  g_signal_connect (G_OBJECT (button2), "clicked",
+                      G_CALLBACK (xs_fileinfo_ok),
                       NULL);
 
   gtk_widget_grab_focus (button2);
@@ -1972,28 +1972,28 @@
 
   xs_sldbfileselector = gtk_file_selection_new ("Select HVSC song length database");
   gtk_widget_set_name (xs_sldbfileselector, "xs_sldbfileselector");
-  gtk_object_set_data (GTK_OBJECT (xs_sldbfileselector), "xs_sldbfileselector", xs_sldbfileselector);
+  g_object_set_data (G_OBJECT (xs_sldbfileselector), "xs_sldbfileselector", xs_sldbfileselector);
   gtk_container_set_border_width (GTK_CONTAINER (xs_sldbfileselector), 10);
   gtk_window_set_modal (GTK_WINDOW (xs_sldbfileselector), TRUE);
   gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_sldbfileselector));
 
   ok_button2 = GTK_FILE_SELECTION (xs_sldbfileselector)->ok_button;
   gtk_widget_set_name (ok_button2, "ok_button2");
-  gtk_object_set_data (GTK_OBJECT (xs_sldbfileselector), "ok_button2", ok_button2);
+  g_object_set_data (G_OBJECT (xs_sldbfileselector), "ok_button2", ok_button2);
   gtk_widget_show (ok_button2);
   GTK_WIDGET_SET_FLAGS (ok_button2, GTK_CAN_DEFAULT);
 
   cancel_button2 = GTK_FILE_SELECTION (xs_sldbfileselector)->cancel_button;
   gtk_widget_set_name (cancel_button2, "cancel_button2");
-  gtk_object_set_data (GTK_OBJECT (xs_sldbfileselector), "cancel_button2", cancel_button2);
+  g_object_set_data (G_OBJECT (xs_sldbfileselector), "cancel_button2", cancel_button2);
   gtk_widget_show (cancel_button2);
   GTK_WIDGET_SET_FLAGS (cancel_button2, GTK_CAN_DEFAULT);
 
-  gtk_signal_connect (GTK_OBJECT (ok_button2), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_sldb_fs_ok),
+  g_signal_connect (G_OBJECT (ok_button2), "clicked",
+                      G_CALLBACK (xs_cfg_sldb_fs_ok),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cancel_button2), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_sldb_fs_cancel),
+  g_signal_connect (G_OBJECT (cancel_button2), "clicked",
+                      G_CALLBACK (xs_cfg_sldb_fs_cancel),
                       NULL);
 
   return xs_sldbfileselector;
@@ -2008,28 +2008,28 @@
 
   xs_stilfileselector = gtk_file_selection_new ("Select STIL-database ");
   gtk_widget_set_name (xs_stilfileselector, "xs_stilfileselector");
-  gtk_object_set_data (GTK_OBJECT (xs_stilfileselector), "xs_stilfileselector", xs_stilfileselector);
+  g_object_set_data (G_OBJECT (xs_stilfileselector), "xs_stilfileselector", xs_stilfileselector);
   gtk_container_set_border_width (GTK_CONTAINER (xs_stilfileselector), 10);
   gtk_window_set_modal (GTK_WINDOW (xs_stilfileselector), TRUE);
   gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_stilfileselector));
 
   ok_button3 = GTK_FILE_SELECTION (xs_stilfileselector)->ok_button;
   gtk_widget_set_name (ok_button3, "ok_button3");
-  gtk_object_set_data (GTK_OBJECT (xs_stilfileselector), "ok_button3", ok_button3);
+  g_object_set_data (G_OBJECT (xs_stilfileselector), "ok_button3", ok_button3);
   gtk_widget_show (ok_button3);
   GTK_WIDGET_SET_FLAGS (ok_button3, GTK_CAN_DEFAULT);
 
   cancel_button3 = GTK_FILE_SELECTION (xs_stilfileselector)->cancel_button;
   gtk_widget_set_name (cancel_button3, "cancel_button3");
-  gtk_object_set_data (GTK_OBJECT (xs_stilfileselector), "cancel_button3", cancel_button3);
+  g_object_set_data (G_OBJECT (xs_stilfileselector), "cancel_button3", cancel_button3);
   gtk_widget_show (cancel_button3);
   GTK_WIDGET_SET_FLAGS (cancel_button3, GTK_CAN_DEFAULT);
 
-  gtk_signal_connect (GTK_OBJECT (ok_button3), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_stil_fs_ok),
+  g_signal_connect (G_OBJECT (ok_button3), "clicked",
+                      G_CALLBACK (xs_cfg_stil_fs_ok),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cancel_button3), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_stil_fs_cancel),
+  g_signal_connect (G_OBJECT (cancel_button3), "clicked",
+                      G_CALLBACK (xs_cfg_stil_fs_cancel),
                       NULL);
 
   return xs_stilfileselector;
@@ -2044,28 +2044,28 @@
 
   xs_hvscpathselector = gtk_file_selection_new ("Select HVSC location prefix");
   gtk_widget_set_name (xs_hvscpathselector, "xs_hvscpathselector");
-  gtk_object_set_data (GTK_OBJECT (xs_hvscpathselector), "xs_hvscpathselector", xs_hvscpathselector);
+  g_object_set_data (G_OBJECT (xs_hvscpathselector), "xs_hvscpathselector", xs_hvscpathselector);
   gtk_container_set_border_width (GTK_CONTAINER (xs_hvscpathselector), 10);
   gtk_window_set_modal (GTK_WINDOW (xs_hvscpathselector), TRUE);
   gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_hvscpathselector));
 
   ok_button4 = GTK_FILE_SELECTION (xs_hvscpathselector)->ok_button;
   gtk_widget_set_name (ok_button4, "ok_button4");
-  gtk_object_set_data (GTK_OBJECT (xs_hvscpathselector), "ok_button4", ok_button4);
+  g_object_set_data (G_OBJECT (xs_hvscpathselector), "ok_button4", ok_button4);
   gtk_widget_show (ok_button4);
   GTK_WIDGET_SET_FLAGS (ok_button4, GTK_CAN_DEFAULT);
 
   cancel_button4 = GTK_FILE_SELECTION (xs_hvscpathselector)->cancel_button;
   gtk_widget_set_name (cancel_button4, "cancel_button4");
-  gtk_object_set_data (GTK_OBJECT (xs_hvscpathselector), "cancel_button4", cancel_button4);
+  g_object_set_data (G_OBJECT (xs_hvscpathselector), "cancel_button4", cancel_button4);
   gtk_widget_show (cancel_button4);
   GTK_WIDGET_SET_FLAGS (cancel_button4, GTK_CAN_DEFAULT);
 
-  gtk_signal_connect (GTK_OBJECT (ok_button4), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_hvsc_fs_ok),
+  g_signal_connect (G_OBJECT (ok_button4), "clicked",
+                      G_CALLBACK (xs_cfg_hvsc_fs_ok),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cancel_button4), "clicked",
-                      GTK_SIGNAL_FUNC (xs_cfg_hvsc_fs_cancel),
+  g_signal_connect (G_OBJECT (cancel_button4), "clicked",
+                      G_CALLBACK (xs_cfg_hvsc_fs_cancel),
                       NULL);
 
   return xs_hvscpathselector;
--- a/Plugins/Input/timidity/src/interface.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/timidity/src/interface.c	Tue May 23 16:05:38 2006 -0700
@@ -51,20 +51,20 @@
   GtkWidget *button2;
 
   xmmstimid_conf_wnd = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_object_set_data (GTK_OBJECT (xmmstimid_conf_wnd), "xmmstimid_conf_wnd", xmmstimid_conf_wnd);
+  g_object_set_data (G_OBJECT (xmmstimid_conf_wnd), "xmmstimid_conf_wnd", xmmstimid_conf_wnd);
   gtk_window_set_title (GTK_WINDOW (xmmstimid_conf_wnd), _("TiMidity Configuration"));
   gtk_window_set_position (GTK_WINDOW (xmmstimid_conf_wnd), GTK_WIN_POS_MOUSE);
 
   vbox4 = gtk_vbox_new (FALSE, 0);
   gtk_widget_ref (vbox4);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "vbox4", vbox4,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "vbox4", vbox4,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox4);
   gtk_container_add (GTK_CONTAINER (xmmstimid_conf_wnd), vbox4);
 
   table1 = gtk_table_new (3, 2, FALSE);
   gtk_widget_ref (table1);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "table1", table1,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "table1", table1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (table1);
   gtk_box_pack_start (GTK_BOX (vbox4), table1, TRUE, TRUE, 0);
@@ -74,7 +74,7 @@
 
   frame1 = gtk_frame_new (_("Sampling Rate"));
   gtk_widget_ref (frame1);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "frame1", frame1,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "frame1", frame1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame1);
   gtk_table_attach (GTK_TABLE (table1), frame1, 0, 1, 1, 2,
@@ -83,7 +83,7 @@
 
   vbox1 = gtk_vbox_new (FALSE, 0);
   gtk_widget_ref (vbox1);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "vbox1", vbox1,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "vbox1", vbox1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox1);
   gtk_container_add (GTK_CONTAINER (frame1), vbox1);
@@ -92,7 +92,7 @@
   rate_11000 = gtk_radio_button_new_with_label (rate_group, _("11000 Hz"));
   rate_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rate_11000));
   gtk_widget_ref (rate_11000);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "rate_11000", rate_11000,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "rate_11000", rate_11000,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (rate_11000);
   gtk_box_pack_start (GTK_BOX (vbox1), rate_11000, FALSE, FALSE, 0);
@@ -100,7 +100,7 @@
   rate_22000 = gtk_radio_button_new_with_label (rate_group, _("22000 Hz"));
   rate_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rate_22000));
   gtk_widget_ref (rate_22000);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "rate_22000", rate_22000,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "rate_22000", rate_22000,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (rate_22000);
   gtk_box_pack_start (GTK_BOX (vbox1), rate_22000, FALSE, FALSE, 0);
@@ -108,14 +108,14 @@
   rate_44100 = gtk_radio_button_new_with_label (rate_group, _("44100 Hz"));
   rate_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rate_44100));
   gtk_widget_ref (rate_44100);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "rate_44100", rate_44100,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "rate_44100", rate_44100,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (rate_44100);
   gtk_box_pack_start (GTK_BOX (vbox1), rate_44100, FALSE, FALSE, 0);
 
   frame2 = gtk_frame_new (_("Sample Width"));
   gtk_widget_ref (frame2);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "frame2", frame2,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "frame2", frame2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame2);
   gtk_table_attach (GTK_TABLE (table1), frame2, 1, 2, 1, 2,
@@ -124,7 +124,7 @@
 
   vbox2 = gtk_vbox_new (FALSE, 0);
   gtk_widget_ref (vbox2);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "vbox2", vbox2,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "vbox2", vbox2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox2);
   gtk_container_add (GTK_CONTAINER (frame2), vbox2);
@@ -133,7 +133,7 @@
   bits_8 = gtk_radio_button_new_with_label (bits_group, _("8 bit"));
   bits_group = gtk_radio_button_group (GTK_RADIO_BUTTON (bits_8));
   gtk_widget_ref (bits_8);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "bits_8", bits_8,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "bits_8", bits_8,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (bits_8);
   gtk_box_pack_start (GTK_BOX (vbox2), bits_8, FALSE, FALSE, 0);
@@ -141,14 +141,14 @@
   bits_16 = gtk_radio_button_new_with_label (bits_group, _("16 bit"));
   bits_group = gtk_radio_button_group (GTK_RADIO_BUTTON (bits_16));
   gtk_widget_ref (bits_16);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "bits_16", bits_16,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "bits_16", bits_16,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (bits_16);
   gtk_box_pack_start (GTK_BOX (vbox2), bits_16, FALSE, FALSE, 0);
 
   frame3 = gtk_frame_new (_("Channels"));
   gtk_widget_ref (frame3);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "frame3", frame3,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "frame3", frame3,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame3);
   gtk_table_attach (GTK_TABLE (table1), frame3, 0, 1, 2, 3,
@@ -157,7 +157,7 @@
 
   vbox3 = gtk_vbox_new (FALSE, 0);
   gtk_widget_ref (vbox3);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "vbox3", vbox3,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "vbox3", vbox3,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox3);
   gtk_container_add (GTK_CONTAINER (frame3), vbox3);
@@ -166,7 +166,7 @@
   channels_1 = gtk_radio_button_new_with_label (channels_group, _("Mono"));
   channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (channels_1));
   gtk_widget_ref (channels_1);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "channels_1", channels_1,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "channels_1", channels_1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (channels_1);
   gtk_box_pack_start (GTK_BOX (vbox3), channels_1, FALSE, FALSE, 0);
@@ -174,14 +174,14 @@
   channels_2 = gtk_radio_button_new_with_label (channels_group, _("Stereo"));
   channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (channels_2));
   gtk_widget_ref (channels_2);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "channels_2", channels_2,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "channels_2", channels_2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (channels_2);
   gtk_box_pack_start (GTK_BOX (vbox3), channels_2, FALSE, FALSE, 0);
 
   frame4 = gtk_frame_new (_("TiMidity Configuration File"));
   gtk_widget_ref (frame4);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "frame4", frame4,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "frame4", frame4,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (frame4);
   gtk_table_attach (GTK_TABLE (table1), frame4, 0, 2, 0, 1,
@@ -190,7 +190,7 @@
 
   vbox5 = gtk_vbox_new (FALSE, 0);
   gtk_widget_ref (vbox5);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "vbox5", vbox5,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "vbox5", vbox5,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (vbox5);
   gtk_container_add (GTK_CONTAINER (frame4), vbox5);
@@ -198,21 +198,21 @@
 
   config_file = gtk_entry_new ();
   gtk_widget_ref (config_file);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "config_file", config_file,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "config_file", config_file,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (config_file);
   gtk_box_pack_start (GTK_BOX (vbox5), config_file, TRUE, TRUE, 0);
 
   hseparator1 = gtk_hseparator_new ();
   gtk_widget_ref (hseparator1);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "hseparator1", hseparator1,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "hseparator1", hseparator1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hseparator1);
   gtk_box_pack_start (GTK_BOX (vbox4), hseparator1, TRUE, TRUE, 0);
 
   hbuttonbox1 = gtk_hbutton_box_new ();
   gtk_widget_ref (hbuttonbox1);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "hbuttonbox1", hbuttonbox1,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "hbuttonbox1", hbuttonbox1,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (hbuttonbox1);
   gtk_box_pack_start (GTK_BOX (vbox4), hbuttonbox1, TRUE, TRUE, 0);
@@ -222,7 +222,7 @@
 
   conf_ok = gtk_button_new_with_label (_("Ok"));
   gtk_widget_ref (conf_ok);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "conf_ok", conf_ok,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "conf_ok", conf_ok,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (conf_ok);
   gtk_container_add (GTK_CONTAINER (hbuttonbox1), conf_ok);
@@ -230,14 +230,14 @@
 
   button2 = gtk_button_new_with_label (_("Cancel"));
   gtk_widget_ref (button2);
-  gtk_object_set_data_full (GTK_OBJECT (xmmstimid_conf_wnd), "button2", button2,
+  g_object_set_data_full (G_OBJECT (xmmstimid_conf_wnd), "button2", button2,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (button2);
   gtk_container_add (GTK_CONTAINER (hbuttonbox1), button2);
   GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);
 
-  gtk_signal_connect_object (GTK_OBJECT (button2), "clicked",
-                             GTK_SIGNAL_FUNC (gtk_widget_hide),
+  g_signal_connect_swapped (G_OBJECT (button2), "clicked",
+                             G_CALLBACK (gtk_widget_hide),
                              GTK_OBJECT (xmmstimid_conf_wnd));
 
   gtk_widget_grab_focus (conf_ok);
--- a/Plugins/Input/timidity/src/xmms-timidity.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/timidity/src/xmms-timidity.c	Tue May 23 16:05:38 2006 -0700
@@ -134,7 +134,7 @@
 			_("TiMidity Plugin\nhttp://libtimidity.sourceforge.net\nby Konstantin Korikov") , NULL );
 		about_title = g_strdup_printf( _("TiMidity Plugin %s") , PACKAGE_VERSION );
 		xmmstimid_about_wnd = xmms_show_message( about_title , about_text , _("Ok") , FALSE , NULL , NULL );
-		gtk_signal_connect(GTK_OBJECT(xmmstimid_about_wnd), "destroy",
+		g_signal_connect(G_OBJECT(xmmstimid_about_wnd), "destroy",
 					(GCallback)gtk_widget_destroyed, &xmmstimid_about_wnd);
 		g_free(about_title);
 		g_free(about_text);
@@ -153,7 +153,7 @@
 		xmmstimid_conf_wnd = create_xmmstimid_conf_wnd();
 
 #define get_conf_wnd_item(type, name) \
-	type (gtk_object_get_data(GTK_OBJECT(xmmstimid_conf_wnd), name))
+	type (g_object_get_data(G_OBJECT(xmmstimid_conf_wnd), name))
 	
 		xmmstimid_conf_config_file = get_conf_wnd_item(
 				GTK_ENTRY, "config_file");
@@ -174,7 +174,7 @@
 
 		gtk_signal_connect_object(
 				get_conf_wnd_item(GTK_OBJECT, "conf_ok"),
-				"clicked", GTK_SIGNAL_FUNC(xmmstimid_conf_ok),
+				"clicked", G_CALLBACK(xmmstimid_conf_ok),
 				NULL);
 	}
 
--- a/Plugins/Input/wav/wav-sndfile.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/wav/wav-sndfile.c	Tue May 23 16:05:38 2006 -0700
@@ -261,7 +261,7 @@
 			  "59 Temple Place, Suite 330, \n"
 			  "Boston, MA  02111-1307  USA"),
 			_("Ok"), FALSE, NULL, NULL);
-		gtk_signal_connect(GTK_OBJECT(box), "destroy",
+		g_signal_connect(G_OBJECT(box), "destroy",
 			(GCallback)gtk_widget_destroyed, &box);
 	}
 }
--- a/Plugins/Input/wav/wav.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/wav/wav.c	Tue May 23 16:05:38 2006 -0700
@@ -1,8 +1,7 @@
-/*  BMP - Cross-platform multimedia player
- *  Copyright (C) 2003-2004  BMP development team.
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
+/*  XMMS - Cross-platform multimedia player
+ *  Copyright (C) 1998-2005  Peter Alm, Mikael Alm, Olle Hallnas,
+ *                           Thomas Nilsson and 4Front Technologies
+ *  Copyright (C) 1999-2005  Haavard Kvaalen
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -19,545 +18,647 @@
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-#include "wav.h"
+/*
+ * 2004-12-21 Dirk Jagdmann <doj@cubic.org>
+ * - added 32bit pcm,float support
+ *
+ * 2004-12-22 Dirk Jagdmann <doj@cubic.org>
+ * - added 12bit pcm support
+ * - added 24bit pcm support
+ * - added 64bit float support
+ * - fixed big endian
+ *
+ * TODO:
+ * - dither to 16 bits
+ */
 
-#include <glib.h>
-#include <glib/gi18n.h>
+#include "libaudacious/util.h"
+#include "libaudacious/titlestring.h"
+#include "xmms/i18n.h"
+#include "xmms/plugin.h"
+#include "config.h"
+
 #include <string.h>
-
-#include <libaudacious/util.h>
-#include <libaudacious/titlestring.h>
-#include "audacious/output.h"
-
+#include <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <math.h>
 
-InputPlugin wav_ip = {
-    NULL,
-    NULL,
-    NULL,                       /* Description */
-    wav_init,
-    NULL,
-    NULL,
-    is_our_file,
-    NULL,
-    play_file,
-    stop,
-    wav_pause,
-    seek,
-    NULL,
-    get_time,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    get_song_info,
-    NULL,                       /* file_info_box */
-    NULL
+static InputPlugin wav_ip;
+
+#if 0
+#define WAVDEBUGf
+#define WAVDEBUG(f, a...) printf(f, ##a)
+#else
+#define WAVDEBUG(f, a...)
+#endif
+
+#define	WAVE_FORMAT_PCM        0x0001
+#define WAVE_FORMAT_IEEE_FLOAT 0x0003
+#define	WAVE_FORMAT_ALAW       0x0006
+#define	WAVE_FORMAT_MULAW      0x0007
+#define WAVE_FORMAT_EXTENSIBLE 0xFFFE
+
+struct wave_file
+{
+	FILE *file;
+	unsigned short format_tag;
+	guint16 channels, block_align, bits_per_sample, bits_per_sample_out;
+	guint32 samples_per_sec, avg_bytes_per_sec;
+	unsigned long position, length;
+	int seek_to, data_offset;
+	pid_t pid;
+	volatile gboolean going, eof;
+	int afmt;
+	gint16 *table;
 };
 
-WaveFile *wav_file = NULL;
-static GThread *decode_thread;
+static struct wave_file *wav_file = NULL;
+static pthread_t decode_thread;
 static gboolean audio_error = FALSE;
 
-InputPlugin *
-get_iplugin_info(void)
+InputPlugin *get_iplugin_info(void)
 {
-    wav_ip.description = g_strdup_printf(_("WAV Audio Plugin"));
-    return &wav_ip;
+	wav_ip.description = g_strdup_printf(_("Wave Player %s"), VERSION);
+	return &wav_ip;
 }
 
-static void
-wav_init(void)
+static gint16 *get_alaw_table(void)
 {
-    /* empty */
+	static gint16 *table;
+
+	if (!table)
+	{
+		int i;
+		table = g_malloc(128 * sizeof (gint16));
+		for (i = 0; i < 128; i++)
+		{
+			int v = i ^ 0x55;
+			int seg = (v >> 4) & 7;
+
+			table[i] = (((v & 0x0f) << 4) + (seg ? 0x108 : 8)) <<
+				(seg ? seg - 1 : 0);
+		}
+	}
+	return table;
 }
 
-/* needed for is_our_file() */
-static gint
-read_n_bytes(VFSFile * file, guint8 * buf, gsize n)
+static gint16 *get_mulaw_table(void)
 {
-    if (vfs_fread(buf, 1, n, file) != n) {
-        return FALSE;
-    }
-    return TRUE;
+	static gint16 *table;
+
+	if (!table)
+	{
+		int i;
+		table = g_malloc(128 * sizeof (gint16));
+		for (i = 0; i < 128; i++) {
+			table[127 - i] = ((((i & 0x0f) << 3) + 0x84) <<
+					  ((i >> 4) & 7)) - 0x84;
+		}
+	}
+	return table;
 }
 
-static guint32
-convert_to_header(guint8 * buf)
+static char *get_title(gchar *filename)
 {
+	TitleInput *input;
+	char *temp, *ext, *title, *path, *temp2;
+
+	XMMS_NEW_TITLEINPUT(input);
 
-    return (buf[0] << 24) + (buf[1] << 16) + (buf[2] << 8) + buf[3];
-}
+	path = g_strdup(filename);
+	temp = g_strdup(filename);
+	ext = strrchr(temp, '.');
+	if (ext)
+		*ext = '\0';
+	temp2 = strrchr(path, '/');
+	if (temp2)
+		*temp2 = '\0';
 
-static guint32
-convert_to_long(guint8 * buf)
-{
+	input->file_name = g_basename(filename);
+	input->file_ext = ext ? ext+1 : NULL;
+	input->file_path = g_strdup_printf("%s/", path);
 
-    return (buf[3] << 24) + (buf[2] << 16) + (buf[1] << 8) + buf[0];
+	title = xmms_get_titlestring(xmms_get_gentitle_format(), input);
+	if (title == NULL)
+		title = g_strdup(input->file_name);
+
+	g_free(temp);
+	g_free(path);
+	g_free(input);
+
+	return title;
 }
 
-static guint16
-read_wav_id(gchar * filename)
+static float convert_ieee_float32(guint32 data)
 {
-    VFSFile *file;
-    guint16 wavid;
-    guint8 buf[4];
-    guint32 head;
-    glong seek;
+	gint32 sign, exponent, mantissa;
+	float value;
+
+	sign = (data & 0x80000000) != 0;
+	exponent = (data & 0x7f800000) >> 23;
+	mantissa = data & 0x7fffff;
+
+	if (exponent == 0xff)
+		value = G_MAXFLOAT;
+	else if (!exponent && !mantissa)
+		value = 0.0;
+	else
+	{
+		if (exponent)
+		{
+			exponent -= 127;
+			mantissa |= 0x800000;
+		}
+		else
+			exponent = -126;
+		value = ldexp((float) mantissa / 0x800000, exponent);
+	}
+	if (sign)
+		value *= -1;
+	return value;
+}
 
-    if (!(file = vfs_fopen(filename, "rb"))) {  /* Could not open file */
-        return 0;
-    }
-    if (!(read_n_bytes(file, buf, 4))) {
-        vfs_fclose(file);
-        return 0;
-    }
-    head = convert_to_header(buf);
-    if (head == ('R' << 24) + ('I' << 16) + ('F' << 8) + 'F') { /* Found a riff -- maybe WAVE */
-        if (vfs_fseek(file, 4, SEEK_CUR) != 0) {    /* some error occured */
-            vfs_fclose(file);
-            return 0;
-        }
-        if (!(read_n_bytes(file, buf, 4))) {
-            vfs_fclose(file);
-            return 0;
-        }
-        head = convert_to_header(buf);
-        if (head == ('W' << 24) + ('A' << 16) + ('V' << 8) + 'E') { /* Found a WAVE */
-            seek = 0;
-            do {                /* we'll be looking for the fmt-chunk which comes before the data-chunk */
-                /* A chunk consists of an header identifier (4 bytes), the length of the chunk
-                   (4 bytes), and the chunkdata itself, padded to be an even number of bytes.
-                   We'll skip all chunks until we find the "data"-one which could contain
-                   mpeg-data */
-                if (seek != 0) {
-                    if (vfs_fseek(file, seek, SEEK_CUR) != 0) { /* some error occured */
-                        vfs_fclose(file);
-                        return 0;
-                    }
-                }
-                if (!(read_n_bytes(file, buf, 4))) {
-                    vfs_fclose(file);
-                    return 0;
-                }
-                head = convert_to_header(buf);
-                if (!(read_n_bytes(file, buf, 4))) {
-                    vfs_fclose(file);
-                    return 0;
-                }
-                seek = convert_to_long(buf);
-                seek = seek + (seek % 2);   /* Has to be even (padding) */
-                if (seek >= 2
-                    && head == ('f' << 24) + ('m' << 16) + ('t' << 8) + ' ') {
-                    if (!(read_n_bytes(file, buf, 2))) {
-                        vfs_fclose(file);
-                        return 0;
-                    }
-                    wavid = buf[0] + 256 * buf[1];
-                    seek -= 2;
-                    /* we could go on looking for other things, but all we wanted was the wavid */
-                    vfs_fclose(file);
-                    return wavid;
-                }
-            }
-            while (head != ('d' << 24) + ('a' << 16) + ('t' << 8) + 'a');
-            /* it's RIFF WAVE */
-        }
-        /* it's RIFF */
-    }
-    /* it's not even RIFF */
-    vfs_fclose(file);
-    return 0;
+static double convert_ieee_float64(guint64 data)
+{
+	int sign, exponent;
+	guint64 mantissa;
+	double value;
+
+	sign = (data & 0x8000000000000000ULL) != 0;
+	exponent = (data & 0x7ff0000000000000ULL) >> 52;
+	mantissa = data & 0xfffffffffffffLL;
+
+	if (exponent == 0x7ff)
+		value = G_MAXDOUBLE;
+	else if (!exponent && !mantissa)
+		value = 0.0;
+	else
+	{
+		if (exponent)
+		{
+			exponent -= 1023;
+			mantissa |= 0x10000000000000ULL;
+		}
+		else
+			exponent = -1022;
+
+		value = ldexp((double) mantissa / 0x10000000000000LL, exponent);
+	}
+	if (sign)
+		value *= -1;
+	return value;
 }
 
-static const gchar *
-get_extension(const gchar * filename)
+static unsigned int convert(void *data, int in)
 {
-    const gchar *ext = strrchr(filename, '.');
-    return ext ? ext + 1 : NULL;
-}
+	int out = 0;
 
-static gboolean
-is_our_file(gchar * filename)
-{
-    gchar *ext;
+	if (wav_file->format_tag == WAVE_FORMAT_PCM)
+	{
+		switch (wav_file->bits_per_sample)
+		{
+			case 8:
+			case 12:
+			case 16:
+			default:
+				return in;
 
-    ext = strrchr(filename, '.');
-    if (ext)
-        if (!strcasecmp(ext, ".wav"))
-            if (read_wav_id(filename) == WAVE_FORMAT_PCM)
-                return TRUE;
-    return FALSE;
-}
-
+			case 24:
+			{
+				char *dst = data;
+				char *src = data;
 
-static gchar *
-get_title(const gchar * filename)
-{
-    TitleInput *input;
-    gchar *title;
-
-    input = bmp_title_input_new();
-
-    input->file_name = g_path_get_basename(filename);
-    input->file_ext = get_extension(filename);
-    input->file_path = g_path_get_dirname(filename);
+				while (in > 0)
+				{
+					out += 2;
+					in -= 3;
+					src++;		/* skip low byte */
+					*dst++ = *src++;/* copy 16bit */
+					*dst++ = *src++;
+				}
+			}
+			break;
 
-    if (!(title = xmms_get_titlestring(xmms_get_gentitle_format(), input)))
-        title = g_strdup(input->file_name);
-
-    g_free(input->file_path);
-    g_free(input->file_name);
-    g_free(input);
-
-    return title;
-}
-
-static gint
-read_le_long(VFSFile * file, glong * ret)
-{
-    guchar buf[4];
-
-    if (vfs_fread(buf, 1, 4, file) != 4)
-        return 0;
-
-    *ret = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0];
-    return TRUE;
-}
-
-#define read_le_ulong(file,ret) read_le_long(file,(long*)ret)
-
-static int
-read_le_short(VFSFile * file, gshort * ret)
-{
-    guchar buf[2];
-
-    if (vfs_fread(buf, 1, 2, file) != 2)
-        return 0;
-
-    *ret = (buf[1] << 8) | buf[0];
-    return TRUE;
+			case 32:
+			{
+				guint16 *dst = data;
+				guint16 *src = data;
+				int i;
+				out = in / sizeof(guint16);
+				for (i = 0; i < out; i++)
+				{
+					src++;		/* skip low word */
+					*dst++ = *src++;/* copy 16 bit */
+				}
+			}
+			break;
+		}
+	}
+	else if (wav_file->format_tag == WAVE_FORMAT_IEEE_FLOAT)
+	{
+		if (wav_file->bits_per_sample == 32)
+		{
+			guint16 *dst = data;
+			guint32 *src = data;
+			int i;
+			out = in / 2;
+			for (i = 0; i < in / 4; i++)
+			{
+				float f;
+				f = convert_ieee_float32(GUINT32_FROM_LE(*src));
+				*dst++ = CLAMP(f, -1.0, 1.0) * 32767;
+				src++;
+			}
+		}
+		else if (wav_file->bits_per_sample == 64)
+		{
+			gint16 *dst = data;
+			guint64 *src = data;
+			int i;
+			out = in / 4;
+			for (i = 0; i < in / 8; i++)
+			{
+				double f;
+				f = convert_ieee_float64(GUINT64_FROM_LE(*src));
+				*dst++ = CLAMP(f, -1.0, 1.0) * 32767;
+				src++;
+			}
+		}
+	}
+	else if (wav_file->format_tag == WAVE_FORMAT_ALAW ||
+		 wav_file->format_tag == WAVE_FORMAT_MULAW)
+	{
+		int i;
+		guint8 *src = data;
+		guint16 *dst = data;
+		for (i = in - 1; i >= 0; i--)
+		{
+			dst[i] = wav_file->table[src[i] & 0x7f];
+			if (src[i] & 0x80)
+				dst[i] *= -1;
+		}
+		out = in * 2;
+	}
+	return out;
 }
 
-static gpointer
-play_loop(gpointer arg)
+static void *play_loop(void *arg)
 {
-    gchar data[2048 * 2];
-    gsize bytes, blk_size, rate;
-    gint actual_read;
+	void *data;
+	int input, output, blk_size, rate;
+	int actual_read;
 
-    blk_size = 512 * (wav_file->bits_per_sample / 8) * wav_file->channels;
-    rate =
-        wav_file->samples_per_sec * wav_file->channels *
-        (wav_file->bits_per_sample / 8);
-    while (wav_file->going) {
-        if (!wav_file->eof) {
-            bytes = blk_size;
-            if (wav_file->length - wav_file->position < bytes)
-                bytes = wav_file->length - wav_file->position;
-            if (bytes > 0) {
-                actual_read = vfs_fread(data, 1, bytes, wav_file->file);
+	blk_size = 512 * (wav_file->bits_per_sample / 8) * wav_file->channels;
+	rate = wav_file->samples_per_sec * wav_file->channels *
+		(wav_file->bits_per_sample / 8);
+	data = g_malloc(512 * (MAX(wav_file->bits_per_sample,
+				   wav_file->bits_per_sample_out) / 8) *
+			wav_file->channels);
+	while (wav_file->going)
+	{
+		if (!wav_file->eof)
+		{
+			input = MIN(blk_size, wav_file->length - wav_file->position);
+
+			if (input > 0 &&
+			    (actual_read = fread(data, 1, input, wav_file->file)) > 0)
+			{
+				output = convert(data, input);
 
-                if (actual_read == 0) {
-                    wav_file->eof = 1;
-                    wav_ip.output->buffer_free();
-                    wav_ip.output->buffer_free();
-                }
-                else {
-                    if (wav_file->seek_to == -1)
-                        produce_audio(wav_ip.output->written_time(),
-                                      (wav_file->bits_per_sample ==
-                                       16) ? FMT_S16_LE : FMT_U8,
-                                      wav_file->channels, bytes, data,
-                                      &wav_file->going);
-                    wav_file->position += actual_read;
-                }
-            }
-            else {
-                wav_file->eof = TRUE;
-                wav_ip.output->buffer_free();
-                wav_ip.output->buffer_free();
-                xmms_usleep(10000);
-            }
-        }
-        else
-            xmms_usleep(10000);
-        if (wav_file->seek_to != -1) {
-            wav_file->position = wav_file->seek_to * rate;
-            vfs_fseek(wav_file->file,
-                      wav_file->position + wav_file->data_offset, SEEK_SET);
-            wav_ip.output->flush(wav_file->seek_to * 1000);
-            wav_file->seek_to = -1;
-        }
+				wav_ip.add_vis_pcm(wav_ip.output->written_time(),
+						   wav_file->afmt, wav_file->channels,
+						   output, data);
+				while (wav_ip.output->buffer_free() < output &&
+				       wav_file->going && wav_file->seek_to == -1)
+					xmms_usleep(10000);
+				if (wav_file->going && wav_file->seek_to == -1)
+					wav_ip.output->write_audio(data, output);
+				wav_file->position += actual_read;
+			}
+			else
+			{
+				wav_file->eof = TRUE;
+				wav_ip.output->buffer_free();
+				wav_ip.output->buffer_free();
+				xmms_usleep(10000);
+			}
+		}
+		else
+			xmms_usleep(10000);
+		if (wav_file->seek_to != -1)
+		{
+			wav_file->position = wav_file->seek_to * rate;
+			fseek(wav_file->file, wav_file->position +
+			      wav_file->data_offset, SEEK_SET);
+			wav_ip.output->flush(wav_file->seek_to * 1000);
+			wav_file->seek_to = -1;
+		}
 
-    }
-    vfs_fclose(wav_file->file);
+	}
+	g_free(data);
+	fclose(wav_file->file);
+	pthread_exit(NULL);
+}
 
-    g_thread_exit(NULL);
-    return NULL;
+static int read_le_long(FILE * file, guint32 *ret)
+{
+	guint32 l;
+	if (fread(&l, sizeof (l), 1, file) != 1)
+		return 0;
+	*ret = GUINT32_FROM_LE(l);
+	return TRUE;
+}
+
+static int read_le_short(FILE * file, guint16 *ret)
+{
+	guint16 s;
+	if (fread(&s, sizeof (s), 1, file) != 1)
+		return 0;
+	*ret = GUINT16_FROM_LE(s);
+	return TRUE;
 }
 
-static void
-play_file(gchar * filename)
+static struct wave_file* construct_wave_file(char *filename)
 {
-    gchar magic[4], *name;
-    gulong len;
-    gint rate;
+	guint32 len;
+	char magic[4] = {0};
+
+	/* alloc mem for struct */
+	struct wave_file *wav = g_malloc0(sizeof (*wav));
+	if (!wav)
+		return wav;
+
+	/* open file */
+	wav->file = fopen(filename, "rb");
+	if (!wav->file)
+		goto exit_on_error;
+
+	/* check for RIFF chunk */
+	fread(magic, 1, 4, wav->file);
+	if (strncmp(magic, "RIFF", 4) ||
+	    !read_le_long(wav->file, &len))
+		goto exit_on_error;
+
+	fread(magic, 1, 4, wav->file);
+	if (strncmp(magic, "WAVE", 4))
+		goto exit_on_error;
+
+	/* wait for fmt chunk */
+	for (;;)
+	{
+		if (fread(magic, 1, 4, wav->file) != 4 ||
+		    !read_le_long(wav->file, &len))
+			goto exit_on_error;
 
-    audio_error = FALSE;
+		if (!strncmp("fmt ", magic, 4))
+			break;
+		if (fseek(wav->file, len, SEEK_CUR))
+			goto exit_on_error;
+	}
+
+	/* check length of fmt chunk */
+	if (len < 16)
+		goto exit_on_error;
+
+	/* read format */
+	read_le_short(wav->file, &wav->format_tag);
+	read_le_short(wav->file, &wav->channels);
+	read_le_long (wav->file, &wav->samples_per_sec);
+	read_le_long (wav->file, &wav->avg_bytes_per_sec);
+	read_le_short(wav->file, &wav->block_align);
+	read_le_short(wav->file, &wav->bits_per_sample);
+
+	len -= 16;
+
+	/* check for valid formats */
+	if (wav->format_tag == WAVE_FORMAT_EXTENSIBLE)
+	{
+		if (len < 24 ||
+		    fseek(wav->file, 8, SEEK_CUR) ||
+		    !read_le_short(wav->file, &wav->format_tag))
+			goto exit_on_error;
+		len -= 10;
+	}
 
-    wav_file = g_new0(WaveFile, 1);
-    if ((wav_file->file = vfs_fopen(filename, "rb"))) {
-        vfs_fread(magic, 1, 4, wav_file->file);
-        if (strncmp(magic, "RIFF", 4)) {
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        read_le_ulong(wav_file->file, &len);
-        vfs_fread(magic, 1, 4, wav_file->file);
-        if (strncmp(magic, "WAVE", 4)) {
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        for (;;) {
-            vfs_fread(magic, 1, 4, wav_file->file);
-            if (!read_le_ulong(wav_file->file, &len)) {
-                vfs_fclose(wav_file->file);
-                g_free(wav_file);
-                wav_file = NULL;
-                return;
-            }
-            if (!strncmp("fmt ", magic, 4))
-                break;
-            vfs_fseek(wav_file->file, len, SEEK_CUR);
-        }
-        if (len < 16) {
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        read_le_short(wav_file->file, &wav_file->format_tag);
-        switch (wav_file->format_tag) {
-        case WAVE_FORMAT_UNKNOWN:
-        case WAVE_FORMAT_ALAW:
-        case WAVE_FORMAT_MULAW:
-        case WAVE_FORMAT_ADPCM:
-        case WAVE_FORMAT_OKI_ADPCM:
-        case WAVE_FORMAT_DIGISTD:
-        case WAVE_FORMAT_DIGIFIX:
-        case IBM_FORMAT_MULAW:
-        case IBM_FORMAT_ALAW:
-        case IBM_FORMAT_ADPCM:
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        read_le_short(wav_file->file, &wav_file->channels);
-        read_le_long(wav_file->file, &wav_file->samples_per_sec);
-        read_le_long(wav_file->file, &wav_file->avg_bytes_per_sec);
-        read_le_short(wav_file->file, &wav_file->block_align);
-        read_le_short(wav_file->file, &wav_file->bits_per_sample);
-        if (wav_file->bits_per_sample != 8 && wav_file->bits_per_sample != 16) {
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        len -= 16;
-        if (len)
-            vfs_fseek(wav_file->file, len, SEEK_CUR);
+	if (wav->format_tag == WAVE_FORMAT_PCM)
+	{
+		switch (wav->bits_per_sample)
+		{
+			case 8:
+				wav->afmt = FMT_U8;
+				break;
+			case 12:
+			case 16:
+			case 24:
+			case 32:
+				wav->afmt = FMT_S16_LE;
+				break;
+			default:
+				goto exit_on_error;
+		}
+	}
+	else if (wav->format_tag == WAVE_FORMAT_IEEE_FLOAT)
+	{
+		if (wav->bits_per_sample == 32 ||
+		    wav->bits_per_sample == 64)
+			wav->afmt = FMT_S16_LE;
+		else
+			goto exit_on_error;
+	}
+	else if (wav->format_tag == WAVE_FORMAT_ALAW)
+	{
+		if (wav->bits_per_sample != 8)
+			goto exit_on_error;
+		wav->afmt = FMT_S16_LE;
+		wav->bits_per_sample_out = 16;
+		wav->table = get_alaw_table();
+	}
+	else if (wav->format_tag == WAVE_FORMAT_MULAW)
+	{
+		if (wav->bits_per_sample != 8)
+			goto exit_on_error;
+		wav->afmt = FMT_S16_LE;
+		wav->bits_per_sample_out = 16;
+		wav->table = get_mulaw_table();
+	}
+	else
+		goto exit_on_error;
 
-        for (;;) {
-            vfs_fread(magic, 4, 1, wav_file->file);
+	if (wav->channels < 1 || wav->channels > 2)
+		goto exit_on_error;
 
-            if (!read_le_ulong(wav_file->file, &len)) {
-                vfs_fclose(wav_file->file);
-                g_free(wav_file);
-                wav_file = NULL;
-                return;
-            }
-            if (!strncmp("data", magic, 4))
-                break;
-            vfs_fseek(wav_file->file, len, SEEK_CUR);
-        }
-        wav_file->data_offset = vfs_ftell(wav_file->file);
-        wav_file->length = len;
-
-        wav_file->position = 0;
-        wav_file->going = 1;
+	/* skip any superflous bytes */
+	if (len)
+		fseek(wav->file, len, SEEK_CUR);
 
-        if (wav_ip.output->
-            open_audio((wav_file->bits_per_sample ==
-                        16) ? FMT_S16_LE : FMT_U8,
-                       wav_file->samples_per_sec, wav_file->channels) == 0) {
-            audio_error = TRUE;
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        name = get_title(filename);
-        rate =
-            wav_file->samples_per_sec * wav_file->channels *
-            (wav_file->bits_per_sample / 8);
-        wav_ip.set_info(name, 1000 * (wav_file->length / rate), 8 * rate,
-                        wav_file->samples_per_sec, wav_file->channels);
-        g_free(name);
-        wav_file->seek_to = -1;
-        decode_thread = g_thread_create(play_loop, NULL, TRUE, NULL);
-    }
-}
+	/* wait for data chunk */
+	for (;;)
+	{
+		fread(magic, 4, 1, wav->file);
+		if (!read_le_long(wav->file, &len))
+			goto exit_on_error;
+		if (!strncmp("data", magic, 4))
+			break;
+		fseek(wav->file, len, SEEK_CUR);
+	}
+	wav->data_offset = ftell(wav->file);
+	wav->length = len;
 
-static void
-stop(void)
-{
-    if (wav_file && wav_file->going) {
-        wav_file->going = 0;
-        g_thread_join(decode_thread);
-        wav_ip.output->close_audio();
-        g_free(wav_file);
-        wav_file = NULL;
-    }
+	wav->position = 0;
+	wav->going = TRUE;
+
+	return wav;
+
+ exit_on_error:
+	if (wav->file)
+		fclose(wav->file);
+	g_free(wav);
+	return 0;
 }
 
-static void
-wav_pause(gshort p)
+static void play_file(char *filename)
 {
-    wav_ip.output->pause(p);
+	char *name;
+	int rate;
+
+	audio_error = FALSE;
+
+	if ((wav_file = construct_wave_file(filename)) == 0)
+		return;
+
+	/* open audio channel according to wav format */
+	if (wav_ip.output->open_audio(wav_file->afmt,
+				      wav_file->samples_per_sec,
+				      wav_file->channels) == 0)
+	{
+		audio_error = TRUE;
+		fclose(wav_file->file);
+		g_free(wav_file);
+		wav_file = NULL;
+		return;
+	}
+
+	/* set some xmms config */
+	name = get_title(filename);
+	rate = wav_file->samples_per_sec * wav_file->channels *
+		(wav_file->bits_per_sample / 8);
+	wav_ip.set_info(name, 1000 * (wav_file->length / rate), 8 * rate,
+			wav_file->samples_per_sec, wav_file->channels);
+	g_free(name);
+	wav_file->seek_to = -1;
+
+	/* create play thread */
+	pthread_create(&decode_thread, NULL, play_loop, NULL);
 }
 
-static void
-seek(gint time)
+static void stop(void)
 {
-    wav_file->seek_to = time;
-
-    wav_file->eof = FALSE;
-
-    while (wav_file->seek_to != -1)
-        xmms_usleep(10000);
+	if (wav_file && wav_file->going)
+	{
+		wav_file->going = FALSE;
+		pthread_join(decode_thread, NULL);
+		wav_ip.output->close_audio();
+		g_free(wav_file);
+		wav_file = NULL;
+	}
 }
 
-static int
-get_time(void)
+static void wav_pause(short p)
+{
+	wav_ip.output->pause(p);
+}
+
+static void seek(int time)
 {
-    if (audio_error)
-        return -2;
-    if (!wav_file)
-        return -1;
-    if (!wav_file->going
-        || (wav_file->eof && !wav_ip.output->buffer_playing()))
-        return -1;
-    else {
-        return wav_ip.output->output_time();
-    }
+	wav_file->seek_to = time;
+
+	wav_file->eof = FALSE;
+
+	while (wav_file->seek_to != -1)
+		xmms_usleep(10000);
 }
 
-static void
-get_song_info(gchar * filename, gchar ** title, gint * length)
+static int get_time(void)
+{
+	if (audio_error)
+		return -2;
+	if (!wav_file)
+		return -1;
+	if (!wav_file->going || (wav_file->eof && !wav_ip.output->buffer_playing()))
+		return -1;
+	else
+	{
+		return wav_ip.output->output_time();
+	}
+}
+
+static void get_song_info(char *filename, char **title, int *length)
 {
-    gchar magic[4];
-    gulong len;
-    gint rate;
-    WaveFile *wav_file;
+	struct wave_file *wav;
+
+	if (!(wav = construct_wave_file(filename)))
+		return;
+
+	*length = 1000 * (wav->length / (wav->samples_per_sec * wav->channels *
+					 (wav->bits_per_sample / 8)) );
+	*title  = get_title(filename);
 
-    wav_file = g_malloc(sizeof(WaveFile));
-    memset(wav_file, 0, sizeof(WaveFile));
-    if (!(wav_file->file = vfs_fopen(filename, "rb")))
-        return;
+	fclose(wav->file);
+	g_free(wav);
+	wav = NULL;
+}
+
+static int is_our_file(char *filename)
+{
+	struct wave_file *wav;
+
+	if (!(wav = construct_wave_file(filename)))
+		return FALSE;
+
+	g_free(wav);
+	return TRUE;
+}
 
-    vfs_fread(magic, 1, 4, wav_file->file);
-    if (strncmp(magic, "RIFF", 4)) {
-        vfs_fclose(wav_file->file);
-        g_free(wav_file);
-        wav_file = NULL;
-        return;
-    }
-    read_le_ulong(wav_file->file, &len);
-    vfs_fread(magic, 1, 4, wav_file->file);
-    if (strncmp(magic, "WAVE", 4)) {
-        vfs_fclose(wav_file->file);
-        g_free(wav_file);
-        wav_file = NULL;
-        return;
-    }
-    for (;;) {
-        vfs_fread(magic, 1, 4, wav_file->file);
-        if (!read_le_ulong(wav_file->file, &len)) {
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        if (!strncmp("fmt ", magic, 4))
-            break;
-        vfs_fseek(wav_file->file, len, SEEK_CUR);
-    }
-    if (len < 16) {
-        vfs_fclose(wav_file->file);
-        g_free(wav_file);
-        wav_file = NULL;
-        return;
-    }
-    read_le_short(wav_file->file, &wav_file->format_tag);
-    switch (wav_file->format_tag) {
-    case WAVE_FORMAT_UNKNOWN:
-    case WAVE_FORMAT_ALAW:
-    case WAVE_FORMAT_MULAW:
-    case WAVE_FORMAT_ADPCM:
-    case WAVE_FORMAT_OKI_ADPCM:
-    case WAVE_FORMAT_DIGISTD:
-    case WAVE_FORMAT_DIGIFIX:
-    case IBM_FORMAT_MULAW:
-    case IBM_FORMAT_ALAW:
-    case IBM_FORMAT_ADPCM:
-        vfs_fclose(wav_file->file);
-        g_free(wav_file);
-        wav_file = NULL;
-        return;
-    }
-    read_le_short(wav_file->file, &wav_file->channels);
-    read_le_long(wav_file->file, &wav_file->samples_per_sec);
-    read_le_long(wav_file->file, &wav_file->avg_bytes_per_sec);
-    read_le_short(wav_file->file, &wav_file->block_align);
-    read_le_short(wav_file->file, &wav_file->bits_per_sample);
-    if (wav_file->bits_per_sample != 8 && wav_file->bits_per_sample != 16) {
-        vfs_fclose(wav_file->file);
-        g_free(wav_file);
-        wav_file = NULL;
-        return;
-    }
-    len -= 16;
-    if (len)
-        vfs_fseek(wav_file->file, len, SEEK_CUR);
+static void plugin_init(void)
+{
+#ifdef WAVDEBUGf
+	printf("wav.c compiled " __DATE__ " " __TIME__ " : ");
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+	printf("little endian");
+#elif G_BYTE_ORDER == G_BIG_ENDIAN
+	printf("big endian");
+#elif G_BYTE_ORDER == G_PDP_ENDIAN
+	printf("pdp endian");
+#else
+	printf("unknown endian");
+#endif
+	printf("\n");
+#endif
+}
 
-    for (;;) {
-        vfs_fread(magic, 4, 1, wav_file->file);
-
-        if (!read_le_ulong(wav_file->file, &len)) {
-            vfs_fclose(wav_file->file);
-            g_free(wav_file);
-            wav_file = NULL;
-            return;
-        }
-        if (!strncmp("data", magic, 4))
-            break;
-        vfs_fseek(wav_file->file, len, SEEK_CUR);
-    }
-    rate =
-        wav_file->samples_per_sec * wav_file->channels *
-        (wav_file->bits_per_sample / 8);
-    (*length) = 1000 * (len / rate);
-    (*title) = get_title(filename);
-
-    vfs_fclose(wav_file->file);
-    g_free(wav_file);
-    wav_file = NULL;
-}
+static InputPlugin wav_ip =
+{
+	NULL,
+	NULL,
+	NULL,
+	plugin_init,
+	NULL,
+	NULL,
+	is_our_file,
+	NULL,
+	play_file,
+	stop,
+	wav_pause,
+	seek,
+	NULL,
+	get_time,
+	NULL,
+	NULL,
+	NULL,
+	NULL,
+	NULL,
+	NULL,
+	NULL,
+	get_song_info,
+};
--- a/Plugins/Input/wma/wma.c	Tue May 23 13:56:14 2006 -0700
+++ b/Plugins/Input/wma/wma.c	Tue May 23 16:05:38 2006 -0700
@@ -156,8 +156,8 @@
     sprintf(message, "%s %s\n\n%s", PLUGIN_NAME, PLUGIN_VERSION, ABOUT_TXT);
 
     dialog1 = gtk_dialog_new();
-    gtk_signal_connect(GTK_OBJECT(dialog1), "destroy",
-                        GTK_SIGNAL_FUNC(gtk_widget_destroyed), &dialog1);
+    g_signal_connect(G_OBJECT(dialog1), "destroy",
+                        G_CALLBACK(gtk_widget_destroyed), &dialog1);
     gtk_window_set_title(GTK_WINDOW(dialog1), title);
     gtk_window_set_policy(GTK_WINDOW(dialog1), FALSE, FALSE, FALSE);
     gtk_container_border_width(GTK_CONTAINER(dialog1), 5);
@@ -166,8 +166,8 @@
     gtk_widget_show(label1);
 
     button1 = gtk_button_new_with_label(_(" Close "));
-    gtk_signal_connect_object(GTK_OBJECT(button1), "clicked",
-	                        GTK_SIGNAL_FUNC(gtk_widget_destroy),
+    g_signal_connect_swapped(G_OBJECT(button1), "clicked",
+	                        G_CALLBACK(gtk_widget_destroy),
     	                        GTK_OBJECT(dialog1));
     gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog1)->action_area), button1,
                      FALSE, FALSE, 0);
@@ -523,8 +523,8 @@
 
     dialog = gtk_dialog_new();
 
-    gtk_signal_connect(GTK_OBJECT(dialog), "destroy",
-        GTK_SIGNAL_FUNC(gtk_widget_destroyed), &dialog);
+    g_signal_connect(G_OBJECT(dialog), "destroy",
+        G_CALLBACK(gtk_widget_destroyed), &dialog);
 
     gtk_window_set_title(GTK_WINDOW(dialog), title);
     gtk_window_set_type_hint(GTK_WINDOW(dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
@@ -832,8 +832,8 @@
     gtk_dialog_add_action_widget(GTK_DIALOG(dialog), okbutton, GTK_RESPONSE_OK);
     GTK_WIDGET_SET_FLAGS(okbutton, GTK_CAN_DEFAULT);
 
-    gtk_signal_connect_object(GTK_OBJECT(okbutton), "clicked",
-            GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(dialog));
+    g_signal_connect_swapped(G_OBJECT(okbutton), "clicked",
+            G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(dialog));
 
     gtk_widget_show(dialog);