add: g_async_queue_push (gtx->priv->queue, signal); g_idle_add ((GSourceFunc) gtk_xine_idle_signal, gtx);
context: xine_error (GtkXine *gtx){	int error;	error = xine_get_error (gtx->priv->xine);	switch (error)	{	case XINE_ERROR_NONE:		break;	case XINE_ERROR_NO_INPUT_PLUGIN:		g_message ("XINE_ERROR_NO_INPUT_PLUGIN");		g_signal_emit (G_OBJECT (gtx),				gtx_table_signals[PLAY_ERROR], 0,				GTX_NO_INPUT_PLUGIN);		break;	case XINE_ERROR_NO_DEMUXER_PLUGIN:		g_message ("XINE_ERROR_NO_DEMUXER_PLUGIN");		g_signal_emit (G_OBJECT (gtx),				gtx_table_signals[PLAY_ERROR], 0,				GTX_NO_DEMUXER_PLUGIN);		break;	case XINE_ERROR_DEMUXER_FAILED:		g_message ("XINE_ERROR_DEMUXER_FAILED");		g_signal_emit (G_OBJECT (gtx),				gtx_table_signals[PLAY_ERROR], 0,				GTX_DEMUXER_FAILED);		break;	default:		break;	}}