aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-call-handler.c
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>2009-02-17 05:24:38 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2009-02-17 05:24:38 +0800
commitdf9360528982684759437320d4d1277ccee10bba (patch)
treeeabde841108c4cecc0f26b88856355a9500addaf /libempathy/empathy-call-handler.c
parentd3663278d391680b6bef16f383e0fc7db8d8ac18 (diff)
downloadgsoc2013-empathy-df9360528982684759437320d4d1277ccee10bba.tar
gsoc2013-empathy-df9360528982684759437320d4d1277ccee10bba.tar.gz
gsoc2013-empathy-df9360528982684759437320d4d1277ccee10bba.tar.bz2
gsoc2013-empathy-df9360528982684759437320d4d1277ccee10bba.tar.lz
gsoc2013-empathy-df9360528982684759437320d4d1277ccee10bba.tar.xz
gsoc2013-empathy-df9360528982684759437320d4d1277ccee10bba.tar.zst
gsoc2013-empathy-df9360528982684759437320d4d1277ccee10bba.zip
Signal closed from the call-handler
Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> svn path=/trunk/; revision=2478
Diffstat (limited to 'libempathy/empathy-call-handler.c')
-rw-r--r--libempathy/empathy-call-handler.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/libempathy/empathy-call-handler.c b/libempathy/empathy-call-handler.c
index 40abf0d60..aecf655be 100644
--- a/libempathy/empathy-call-handler.c
+++ b/libempathy/empathy-call-handler.c
@@ -39,6 +39,7 @@ enum {
CONFERENCE_ADDED,
SRC_PAD_ADDED,
SINK_PAD_ADDED,
+ CLOSED,
LAST_SIGNAL
};
@@ -208,6 +209,13 @@ empathy_call_handler_class_init (EmpathyCallHandlerClass *klass)
_empathy_marshal_VOID__OBJECT_UINT,
G_TYPE_NONE,
2, GST_TYPE_PAD, G_TYPE_UINT);
+
+ signals[CLOSED] =
+ g_signal_new ("closed", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
EmpathyCallHandler *
@@ -294,6 +302,13 @@ empathy_call_handler_tf_channel_stream_created_cb (TfChannel *tfchannel,
}
static void
+empathy_call_handler_tf_channel_closed_cb (TfChannel *tfchannel,
+ EmpathyCallHandler *handler)
+{
+ g_signal_emit (G_OBJECT (handler), signals[CLOSED], 0);
+}
+
+static void
empathy_call_handler_start_tpfs (EmpathyCallHandler *self)
{
EmpathyCallHandlerPriv *priv = GET_PRIV (self);
@@ -310,6 +325,8 @@ empathy_call_handler_start_tpfs (EmpathyCallHandler *self)
G_CALLBACK (empathy_call_handler_tf_channel_session_created_cb), self);
g_signal_connect (priv->tfchannel, "stream-created",
G_CALLBACK (empathy_call_handler_tf_channel_stream_created_cb), self);
+ g_signal_connect (priv->tfchannel, "closed",
+ G_CALLBACK (empathy_call_handler_tf_channel_closed_cb), self);
g_object_unref (channel);
}