diff libpurple/media.c @ 26203:7738f530a967

Added the connection property back to PurpleMedia.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Wed, 25 Feb 2009 01:58:57 +0000
parents 0a6f1f796d21
children e411aad4346b
line wrap: on
line diff
--- a/libpurple/media.c	Tue Feb 24 23:42:38 2009 +0000
+++ b/libpurple/media.c	Wed Feb 25 01:58:57 2009 +0000
@@ -87,6 +87,7 @@
 struct _PurpleMediaPrivate
 {
 	PurpleMediaManager *manager;
+	PurpleConnection *pc;
 	FsConference *conference;
 	gboolean initiator;
 
@@ -135,6 +136,7 @@
 enum {
 	PROP_0,
 	PROP_MANAGER,
+	PROP_CONNECTION,
 	PROP_CONFERENCE,
 	PROP_INITIATOR,
 };
@@ -196,6 +198,12 @@
 			PURPLE_TYPE_MEDIA_MANAGER,
 			G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
 
+	g_object_class_install_property(gobject_class, PROP_CONNECTION,
+			g_param_spec_pointer("connection",
+			"PurpleConnection",
+			"The connection this media session is on.",
+			G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
+
 	g_object_class_install_property(gobject_class, PROP_CONFERENCE,
 			g_param_spec_object("conference",
 			"Farsight conference",
@@ -407,6 +415,9 @@
 
 			purple_media_setup_pipeline(media);
 			break;
+		case PROP_CONNECTION:
+			media->priv->pc = g_value_get_pointer(value);
+			break;
 		case PROP_CONFERENCE: {
 			if (media->priv->conference)
 				gst_object_unref(media->priv->conference);
@@ -437,6 +448,9 @@
 		case PROP_MANAGER:
 			g_value_set_object(value, media->priv->manager);
 			break;
+		case PROP_CONNECTION:
+			g_value_set_pointer(value, media->priv->pc);
+			break;
 		case PROP_CONFERENCE:
 			g_value_set_object(value, media->priv->conference);
 			break;
@@ -1360,6 +1374,15 @@
 	return purple_media_manager_get_pipeline(media->priv->manager);
 }
 
+PurpleConnection *
+purple_media_get_connection(PurpleMedia *media)
+{
+	PurpleConnection *pc;
+	g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL);
+	g_object_get(G_OBJECT(media), "connection", &pc, NULL);
+	return pc;
+}
+
 void
 purple_media_error(PurpleMedia *media, const gchar *error, ...)
 {