rem: configfile = g_build_path (G_DIR_SEPARATOR_S, g_get_home_dir (), CONFIG_FILE, NULL); xine_config_save (bvw->priv->xine, configfile); g_free (configfile);
context: bacon_video_widget_unrealize (GtkWidget *widget){	BaconVideoWidget *bvw;	char *configfile;	xine_cfg_entry_t entry;	g_return_if_fail (widget != NULL);	g_return_if_fail (BACON_IS_VIDEO_WIDGET (widget));	bvw = BACON_VIDEO_WIDGET (widget);	/* Kill the TV out */	xine_tvmode_exit (bvw->priv->xine);	/* Hide all windows */	if (GTK_WIDGET_MAPPED (widget))		gtk_widget_unmap (widget);	GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);	/* Kill the OSD */	xine_osd_hide (bvw->priv->osd, 0);	xine_osd_free (bvw->priv->osd);	/* stop the playback */	xine_close (bvw->priv->stream);	/* Get rid of the rest of the stream */	xine_event_dispose_queue (bvw->priv->ev_queue);	xine_dispose (bvw->priv->stream);	bvw->priv->stream = NULL;	/* Put the current volume in the config system */	xine_config_lookup_entry (bvw->priv->xine, "misc.amp_level", &entry);	entry.num_value = bvw->priv->volume;	xine_config_update_entry (bvw->priv->xine, &entry);	/* Kill the drivers */	if (bvw->priv->vo_driver != NULL)		xine_close_video_driver (bvw->priv->xine,				bvw->priv->vo_driver);	if (bvw->priv->ao_driver != NULL)		xine_close_audio_driver (bvw->priv->xine,				bvw->priv->ao_driver);	/* save config */	configfile = g_build_path (G_DIR_SEPARATOR_S,			g_get_home_dir (), CONFIG_FILE, NULL);	xine_config_save (bvw->priv->xine, configfile);	g_free (configfile);	/* stop event thread */	xine_exit (bvw->priv->xine);	bvw->priv->xine = NULL;	/* This destroys widget->window and unsets the realized flag */	if (GTK_WIDGET_CLASS (parent_class)->unrealize)		(*GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);}