static void
impl_dispose (GObject *object)
{
	RBGenericPlayerPlaylistSourcePrivate *priv = GET_PRIVATE (object);

	if (priv->save_playlist_id != 0) {
		g_source_remove (priv->save_playlist_id);
		save_playlist (RB_GENERIC_PLAYER_PLAYLIST_SOURCE (object));
	}

	if (priv->player_source != NULL) {
		g_object_unref (priv->player_source);
		priv->player_source = NULL;
	}

	G_OBJECT_CLASS (rb_generic_player_playlist_source_parent_class)->dispose (object);
}
Exemplo n.º 2
0
static gboolean
eina_lomo_plugin_deactivate (EinaActivatable *activatable, EinaApplication *application, GError **error)
{
	EinaLomoPlugin      *plugin = EINA_LOMO_PLUGIN(activatable);
	EinaLomoPluginPrivate *priv = plugin->priv;

	EinaApplication *app = eina_activatable_get_application(activatable);
	LomoPlayer *lomo = eina_application_get_interface(app, "lomo");
	if (!LOMO_IS_PLAYER(lomo) || (lomo != priv->lomo))
	{
		g_set_error(error, eina_lomo_plugin_quark(),
			EINA_LOMO_PLUGIN_ERROR_CANNOT_DESTROY_ENGINE, N_("Cannot destroy engine"));
		return FALSE;
	}
	eina_application_set_interface(app, "lomo", NULL);
	save_playlist(plugin);

	g_object_unref(priv->lomo);
	priv->lomo = NULL;

	return TRUE;
}