comparison mcabber/src/roster.h @ 987:f47e312560af

Improve JEP22 + JEP85 support
author Mikael Berthe <mikael@lilotux.net>
date Mon, 30 Oct 2006 20:18:00 +0100
parents ed697234bd39
children ebbde723614b
comparison
equal deleted inserted replaced
986:ed697234bd39 987:f47e312560af
72 #define ROSTER_FLAG_HIDE (1U<<1) // Group hidden (or buddy window closed) 72 #define ROSTER_FLAG_HIDE (1U<<1) // Group hidden (or buddy window closed)
73 #define ROSTER_FLAG_LOCK (1U<<2) // Node should not be removed from buddylist 73 #define ROSTER_FLAG_LOCK (1U<<2) // Node should not be removed from buddylist
74 #define ROSTER_FLAG_USRLOCK (1U<<3) // Node should not be removed from buddylist 74 #define ROSTER_FLAG_USRLOCK (1U<<3) // Node should not be removed from buddylist
75 // ROSTER_FLAG_LOCAL (1U<<4) // Buddy not on server's roster (??) 75 // ROSTER_FLAG_LOCAL (1U<<4) // Buddy not on server's roster (??)
76 76
77 #define JEP0022
78 #define JEP0085
79
80 struct jep0022 {
81 guint support;
82 guint last_state_sent;
83 gchar *last_msgid_sent;
84 guint last_state_rcvd;
85 gchar *last_msgid_rcvd;
86 };
87 struct jep0085 {
88 guint support;
89 guint last_state_sent;
90 guint last_state_rcvd;
91 };
92
93 enum chatstate_support {
94 CHATSTATES_SUPPORT_UNKNOWN = 0,
95 CHATSTATES_SUPPORT_PROBED,
96 CHATSTATES_SUPPORT_NONE,
97 CHATSTATES_SUPPORT_OK
98 };
77 99
78 /* Message event and chat state flags */ 100 /* Message event and chat state flags */
79 #define ROSTER_EVENT_NONE 0U 101 #define ROSTER_EVENT_NONE 0U
80 #define ROSTER_EVENT_MSG 1U
81 /* JEP-22 Message Events */ 102 /* JEP-22 Message Events */
82 #define ROSTER_EVENT_OFFLINE (1U<<1) 103 #define ROSTER_EVENT_OFFLINE (1U<<0)
83 #define ROSTER_EVENT_DELIVERED (1U<<2) 104 #define ROSTER_EVENT_DELIVERED (1U<<1)
84 #define ROSTER_EVENT_DISPLAYED (1U<<3) 105 #define ROSTER_EVENT_DISPLAYED (1U<<2)
85 /* JEP-22 & JEP-85 */ 106 /* JEP-22 & JEP-85 */
86 #define ROSTER_EVENT_COMPOSING (1U<<4) 107 #define ROSTER_EVENT_COMPOSING (1U<<3)
87 /* JEP-85 Chat State Notifications */ 108 /* JEP-85 Chat State Notifications */
88 #define ROSTER_EVENT_ACTIVE (1U<<5) 109 #define ROSTER_EVENT_ACTIVE (1U<<4)
89 #define ROSTER_EVENT_PAUSED (1U<<6) 110 #define ROSTER_EVENT_PAUSED (1U<<5)
90 #define ROSTER_EVENT_INACTIVE (1U<<7) 111 #define ROSTER_EVENT_INACTIVE (1U<<6)
91 #define ROSTER_EVENT_GONE (1U<<8) 112 #define ROSTER_EVENT_GONE (1U<<7)
92 113
93 extern GList *buddylist; 114 extern GList *buddylist;
94 extern GList *current_buddy; 115 extern GList *current_buddy;
95 extern GList *alternate_buddy; 116 extern GList *alternate_buddy;
96 117
152 void buddy_resource_setname(gpointer rosterdata, const char *resname, 173 void buddy_resource_setname(gpointer rosterdata, const char *resname,
153 const char *newname); 174 const char *newname);
154 void buddy_resource_setevents(gpointer rosterdata, const char *resname, 175 void buddy_resource_setevents(gpointer rosterdata, const char *resname,
155 guint event); 176 guint event);
156 guint buddy_resource_getevents(gpointer rosterdata, const char *resname); 177 guint buddy_resource_getevents(gpointer rosterdata, const char *resname);
178 struct jep0022 *buddy_resource_jep22(gpointer rosterdata, const char *resname);
179 struct jep0085 *buddy_resource_jep85(gpointer rosterdata, const char *resname);
157 enum imrole buddy_getrole(gpointer rosterdata, const char *resname); 180 enum imrole buddy_getrole(gpointer rosterdata, const char *resname);
158 enum imaffiliation buddy_getaffil(gpointer rosterdata, const char *resname); 181 enum imaffiliation buddy_getaffil(gpointer rosterdata, const char *resname);
159 const char *buddy_getrjid(gpointer rosterdata, const char *resname); 182 const char *buddy_getrjid(gpointer rosterdata, const char *resname);
160 void buddy_del_all_resources(gpointer rosterdata); 183 void buddy_del_all_resources(gpointer rosterdata);
161 void buddy_setflags(gpointer rosterdata, guint flags, guint value); 184 void buddy_setflags(gpointer rosterdata, guint flags, guint value);