besser82 / rpms / pidgin

Forked from rpms/pidgin 6 years ago
Clone
David Woodhouse 313cf00
David Woodhouse 313cf00
# HG changeset patch
David Woodhouse 313cf00
# User Youness Alaoui <kakaroto@kakaroto.homelinux.net>
David Woodhouse 313cf00
# Date 1407280989 14400
David Woodhouse 313cf00
# Node ID 88b09a22b7c45cee561af2750ea0375419af52bd
David Woodhouse 313cf00
# Parent  5f5abd63c305badb2749d73cfd461d1468d6ed83
David Woodhouse 313cf00
media: Send a signal when a candidate pair is established
David Woodhouse 313cf00
David Woodhouse 313cf00
This will be used for calling purple_media_set_send_rtcp_mux() where
David Woodhouse 313cf00
appropriate.
David Woodhouse 313cf00
David Woodhouse 313cf00
diff --git a/libpurple/marshallers.list b/libpurple/marshallers.list
David Woodhouse 313cf00
--- a/libpurple/marshallers.list
David Woodhouse 313cf00
+++ b/libpurple/marshallers.list
David Woodhouse 313cf00
@@ -6,3 +6,4 @@
David Woodhouse 313cf00
 VOID:ENUM,STRING,STRING,BOOLEAN
David Woodhouse 313cf00
 VOID:FLAGS,FLAGS
David Woodhouse 313cf00
 VOID:STRING,STRING,OBJECT,OBJECT
David Woodhouse 313cf00
+VOID:POINTER,POINTER,OBJECT,OBJECT
David Woodhouse 313cf00
diff --git a/libpurple/media.c b/libpurple/media.c
David Woodhouse 313cf00
--- a/libpurple/media.c
David Woodhouse 313cf00
+++ b/libpurple/media.c
David Woodhouse 313cf00
@@ -141,6 +141,7 @@
David Woodhouse 313cf00
 	NEW_CANDIDATE,
David Woodhouse 313cf00
 	STATE_CHANGED,
David Woodhouse 313cf00
 	STREAM_INFO,
David Woodhouse 313cf00
+	CANDIDATE_PAIR_ESTABLISHED,
David Woodhouse 313cf00
 	LAST_SIGNAL
David Woodhouse 313cf00
 };
David Woodhouse 313cf00
 static guint purple_media_signals[LAST_SIGNAL] = {0};
David Woodhouse 313cf00
@@ -274,6 +275,11 @@
David Woodhouse 313cf00
 					 purple_smarshal_VOID__ENUM_STRING_STRING_BOOLEAN,
David Woodhouse 313cf00
 					 G_TYPE_NONE, 4, PURPLE_MEDIA_TYPE_INFO_TYPE,
David Woodhouse 313cf00
 					 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN);
David Woodhouse 313cf00
+	purple_media_signals[CANDIDATE_PAIR_ESTABLISHED] = g_signal_new("candidate-pair-established", G_TYPE_FROM_CLASS(klass),
David Woodhouse 313cf00
+					 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
David Woodhouse 313cf00
+					 purple_smarshal_VOID__POINTER_POINTER_OBJECT_OBJECT,
David Woodhouse 313cf00
+					 G_TYPE_NONE, 4, G_TYPE_POINTER, G_TYPE_POINTER,
David Woodhouse 313cf00
+					 PURPLE_TYPE_MEDIA_CANDIDATE, PURPLE_TYPE_MEDIA_CANDIDATE);
David Woodhouse 313cf00
 	g_type_class_add_private(klass, sizeof(PurpleMediaPrivate));
David Woodhouse 313cf00
 }
David Woodhouse 313cf00
 
David Woodhouse 313cf00
@@ -1048,6 +1054,8 @@
David Woodhouse 313cf00
 				purple_media_candidate_copy(
David Woodhouse 313cf00
 				remote_candidate));
David Woodhouse 313cf00
 
David Woodhouse 313cf00
+	g_signal_emit(media, purple_media_signals[CANDIDATE_PAIR_ESTABLISHED],
David Woodhouse 313cf00
+		0, sess_id, name, local_candidate, remote_candidate);
David Woodhouse 313cf00
 	purple_debug_info("media", "candidate pair established\n");
David Woodhouse 313cf00
 }
David Woodhouse 313cf00
 
David Woodhouse 313cf00