# HG changeset patch # User Mike Ruprecht # Date 1237503473 0 # Node ID 17929a84c1fb65213f888b645991275a39530d15 # Parent b7b0513604e6f80c44559d83ca741ed143a7ee09 Change purple_media_candidates_prepared to use wildcards. diff -r b7b0513604e6 -r 17929a84c1fb libpurple/media.c --- a/libpurple/media.c Thu Mar 19 22:08:21 2009 +0000 +++ b/libpurple/media.c Thu Mar 19 22:57:53 2009 +0000 @@ -2239,28 +2239,26 @@ } gboolean -purple_media_candidates_prepared(PurpleMedia *media, const gchar *name) +purple_media_candidates_prepared(PurpleMedia *media, + const gchar *session_id, const gchar *participant) { - GList *sessions; + GList *streams; + gboolean prepared = TRUE; g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); - sessions = purple_media_get_session_names(media); - - for (; sessions; sessions = sessions->next) { - const gchar *session = sessions->data; - GList *local = purple_media_get_active_local_candidates( - media, session, name); - GList *remote = purple_media_get_active_remote_candidates( - media, session, name); - gboolean result = (local == NULL || remote == NULL); - purple_media_candidate_list_free(local); - purple_media_candidate_list_free(remote); - if (!result) - return FALSE; + streams = purple_media_get_streams(media, session_id, participant); + + for (; streams; streams = g_list_delete_link(streams, streams)) { + PurpleMediaStream *stream = streams->data; + if (stream->candidates_prepared == FALSE) { + g_list_free(streams); + prepared = FALSE; + break; + } } - return TRUE; + return prepared; } gboolean diff -r b7b0513604e6 -r 17929a84c1fb libpurple/media.h --- a/libpurple/media.h Thu Mar 19 22:08:21 2009 +0000 +++ b/libpurple/media.h Thu Mar 19 22:57:53 2009 +0000 @@ -607,14 +607,16 @@ const gchar *name, GList *codecs); /** - * Returns whether or not the candidates for a remote user are prepared + * Returns whether or not the candidates for set of streams are prepared * * @param media The media object to find the remote user in. - * @param name The remote user to check for. + * @param session_id The session id of the session to check. + * @param participant The remote user to check for. * - * @return @c TRUE All streams for the remote user have candidates prepared, @c FALSE otherwise. + * @return @c TRUE All streams for the given session_id/participant combination have candidates prepared, @c FALSE otherwise. */ -gboolean purple_media_candidates_prepared(PurpleMedia *media, const gchar *name); +gboolean purple_media_candidates_prepared(PurpleMedia *media, + const gchar *session_id, const gchar *participant); /** * Sets the send codec for the a session.