4 * Copyright (C) 2003 Christian Hammond.
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; either version 2 of the
9 * License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 #define SIGNAL_TEST_PLUGIN_ID "core-signals-test"
28 #include "connection.h"
29 #include "conversation.h"
38 /**************************************************************************
39 * Account subsystem signal callbacks
40 **************************************************************************/
42 account_connecting_cb(PurpleAccount
*account
, void *data
)
44 purple_debug_misc("signals test", "account-connecting (%s)\n",
45 purple_account_get_username(account
));
49 account_setting_info_cb(PurpleAccount
*account
, const char *info
, void *data
)
51 purple_debug_misc("signals test", "account-setting-info (%s, %s)\n",
52 purple_account_get_username(account
), info
);
56 account_set_info_cb(PurpleAccount
*account
, const char *info
, void *data
)
58 purple_debug_misc("signals test", "account-set-info (%s, %s)\n",
59 purple_account_get_username(account
), info
);
63 account_status_changed(PurpleAccount
*account
, PurpleStatus
*old
, PurpleStatus
*new,
66 purple_debug_misc("signals test", "account-status-changed (%s, %s, %s)\n",
67 purple_account_get_username(account
),
68 purple_status_get_name(old
),
69 purple_status_get_name(new));
73 account_alias_changed(PurpleAccount
*account
, const char *old
, gpointer data
)
75 purple_debug_misc("signals test", "account-alias-changed (%s, %s, %s)\n",
76 purple_account_get_username(account
),
77 old
, purple_account_get_alias(account
));
81 account_authorization_requested_cb(PurpleAccount
*account
, const char *user
, gpointer data
)
83 purple_debug_misc("signals test", "account-authorization-requested (%s, %s)\n",
84 purple_account_get_username(account
), user
);
89 account_authorization_granted_cb(PurpleAccount
*account
, const char *user
, gpointer data
)
91 purple_debug_misc("signals test", "account-authorization-granted (%s, %s)\n",
92 purple_account_get_username(account
), user
);
96 account_authorization_denied_cb(PurpleAccount
*account
, const char *user
, gpointer data
)
98 purple_debug_misc("signals test", "account-authorization-denied (%s, %s)\n",
99 purple_account_get_username(account
), user
);
102 /**************************************************************************
103 * Buddy Icons signal callbacks
104 **************************************************************************/
106 buddy_icon_changed_cb(PurpleBuddy
*buddy
)
108 purple_debug_misc("signals test", "buddy icon changed (%s)\n",
109 purple_buddy_get_name(buddy
));
112 /**************************************************************************
113 * Buddy List subsystem signal callbacks
114 **************************************************************************/
116 buddy_status_changed_cb(PurpleBuddy
*buddy
, PurpleStatus
*old_status
,
117 PurpleStatus
*status
, void *data
)
119 purple_debug_misc("signals test", "buddy-status-changed (%s %s to %s)\n",
120 purple_buddy_get_name(buddy
),
121 purple_status_get_id(old_status
),
122 purple_status_get_id(status
));
126 buddy_idle_changed_cb(PurpleBuddy
*buddy
, gboolean old_idle
, gboolean idle
,
129 purple_debug_misc("signals test", "buddy-idle-changed (%s %s)\n",
130 purple_buddy_get_name(buddy
),
131 old_idle
? "unidled" : "idled");
135 buddy_signed_on_cb(PurpleBuddy
*buddy
, void *data
)
137 purple_debug_misc("signals test", "buddy-signed-on (%s)\n",
138 purple_buddy_get_name(buddy
));
142 buddy_signed_off_cb(PurpleBuddy
*buddy
, void *data
)
144 purple_debug_misc("signals test", "buddy-signed-off (%s)\n",
145 purple_buddy_get_name(buddy
));
149 blist_node_added_cb(PurpleBlistNode
*bnode
, void *data
)
152 if (PURPLE_BLIST_NODE_IS_GROUP(bnode
))
153 name
= purple_group_get_name(PURPLE_GROUP(bnode
));
154 else if (PURPLE_BLIST_NODE_IS_CONTACT(bnode
))
156 name
= purple_contact_get_alias(PURPLE_CONTACT(bnode
));
157 else if (PURPLE_BLIST_NODE_IS_BUDDY(bnode
))
158 name
= purple_buddy_get_name(PURPLE_BUDDY(bnode
));
162 purple_debug_misc("signals test", "blist_node_added_cb (%s)\n",
163 name
? name
: "(null)");
167 blist_node_removed_cb(PurpleBlistNode
*bnode
, void *data
)
170 if (PURPLE_BLIST_NODE_IS_GROUP(bnode
))
171 name
= purple_group_get_name(PURPLE_GROUP(bnode
));
172 else if (PURPLE_BLIST_NODE_IS_CONTACT(bnode
))
174 name
= purple_contact_get_alias(PURPLE_CONTACT(bnode
));
175 else if (PURPLE_BLIST_NODE_IS_BUDDY(bnode
))
176 name
= purple_buddy_get_name(PURPLE_BUDDY(bnode
));
180 purple_debug_misc("signals test", "blist_node_removed_cb (%s)\n",
181 name
? name
: "(null)");
185 blist_node_aliased(PurpleBlistNode
*node
, const char *old_alias
)
187 PurpleContact
*p
= (PurpleContact
*)node
;
188 PurpleBuddy
*b
= (PurpleBuddy
*)node
;
189 PurpleChat
*c
= (PurpleChat
*)node
;
190 PurpleGroup
*g
= (PurpleGroup
*)node
;
192 if (PURPLE_BLIST_NODE_IS_CONTACT(node
)) {
193 purple_debug_misc("signals test",
194 "blist-node-aliased (Contact: %s, %s)\n",
195 purple_contact_get_alias(p
), old_alias
);
196 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node
)) {
197 purple_debug_misc("signals test",
198 "blist-node-aliased (Buddy: %s, %s)\n",
199 purple_buddy_get_name(b
), old_alias
);
200 } else if (PURPLE_BLIST_NODE_IS_CHAT(node
)) {
201 purple_debug_misc("signals test",
202 "blist-node-aliased (Chat: %s, %s)\n",
203 purple_chat_get_name(c
), old_alias
);
204 } else if (PURPLE_BLIST_NODE_IS_GROUP(node
)) {
205 purple_debug_misc("signals test",
206 "blist-node-aliased (Group: %s, %s)\n",
207 purple_group_get_name(g
), old_alias
);
209 purple_debug_misc("signals test",
210 "blist-node-aliased (UNKNOWN: %d, %s)\n",
211 purple_blist_node_get_type(node
), old_alias
);
216 blist_node_extended_menu_cb(PurpleBlistNode
*node
, void *data
)
218 PurpleContact
*p
= (PurpleContact
*)node
;
219 PurpleBuddy
*b
= (PurpleBuddy
*)node
;
220 PurpleChat
*c
= (PurpleChat
*)node
;
221 PurpleGroup
*g
= (PurpleGroup
*)node
;
223 if (PURPLE_BLIST_NODE_IS_CONTACT(node
)) {
224 purple_debug_misc("signals test",
225 "blist-node-extended-menu (Contact: %s)\n",
226 purple_contact_get_alias(p
));
227 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node
)) {
228 purple_debug_misc("signals test",
229 "blist-node-extended-menu (Buddy: %s)\n",
230 purple_buddy_get_name(b
));
231 } else if (PURPLE_BLIST_NODE_IS_CHAT(node
)) {
232 purple_debug_misc("signals test",
233 "blist-node-extended-menu (Chat: %s)\n",
234 purple_chat_get_name(c
));
235 } else if (PURPLE_BLIST_NODE_IS_GROUP(node
)) {
236 purple_debug_misc("signals test",
237 "blist-node-extended-menu (Group: %s)\n",
238 purple_group_get_name(g
));
240 purple_debug_misc("signals test",
241 "blist-node-extended-menu (UNKNOWN: %d)\n",
242 purple_blist_node_get_type(node
));
247 /**************************************************************************
248 * Connection subsystem signal callbacks
249 **************************************************************************/
251 signing_on_cb(PurpleConnection
*gc
, void *data
)
253 purple_debug_misc("signals test", "signing-on (%s)\n",
254 purple_account_get_username(purple_connection_get_account(gc
)));
258 signed_on_cb(PurpleConnection
*gc
, void *data
)
260 purple_debug_misc("signals test", "signed-on (%s)\n",
261 purple_account_get_username(purple_connection_get_account(gc
)));
265 signing_off_cb(PurpleConnection
*gc
, void *data
)
267 purple_debug_misc("signals test", "signing-off (%s)\n",
268 purple_account_get_username(purple_connection_get_account(gc
)));
272 signed_off_cb(PurpleConnection
*gc
, void *data
)
274 purple_debug_misc("signals test", "signed-off (%s)\n",
275 purple_account_get_username(purple_connection_get_account(gc
)));
279 connection_error_cb(PurpleConnection
*gc
,
280 PurpleConnectionError err
,
284 const gchar
*username
=
285 purple_account_get_username(purple_connection_get_account(gc
));
286 purple_debug_misc("signals test", "connection-error (%s, %u, %s)\n",
287 username
, err
, desc
);
290 /**************************************************************************
291 * Conversation subsystem signal callbacks
292 **************************************************************************/
294 writing_im_msg_cb(PurpleAccount
*account
, const char *who
, char **buffer
,
295 PurpleConversation
*conv
, PurpleMessageFlags flags
, void *data
)
297 purple_debug_misc("signals test", "writing-im-msg (%s, %s, %s)\n",
298 purple_account_get_username(account
), purple_conversation_get_name(conv
), *buffer
);
305 wrote_im_msg_cb(PurpleAccount
*account
, const char *who
, const char *buffer
,
306 PurpleConversation
*conv
, PurpleMessageFlags flags
, void *data
)
308 purple_debug_misc("signals test", "wrote-im-msg (%s, %s, %s)\n",
309 purple_account_get_username(account
), purple_conversation_get_name(conv
), buffer
);
313 sending_im_msg_cb(PurpleAccount
*account
, char *recipient
, char **buffer
, void *data
)
315 purple_debug_misc("signals test", "sending-im-msg (%s, %s, %s)\n",
316 purple_account_get_username(account
), recipient
, *buffer
);
321 sent_im_msg_cb(PurpleAccount
*account
, const char *recipient
, const char *buffer
, void *data
)
323 purple_debug_misc("signals test", "sent-im-msg (%s, %s, %s)\n",
324 purple_account_get_username(account
), recipient
, buffer
);
328 receiving_im_msg_cb(PurpleAccount
*account
, char **sender
, char **buffer
,
329 PurpleConversation
*conv
, PurpleMessageFlags
*flags
, void *data
)
331 purple_debug_misc("signals test", "receiving-im-msg (%s, %s, %s, %s, %d)\n",
332 purple_account_get_username(account
), *sender
, *buffer
,
333 (conv
!= NULL
) ? purple_conversation_get_name(conv
) : "(null)", *flags
);
339 received_im_msg_cb(PurpleAccount
*account
, char *sender
, char *buffer
,
340 PurpleConversation
*conv
, PurpleMessageFlags flags
, void *data
)
342 purple_debug_misc("signals test", "received-im-msg (%s, %s, %s, %s, %d)\n",
343 purple_account_get_username(account
), sender
, buffer
,
344 (conv
!= NULL
) ? purple_conversation_get_name(conv
) : "(null)", flags
);
348 writing_chat_msg_cb(PurpleAccount
*account
, const char *who
, char **buffer
,
349 PurpleConversation
*conv
, PurpleMessageFlags flags
, void *data
)
351 purple_debug_misc("signals test", "writing-chat-msg (%s, %s)\n",
352 purple_conversation_get_name(conv
), *buffer
);
358 wrote_chat_msg_cb(PurpleAccount
*account
, const char *who
, const char *buffer
,
359 PurpleConversation
*conv
, PurpleMessageFlags flags
, void *data
)
361 purple_debug_misc("signals test", "wrote-chat-msg (%s, %s)\n",
362 purple_conversation_get_name(conv
), buffer
);
366 sending_chat_msg_cb(PurpleAccount
*account
, char **buffer
, int id
, void *data
)
368 purple_debug_misc("signals test", "sending-chat-msg (%s, %s, %d)\n",
369 purple_account_get_username(account
), *buffer
, id
);
375 sent_chat_msg_cb(PurpleAccount
*account
, const char *buffer
, int id
, void *data
)
377 purple_debug_misc("signals test", "sent-chat-msg (%s, %s, %d)\n",
378 purple_account_get_username(account
), buffer
, id
);
382 receiving_chat_msg_cb(PurpleAccount
*account
, char **sender
, char **buffer
,
383 PurpleConversation
*chat
, PurpleMessageFlags
*flags
, void *data
)
385 purple_debug_misc("signals test",
386 "receiving-chat-msg (%s, %s, %s, %s, %d)\n",
387 purple_account_get_username(account
), *sender
, *buffer
,
388 purple_conversation_get_name(chat
), *flags
);
394 received_chat_msg_cb(PurpleAccount
*account
, char *sender
, char *buffer
,
395 PurpleConversation
*chat
, PurpleMessageFlags flags
, void *data
)
397 purple_debug_misc("signals test",
398 "received-chat-msg (%s, %s, %s, %s, %d)\n",
399 purple_account_get_username(account
), sender
, buffer
,
400 purple_conversation_get_name(chat
), flags
);
404 conversation_created_cb(PurpleConversation
*conv
, void *data
)
406 purple_debug_misc("signals test", "conversation-created (%s)\n",
407 purple_conversation_get_name(conv
));
411 deleting_conversation_cb(PurpleConversation
*conv
, void *data
)
413 purple_debug_misc("signals test", "deleting-conversation (%s)\n",
414 purple_conversation_get_name(conv
));
418 buddy_typing_cb(PurpleAccount
*account
, const char *name
, void *data
)
420 purple_debug_misc("signals test", "buddy-typing (%s, %s)\n",
421 purple_account_get_username(account
), name
);
425 buddy_typing_stopped_cb(PurpleAccount
*account
, const char *name
, void *data
)
427 purple_debug_misc("signals test", "buddy-typing-stopped (%s, %s)\n",
428 purple_account_get_username(account
), name
);
432 chat_buddy_joining_cb(PurpleConversation
*conv
, const char *user
,
433 PurpleConvChatBuddyFlags flags
, void *data
)
435 purple_debug_misc("signals test", "chat-buddy-joining (%s, %s, %d)\n",
436 purple_conversation_get_name(conv
), user
, flags
);
442 chat_buddy_joined_cb(PurpleConversation
*conv
, const char *user
,
443 PurpleConvChatBuddyFlags flags
, gboolean new_arrival
, void *data
)
445 purple_debug_misc("signals test", "chat-buddy-joined (%s, %s, %d, %d)\n",
446 purple_conversation_get_name(conv
), user
, flags
, new_arrival
);
450 chat_buddy_flags_cb(PurpleConversation
*conv
, const char *user
,
451 PurpleConvChatBuddyFlags oldflags
, PurpleConvChatBuddyFlags newflags
, void *data
)
453 purple_debug_misc("signals test", "chat-buddy-flags (%s, %s, %d, %d)\n",
454 purple_conversation_get_name(conv
), user
, oldflags
, newflags
);
458 chat_buddy_leaving_cb(PurpleConversation
*conv
, const char *user
,
459 const char *reason
, void *data
)
461 purple_debug_misc("signals test", "chat-buddy-leaving (%s, %s, %s)\n",
462 purple_conversation_get_name(conv
), user
, reason
);
468 chat_buddy_left_cb(PurpleConversation
*conv
, const char *user
,
469 const char *reason
, void *data
)
471 purple_debug_misc("signals test", "chat-buddy-left (%s, %s, %s)\n",
472 purple_conversation_get_name(conv
), user
, reason
);
476 chat_inviting_user_cb(PurpleConversation
*conv
, const char *name
,
477 char **reason
, void *data
)
479 purple_debug_misc("signals test", "chat-inviting-user (%s, %s, %s)\n",
480 purple_conversation_get_name(conv
), name
, *reason
);
484 chat_invited_user_cb(PurpleConversation
*conv
, const char *name
,
485 const char *reason
, void *data
)
487 purple_debug_misc("signals test", "chat-invited-user (%s, %s, %s)\n",
488 purple_conversation_get_name(conv
), name
, reason
);
492 chat_invited_cb(PurpleAccount
*account
, const char *inviter
,
493 const char *room_name
, const char *message
,
494 const GHashTable
*components
, void *data
)
496 purple_debug_misc("signals test", "chat-invited (%s, %s, %s, %s)\n",
497 purple_account_get_username(account
), inviter
,
504 chat_joined_cb(PurpleConversation
*conv
, void *data
)
506 purple_debug_misc("signals test", "chat-joined (%s)\n",
507 purple_conversation_get_name(conv
));
511 chat_left_cb(PurpleConversation
*conv
, void *data
)
513 purple_debug_misc("signals test", "chat-left (%s)\n",
514 purple_conversation_get_name(conv
));
518 chat_topic_changed_cb(PurpleConversation
*conv
, const char *who
,
519 const char *topic
, void *data
)
521 purple_debug_misc("signals test",
522 "chat-topic-changed (%s topic changed to: \"%s\" by %s)\n",
523 purple_conversation_get_name(conv
), topic
,
524 (who
) ? who
: "unknown");
526 /**************************************************************************
527 * Ciphers signal callbacks
528 **************************************************************************/
530 cipher_added_cb(PurpleCipher
*cipher
, void *data
) {
531 purple_debug_misc("signals test", "cipher %s added\n",
532 purple_cipher_get_name(cipher
));
536 cipher_removed_cb(PurpleCipher
*cipher
, void *data
) {
537 purple_debug_misc("signals test", "cipher %s removed\n",
538 purple_cipher_get_name(cipher
));
541 /**************************************************************************
542 * Core signal callbacks
543 **************************************************************************/
545 quitting_cb(void *data
)
547 purple_debug_misc("signals test", "quitting ()\n");
551 printhash(gpointer key
, gpointer value
, gpointer data
)
553 char *a
= (char *)key
;
554 char *b
= (char *)value
;
555 GString
*str
= (GString
*)data
;
556 g_string_append_printf(str
, " [%s] = [%s]\n", a
, b
? b
: "(null)");
560 uri_handler(const char *proto
, const char *cmd
, GHashTable
*params
)
562 GString
*str
= g_string_new("\n{\n");
563 g_hash_table_foreach(params
, printhash
, str
);
564 g_string_append_c(str
, '}');
565 purple_debug_misc("signals test", "uri handler (%s, %s, %s)\n", proto
, cmd
, str
->str
);
566 g_string_free(str
, TRUE
);
570 /**************************************************************************
571 * File transfer signal callbacks
572 **************************************************************************/
574 ft_recv_accept_cb(PurpleXfer
*xfer
, gpointer data
) {
575 purple_debug_misc("signals test", "file receive accepted\n");
579 ft_send_accept_cb(PurpleXfer
*xfer
, gpointer data
) {
580 purple_debug_misc("signals test", "file send accepted\n");
584 ft_recv_start_cb(PurpleXfer
*xfer
, gpointer data
) {
585 purple_debug_misc("signals test", "file receive started\n");
589 ft_send_start_cb(PurpleXfer
*xfer
, gpointer data
) {
590 purple_debug_misc("signals test", "file send started\n");
594 ft_recv_cancel_cb(PurpleXfer
*xfer
, gpointer data
) {
595 purple_debug_misc("signals test", "file receive cancelled\n");
599 ft_send_cancel_cb(PurpleXfer
*xfer
, gpointer data
) {
600 purple_debug_misc("signals test", "file send cancelled\n");
604 ft_recv_complete_cb(PurpleXfer
*xfer
, gpointer data
) {
605 purple_debug_misc("signals test", "file receive completed\n");
609 ft_send_complete_cb(PurpleXfer
*xfer
, gpointer data
) {
610 purple_debug_misc("signals test", "file send completed\n");
613 /**************************************************************************
614 * Sound signal callbacks
615 **************************************************************************/
617 sound_playing_event_cb(PurpleSoundEventID event
, const PurpleAccount
*account
) {
619 purple_debug_misc("signals test", "sound playing event: %d for account: %s\n",
620 event
, purple_account_get_username(account
));
622 purple_debug_misc("signals test", "sound playing event: %d\n", event
);
627 /**************************************************************************
628 * Notify signals callbacks
629 **************************************************************************/
631 notify_email_cb(char *subject
, char *from
, char *to
, char *url
) {
632 purple_debug_misc("signals test", "notify email: subject=%s, from=%s, to=%s, url=%s\n",
633 subject
, from
, to
, url
);
637 notify_emails_cb(char **subjects
, char **froms
, char **tos
, char **urls
, guint count
) {
639 purple_debug_misc("signals test", "notify emails: count=%d\n", count
);
640 for(i
=0; i
<count
&& i
<5; i
++) {
641 if(subjects
[i
]==NULL
|| froms
[i
]==NULL
|| tos
[i
]==NULL
|| urls
[i
]==NULL
) continue;
642 purple_debug_misc("signals test", "notify emails[%d]: subject=%s, from=%s, to=%s, url=%s\n",
643 i
, subjects
[i
], froms
[i
], tos
[i
], urls
[i
]);
647 /**************************************************************************
648 * Jabber signals callbacks
649 **************************************************************************/
651 jabber_iq_received(PurpleConnection
*pc
, const char *type
, const char *id
,
652 const char *from
, xmlnode
*iq
)
654 purple_debug_misc("signals test", "jabber IQ (type=%s, id=%s, from=%s) %p\n",
655 type
, id
, from
? from
: "(null)", iq
);
657 /* We don't want the plugin to stop processing */
662 jabber_message_received(PurpleConnection
*pc
, const char *type
, const char *id
,
663 const char *from
, const char *to
, xmlnode
*message
)
665 purple_debug_misc("signals test", "jabber message (type=%s, id=%s, "
666 "from=%s to=%s) %p\n",
667 type
? type
: "(null)", id
? id
: "(null)",
668 from
? from
: "(null)", to
? to
: "(null)", message
);
670 /* We don't want the plugin to stop processing */
675 jabber_presence_received(PurpleConnection
*pc
, const char *type
,
676 const char *from
, xmlnode
*presence
)
678 purple_debug_misc("signals test", "jabber presence (type=%s, from=%s) %p\n",
679 type
? type
: "(null)", from
? from
: "(null)", presence
);
681 /* We don't want the plugin to stop processing */
686 jabber_watched_iq(PurpleConnection
*pc
, const char *type
, const char *id
,
687 const char *from
, xmlnode
*child
)
689 purple_debug_misc("signals test", "jabber watched IQ (type=%s, id=%s, from=%s)\n"
690 "child %p name=%s, namespace=%s\n",
691 type
, id
, from
, child
, child
->name
,
692 xmlnode_get_namespace(child
));
694 if (g_str_equal(type
, "get") || g_str_equal(type
, "set")) {
695 /* Send the requisite reply */
696 xmlnode
*iq
= xmlnode_new("iq");
697 xmlnode_set_attrib(iq
, "to", from
);
698 xmlnode_set_attrib(iq
, "id", id
);
699 xmlnode_set_attrib(iq
, "type", "result");
701 purple_signal_emit(purple_connection_get_prpl(pc
),
702 "jabber-sending-xmlnode", pc
, &iq
);
707 /* Cookie monster eats IQ stanzas; the prpl shouldn't keep processing */
711 /**************************************************************************
713 **************************************************************************/
715 plugin_load(PurplePlugin
*plugin
)
717 void *core_handle
= purple_get_core();
718 void *blist_handle
= purple_blist_get_handle();
719 void *conn_handle
= purple_connections_get_handle();
720 void *conv_handle
= purple_conversations_get_handle();
721 void *accounts_handle
= purple_accounts_get_handle();
722 void *ciphers_handle
= purple_ciphers_get_handle();
723 void *ft_handle
= purple_xfers_get_handle();
724 void *sound_handle
= purple_sounds_get_handle();
725 void *notify_handle
= purple_notify_get_handle();
726 void *jabber_handle
= purple_plugins_find_with_id("prpl-jabber");
728 /* Accounts subsystem signals */
729 purple_signal_connect(accounts_handle
, "account-connecting",
730 plugin
, PURPLE_CALLBACK(account_connecting_cb
), NULL
);
731 purple_signal_connect(accounts_handle
, "account-setting-info",
732 plugin
, PURPLE_CALLBACK(account_setting_info_cb
), NULL
);
733 purple_signal_connect(accounts_handle
, "account-set-info",
734 plugin
, PURPLE_CALLBACK(account_set_info_cb
), NULL
);
735 purple_signal_connect(accounts_handle
, "account-status-changed",
736 plugin
, PURPLE_CALLBACK(account_status_changed
), NULL
);
737 purple_signal_connect(accounts_handle
, "account-alias-changed",
738 plugin
, PURPLE_CALLBACK(account_alias_changed
), NULL
);
739 purple_signal_connect(accounts_handle
, "account-authorization-requested",
740 plugin
, PURPLE_CALLBACK(account_authorization_requested_cb
), NULL
);
741 purple_signal_connect(accounts_handle
, "account-authorization-denied",
742 plugin
, PURPLE_CALLBACK(account_authorization_denied_cb
), NULL
);
743 purple_signal_connect(accounts_handle
, "account-authorization-granted",
744 plugin
, PURPLE_CALLBACK(account_authorization_granted_cb
), NULL
);
746 /* Buddy List subsystem signals */
747 purple_signal_connect(blist_handle
, "buddy-status-changed",
748 plugin
, PURPLE_CALLBACK(buddy_status_changed_cb
), NULL
);
749 purple_signal_connect(blist_handle
, "buddy-idle-changed",
750 plugin
, PURPLE_CALLBACK(buddy_idle_changed_cb
), NULL
);
751 purple_signal_connect(blist_handle
, "buddy-signed-on",
752 plugin
, PURPLE_CALLBACK(buddy_signed_on_cb
), NULL
);
753 purple_signal_connect(blist_handle
, "buddy-signed-off",
754 plugin
, PURPLE_CALLBACK(buddy_signed_off_cb
), NULL
);
755 purple_signal_connect(blist_handle
, "blist-node-added",
756 plugin
, PURPLE_CALLBACK(blist_node_added_cb
), NULL
);
757 purple_signal_connect(blist_handle
, "blist-node-removed",
758 plugin
, PURPLE_CALLBACK(blist_node_removed_cb
), NULL
);
759 purple_signal_connect(blist_handle
, "buddy-icon-changed",
760 plugin
, PURPLE_CALLBACK(buddy_icon_changed_cb
), NULL
);
761 purple_signal_connect(blist_handle
, "blist-node-aliased",
762 plugin
, PURPLE_CALLBACK(blist_node_aliased
), NULL
);
763 purple_signal_connect(blist_handle
, "blist-node-extended-menu",
764 plugin
, PURPLE_CALLBACK(blist_node_extended_menu_cb
), NULL
);
766 /* Connection subsystem signals */
767 purple_signal_connect(conn_handle
, "signing-on",
768 plugin
, PURPLE_CALLBACK(signing_on_cb
), NULL
);
769 purple_signal_connect(conn_handle
, "signed-on",
770 plugin
, PURPLE_CALLBACK(signed_on_cb
), NULL
);
771 purple_signal_connect(conn_handle
, "signing-off",
772 plugin
, PURPLE_CALLBACK(signing_off_cb
), NULL
);
773 purple_signal_connect(conn_handle
, "signed-off",
774 plugin
, PURPLE_CALLBACK(signed_off_cb
), NULL
);
775 purple_signal_connect(conn_handle
, "connection-error",
776 plugin
, PURPLE_CALLBACK(connection_error_cb
), NULL
);
778 /* Conversations subsystem signals */
779 purple_signal_connect(conv_handle
, "writing-im-msg",
780 plugin
, PURPLE_CALLBACK(writing_im_msg_cb
), NULL
);
781 purple_signal_connect(conv_handle
, "wrote-im-msg",
782 plugin
, PURPLE_CALLBACK(wrote_im_msg_cb
), NULL
);
783 purple_signal_connect(conv_handle
, "sending-im-msg",
784 plugin
, PURPLE_CALLBACK(sending_im_msg_cb
), NULL
);
785 purple_signal_connect(conv_handle
, "sent-im-msg",
786 plugin
, PURPLE_CALLBACK(sent_im_msg_cb
), NULL
);
787 purple_signal_connect(conv_handle
, "receiving-im-msg",
788 plugin
, PURPLE_CALLBACK(receiving_im_msg_cb
), NULL
);
789 purple_signal_connect(conv_handle
, "received-im-msg",
790 plugin
, PURPLE_CALLBACK(received_im_msg_cb
), NULL
);
791 purple_signal_connect(conv_handle
, "writing-chat-msg",
792 plugin
, PURPLE_CALLBACK(writing_chat_msg_cb
), NULL
);
793 purple_signal_connect(conv_handle
, "wrote-chat-msg",
794 plugin
, PURPLE_CALLBACK(wrote_chat_msg_cb
), NULL
);
795 purple_signal_connect(conv_handle
, "sending-chat-msg",
796 plugin
, PURPLE_CALLBACK(sending_chat_msg_cb
), NULL
);
797 purple_signal_connect(conv_handle
, "sent-chat-msg",
798 plugin
, PURPLE_CALLBACK(sent_chat_msg_cb
), NULL
);
799 purple_signal_connect(conv_handle
, "receiving-chat-msg",
800 plugin
, PURPLE_CALLBACK(receiving_chat_msg_cb
), NULL
);
801 purple_signal_connect(conv_handle
, "received-chat-msg",
802 plugin
, PURPLE_CALLBACK(received_chat_msg_cb
), NULL
);
803 purple_signal_connect(conv_handle
, "conversation-created",
804 plugin
, PURPLE_CALLBACK(conversation_created_cb
), NULL
);
805 purple_signal_connect(conv_handle
, "deleting-conversation",
806 plugin
, PURPLE_CALLBACK(deleting_conversation_cb
), NULL
);
807 purple_signal_connect(conv_handle
, "buddy-typing",
808 plugin
, PURPLE_CALLBACK(buddy_typing_cb
), NULL
);
809 purple_signal_connect(conv_handle
, "buddy-typing-stopped",
810 plugin
, PURPLE_CALLBACK(buddy_typing_stopped_cb
), NULL
);
811 purple_signal_connect(conv_handle
, "chat-buddy-joining",
812 plugin
, PURPLE_CALLBACK(chat_buddy_joining_cb
), NULL
);
813 purple_signal_connect(conv_handle
, "chat-buddy-joined",
814 plugin
, PURPLE_CALLBACK(chat_buddy_joined_cb
), NULL
);
815 purple_signal_connect(conv_handle
, "chat-buddy-flags",
816 plugin
, PURPLE_CALLBACK(chat_buddy_flags_cb
), NULL
);
817 purple_signal_connect(conv_handle
, "chat-buddy-leaving",
818 plugin
, PURPLE_CALLBACK(chat_buddy_leaving_cb
), NULL
);
819 purple_signal_connect(conv_handle
, "chat-buddy-left",
820 plugin
, PURPLE_CALLBACK(chat_buddy_left_cb
), NULL
);
821 purple_signal_connect(conv_handle
, "chat-inviting-user",
822 plugin
, PURPLE_CALLBACK(chat_inviting_user_cb
), NULL
);
823 purple_signal_connect(conv_handle
, "chat-invited-user",
824 plugin
, PURPLE_CALLBACK(chat_invited_user_cb
), NULL
);
825 purple_signal_connect(conv_handle
, "chat-invited",
826 plugin
, PURPLE_CALLBACK(chat_invited_cb
), NULL
);
827 purple_signal_connect(conv_handle
, "chat-joined",
828 plugin
, PURPLE_CALLBACK(chat_joined_cb
), NULL
);
829 purple_signal_connect(conv_handle
, "chat-left",
830 plugin
, PURPLE_CALLBACK(chat_left_cb
), NULL
);
831 purple_signal_connect(conv_handle
, "chat-topic-changed",
832 plugin
, PURPLE_CALLBACK(chat_topic_changed_cb
), NULL
);
834 /* Ciphers signals */
835 purple_signal_connect(ciphers_handle
, "cipher-added",
836 plugin
, PURPLE_CALLBACK(cipher_added_cb
), NULL
);
837 purple_signal_connect(ciphers_handle
, "cipher-removed",
838 plugin
, PURPLE_CALLBACK(cipher_removed_cb
), NULL
);
841 purple_signal_connect(core_handle
, "quitting",
842 plugin
, PURPLE_CALLBACK(quitting_cb
), NULL
);
843 purple_signal_connect(core_handle
, "uri-handler",
844 plugin
, PURPLE_CALLBACK(uri_handler
), NULL
);
846 /* File transfer signals */
847 purple_signal_connect(ft_handle
, "file-recv-accept",
848 plugin
, PURPLE_CALLBACK(ft_recv_accept_cb
), NULL
);
849 purple_signal_connect(ft_handle
, "file-recv-start",
850 plugin
, PURPLE_CALLBACK(ft_recv_start_cb
), NULL
);
851 purple_signal_connect(ft_handle
, "file-recv-cancel",
852 plugin
, PURPLE_CALLBACK(ft_recv_cancel_cb
), NULL
);
853 purple_signal_connect(ft_handle
, "file-recv-complete",
854 plugin
, PURPLE_CALLBACK(ft_recv_complete_cb
), NULL
);
855 purple_signal_connect(ft_handle
, "file-send-accept",
856 plugin
, PURPLE_CALLBACK(ft_send_accept_cb
), NULL
);
857 purple_signal_connect(ft_handle
, "file-send-start",
858 plugin
, PURPLE_CALLBACK(ft_send_start_cb
), NULL
);
859 purple_signal_connect(ft_handle
, "file-send-cancel",
860 plugin
, PURPLE_CALLBACK(ft_send_cancel_cb
), NULL
);
861 purple_signal_connect(ft_handle
, "file-send-complete",
862 plugin
, PURPLE_CALLBACK(ft_send_complete_cb
), NULL
);
865 purple_signal_connect(sound_handle
, "playing-sound-event", plugin
,
866 PURPLE_CALLBACK(sound_playing_event_cb
), NULL
);
869 purple_signal_connect(notify_handle
, "displaying-email-notification",
870 plugin
, PURPLE_CALLBACK(notify_email_cb
), NULL
);
871 purple_signal_connect(notify_handle
, "displaying-emails-notification",
872 plugin
, PURPLE_CALLBACK(notify_emails_cb
), NULL
);
876 purple_signal_connect(jabber_handle
, "jabber-receiving-iq", plugin
,
877 PURPLE_CALLBACK(jabber_iq_received
), NULL
);
878 purple_signal_connect(jabber_handle
, "jabber-receiving-message", plugin
,
879 PURPLE_CALLBACK(jabber_message_received
), NULL
);
880 purple_signal_connect(jabber_handle
, "jabber-receiving-presence", plugin
,
881 PURPLE_CALLBACK(jabber_presence_received
), NULL
);
883 /* IQ namespace signals */
884 purple_signal_emit(jabber_handle
, "jabber-register-namespace-watcher",
885 "bogus_node", "super-duper-namespace");
886 /* The above is equivalent to doing:
887 int result = GPOINTER_TO_INT(purple_plugin_ipc_call(jabber_handle, "register_namespace_watcher", &ok, "bogus_node", "super-duper-namespace"));
890 purple_signal_connect(jabber_handle
, "jabber-watched-iq", plugin
,
891 PURPLE_CALLBACK(jabber_watched_iq
), NULL
);
898 plugin_unload(PurplePlugin
*plugin
)
900 void *jabber_handle
= purple_plugins_find_with_id("prpl-jabber");
902 purple_signals_disconnect_by_handle(plugin
);
905 /* Unregister watched namespaces */
906 purple_signal_emit(jabber_handle
, "jabber-unregister-namespace-watcher",
907 "bogus_node", "super-duper-namespace");
908 /* The above is equivalent to doing:
909 int result = GPOINTER_TO_INT(purple_plugin_ipc_call(jabber_handle, "unregister_namespace_watcher", &ok, "bogus_node", "super-duper-namespace"));
916 static PurplePluginInfo info
=
919 PURPLE_MAJOR_VERSION
,
920 PURPLE_MINOR_VERSION
,
921 PURPLE_PLUGIN_STANDARD
, /**< type */
922 NULL
, /**< ui_requirement */
924 NULL
, /**< dependencies */
925 PURPLE_PRIORITY_DEFAULT
, /**< priority */
927 SIGNAL_TEST_PLUGIN_ID
, /**< id */
928 N_("Signals Test"), /**< name */
929 DISPLAY_VERSION
, /**< version */
931 N_("Test to see that all signals are working properly."),
933 N_("Test to see that all signals are working properly."),
934 "Christian Hammond <chipx86@gnupdate.org>", /**< author */
935 PURPLE_WEBSITE
, /**< homepage */
937 plugin_load
, /**< load */
938 plugin_unload
, /**< unload */
939 NULL
, /**< destroy */
941 NULL
, /**< ui_info */
942 NULL
, /**< extra_info */
953 init_plugin(PurplePlugin
*plugin
)
957 PURPLE_INIT_PLUGIN(signalstest
, init_plugin
, info
)