static void notify_new_message_cb (PurpleAccount *account, const gchar *sender, const gchar *message, int flags, gpointer data) { PurpleConversation *conv; if (!purple_prefs_get_bool ("/plugins/gtk/libnotify/newmsg")) return; conv = purple_find_conversation_with_account (PURPLE_CONV_TYPE_IM, sender, account); #ifndef DEBUG /* in debug mode, always show notifications */ if (conv && purple_conversation_has_focus (conv)) { purple_debug_info (PLUGIN_ID, "Conversation has focus 0x%lx\n", (unsigned long)conv); return; } #endif if (conv && purple_prefs_get_bool ("/plugins/gtk/libnotify/newconvonly")) { purple_debug_info (PLUGIN_ID, "Conversation is not new 0x%lx\n", (unsigned long)conv); return; } if (!should_notify_unavailable (account)) return; notify_msg_sent (account, conv, sender, message); }
/* * play a sound event for a conversation, honoring make_sound flag * of conversation and checking for focus if conv_focus pref is set */ static void play_conv_event(PurpleConversation *conv, PurpleSoundEventID event) { /* If we should not play the sound for some reason, then exit early */ if (conv != NULL && PIDGIN_IS_PIDGIN_CONVERSATION(conv)) { PidginConversation *gtkconv; gboolean has_focus; gtkconv = PIDGIN_CONVERSATION(conv); has_focus = purple_conversation_has_focus(conv); if (!gtkconv->make_sound || (has_focus && !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/conv_focus"))) { return; } } purple_sound_play_event(event, conv ? purple_conversation_get_account(conv) : NULL); }
/* * play a sound event for a conversation, honoring make_sound flag * of conversation and checking for focus if conv_focus pref is set */ static void play_conv_event(PurpleConversation *conv, PurpleSoundEventID event) { /* If we should not play the sound for some reason, then exit early */ if (conv != NULL) { FinchConv *gntconv; gboolean has_focus; gntconv = FINCH_CONV(conv); has_focus = purple_conversation_has_focus(conv); if ((gntconv->flags & FINCH_CONV_NO_SOUND) || (has_focus && !purple_prefs_get_bool(make_pref("/conv_focus")))) { return; } } purple_sound_play_event(event, conv ? purple_conversation_get_account(conv) : NULL); }