Mercurial > pidgin.yaz
diff pidgin/gtkblist.c @ 26190:d6e23439b77c
Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
This allows for it to only be called once. From the caps returned you
can then tell which media capabilities a buddy has without having to
call the function for each different type.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Wed, 11 Feb 2009 00:01:20 +0000 |
parents | f95aa2b14bec |
children | 9fcff08ce726 |
line wrap: on
line diff
--- a/pidgin/gtkblist.c Sun Feb 08 23:17:51 2009 +0000 +++ b/pidgin/gtkblist.c Wed Feb 11 00:01:20 2009 +0000 @@ -348,8 +348,9 @@ { /* if the buddy supports both audio and video, start a combined call, otherwise start a pure video session */ - if (purple_prpl_can_do_media(purple_buddy_get_account(b), - purple_buddy_get_name(b), PURPLE_MEDIA_AUDIO)) { + if (purple_prpl_get_media_caps(purple_buddy_get_account(b), + purple_buddy_get_name(b)) & + PURPLE_MEDIA_CAPS_AUDIO_VIDEO) { purple_prpl_initiate_media(purple_buddy_get_account(b), purple_buddy_get_name(b), PURPLE_MEDIA_AUDIO | PURPLE_MEDIA_VIDEO); } else { @@ -1463,20 +1464,20 @@ G_CALLBACK(gtk_blist_menu_im_cb), buddy, 0, 0, NULL); #ifdef USE_VV - if (prpl_info && prpl_info->can_do_media) { - PurpleConnection *gc = - purple_account_get_connection(purple_buddy_get_account(buddy)); + if (prpl_info && prpl_info->get_media_caps) { + PurpleAccount *account = purple_buddy_get_account(buddy); const gchar *who = purple_buddy_get_name(buddy); - if (prpl_info->can_do_media(gc, who, PURPLE_MEDIA_AUDIO)) { + PurpleMediaCaps caps = purple_prpl_get_media_caps(account, who); + if (caps & PURPLE_MEDIA_CAPS_AUDIO) { pidgin_new_item_from_stock(menu, _("_Audio Call"), PIDGIN_STOCK_TOOLBAR_AUDIO_CALL, G_CALLBACK(gtk_blist_menu_audio_call_cb), buddy, 0, 0, NULL); } - if (prpl_info->can_do_media(gc, who, PURPLE_MEDIA_VIDEO | PURPLE_MEDIA_AUDIO)) { + if (caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO) { pidgin_new_item_from_stock(menu, _("Audio/_Video Call"), PIDGIN_STOCK_TOOLBAR_VIDEO_CALL, G_CALLBACK(gtk_blist_menu_video_call_cb), buddy, 0, 0, NULL); - } else if (prpl_info->can_do_media(gc, who, PURPLE_MEDIA_VIDEO)) { + } else if (caps & PURPLE_MEDIA_CAPS_VIDEO) { pidgin_new_item_from_stock(menu, _("_Video Call"), PIDGIN_STOCK_TOOLBAR_VIDEO_CALL, G_CALLBACK(gtk_blist_menu_video_call_cb), buddy, 0, 0, NULL);