libpurple/protocol.h

changeset 39592
445e2cf29f4d
parent 39521
f4d92381a032
child 39593
2d41781914e7
equal deleted inserted replaced
39585:8a19d82a81f8 39592:445e2cf29f4d
815 * 815 *
816 * Returns: The #GType for the protocol client interface. 816 * Returns: The #GType for the protocol client interface.
817 */ 817 */
818 GType purple_protocol_client_iface_get_type(void); 818 GType purple_protocol_client_iface_get_type(void);
819 819
820 /**
821 * purple_protocol_client_iface_get_actions:
822 * @protocol: The #PurpleProtocol instance.
823 * @connection: The #PurpleConnection instance.
824 *
825 * Gets a list of actions for @connection.
826 *
827 * Returns: (transfer full) (element-type PurpleProtocolAction): The list of actions for @connection.
828 */
820 GList *purple_protocol_client_iface_get_actions(PurpleProtocol *protocol, 829 GList *purple_protocol_client_iface_get_actions(PurpleProtocol *protocol,
821 PurpleConnection *connection); 830 PurpleConnection *connection);
822 831
832 /**
833 * purple_protocol_client_iface_list_emblem:
834 * @protocol: The #PurpleProtocol instance.
835 * @buddy: The #PurpleBuddy instance.
836 *
837 * Gets the icon name the emblem that should be used for @buddy.
838 *
839 * Returns: (transfer none): The icon name of the emblem or NULL.
840 */
823 const char *purple_protocol_client_iface_list_emblem(PurpleProtocol *protocol, 841 const char *purple_protocol_client_iface_list_emblem(PurpleProtocol *protocol,
824 PurpleBuddy *buddy); 842 PurpleBuddy *buddy);
825 843
844 /**
845 * purple_protocol_client_iface_status_text:
846 * @protocol: The #PurpleProtocol instance.
847 * @buddy: The #ProtocolBuddy instance.
848 *
849 * Gets the status text for @buddy.
850 *
851 * Returns: (transfer full): The status text for @buddy or NULL.
852 */
826 char *purple_protocol_client_iface_status_text(PurpleProtocol *protocol, 853 char *purple_protocol_client_iface_status_text(PurpleProtocol *protocol,
827 PurpleBuddy *buddy); 854 PurpleBuddy *buddy);
828 855
856 /**
857 * purple_protocol_client_iface_tooltip_text:
858 * @protocol: The #PurpleProtocol instance.
859 * @buddy: The #PurpleBuddy instance.
860 * @user_info:
861 * @full:
862 *
863 */
829 void purple_protocol_client_iface_tooltip_text(PurpleProtocol *protocol, 864 void purple_protocol_client_iface_tooltip_text(PurpleProtocol *protocol,
830 PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full); 865 PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full);
831 866
832 GList *purple_protocol_client_iface_blist_node_menu(PurpleProtocol *protocol, 867 GList *purple_protocol_client_iface_blist_node_menu(PurpleProtocol *protocol,
833 PurpleBlistNode *node); 868 PurpleBlistNode *node);
1016 * 1051 *
1017 * Returns: The #GType for the protocol privacy interface. 1052 * Returns: The #GType for the protocol privacy interface.
1018 */ 1053 */
1019 GType purple_protocol_privacy_iface_get_type(void); 1054 GType purple_protocol_privacy_iface_get_type(void);
1020 1055
1056 /**
1057 * purple_protocol_privacy_iface_add_permit:
1058 * @protocol: The #PurpleProtocol instance.
1059 * @connection: The #PurpleConnection instance.
1060 * @name: The username to permit.
1061 *
1062 * Adds a permit to the privacy settings for @connection to allow @name to
1063 * contact the user.
1064 */
1021 void purple_protocol_privacy_iface_add_permit(PurpleProtocol *protocol, 1065 void purple_protocol_privacy_iface_add_permit(PurpleProtocol *protocol,
1022 PurpleConnection *connection, const char *name); 1066 PurpleConnection *connection, const char *name);
1023 1067
1068 /**
1069 * purple_protocol_privacy_iface_add_deny:
1070 * @protocol: The #PurpleProtocol instance.
1071 * @connection: The #PurpleConnection instance.
1072 * @name: The username to deny.
1073 *
1074 * Adds a deny to the privacy settings for @connection to deny @name from
1075 * contacting the user.
1076 */
1024 void purple_protocol_privacy_iface_add_deny(PurpleProtocol *protocol, 1077 void purple_protocol_privacy_iface_add_deny(PurpleProtocol *protocol,
1025 PurpleConnection *connection, const char *name); 1078 PurpleConnection *connection, const char *name);
1026 1079
1080 /**
1081 * purple_protocol_privacy_iface_rem_permit:
1082 * @protocol: The #PurpleProtocol instance.
1083 * @connection: The #PurpleConnection instance.
1084 * @name: The username to remove from the permit privacy settings.
1085 *
1086 * Removes an existing permit for @name.
1087 */
1027 void purple_protocol_privacy_iface_rem_permit(PurpleProtocol *protocol, 1088 void purple_protocol_privacy_iface_rem_permit(PurpleProtocol *protocol,
1028 PurpleConnection *connection, const char *name); 1089 PurpleConnection *connection, const char *name);
1029 1090
1091 /**
1092 * purple_protocol_privacy_iface_rem_deny:
1093 * @protocol: The #PurpleProtocol instance.
1094 * @connection: The #PurpleConnection instance.
1095 * @name: The username to remove from the deny privacy settings.
1096 *
1097 * Removes an existing deny for @name.
1098 */
1030 void purple_protocol_privacy_iface_rem_deny(PurpleProtocol *protocol, 1099 void purple_protocol_privacy_iface_rem_deny(PurpleProtocol *protocol,
1031 PurpleConnection *connection, const char *name); 1100 PurpleConnection *connection, const char *name);
1032 1101
1102 /**
1103 * purple_protocol_privacy_iface_set_permit_deny:
1104 * @protocol: The #PurpleProtocol instance.
1105 * @connection: The #PurpleConnection instance.
1106 *
1107 * Forces a sync of the privacy settings with server.
1108 */
1033 void purple_protocol_privacy_iface_set_permit_deny(PurpleProtocol *protocol, 1109 void purple_protocol_privacy_iface_set_permit_deny(PurpleProtocol *protocol,
1034 PurpleConnection *connection); 1110 PurpleConnection *connection);
1035 1111
1036 /**************************************************************************/ 1112 /**************************************************************************/
1037 /* Protocol Roomlist Interface API */ 1113 /* Protocol Roomlist Interface API */
1042 * 1118 *
1043 * Returns: The #GType for the protocol roomlist interface. 1119 * Returns: The #GType for the protocol roomlist interface.
1044 */ 1120 */
1045 GType purple_protocol_roomlist_iface_get_type(void); 1121 GType purple_protocol_roomlist_iface_get_type(void);
1046 1122
1123 /**
1124 * purple_protocol_roomlist_iface_get_list:
1125 * @protocol: The #PurpleProtocol instance.
1126 * @gc: The #PurpleAccount to get the roomlist for.
1127 *
1128 * Get's the list of rooms for @gc.
1129 *
1130 * Returns: (transfer full): The roomlist for @gc.
1131 */
1047 PurpleRoomlist *purple_protocol_roomlist_iface_get_list(PurpleProtocol *protocol, 1132 PurpleRoomlist *purple_protocol_roomlist_iface_get_list(PurpleProtocol *protocol,
1048 PurpleConnection *gc); 1133 PurpleConnection *gc);
1049 1134
1135 /**
1136 * purple_protocol_roomlist_iface_cancel:
1137 * @protocol: The #PurpleProtocol instance.
1138 * @list: The #PurpleRoomlist instance.
1139 *
1140 * Requesting a roomlist can take a long time. This function cancels a request
1141 * that's already in progress.
1142 */
1050 void purple_protocol_roomlist_iface_cancel(PurpleProtocol *protocol, 1143 void purple_protocol_roomlist_iface_cancel(PurpleProtocol *protocol,
1051 PurpleRoomlist *list); 1144 PurpleRoomlist *list);
1052 1145
1146 /**
1147 * purple_protocol_roomlist_iface_expand_category:
1148 * @protocol: The #PurpleProtocol instance.
1149 * @list: The #PurpleRoomlist instance.
1150 * @category: The category to expand.
1151 *
1152 * Expands the given @category for @list.
1153 */
1053 void purple_protocol_roomlist_iface_expand_category(PurpleProtocol *protocol, 1154 void purple_protocol_roomlist_iface_expand_category(PurpleProtocol *protocol,
1054 PurpleRoomlist *list, PurpleRoomlistRoom *category); 1155 PurpleRoomlist *list, PurpleRoomlistRoom *category);
1055 1156
1157 /**
1158 * purple_protocol_roomlist_iface_room_serialize:
1159 * @protocol: The #PurpleProtocol instance.
1160 * @room: The #PurpleRoomlistRoom instance.
1161 *
1162 * Serializes @room into a string that will be displayed in a user interface.
1163 *
1164 * Returns: (transfer full): The serialized form of @room.
1165 */
1056 char *purple_protocol_roomlist_iface_room_serialize(PurpleProtocol *protocol, 1166 char *purple_protocol_roomlist_iface_room_serialize(PurpleProtocol *protocol,
1057 PurpleRoomlistRoom *room); 1167 PurpleRoomlistRoom *room);
1058 1168
1059 /**************************************************************************/ 1169 /**************************************************************************/
1060 /* Protocol Media Interface API */ 1170 /* Protocol Media Interface API */
1065 * 1175 *
1066 * Returns: The #GType for the protocol media interface. 1176 * Returns: The #GType for the protocol media interface.
1067 */ 1177 */
1068 GType purple_protocol_media_iface_get_type(void); 1178 GType purple_protocol_media_iface_get_type(void);
1069 1179
1180 /**
1181 * purple_protocol_media_iface_initiate_session:
1182 * @protocol: The #PurpleProtocol instance.
1183 * @account: The #PurpleAccount instance.
1184 * @who: The user to initiate a media session with.
1185 * @type: The type of media session to create.
1186 *
1187 * Initiates a media connection of @type to @who.
1188 *
1189 * Returns: TRUE if successful, FALSE otherwise.
1190 */
1070 gboolean purple_protocol_media_iface_initiate_session(PurpleProtocol *protocol, 1191 gboolean purple_protocol_media_iface_initiate_session(PurpleProtocol *protocol,
1071 PurpleAccount *account, const char *who, PurpleMediaSessionType type); 1192 PurpleAccount *account, const char *who, PurpleMediaSessionType type);
1072 1193
1194 /**
1195 * purple_protocol_media_iface_get_caps:
1196 * @protocol: The #PurpleProtocol instance.
1197 * @account: The #PurpleAccount instance.
1198 * @who: The user to get the media capabilites for.
1199 *
1200 * Returns the #PurpleMediaCaps for @who which determine what types of media
1201 * are available.
1202 *
1203 * Returns the media capabilities of @who.
1204 */
1073 PurpleMediaCaps purple_protocol_media_iface_get_caps(PurpleProtocol *protocol, 1205 PurpleMediaCaps purple_protocol_media_iface_get_caps(PurpleProtocol *protocol,
1074 PurpleAccount *account, const char *who); 1206 PurpleAccount *account, const char *who);
1075 1207
1208 /**
1209 * purple_protocol_media_iface_send_dtmf:
1210 * @protocol: The #PurpleProtocol instance.
1211 * @media: The #PurpleMedia instance.
1212 * @dtmf: A DTMF to send.
1213 * @volume: The volume to send @dtmf at.
1214 * @duration: The duration to send @dtmf (in ms?)
1215 *
1216 * Sends a DTMF (dual-tone multi-frequency) signal via the established @media
1217 * for the given @duration at the given @volume.
1218 *
1219 * It is up to the specific implementation if DTMF is send in or out of band.
1220 *
1221 * Returns: TRUE if successful, FALSE otherwise.
1222 */
1076 gboolean purple_protocol_media_iface_send_dtmf(PurpleProtocol *protocol, 1223 gboolean purple_protocol_media_iface_send_dtmf(PurpleProtocol *protocol,
1077 PurpleMedia *media, gchar dtmf, guint8 volume, guint8 duration); 1224 PurpleMedia *media, gchar dtmf, guint8 volume, guint8 duration);
1078 1225
1079 /**************************************************************************/ 1226 /**************************************************************************/
1080 /* Protocol Factory Interface API */ 1227 /* Protocol Factory Interface API */

mercurial