-tp_call_identify_streams (EmpathyTpCall *call)
-{
- EmpathyTpCallPriv *priv = GET_PRIV (call);
- GPtrArray *stream_infos;
- DBusGProxy *streamed_iface;
- GError *error = NULL;
- guint i;
-
- empathy_debug (DEBUG_DOMAIN, "Identifying audio/video streams");
-
- streamed_iface = tp_chan_get_interface (priv->channel,
- TELEPATHY_CHAN_IFACE_STREAMED_QUARK);
-
- if (!tp_chan_type_streamed_media_list_streams (streamed_iface, &stream_infos,
- &error))
- {
- empathy_debug (DEBUG_DOMAIN, "Couldn't list audio/video streams: %s",
- error->message);
- g_clear_error (&error);
- return;
- }
-
- for (i = 0; i < stream_infos->len; i++)
- {
- GValueArray *values;
- guint stream_id;
- guint stream_handle;
- guint stream_type;
- guint stream_state;
- guint stream_direction;
-
- values = g_ptr_array_index (stream_infos, i);
- stream_id = g_value_get_uint (g_value_array_get_nth (values, 0));
- stream_handle = g_value_get_uint (g_value_array_get_nth (values, 1));
- stream_type = g_value_get_uint (g_value_array_get_nth (values, 2));
- stream_state = g_value_get_uint (g_value_array_get_nth (values, 3));
- stream_direction = g_value_get_uint (g_value_array_get_nth (values, 4));
-
- switch (stream_type)
- {
- case TP_MEDIA_STREAM_TYPE_AUDIO:
- empathy_debug (DEBUG_DOMAIN,
- "Audio stream - id: %d, state: %d, direction: %d",
- stream_id, stream_state, stream_direction);
- priv->audio->exists = TRUE;
- priv->audio->id = stream_id;
- priv->audio->state = stream_state;
- priv->audio->direction = stream_direction;
- break;
- case TP_MEDIA_STREAM_TYPE_VIDEO:
- empathy_debug (DEBUG_DOMAIN,
- "Video stream - id: %d, state: %d, direction: %d",
- stream_id, stream_state, stream_direction);
- priv->video->exists = TRUE;
- priv->video->id = stream_id;
- priv->video->state = stream_state;
- priv->video->direction = stream_direction;
- break;
- default:
- empathy_debug (DEBUG_DOMAIN, "Unknown stream type: %d",
- stream_type);
- }
-
- g_value_array_free (values);
- }
-}
-
-static void
-tp_call_stream_added_cb (DBusGProxy *channel,