Wed, 08 Aug 2012 10:02:43 +0200
Gadu-Gadu: status refactoring - own status
|
33335
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
1 | #include "multilogon.h" |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
2 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
3 | #include <debug.h> |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
4 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
5 | #include "gg.h" |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
6 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
7 | struct _ggp_multilogon_session_data |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
8 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
9 | int session_count; |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
10 | }; |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
11 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
12 | static inline ggp_multilogon_session_data * |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
13 | ggp_multilogon_get_mldata(PurpleConnection *gc); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
14 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
15 | //////////// |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
16 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
17 | static inline ggp_multilogon_session_data * |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
18 | ggp_multilogon_get_mldata(PurpleConnection *gc) |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
19 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
20 | GGPInfo *accdata = purple_connection_get_protocol_data(gc); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
21 | return accdata->multilogon_data; |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
22 | } |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
23 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
24 | void ggp_multilogon_setup(PurpleConnection *gc) |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
25 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
26 | GGPInfo *accdata = purple_connection_get_protocol_data(gc); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
27 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
28 | ggp_multilogon_session_data *mldata = g_new0(ggp_multilogon_session_data, 1); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
29 | accdata->multilogon_data = mldata; |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
30 | } |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
31 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
32 | void ggp_multilogon_cleanup(PurpleConnection *gc) |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
33 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
34 | ggp_multilogon_session_data *mldata = ggp_multilogon_get_mldata(gc); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
35 | g_free(mldata); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
36 | } |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
37 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
38 | void ggp_multilogon_msg(PurpleConnection *gc, struct gg_event_msg *msg) |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
39 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
40 | ggp_recv_message_handler(gc, msg, TRUE); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
41 | } |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
42 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
43 | void ggp_multilogon_info(PurpleConnection *gc, |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
44 | struct gg_event_multilogon_info *info) |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
45 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
46 | ggp_multilogon_session_data *mldata = ggp_multilogon_get_mldata(gc); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
47 | int i; |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
48 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
49 | purple_debug_info("gg", "ggp_multilogon_info: session list changed\n"); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
50 | for (i = 0; i < info->count; i++) |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
51 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
52 | purple_debug_misc("gg", "ggp_multilogon_info: " |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
53 | "session [%s] logged in at %lu\n", |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
54 | info->sessions[i].name, |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
55 | info->sessions[i].logon_time); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
56 | } |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
57 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
58 | mldata->session_count = info->count; |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
59 | } |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
60 | |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
61 | int ggp_multilogon_get_session_count(PurpleConnection *gc) |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
62 | { |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
63 | ggp_multilogon_session_data *mldata = ggp_multilogon_get_mldata(gc); |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
64 | return mldata->session_count; |
|
a6356adbe365
Gadu-Gadu: initial multilogon support (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff
changeset
|
65 | } |