plugins/perl/common/Gaim.xs

Fri, 22 Aug 2003 04:09:06 +0000

author
Christian Hammond <chipx86@chipx86.com>
date
Fri, 22 Aug 2003 04:09:06 +0000
changeset 6567
761a1feb5561
parent 6554
4e85a132ad50
child 6568
5c8c70b63dc3
permissions
-rw-r--r--

[gaim-migrate @ 7089]
Perl signal callbacks just got more spiffy. You can now embed a sub inside
of a callback instead of linking to the function.

6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 #include "module.h"
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
2 #include "../perl-handlers.h"
6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 MODULE = Gaim PACKAGE = Gaim
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 PROTOTYPES: ENABLE
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 void
6552
e3fa6a85614b [gaim-migrate @ 7074]
Christian Hammond <chipx86@chipx86.com>
parents: 6550
diff changeset
8 timeout_add(plugin, seconds, func, data)
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
9 Gaim::Plugin plugin
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
10 int seconds
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
11 const char *func
6552
e3fa6a85614b [gaim-migrate @ 7074]
Christian Hammond <chipx86@chipx86.com>
parents: 6550
diff changeset
12 SV *data
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
13 CODE:
6552
e3fa6a85614b [gaim-migrate @ 7074]
Christian Hammond <chipx86@chipx86.com>
parents: 6550
diff changeset
14 gaim_perl_timeout_add(plugin, seconds, func, data);
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
15
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
16 void
6567
761a1feb5561 [gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents: 6554
diff changeset
17 signal_connect(instance, signal, plugin, callback, data)
6554
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
18 void *instance
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
19 const char *signal
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
20 Gaim::Plugin plugin
6567
761a1feb5561 [gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents: 6554
diff changeset
21 SV *callback
6554
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
22 SV *data
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
23 CODE:
6567
761a1feb5561 [gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents: 6554
diff changeset
24 gaim_perl_signal_connect(plugin, instance, signal, callback, data);
6554
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
25
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
26 void
6567
761a1feb5561 [gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents: 6554
diff changeset
27 signal_disconnect(instance, signal, plugin)
6554
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
28 void *instance
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
29 const char *signal
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
30 Gaim::Plugin plugin
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
31 CODE:
6567
761a1feb5561 [gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents: 6554
diff changeset
32 gaim_perl_signal_disconnect(plugin, instance, signal);
6554
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
33
4e85a132ad50 [gaim-migrate @ 7076]
Christian Hammond <chipx86@chipx86.com>
parents: 6552
diff changeset
34 void
6539
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
35 debug(level, category, string)
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
36 const char *level
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
37 const char *category
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
38 const char *string
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
39 CODE:
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
40 if (!strcmp(level, "misc"))
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
41 gaim_debug(GAIM_DEBUG_MISC, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
42 else if (!strcmp(level, "info"))
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
43 gaim_debug(GAIM_DEBUG_INFO, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
44 else if (!strcmp(level, "warning"))
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
45 gaim_debug(GAIM_DEBUG_WARNING, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
46 else if (!strcmp(level, "error"))
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
47 gaim_debug(GAIM_DEBUG_ERROR, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
48 else if (!strcmp(level, "fatal"))
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
49 gaim_debug(GAIM_DEBUG_FATAL, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
50 else
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
51 croak("Unknown debug level type '%s'", level);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
52
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
53 void
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
54 debug_misc(category, string)
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
55 const char *category
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
56 const char *string
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
57 CODE:
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
58 gaim_debug(GAIM_DEBUG_MISC, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
59
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
60 void
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
61 debug_info(category, string)
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
62 const char *category
6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 const char *string
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 CODE:
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
65 gaim_debug(GAIM_DEBUG_INFO, category, string);
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
66
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
67 void
6539
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
68 debug_warning(category, string)
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
69 const char *category
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
70 const char *string
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
71 CODE:
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
72 gaim_debug(GAIM_DEBUG_WARNING, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
73
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
74 void
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
75 debug_error(category, string)
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
76 const char *category
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
77 const char *string
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
78 CODE:
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
79 gaim_debug(GAIM_DEBUG_ERROR, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
80
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
81 void
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
82 debug_fatal(category, string)
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
83 const char *category
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
84 const char *string
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
85 CODE:
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
86 gaim_debug(GAIM_DEBUG_FATAL, category, string);
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
87
f5d69f5dcaff [gaim-migrate @ 7057]
Christian Hammond <chipx86@chipx86.com>
parents: 6528
diff changeset
88 void
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
89 deinit()
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
90 PREINIT:
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
91 GList *l;
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
92 CODE:
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
93 gaim_perl_timeout_clear();
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
94
6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
95
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
96 BOOT:
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
97 GAIM_PERL_BOOT(Account);
6542
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents: 6539
diff changeset
98 GAIM_PERL_BOOT(BuddyList);
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents: 6539
diff changeset
99 GAIM_PERL_BOOT(BuddyList__Group);
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents: 6539
diff changeset
100 GAIM_PERL_BOOT(BuddyList__Buddy);
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents: 6539
diff changeset
101 GAIM_PERL_BOOT(BuddyList__Chat);
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
102

mercurial