Mercurial > pidgin.yaz
diff pidgin/gtkmedia.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 | 9c6915254610 |
line wrap: on
line diff
--- a/pidgin/gtkmedia.c Tue Jun 10 05:18:29 2008 +0000 +++ b/pidgin/gtkmedia.c Thu Jun 12 03:59:26 2008 +0000 @@ -427,6 +427,29 @@ } static void +pidgin_media_got_request_cb(PurpleMedia *media, PidginMedia *gtkmedia) +{ + PurpleMediaStreamType type = purple_media_get_overall_type(media); + gchar *message; + + if (type & PURPLE_MEDIA_AUDIO && type & PURPLE_MEDIA_VIDEO) { + message = g_strdup_printf(_("%s wishes to start an audio/video session with you."), + purple_media_get_screenname(media)); + } else if (type & PURPLE_MEDIA_AUDIO) { + message = g_strdup_printf(_("%s wishes to start an audio session with you."), + purple_media_get_screenname(media)); + } else if (type & PURPLE_MEDIA_VIDEO) { + message = g_strdup_printf(_("%s wishes to start a video session with you."), + purple_media_get_screenname(media)); + } else { + return; + } + + pidgin_media_emit_message(gtkmedia, message); + g_free(message); +} + +static void pidgin_media_got_hangup_cb(PurpleMedia *media, PidginMedia *gtkmedia) { pidgin_media_emit_message(gtkmedia, _("The call has been terminated.")); @@ -470,6 +493,8 @@ G_CALLBACK(pidgin_media_hangup_cb), media); g_signal_connect(G_OBJECT(media->priv->media), "reject", G_CALLBACK(pidgin_media_reject_cb), media); + g_signal_connect(G_OBJECT(media->priv->media), "got-request", + G_CALLBACK(pidgin_media_got_request_cb), media); g_signal_connect(G_OBJECT(media->priv->media), "got-hangup", G_CALLBACK(pidgin_media_got_hangup_cb), media); g_signal_connect(G_OBJECT(media->priv->media), "got-accept",