#include <prpl.h>
Data Fields | |
PurpleProtocolOptions | options |
Protocol options. | |
GList * | user_splits |
A GList of PurpleAccountUserSplit. | |
GList * | protocol_options |
A GList of PurpleAccountOption. | |
PurpleBuddyIconSpec | icon_spec |
The icon spec. | |
const char *(* | list_icon )(PurpleAccount *account, PurpleBuddy *buddy) |
Returns the base icon name for the given buddy and account. | |
const char *(* | list_emblem )(PurpleBuddy *buddy) |
Fills the four char**'s with string identifiers for "emblems" that the UI will interpret and display as relevant. | |
char *(* | status_text )(PurpleBuddy *buddy) |
Gets a short string representing this buddy's status. | |
void(* | tooltip_text )(PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full) |
Allows the prpl to add text to a buddy's tooltip. | |
GList *(* | status_types )(PurpleAccount *account) |
Returns a list of PurpleStatusType which exist for this account; this must be implemented, and must add at least the offline and online states. | |
GList *(* | blist_node_menu )(PurpleBlistNode *node) |
Returns a list of PurpleMenuAction structs, which represent extra actions to be shown in (for example) the right-click menu for node. | |
GList *(* | chat_info )(PurpleConnection *) |
GHashTable *(* | chat_info_defaults )(PurpleConnection *, const char *chat_name) |
void(* | login )(PurpleAccount *) |
This must be implemented. | |
void(* | close )(PurpleConnection *) |
This must be implemented. | |
int(* | send_im )(PurpleConnection *, const char *who, const char *message, PurpleMessageFlags flags) |
This PRPL function should return a positive value on success. | |
void(* | set_info )(PurpleConnection *, const char *info) |
unsigned int(* | send_typing )(PurpleConnection *, const char *name, PurpleTypingState state) |
void(* | get_info )(PurpleConnection *, const char *who) |
Should arrange for purple_notify_userinfo() to be called with who's user info. | |
void(* | set_status )(PurpleAccount *account, PurpleStatus *status) |
void(* | set_idle )(PurpleConnection *, int idletime) |
void(* | change_passwd )(PurpleConnection *, const char *old_pass, const char *new_pass) |
void(* | add_buddy )(PurpleConnection *, PurpleBuddy *buddy, PurpleGroup *group) |
void(* | add_buddies )(PurpleConnection *, GList *buddies, GList *groups) |
void(* | remove_buddy )(PurpleConnection *, PurpleBuddy *buddy, PurpleGroup *group) |
void(* | remove_buddies )(PurpleConnection *, GList *buddies, GList *groups) |
void(* | add_permit )(PurpleConnection *, const char *name) |
void(* | add_deny )(PurpleConnection *, const char *name) |
void(* | rem_permit )(PurpleConnection *, const char *name) |
void(* | rem_deny )(PurpleConnection *, const char *name) |
void(* | set_permit_deny )(PurpleConnection *) |
void(* | join_chat )(PurpleConnection *, GHashTable *components) |
void(* | reject_chat )(PurpleConnection *, GHashTable *components) |
char *(* | get_chat_name )(GHashTable *components) |
void(* | chat_invite )(PurpleConnection *, int id, const char *message, const char *who) |
void(* | chat_leave )(PurpleConnection *, int id) |
void(* | chat_whisper )(PurpleConnection *, int id, const char *who, const char *message) |
int(* | chat_send )(PurpleConnection *, int id, const char *message, PurpleMessageFlags flags) |
void(* | keepalive )(PurpleConnection *) |
If implemented, this will be called regularly for this prpl's active connections. | |
void(* | register_user )(PurpleAccount *) |
new user registration | |
void(* | get_cb_info )(PurpleConnection *, int, const char *who) |
void(* | get_cb_away )(PurpleConnection *, int, const char *who) |
void(* | alias_buddy )(PurpleConnection *, const char *who, const char *alias) |
save/store buddy's alias on server list/roster | |
void(* | group_buddy )(PurpleConnection *, const char *who, const char *old_group, const char *new_group) |
change a buddy's group on a server list/roster | |
void(* | rename_group )(PurpleConnection *, const char *old_name, PurpleGroup *group, GList *moved_buddies) |
rename a group on a server list/roster | |
void(* | buddy_free )(PurpleBuddy *) |
void(* | convo_closed )(PurpleConnection *, const char *who) |
const char *(* | normalize )(const PurpleAccount *, const char *who) |
Convert the username who to its canonical form. | |
void(* | set_buddy_icon )(PurpleConnection *, PurpleStoredImage *img) |
Set the buddy icon for the given connection to img. | |
void(* | remove_group )(PurpleConnection *gc, PurpleGroup *group) |
char *(* | get_cb_real_name )(PurpleConnection *gc, int id, const char *who) |
Gets the real name of a participant in a chat. | |
void(* | set_chat_topic )(PurpleConnection *gc, int id, const char *topic) |
PurpleChat *(* | find_blist_chat )(PurpleAccount *account, const char *name) |
PurpleRoomlist *(* | roomlist_get_list )(PurpleConnection *gc) |
void(* | roomlist_cancel )(PurpleRoomlist *list) |
void(* | roomlist_expand_category )(PurpleRoomlist *list, PurpleRoomlistRoom *category) |
gboolean(* | can_receive_file )(PurpleConnection *, const char *who) |
void(* | send_file )(PurpleConnection *, const char *who, const char *filename) |
PurpleXfer *(* | new_xfer )(PurpleConnection *, const char *who) |
gboolean(* | offline_message )(const PurpleBuddy *buddy) |
Checks whether offline messages to buddy are supported. | |
PurpleWhiteboardPrplOps * | whiteboard_prpl_ops |
int(* | send_raw )(PurpleConnection *gc, const char *buf, int len) |
For use in plugins that may understand the underlying protocol. | |
char *(* | roomlist_room_serialize )(PurpleRoomlistRoom *room) |
void(* | unregister_user )(PurpleAccount *, PurpleAccountUnregistrationCb cb, void *user_data) |
Remove the user from the server. | |
gboolean(* | send_attention )(PurpleConnection *gc, const char *username, guint type) |
GList *(* | get_attention_types )(PurpleAccount *acct) |
unsigned long | struct_size |
The size of the PurplePluginProtocolInfo. | |
GHashTable *(* | get_account_text_table )(PurpleAccount *account) |
This allows protocols to specify additional strings to be used for various purposes. |
Every protocol plugin initializes this structure. It is the gateway between purple and the protocol plugin. Many of these callbacks can be NULL. If a callback must be implemented, it has a comment indicating so.
Definition at line 203 of file prpl.h.
void(* _PurplePluginProtocolInfo::close)(PurpleConnection *) |
This must be implemented.
GHashTable*(* _PurplePluginProtocolInfo::get_account_text_table)(PurpleAccount *account) |
This allows protocols to specify additional strings to be used for various purposes.
The idea is to stuff a bunch of strings in this hash table instead of expanding the struct for every addition. This hash table is allocated every call and MUST be unrefed by the caller.
account | The account to specify. This can be NULL. |
void(* _PurplePluginProtocolInfo::get_cb_away)(PurpleConnection *, int, const char *who) |
void(* _PurplePluginProtocolInfo::get_cb_info)(PurpleConnection *, int, const char *who) |
char*(* _PurplePluginProtocolInfo::get_cb_real_name)(PurpleConnection *gc, int id, const char *who) |
Gets the real name of a participant in a chat.
For example, on XMPP this turns a chat room nick foo
into room@server/foo
gc | the connection on which the room is. | |
id | the ID of the chat room. | |
who | the nickname of the chat participant. |
If implemented, this will be called regularly for this prpl's active connections.
You'd want to do this if you need to repeatedly send some kind of keepalive packet to the server to avoid being disconnected. ("Regularly" is defined by KEEPALIVE_INTERVAL
in libpurple/connection.c
.)
const char*(* _PurplePluginProtocolInfo::list_icon)(PurpleAccount *account, PurpleBuddy *buddy) |
Returns the base icon name for the given buddy and account.
If buddy is NULL and the account is non-NULL, it will return the name to use for the account's icon. If both are NULL, it will return the name to use for the protocol's icon.
This must be implemented.
void(* _PurplePluginProtocolInfo::login)(PurpleAccount *) |
This must be implemented.
const char*(* _PurplePluginProtocolInfo::normalize)(const PurpleAccount *, const char *who) |
Convert the username who to its canonical form.
(For example, AIM treats "fOo BaR" and "foobar" as the same user; this function should return the same normalized string for both of those.)
gboolean(* _PurplePluginProtocolInfo::offline_message)(const PurpleBuddy *buddy) |
Checks whether offline messages to buddy are supported.
TRUE
if buddy can be sent messages while they are offline, or FALSE
if not. int(* _PurplePluginProtocolInfo::send_im)(PurpleConnection *, const char *who, const char *message, PurpleMessageFlags flags) |
This PRPL function should return a positive value on success.
If the message is too big to be sent, return -E2BIG. If the account is not connected, return -ENOTCONN. If the PRPL is unable to send the message for another reason, return some other negative value. You can use one of the valid errno values, or just big something. If the message should not be echoed to the conversation window, return 0.
unsigned int(* _PurplePluginProtocolInfo::send_typing)(PurpleConnection *, const char *name, PurpleTypingState state) |
void(* _PurplePluginProtocolInfo::set_buddy_icon)(PurpleConnection *, PurpleStoredImage *img) |
Set the buddy icon for the given connection to img.
The prpl does NOT own a reference to img; if it needs one, it must purple_imgstore_ref(img) itself.
char*(* _PurplePluginProtocolInfo::status_text)(PurpleBuddy *buddy) |
Gets a short string representing this buddy's status.
This will be shown on the buddy list.
unsigned long _PurplePluginProtocolInfo::struct_size |
void(* _PurplePluginProtocolInfo::unregister_user)(PurpleAccount *, PurpleAccountUnregistrationCb cb, void *user_data) |
Remove the user from the server.
The account can either be connected or disconnected. After the removal is finished, the connection will stay open and has to be closed!