# HG changeset patch # User Mike Ruprecht # Date 1235549897 0 # Node ID df133a5df391497902684e3250f11e3a601eed3b # Parent 23816d2e380f1d5d0f8f62d17f09692cf0048bad Have purple_media_codecs_ready handle a session wildcard. diff -r 23816d2e380f -r df133a5df391 libpurple/media.c --- 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; }