aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-call-handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy/empathy-call-handler.c')
-rw-r--r--libempathy/empathy-call-handler.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libempathy/empathy-call-handler.c b/libempathy/empathy-call-handler.c
index feb6793ca..b8e893486 100644
--- a/libempathy/empathy-call-handler.c
+++ b/libempathy/empathy-call-handler.c
@@ -44,6 +44,7 @@ enum {
REQUEST_RESOURCE,
CLOSED,
STREAM_CLOSED,
+ CANDIDATES_CHANGED,
LAST_SIGNAL
};
@@ -373,6 +374,12 @@ empathy_call_handler_class_init (EmpathyCallHandlerClass *klass)
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, TF_TYPE_STREAM);
+
+ signals[CANDIDATES_CHANGED] =
+ g_signal_new ("candidates-changed", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE, 1, G_TYPE_UINT);
}
/**
@@ -490,6 +497,9 @@ update_candidates (EmpathyCallHandler *self,
priv->audio_local_candidate = fs_candidate_copy (local_candidate);
g_object_notify (G_OBJECT (self), "audio-local-candidate");
}
+
+ g_signal_emit (G_OBJECT (self), signals[CANDIDATES_CHANGED], 0,
+ FS_MEDIA_TYPE_AUDIO);
}
else if (type == FS_MEDIA_TYPE_VIDEO)
{
@@ -506,6 +516,9 @@ update_candidates (EmpathyCallHandler *self,
priv->video_local_candidate = fs_candidate_copy (local_candidate);
g_object_notify (G_OBJECT (self), "video-local-candidate");
}
+
+ g_signal_emit (G_OBJECT (self), signals[CANDIDATES_CHANGED], 0,
+ FS_MEDIA_TYPE_VIDEO);
}
g_object_unref (session);