diff libpurple/mediamanager.c @ 26392:9c671fc1b351

Give more information to element creation functions. This should allow for Picture in Picture support.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Tue, 31 Mar 2009 23:53:03 +0000
parents 507d2366d329
children 84d09c6499f1
line wrap: on
line diff
--- a/libpurple/mediamanager.c	Tue Mar 31 06:49:19 2009 +0000
+++ b/libpurple/mediamanager.c	Tue Mar 31 23:53:03 2009 +0000
@@ -353,7 +353,8 @@
 
 GstElement *
 purple_media_manager_get_element(PurpleMediaManager *manager,
-		PurpleMediaSessionType type)
+		PurpleMediaSessionType type, PurpleMedia *media,
+		const gchar *session_id, const gchar *participant)
 {
 #ifdef USE_VV
 	GstElement *ret = NULL;
@@ -383,7 +384,7 @@
 
 		if (ret == NULL) {
 			GstElement *bin, *fakesink;
-			ret = info->create();
+			ret = info->create(media, session_id, participant);
 			bin = gst_bin_new(info->id);
 			tee = gst_element_factory_make("tee", "tee");
 			gst_bin_add_many(GST_BIN(bin), ret, tee, NULL);
@@ -415,7 +416,7 @@
 		gst_pad_set_active(ghost, TRUE);
 		gst_element_add_pad(ret, ghost);
 	} else {
-		ret = info->create();
+		ret = info->create(media, session_id, participant);
 	}
 
 	if (ret == NULL)
@@ -612,7 +613,9 @@
 			queue = gst_element_factory_make(
 					"queue", NULL);
 			ow->sink = purple_media_manager_get_element(
-					manager, PURPLE_MEDIA_RECV_VIDEO);
+					manager, PURPLE_MEDIA_RECV_VIDEO,
+					ow->media, ow->session_id,
+					ow->participant);
 
 			if (participant == NULL) {
 				/* aka this is a preview sink */