diff options
author | Xavier Claessens <xclaesse@gmail.com> | 2011-11-14 18:23:57 +0800 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2012-01-10 21:26:59 +0800 |
commit | af4d97822b9055fd8a7670b53b28c7c1f820ec65 (patch) | |
tree | ea2618caaee98e447e20e87dedf72ccd3d2bcbbb /libempathy-gtk | |
parent | 66e1966ee3b3303968997f229f62ada8d7b519ba (diff) | |
download | gsoc2013-empathy-af4d97822b9055fd8a7670b53b28c7c1f820ec65.tar gsoc2013-empathy-af4d97822b9055fd8a7670b53b28c7c1f820ec65.tar.gz gsoc2013-empathy-af4d97822b9055fd8a7670b53b28c7c1f820ec65.tar.bz2 gsoc2013-empathy-af4d97822b9055fd8a7670b53b28c7c1f820ec65.tar.lz gsoc2013-empathy-af4d97822b9055fd8a7670b53b28c7c1f820ec65.tar.xz gsoc2013-empathy-af4d97822b9055fd8a7670b53b28c7c1f820ec65.tar.zst gsoc2013-empathy-af4d97822b9055fd8a7670b53b28c7c1f820ec65.zip |
Remove tp-yell and use TpCallChannel
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-call-utils.c | 89 | ||||
-rw-r--r-- | libempathy-gtk/empathy-call-utils.h | 5 | ||||
-rw-r--r-- | libempathy-gtk/empathy-log-window.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-new-call-dialog.c | 2 |
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> |