comparison libpurple/prpl.h @ 26346:7b63af454f26

propagate from branch 'im.pidgin.pidgin' (head 5592cb6a8b667422747bafd555fea0aed19931b6) to branch 'im.pidgin.pidgin.vv' (head ff94dfb7c44b84f5d9b4590cc429d93198703b83)
author Mike Ruprecht <maiku@soc.pidgin.im>
date Sun, 22 Mar 2009 23:33:42 +0000
parents ff4212a5268f
children e23a74d7c97c
comparison
equal deleted inserted replaced
26196:399776a9ad98 26346:7b63af454f26
63 63
64 #include "blist.h" 64 #include "blist.h"
65 #include "conversation.h" 65 #include "conversation.h"
66 #include "ft.h" 66 #include "ft.h"
67 #include "imgstore.h" 67 #include "imgstore.h"
68 #include "media.h"
68 #include "notify.h" 69 #include "notify.h"
69 #include "proxy.h" 70 #include "proxy.h"
70 #include "plugin.h" 71 #include "plugin.h"
71 #include "roomlist.h" 72 #include "roomlist.h"
72 #include "status.h" 73 #include "status.h"
73 #include "whiteboard.h" 74 #include "whiteboard.h"
74
75 75
76 /** @copydoc PurpleBuddyIconSpec */ 76 /** @copydoc PurpleBuddyIconSpec */
77 struct _PurpleBuddyIconSpec { 77 struct _PurpleBuddyIconSpec {
78 /** This is a comma-delimited list of image formats or @c NULL if icons 78 /** This is a comma-delimited list of image formats or @c NULL if icons
79 * are not supported. Neither the core nor the prpl will actually 79 * are not supported. Neither the core nor the prpl will actually
449 * @param account The account to specify. This can be NULL. 449 * @param account The account to specify. This can be NULL.
450 * @return The protocol's string hash table. The hash table should be 450 * @return The protocol's string hash table. The hash table should be
451 * destroyed by the caller when it's no longer needed. 451 * destroyed by the caller when it's no longer needed.
452 */ 452 */
453 GHashTable *(*get_account_text_table)(PurpleAccount *account); 453 GHashTable *(*get_account_text_table)(PurpleAccount *account);
454
455 /**
456 * Initiate a media session with the given contact.
457 *
458 * @param conn The connection to initiate the media session on.
459 * @param who The remote user to initiate the session with.
460 * @param type The type of media session to initiate.
461 * @return The newly created media object.
462 */
463 PurpleMedia *(*initiate_media)(PurpleConnection *gc, const char *who,
464 PurpleMediaSessionType type);
465
466 /**
467 * Checks to see if the given contact supports the given type of media session.
468 *
469 * @param conn The connection the contact is on.
470 * @param who The remote user to check for media capability with.
471 * @return The media caps the contact supports.
472 */
473 PurpleMediaCaps (*get_media_caps)(PurpleConnection *gc,
474 const char *who);
454 }; 475 };
455 476
456 #define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) \ 477 #define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) \
457 (((G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < G_STRUCT_OFFSET(PurplePluginProtocolInfo, struct_size)) \ 478 (((G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < G_STRUCT_OFFSET(PurplePluginProtocolInfo, struct_size)) \
458 || (G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < prpl->struct_size)) && \ 479 || (G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < prpl->struct_size)) && \
745 * 766 *
746 * @since 2.5.0 767 * @since 2.5.0
747 */ 768 */
748 void purple_prpl_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code); 769 void purple_prpl_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code);
749 770
771 /**
772 * Determines if the contact supports the given media session type.
773 *
774 * @param account The account the user is on.
775 * @param who The name of the contact to check capabilities for.
776 *
777 * @return The media caps the contact supports.
778 */
779 PurpleMediaCaps purple_prpl_get_media_caps(PurpleAccount *account,
780 const char *who);
781
782 /**
783 * Initiates a media session with the given contact.
784 *
785 * @param account The account the user is on.
786 * @param who The name of the contact to start a session with.
787 * @param type The type of media session to start.
788 *
789 * @return The newly created session object.
790 */
791 PurpleMedia *purple_prpl_initiate_media(PurpleAccount *account,
792 const char *who,
793 PurpleMediaSessionType type);
794
750 /*@}*/ 795 /*@}*/
751 796
752 /**************************************************************************/ 797 /**************************************************************************/
753 /** @name Protocol Plugin Subsystem API */ 798 /** @name Protocol Plugin Subsystem API */
754 /**************************************************************************/ 799 /**************************************************************************/