コード例 #1
0
ファイル: playlist.c プロジェクト: dsheeler/xmms2
static void
xmms_playlist_destroy (xmms_object_t *object)
{
	xmms_config_property_t *val;
	xmms_playlist_t *playlist = (xmms_playlist_t *) object;

	XMMS_DBG ("Deactivating playlist object");

	g_return_if_fail (playlist);

	val = xmms_config_lookup ("playlist.repeat_one");
	xmms_config_property_callback_remove (val, on_playlist_r_one_changed, playlist);

	val = xmms_config_lookup ("playlist.repeat_all");
	xmms_config_property_callback_remove (val, on_playlist_r_all_changed, playlist);

	xmms_object_disconnect (XMMS_OBJECT (playlist->medialib),
	                        XMMS_IPC_SIGNAL_MEDIALIB_ENTRY_REMOVED,
	                        on_medialib_entry_removed, playlist);

	xmms_object_disconnect (XMMS_OBJECT (playlist->colldag),
	                        XMMS_IPC_SIGNAL_COLLECTION_CHANGED,
	                        on_collection_changed, playlist);

	xmms_object_unref (playlist->colldag);
	xmms_object_unref (playlist->medialib);

	g_mutex_free (playlist->mutex);

	xmms_playlist_unregister_ipc_commands ();
}
コード例 #2
0
ファイル: ipc.c プロジェクト: mantaraya36/xmms2-mantaraya36
/**
 * Unregister a signal
 */
void
xmms_ipc_signal_unregister (xmms_ipc_signals_t signalid)
{
	xmms_object_t *obj;

	g_mutex_lock (ipc_object_pool_lock);
	obj = ipc_object_pool->signals[signalid];
	if (obj) {
		xmms_object_disconnect (obj, signalid, xmms_ipc_signal_cb, GUINT_TO_POINTER (signalid));
		ipc_object_pool->signals[signalid] = NULL;
	}
	g_mutex_unlock (ipc_object_pool_lock);
}
コード例 #3
0
ファイル: playlist_updater.c プロジェクト: chrippa/xmms2
static void
xmms_playlist_updater_destroy (xmms_object_t *object)
{
	GList *it;
	xmms_playlist_updater_t *updater = (xmms_playlist_updater_t *) object;

	g_return_if_fail (updater != NULL);

	XMMS_DBG ("Deactivating playlist updater object.");

	xmms_object_disconnect (XMMS_OBJECT (updater->playlist),
	                        XMMS_IPC_SIGNAL_COLLECTION_CHANGED,
	                        xmms_playlist_updater_need_update, updater);

	xmms_object_disconnect (XMMS_OBJECT (updater->playlist),
	                        XMMS_IPC_SIGNAL_PLAYLIST_CHANGED,
	                        xmms_playlist_updater_need_update, updater);

	xmms_object_disconnect (XMMS_OBJECT (updater->playlist),
	                        XMMS_IPC_SIGNAL_PLAYLIST_CURRENT_POS,
	                        xmms_playlist_updater_need_update, updater);

	xmms_playlist_updater_stop (updater);

	xmms_object_unref (updater->playlist);

	for (it = updater->stack; it; it = g_list_next (it)) {
		gchar *plname;
		plname = (gchar *) it->data;
		g_free (plname);
	}
	g_list_free (updater->stack);

	g_mutex_free (updater->mutex);
	g_cond_free (updater->cond);
}