plugins/icq/chatsession.c

Tue, 28 Nov 2000 02:22:42 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Tue, 28 Nov 2000 02:22:42 +0000
changeset 1152
e94e29686ded
child 1309
dccfec27ffd4
permissions
-rw-r--r--

[gaim-migrate @ 1162]
icq. whoop de doo

1152
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2 #include <stdlib.h>
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4 #include "chatsession.h"
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5 #include "list.h"
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
7 icq_ChatSession *icq_ChatSessionNew(ICQLINK *icqlink)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
8 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
9 icq_ChatSession *p=(icq_ChatSession *)malloc(sizeof(icq_ChatSession));
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
10
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
11 if (p)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
12 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
13 p->remote_handle=0L;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
14 p->status=0;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
15 p->id=0L;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
16 p->icqlink=icqlink;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
17 list_insert(icqlink->icq_ChatSessions, 0, p);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
18 }
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
19
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20 return p;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
21 }
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
22
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
23 void icq_ChatSessionDelete(void *p)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
24 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
25 free(p);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
26 }
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
27
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
28 void icq_ChatSessionClose(icq_ChatSession *p)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
29 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
30 list_remove(p->icqlink->icq_ChatSessions, p);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
31 icq_ChatSessionDelete(p);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
32 }
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
33
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
34 int _icq_FindChatSession(void *p, va_list data)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
35 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
36 DWORD uin=va_arg(data, DWORD);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37 return (((icq_ChatSession *)p)->remote_uin == uin);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
38 }
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
39
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
40 icq_ChatSession *icq_FindChatSession(ICQLINK *icqlink, DWORD uin)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
41 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
42 return list_traverse(icqlink->icq_ChatSessions,
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
43 _icq_FindChatSession, uin);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
44 }
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
45
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
46 void icq_ChatSessionSetStatus(icq_ChatSession *p, int status)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
47 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
48 p->status=status;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
49 if(p->id)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
50 if(p->icqlink->icq_RequestNotify)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
51 (*p->icqlink->icq_RequestNotify)(p->icqlink, p->id, ICQ_NOTIFY_CHAT, status, 0);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52 }

mercurial