aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2010-03-07 07:27:56 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-03-29 23:36:24 +0800
commitb860ad599ff905a735ca00f4f256c43411c09a85 (patch)
treefdf90f33db97791c39ac527e4d68e383bb9bc475
parentfc5be44316c04af418f131f6be0d9e4d9dda2e39 (diff)
downloadgsoc2013-empathy-b860ad599ff905a735ca00f4f256c43411c09a85.tar
gsoc2013-empathy-b860ad599ff905a735ca00f4f256c43411c09a85.tar.gz
gsoc2013-empathy-b860ad599ff905a735ca00f4f256c43411c09a85.tar.bz2
gsoc2013-empathy-b860ad599ff905a735ca00f4f256c43411c09a85.tar.lz
gsoc2013-empathy-b860ad599ff905a735ca00f4f256c43411c09a85.tar.xz
gsoc2013-empathy-b860ad599ff905a735ca00f4f256c43411c09a85.tar.zst
gsoc2013-empathy-b860ad599ff905a735ca00f4f256c43411c09a85.zip
Return a telepathy error if the source can't be added
-rw-r--r--libempathy/empathy-call-handler.c11
-rw-r--r--src/empathy-call-window.c3
2 files changed, 10 insertions, 4 deletions
diff --git a/libempathy/empathy-call-handler.c b/libempathy/empathy-call-handler.c
index 9cfee1d86..31b66f3f4 100644
--- a/libempathy/empathy-call-handler.c
+++ b/libempathy/empathy-call-handler.c
@@ -238,8 +238,8 @@ empathy_call_handler_class_init (EmpathyCallHandlerClass *klass)
signals[SINK_PAD_ADDED] =
g_signal_new ("sink-pad-added", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
- _empathy_marshal_VOID__OBJECT_UINT,
- G_TYPE_NONE,
+ _empathy_marshal_BOOLEAN__OBJECT_UINT,
+ G_TYPE_BOOLEAN,
2, GST_TYPE_PAD, G_TYPE_UINT);
signals[REQUEST_RESOURCE] =
@@ -375,6 +375,7 @@ empathy_call_handler_tf_channel_stream_created_cb (TfChannel *tfchannel,
{
guint media_type;
GstPad *spad;
+ gboolean retval;
g_signal_connect (stream, "src-pad-added",
G_CALLBACK (empathy_call_handler_tf_stream_src_pad_added_cb), handler);
@@ -388,7 +389,11 @@ empathy_call_handler_tf_channel_stream_created_cb (TfChannel *tfchannel,
"sink-pad", &spad, NULL);
g_signal_emit (G_OBJECT (handler), signals[SINK_PAD_ADDED], 0,
- spad, media_type);
+ spad, media_type, &retval);
+
+ if (!retval)
+ tf_stream_error (stream, TP_MEDIA_STREAM_ERROR_MEDIA_ERROR,
+ "Could not link source");
gst_object_unref (spad);
}
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index 2b3be11aa..2e1be50e2 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -2116,7 +2116,7 @@ empathy_call_window_src_added_cb (EmpathyCallHandler *handler,
return TRUE;
}
-static void
+static gboolean
empathy_call_window_sink_added_cb (EmpathyCallHandler *handler,
GstPad *sink, guint media_type, gpointer user_data)
{
@@ -2148,6 +2148,7 @@ empathy_call_window_sink_added_cb (EmpathyCallHandler *handler,
g_assert_not_reached ();
}
+ return TRUE;
}
static void