Mercurial > pidgin.yaz
diff libpurple/media.c @ 25687:ddbea813862e
Notify the user which type of media session the remote user wants to initiate.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Thu, 12 Jun 2008 03:59:26 +0000 |
parents | 3bf9748fdef0 |
children | 19e077a4cb62 |
line wrap: on
line diff
--- a/libpurple/media.c Tue Jun 10 05:18:29 2008 +0000 +++ b/libpurple/media.c Thu Jun 12 03:59:26 2008 +0000 @@ -83,6 +83,7 @@ ACCEPTED, HANGUP, REJECT, + GOT_REQUEST, GOT_HANGUP, GOT_ACCEPT, NEW_CANDIDATE, @@ -172,6 +173,10 @@ G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + purple_media_signals[GOT_REQUEST] = g_signal_new("got-request", G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); purple_media_signals[GOT_HANGUP] = g_signal_new("got-hangup", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, @@ -321,6 +326,21 @@ return result; } +PurpleMediaStreamType +purple_media_get_overall_type(PurpleMedia *media) +{ + GList *values = g_hash_table_get_values(media->priv->sessions); + PurpleMediaStreamType type = PURPLE_MEDIA_NONE; + + for (; values; values = values->next) { + PurpleMediaSession *session = values->data; + type |= session->type; + } + + g_list_free(values); + return type; +} + static PurpleMediaSession* purple_media_get_session(PurpleMedia *media, const gchar *sess_id) { @@ -528,6 +548,12 @@ } void +purple_media_got_request(PurpleMedia *media) +{ + g_signal_emit(media, purple_media_signals[GOT_REQUEST], 0); +} + +void purple_media_got_hangup(PurpleMedia *media) { g_signal_emit(media, purple_media_signals[GOT_HANGUP], 0);