From caab8e2608d30d95404ae2b8140dedffbc74b5db Mon Sep 17 00:00:00 2001 From: Sjoerd Simons Date: Tue, 22 Mar 2011 13:04:44 +0000 Subject: Add API to get the current video state --- telepathy-yell/call-channel.c | 35 +++++++++++++++++++++++++++++++++++ telepathy-yell/call-channel.h | 2 ++ 2 files changed, 37 insertions(+) diff --git a/telepathy-yell/call-channel.c b/telepathy-yell/call-channel.c index 2983313..8e91adf 100644 --- a/telepathy-yell/call-channel.c +++ b/telepathy-yell/call-channel.c @@ -833,6 +833,41 @@ tpy_call_channel_send_video (TpyCallChannel *self, NULL, NULL, NULL, NULL); } +TpySendingState +tpy_call_channel_get_video_state (TpyCallChannel *self) +{ + TpySendingState result = TPY_SENDING_STATE_NONE; + guint i; + + g_return_val_if_fail (TPY_IS_CALL_CHANNEL (self), TPY_SENDING_STATE_NONE); + + for (i = 0 ; i < self->priv->contents->len ; i++) + { + TpyCallContent *content = g_ptr_array_index (self->priv->contents, i); + + if (tpy_call_content_get_media_type (content) + == TP_MEDIA_STREAM_TYPE_VIDEO) + { + GList *l; + + for (l = tpy_call_content_get_streams (content); + l != NULL ; l = g_list_next (l)) + { + TpyCallStream *stream = TPY_CALL_STREAM (l->data); + TpySendingState state; + + g_object_get (stream, "local-sending-state", &state, NULL); + if (state != TPY_SENDING_STATE_PENDING_STOP_SENDING && + state > result) + result = state; + } + } + } + + return result; +} + + gboolean tpy_call_channel_has_dtmf (TpyCallChannel *self) { diff --git a/telepathy-yell/call-channel.h b/telepathy-yell/call-channel.h index 73715ff..a4ff982 100644 --- a/telepathy-yell/call-channel.h +++ b/telepathy-yell/call-channel.h @@ -100,6 +100,8 @@ TpyCallContent *tpy_call_channel_add_content_finish (TpyCallChannel *self, void tpy_call_channel_send_video (TpyCallChannel *self, gboolean send); +TpySendingState tpy_call_channel_get_video_state (TpyCallChannel *self); + TpyCallState tpy_call_channel_get_state (TpyCallChannel *self, TpyCallFlags *flags, GHashTable **details); -- cgit v1.2.3