00001
00024
00025
00026 #ifndef _QQ_BUDDY_STATUS_H_
00027 #define _QQ_BUDDY_STATUS_H_
00028
00029 #include <glib.h>
00030 #include "connection.h"
00031 #include "qq.h"
00032
00033 typedef struct _qq_buddy_status {
00034 guint32 uid;
00035 guint8 unknown1;
00036 guint8 *ip;
00037 guint16 port;
00038 guint8 unknown2;
00039 guint8 status;
00040 guint16 client_version;
00041 guint8 *unknown_key;
00042 } qq_buddy_status;
00043
00044 enum {
00045 QQ_BUDDY_OFFLINE = 0x00,
00046 QQ_BUDDY_ONLINE_NORMAL = 0x0a,
00047 QQ_BUDDY_ONLINE_OFFLINE = 0x14,
00048 QQ_BUDDY_ONLINE_AWAY = 0x1e,
00049 QQ_BUDDY_ONLINE_INVISIBLE = 0x28,
00050 };
00051
00052 enum {
00053 QQ_SELF_STATUS_AVAILABLE = 0x11,
00054 QQ_SELF_STATUS_AWAY = 0x12,
00055 QQ_SELF_STATUS_INVISIBLE = 0x13,
00056 QQ_SELF_STATUS_CUSTOM = 0x14,
00057 QQ_SELF_STATUS_IDLE = 0x15,
00058 };
00059
00060 gboolean is_online(guint8 status);
00061
00062 gchar get_suffix_from_status(guint8 status);
00063
00064 void qq_send_packet_change_status(GaimConnection * gc);
00065
00066 void qq_process_change_status_reply(guint8 * buf, gint buf_len, GaimConnection * gc);
00067 void qq_process_friend_change_status(guint8 * buf, gint buf_len, GaimConnection * gc);
00068 #endif
00069
00070