diff libpurple/mediamanager.c @ 23876:f10e0ac24595

* Added input/output volume preferences for voice conversations. * Properly freed media sessions regarding the media manager. * Made purple_media_session_get_sink actually return the sink.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Sun, 17 Aug 2008 07:55:38 +0000
parents 1d9a2296d5d2
children 0baeafee93be
line wrap: on
line diff
--- a/libpurple/mediamanager.c	Sun Aug 17 01:06:27 2008 +0000
+++ b/libpurple/mediamanager.c	Sun Aug 17 07:55:38 2008 +0000
@@ -116,6 +116,11 @@
 static void
 purple_media_manager_finalize (GObject *media)
 {
+	PurpleMediaManagerPrivate *priv = PURPLE_MEDIA_MANAGER_GET_PRIVATE(media);
+	for (; priv->medias; priv->medias =
+			g_list_delete_link(priv->medias, priv->medias)) {
+		g_object_unref(priv->medias->data);
+	}
 	parent_class->finalize(media);
 }
 
@@ -168,4 +173,20 @@
 	return media;
 }
 
+GList *
+purple_media_manager_get_media(PurpleMediaManager *manager)
+{
+	return manager->priv->medias;
+}
+
+void
+purple_media_manager_remove_media(PurpleMediaManager *manager,
+				  PurpleMedia *media)
+{
+	GList *list = g_list_find(manager->priv->medias, media);
+	if (list)
+		manager->priv->medias =
+			g_list_delete_link(manager->priv->medias, list);
+}
+
 #endif  /* USE_VV */