Mercurial > pidgin
changeset 26127:df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Wed, 25 Feb 2009 08:18:17 +0000 |
parents | 23816d2e380f |
children | 20c16e29f364 |
files | libpurple/media.c |
diffstat | 1 files changed, 19 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/media.c Wed Feb 25 07:22:08 2009 +0000 +++ b/libpurple/media.c Wed Feb 25 08:18:17 2009 +0000 @@ -2265,17 +2265,30 @@ gboolean purple_media_codecs_ready(PurpleMedia *media, const gchar *sess_id) { - PurpleMediaSession *session; gboolean ret; g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); - session = purple_media_get_session(media, sess_id); + if (sess_id != NULL) { + PurpleMediaSession *session; + session = purple_media_get_session(media, sess_id); + + if (session == NULL) + return FALSE; - if (session == NULL) - return FALSE; - - g_object_get(session->session, "codecs-ready", &ret, NULL); + g_object_get(session->session, "codecs-ready", &ret, NULL); + } else { + GList *values = g_hash_table_get_values(media->priv->sessions); + for (; values; values = g_list_delete_link(values, values)) { + PurpleMediaSession *session = values->data; + g_object_get(session->session, + "codecs-ready", &ret, NULL); + if (ret == FALSE) + break; + } + if (values != NULL) + g_list_free(values); + } return ret; }