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