1 #ifndef __MCABBER_XMPP_H__ 2 #define __MCABBER_XMPP_H__ 1 3 4 #include <loudmouth/loudmouth.h> 5 #include <mcabber/roster.h> 6 7 enum iqreq_type { 8 iqreq_none, 9 iqreq_version, 10 iqreq_time, 11 iqreq_last, 12 iqreq_vcard, 13 iqreq_ping 14 }; 15 16 struct annotation { 17 time_t cdate; 18 time_t mdate; 19 gchar *jid; 20 gchar *text; 21 }; 22 23 struct bookmark { 24 gchar *roomjid; 25 gchar *name; 26 gchar *nick; 27 gchar *password; 28 guint autojoin; 29 /* enum room_printstatus pstatus; */ 30 /* enum room_autowhois awhois; */ 31 /* enum room_flagjoins fjoins; */ 32 /* const char *group; */ 33 }; 34 35 extern LmConnection* lconnection; 36 extern LmSSL* lssl; 37 38 int xmpp_connect(void); 39 void xmpp_disconnect(void); 40 gboolean xmpp_is_online(void); 41 42 void xmpp_room_join(const char *room, const char *nickname, const char *passwd); 43 int xmpp_room_setattrib(const char *roomid, const char *fjid, 44 const char *nick, struct role_affil ra, 45 const char *reason); 46 void xmpp_room_invite(const char *room, const char *fjid, const char *reason); 47 void xmpp_room_unlock(const char *room); 48 void xmpp_room_destroy(const char *room, const char *venue, const char *reason); 49 50 void xmpp_addbuddy(const char *bjid, const char *name, const char *group); 51 void xmpp_updatebuddy(const char *bjid, const char *name, const char *group); 52 void xmpp_delbuddy(const char *bjid); 53 54 void xmpp_send_msg(const char *fjid, const char *text, int type, 55 const char *subject, gboolean otrinject, gint *encrypted, 56 LmMessageSubType type_overwrite, gpointer *xep184); 57 58 void xmpp_send_s10n(const char *bjid, LmMessageSubType type); 59 60 enum imstatus xmpp_getstatus(void); 61 const char *xmpp_getstatusmsg(void); 62 void xmpp_setprevstatus(void); 63 64 void xmpp_setstatus(enum imstatus st, const char *recipient, 65 const char *msg, int do_not_sign); 66 67 void xmpp_send_chatstate(gpointer buddy, guint chatstate); 68 69 void xmpp_insert_entity_capabilities(LmMessageNode *x, enum imstatus status); 70 71 GSList *xmpp_get_all_storage_bookmarks(void); 72 GSList *xmpp_get_all_storage_rosternotes(void); 73 void xmpp_set_storage_bookmark(const char *roomid, const char *name, 74 const char *nick, const char *passwd, 75 int autojoin, enum room_printstatus pstatus, 76 enum room_autowhois awhois, 77 enum room_flagjoins fjoins, const char *group); 78 struct annotation *xmpp_get_storage_rosternotes(const char *barejid, 79 int silent); 80 void xmpp_set_storage_rosternotes(const char *barejid, const char *note); 81 guint xmpp_is_bookmarked(const char *bjid); 82 const char *xmpp_get_bookmark_nick(const char *bjid); 83 const char *xmpp_get_bookmark_password(const char *bjid); 84 int xmpp_get_bookmark_autojoin(const char *bjid); 85 86 void xmpp_request(const char *fjid, enum iqreq_type reqtype); 87 void request_vcard(const char *bjid); 88 void xmpp_request_storage(const gchar *storage); 89 90 #endif /* __MCABBER_XMPP_H__ */ 91 92 /* vim: set et cindent cinoptions=>2\:2(0 ts=2 sw=2: For Vim users... */ 93