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