comparison mcabber/src/roster.h @ 447:03bb57383cea

Initial Multi-User Chat support This patch adds basic MUC support. We now can: - join an existing room; - create and unlock a room using the /rawxml command; - set our nickname; - send/receive chatgroup messages; - see the members of the room; - leave the room. Chatroom logging is currently disabled, as it could do some unexpected things.
author Mikael Berthe <mikael@lilotux.net>
date Sun, 25 Sep 2005 01:01:44 +0200
parents 63562fd409a1
children 644b8bf9ca4d
comparison
equal deleted inserted replaced
446:9f4e9e9aaf08 447:03bb57383cea
26 26
27 // Roster_type is a set of flags, so values should be 2^n 27 // Roster_type is a set of flags, so values should be 2^n
28 #define ROSTER_TYPE_USER 1 28 #define ROSTER_TYPE_USER 1
29 #define ROSTER_TYPE_GROUP 2 29 #define ROSTER_TYPE_GROUP 2
30 #define ROSTER_TYPE_AGENT 4 30 #define ROSTER_TYPE_AGENT 4
31 #define ROSTER_TYPE_ROOM 8
31 32
32 // Flags: 33 // Flags:
33 #define ROSTER_FLAG_MSG 1 // Message not read 34 #define ROSTER_FLAG_MSG 1 // Message not read
34 #define ROSTER_FLAG_HIDE 2 // Group hidden (or buddy window closed) 35 #define ROSTER_FLAG_HIDE 2 // Group hidden (or buddy window closed)
35 #define ROSTER_FLAG_LOCK 4 // Node should not be removed from buddylist 36 #define ROSTER_FLAG_LOCK 4 // Node should not be removed from buddylist
46 47
47 // Prototypes... 48 // Prototypes...
48 GSList *roster_add_group(const char *name); 49 GSList *roster_add_group(const char *name);
49 GSList *roster_add_user(const char *jid, const char *name, const char *group, 50 GSList *roster_add_user(const char *jid, const char *name, const char *group,
50 guint type); 51 guint type);
52 GSList *roster_find(const char *jidname, enum findwhat type, guint roster_type);
51 void roster_del_user(const char *jid); 53 void roster_del_user(const char *jid);
52 void roster_free(void); 54 void roster_free(void);
53 void roster_setstatus(const char *jid, const char *resname, gchar prio, 55 void roster_setstatus(const char *jid, const char *resname, gchar prio,
54 enum imstatus bstat, const char *status_msg); 56 enum imstatus bstat, const char *status_msg);
55 void roster_setflags(const char *jid, guint flags, guint value); 57 void roster_setflags(const char *jid, guint flags, guint value);
56 void roster_msg_setflag(const char *jid, guint value); 58 void roster_msg_setflag(const char *jid, guint value);
57 void roster_settype(const char *jid, guint type); 59 void roster_settype(const char *jid, guint type);
58 enum imstatus roster_getstatus(const char *jid, const char *resname); 60 enum imstatus roster_getstatus(const char *jid, const char *resname);
59 const char *roster_getstatusmsg(const char *jid, const char *resname); 61 const char *roster_getstatusmsg(const char *jid, const char *resname);
60 guint roster_gettype(const char *jid); 62 guint roster_gettype(const char *jid);
61 inline guint roster_exists(const char *jidname, enum findwhat type,
62 guint roster_type);
63 63
64 void buddylist_build(void); 64 void buddylist_build(void);
65 void buddy_hide_group(gpointer rosterdata, int hide); 65 void buddy_hide_group(gpointer rosterdata, int hide);
66 void buddylist_set_hide_offline_buddies(int hide); 66 void buddylist_set_hide_offline_buddies(int hide);
67 inline int buddylist_get_hide_offline_buddies(void); 67 inline int buddylist_get_hide_offline_buddies(void);
68 const char *buddy_getjid(gpointer rosterdata); 68 const char *buddy_getjid(gpointer rosterdata);
69 void buddy_setname(gpointer rosterdata, char *newname); 69 void buddy_setname(gpointer rosterdata, char *newname);
70 const char *buddy_getname(gpointer rosterdata); 70 const char *buddy_getname(gpointer rosterdata);
71 void buddy_setnickname(gpointer rosterdata, char *newname);
72 const char *buddy_getnickname(gpointer rosterdata);
71 guint buddy_gettype(gpointer rosterdata); 73 guint buddy_gettype(gpointer rosterdata);
72 void buddy_setgroup(gpointer rosterdata, char *newgroupname); 74 void buddy_setgroup(gpointer rosterdata, char *newgroupname);
73 const char *buddy_getgroupname(gpointer rosterdata); 75 const char *buddy_getgroupname(gpointer rosterdata);
74 gpointer buddy_getgroup(gpointer rosterdata); 76 gpointer buddy_getgroup(gpointer rosterdata);
75 enum imstatus buddy_getstatus(gpointer rosterdata, const char *resname); 77 enum imstatus buddy_getstatus(gpointer rosterdata, const char *resname);
76 const char *buddy_getstatusmsg(gpointer rosterdata, const char *resname); 78 const char *buddy_getstatusmsg(gpointer rosterdata, const char *resname);
77 gchar buddy_getresourceprio(gpointer rosterdata, const char *resname); 79 gchar buddy_getresourceprio(gpointer rosterdata, const char *resname);
78 GSList *buddy_getresources(gpointer rosterdata); 80 GSList *buddy_getresources(gpointer rosterdata);
81 void buddy_del_all_resources(gpointer rosterdata);
79 void buddy_setflags(gpointer rosterdata, guint flags, guint value); 82 void buddy_setflags(gpointer rosterdata, guint flags, guint value);
80 guint buddy_getflags(gpointer rosterdata); 83 guint buddy_getflags(gpointer rosterdata);
81 GList *buddy_search(char *string); 84 GList *buddy_search(char *string);
82 gpointer unread_msg(gpointer rosterdata); 85 gpointer unread_msg(gpointer rosterdata);
83 86