Fri, 22 Aug 2003 04:09:06 +0000
[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 | 1 | #include "module.h" |
|
6520
5386692555c9
[gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
2 | #include "../perl-handlers.h" |
| 6508 | 3 | |
| 4 | MODULE = Gaim PACKAGE = Gaim | |
| 5 | PROTOTYPES: ENABLE | |
| 6 | ||
| 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 | 63 | const char *string |
| 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 | 95 | |
| 96 | BOOT: | |
| 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 |