Mercurial > pidgin
annotate plugins/icq/chatsession.c @ 1309:0a766047b4fd
[gaim-migrate @ 1319]
Yay, new icqlib
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 19 Dec 2000 10:08:29 +0000 |
parents | 201ec77f3a60 |
children | 4c510ca3563f |
rev | line source |
---|---|
1152 | 1 |
2 #include <stdlib.h> | |
3 | |
1309
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
4 #include "icqlib.h" |
1152 | 5 #include "chatsession.h" |
6 #include "list.h" | |
7 | |
8 icq_ChatSession *icq_ChatSessionNew(ICQLINK *icqlink) | |
9 { | |
10 icq_ChatSession *p=(icq_ChatSession *)malloc(sizeof(icq_ChatSession)); | |
11 | |
12 if (p) | |
13 { | |
14 p->remote_handle=0L; | |
15 p->status=0; | |
16 p->id=0L; | |
17 p->icqlink=icqlink; | |
1309
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
18 list_insert(icqlink->d->icq_ChatSessions, 0, p); |
1152 | 19 } |
20 | |
21 return p; | |
22 } | |
23 | |
24 void icq_ChatSessionDelete(void *p) | |
25 { | |
26 free(p); | |
27 } | |
28 | |
29 void icq_ChatSessionClose(icq_ChatSession *p) | |
30 { | |
1309
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
31 list_remove(p->icqlink->d->icq_ChatSessions, p); |
1152 | 32 icq_ChatSessionDelete(p); |
33 } | |
34 | |
35 int _icq_FindChatSession(void *p, va_list data) | |
36 { | |
37 DWORD uin=va_arg(data, DWORD); | |
38 return (((icq_ChatSession *)p)->remote_uin == uin); | |
39 } | |
40 | |
41 icq_ChatSession *icq_FindChatSession(ICQLINK *icqlink, DWORD uin) | |
42 { | |
1309
0a766047b4fd
[gaim-migrate @ 1319]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1152
diff
changeset
|
43 return list_traverse(icqlink->d->icq_ChatSessions, |
1152 | 44 _icq_FindChatSession, uin); |
45 } | |
46 | |
47 void icq_ChatSessionSetStatus(icq_ChatSession *p, int status) | |
48 { | |
49 p->status=status; | |
50 if(p->id) | |
51 if(p->icqlink->icq_RequestNotify) | |
52 (*p->icqlink->icq_RequestNotify)(p->icqlink, p->id, ICQ_NOTIFY_CHAT, status, 0); | |
53 } |