libpurple/purple-client-example.c

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 22582
838faa931042
child 38057
41f47eb1aa19
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

22582
838faa931042 Avoid a compile warning when building with NetworkManager support because
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15987
diff changeset
1 #ifndef DBUS_API_SUBJECT_TO_CHANGE
11241
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
2 #define DBUS_API_SUBJECT_TO_CHANGE
22582
838faa931042 Avoid a compile warning when building with NetworkManager support because
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15987
diff changeset
3 #endif
11241
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
4
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
5 #include <stdio.h>
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
6 #include <stdlib.h>
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
7
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
8 #include "purple-client.h"
11241
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
9
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
10 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
11 This example demonstrates how to use libpurple-client to communicate
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
12 with purple. The names and signatures of functions provided by
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
13 libpurple-client are the same as those in purple. However, all
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
14 structures (such as PurpleAccount) are opaque, that is, you can only
11241
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
15 use pointer to them. In fact, these pointers DO NOT actually point
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
16 to anything, they are just integer identifiers of assigned to these
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
17 structures by purple. So NEVER try to dereference these pointers.
11241
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
18 Integer ids as disguised as pointers to provide type checking and
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
19 prevent mistakes such as passing an id of PurpleAccount when an id of
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
20 PurpleBuddy is expected. According to glib manual, this technique is
11241
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
21 portable.
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
22 */
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
23
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
24 int main (int argc, char **argv)
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
25 {
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
26 GList *alist, *node;
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
27
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
28 purple_init();
11277
ab3c0b6c5ca5 [gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11241
diff changeset
29
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
30 alist = purple_accounts_get_all();
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
31 for (node = alist; node != NULL; node = node->next)
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
32 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
33 PurpleAccount *account = (PurpleAccount*) node->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
34 char *name = purple_account_get_username(account);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
35 g_print("Name: %s\n", name);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
36 g_free(name);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
37 }
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
38 g_list_free(alist);
11277
ab3c0b6c5ca5 [gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11241
diff changeset
39
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
40 return 0;
11241
f62a71823fc3 [gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
41 }

mercurial