コード例 #1
0
ファイル: xmrplayer.c プロジェクト: Juson/xmradio
static void
xmr_player_get_property(GObject *object,
		       guint prop_id,
		       GValue *value,
		       GParamSpec *pspec)
{
	XmrPlayer *player = XMR_PLAYER(object);
	XmrPlayerPrivate *priv = player->priv;

	switch(prop_id)
	{
	case PROP_PLAYBIN:
		g_value_set_object (value, priv->playbin);
		break;
	case PROP_BUS:
		if (priv->playbin)
		{
			GstBus *bus;
			bus = gst_element_get_bus (priv->playbin);
			g_value_set_object(value, bus);
			gst_object_unref(bus);
		}
		break;
	default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
		break;
	}
}
コード例 #2
0
ファイル: xmrplayer.c プロジェクト: Juson/xmradio
static void
xmr_player_dispose(GObject *object)
{
	XmrPlayer *player = XMR_PLAYER(object);
	XmrPlayerPrivate *priv = player->priv;

	if (priv->tick_timeout_id != 0)
	{
		g_source_remove (priv->tick_timeout_id);
		priv->tick_timeout_id = 0;
	}

	if (priv->playbin != NULL)
	{
		gst_element_set_state(priv->playbin, GST_STATE_NULL);
		g_object_unref(priv->playbin);
		priv->playbin = NULL;
		priv->audio_sink = NULL;
	}

	g_free(priv->uri);
	g_free(priv->prev_uri);

	G_OBJECT_CLASS(xmr_player_parent_class)->dispose(object);
}
コード例 #3
0
ファイル: xmrplayer.c プロジェクト: dereky7/xmradio
static void
xmr_player_dispose(GObject *object)
{
	XmrPlayer *player = XMR_PLAYER(object);
	XmrPlayerPrivate *priv = player->priv;
	
	libvlc_event_manager_t *event_mgr;
	gint i;

	event_mgr = libvlc_media_player_event_manager(priv->player);
	
	for (i = 0; i < g_vlc_event_count; ++i)
		libvlc_event_detach(event_mgr, g_vlc_events[i], vlc_event_callback, player);

	if (priv->event_idle_id != 0)
	{
		g_source_remove (priv->event_idle_id);
		priv->event_idle_id = 0;
	}

	if (priv->event_queue)
	{
		g_async_queue_unref(priv->event_queue);
		priv->event_queue = NULL;
	}

	libvlc_media_player_release(priv->player);
	libvlc_release(priv->instance);

	G_OBJECT_CLASS(xmr_player_parent_class)->dispose(object);
}
コード例 #4
0
ファイル: xmrplayer.c プロジェクト: dereky7/xmradio
static void
xmr_player_get_property(GObject *object,
		       guint prop_id,
		       GValue *value,
		       GParamSpec *pspec)
{
	XmrPlayer *player = XMR_PLAYER(object);
	XmrPlayerPrivate *priv = player->priv;

	switch(prop_id)
	{
	case PROP_PLAYER:
		g_value_set_object (value, priv->player);
		break;

	default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
		break;
	}
}