aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-02-21 15:26:19 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-02-21 15:26:19 +0800
commit894b1f315b62499a5d305aff6b937093a20df1a4 (patch)
tree8cecdaff46a2ee3360f9e676d11672c388a23082 /libempathy-gtk
parent58574c8dc2e5261d8c89b9a6b6fda41687a386ea (diff)
parent1af2b9b657046268d0a44fd2aa588ea281ad1f20 (diff)
downloadgsoc2013-empathy-894b1f315b62499a5d305aff6b937093a20df1a4.tar
gsoc2013-empathy-894b1f315b62499a5d305aff6b937093a20df1a4.tar.gz
gsoc2013-empathy-894b1f315b62499a5d305aff6b937093a20df1a4.tar.bz2
gsoc2013-empathy-894b1f315b62499a5d305aff6b937093a20df1a4.tar.lz
gsoc2013-empathy-894b1f315b62499a5d305aff6b937093a20df1a4.tar.xz
gsoc2013-empathy-894b1f315b62499a5d305aff6b937093a20df1a4.tar.zst
gsoc2013-empathy-894b1f315b62499a5d305aff6b937093a20df1a4.zip
Merge remote-tracking branch 'origin/call1' into master+call
Conflicts: configure.ac telepathy-yell
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-call-utils.c89
-rw-r--r--libempathy-gtk/empathy-call-utils.h5
-rw-r--r--libempathy-gtk/empathy-log-window.c8
-rw-r--r--libempathy-gtk/empathy-new-call-dialog.c2
4 files changed, 92 insertions, 12 deletions
diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c
index 16526d354..c2363c419 100644
--- a/libempathy-gtk/empathy-call-utils.c
+++ b/libempathy-gtk/empathy-call-utils.c
@@ -27,8 +27,6 @@
#include <telepathy-glib/telepathy-glib.h>
-#include <telepathy-yell/telepathy-yell.h>
-
#include "empathy-call-utils.h"
#include <libempathy/empathy-gsettings.h>
@@ -85,14 +83,14 @@ empathy_call_create_call_request (const gchar *contact,
{
return tp_asv_new (
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
- TPY_IFACE_CHANNEL_TYPE_CALL,
+ TP_IFACE_CHANNEL_TYPE_CALL,
TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT,
TP_HANDLE_TYPE_CONTACT,
TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING,
contact,
- TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO, G_TYPE_BOOLEAN,
+ TP_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO, G_TYPE_BOOLEAN,
initial_audio,
- TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO, G_TYPE_BOOLEAN,
+ TP_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO, G_TYPE_BOOLEAN,
initial_video,
NULL);
}
@@ -283,3 +281,84 @@ empathy_call_set_stream_properties (GstElement *element,
g_object_unref (gsettings_call);
}
+
+/* Copied from telepathy-yell call-channel.c */
+void
+empathy_call_channel_send_video (TpCallChannel *self,
+ gboolean send)
+{
+ GPtrArray *contents;
+ gboolean found = FALSE;
+ guint i;
+
+ g_return_if_fail (TP_IS_CALL_CHANNEL (self));
+
+ /* Loop over all the contents, if some of them a video set all their
+ * streams to sending, otherwise request a video channel in case we want to
+ * sent */
+ contents = tp_call_channel_get_contents (self);
+ for (i = 0 ; i < contents->len ; i++)
+ {
+ TpCallContent *content = g_ptr_array_index (contents, i);
+
+ if (tp_call_content_get_media_type (content) ==
+ TP_MEDIA_STREAM_TYPE_VIDEO)
+ {
+ GPtrArray *streams;
+ guint j;
+
+ found = TRUE;
+ streams = tp_call_content_get_streams (content);
+ for (j = 0; j < streams->len; j++)
+ {
+ TpCallStream *stream = g_ptr_array_index (streams, j);
+
+ tp_call_stream_set_sending_async (stream, send, NULL, NULL);
+ }
+ }
+ }
+
+ if (send && !found)
+ {
+ tp_call_channel_add_content_async (self, "video",
+ TP_MEDIA_STREAM_TYPE_VIDEO, NULL, NULL);
+ }
+}
+
+/* Copied from telepathy-yell call-channel.c */
+TpSendingState
+empathy_call_channel_get_video_state (TpCallChannel *self)
+{
+ TpSendingState result = TP_SENDING_STATE_NONE;
+ GPtrArray *contents;
+ guint i;
+
+ g_return_val_if_fail (TP_IS_CALL_CHANNEL (self), TP_SENDING_STATE_NONE);
+
+ contents = tp_call_channel_get_contents (self);
+ for (i = 0 ; i < contents->len ; i++)
+ {
+ TpCallContent *content = g_ptr_array_index (contents, i);
+
+ if (tp_call_content_get_media_type (content) ==
+ TP_MEDIA_STREAM_TYPE_VIDEO)
+ {
+ GPtrArray *streams;
+ guint j;
+
+ streams = tp_call_content_get_streams (content);
+ for (j = 0; j < streams->len; j++)
+ {
+ TpCallStream *stream = g_ptr_array_index (streams, j);
+ TpSendingState state;
+
+ state = tp_call_stream_get_local_sending_state (stream);
+ if (state != TP_SENDING_STATE_PENDING_STOP_SENDING &&
+ state > result)
+ result = state;
+ }
+ }
+ }
+
+ return result;
+}
diff --git a/libempathy-gtk/empathy-call-utils.h b/libempathy-gtk/empathy-call-utils.h
index 836103100..99e4ecf91 100644
--- a/libempathy-gtk/empathy-call-utils.h
+++ b/libempathy-gtk/empathy-call-utils.h
@@ -43,6 +43,11 @@ GHashTable * empathy_call_create_streamed_media_request (const gchar *contact,
void empathy_call_set_stream_properties (GstElement *element,
gboolean echo_cancellation);
+TpSendingState empathy_call_channel_get_video_state (TpCallChannel *self);
+void empathy_call_channel_send_video (TpCallChannel *self,
+ gboolean send);
+
+
G_END_DECLS
#endif /* __EMPATHY_CALL_UTILS_H__ */
diff --git a/libempathy-gtk/empathy-log-window.c b/libempathy-gtk/empathy-log-window.c
index 51a47c7a3..13fdefbd5 100644
--- a/libempathy-gtk/empathy-log-window.c
+++ b/libempathy-gtk/empathy-log-window.c
@@ -34,8 +34,6 @@
#include <telepathy-glib/telepathy-glib.h>
#include <telepathy-glib/proxy-subclass.h>
-#include <telepathy-yell/telepathy-yell.h>
-
#include <telepathy-logger/telepathy-logger.h>
#ifdef HAVE_CALL_LOGS
# include <telepathy-logger/call-event.h>
@@ -873,7 +871,7 @@ maybe_refresh_logs (TpChannel *channel,
!(event_mask & TPL_EVENT_MASK_TEXT))
goto out;
if ((!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA) ||
- !tp_strdiff (type, TPY_IFACE_CHANNEL_TYPE_CALL)) &&
+ !tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_CALL)) &&
!(event_mask & TPL_EVENT_MASK_CALL))
goto out;
@@ -1015,7 +1013,7 @@ observe_channels (TpSimpleObserver *observer,
tp_g_signal_connect_object (channel, "invalidated",
G_CALLBACK (on_channel_ended), self, 0);
}
- else if (!tp_strdiff (type, TPY_IFACE_CHANNEL_TYPE_CALL) ||
+ else if (!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_CALL) ||
!tp_strdiff (type, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA))
{
g_hash_table_insert (self->priv->channels,
@@ -1060,7 +1058,7 @@ log_window_create_observer (EmpathyLogWindow *self)
tp_base_client_take_observer_filter (self->priv->observer,
tp_asv_new (
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
- TPY_IFACE_CHANNEL_TYPE_CALL,
+ TP_IFACE_CHANNEL_TYPE_CALL,
NULL));
tp_base_client_register (self->priv->observer, NULL);
diff --git a/libempathy-gtk/empathy-new-call-dialog.c b/libempathy-gtk/empathy-new-call-dialog.c
index 0fecedde5..ba44721d3 100644
--- a/libempathy-gtk/empathy-new-call-dialog.c
+++ b/libempathy-gtk/empathy-new-call-dialog.c
@@ -28,8 +28,6 @@
#include <telepathy-glib/interfaces.h>
-#include <telepathy-yell/telepathy-yell.h>
-
#include <libempathy/empathy-tp-contact-factory.h>
#include <libempathy/empathy-camera-monitor.h>
#include <libempathy/empathy-utils.h>