#define EMPATHY_PREFS_AUTOCONNECT EMPATHY_PREFS_PATH "/autoconnect"
#define EMPATHY_PREFS_IMPORT_ASKED EMPATHY_PREFS_PATH "/import_asked"
#define EMPATHY_PREFS_FILE_TRANSFER_DEFAULT_FOLDER EMPATHY_PREFS_PATH "/file_transfer/default_folder"
-#define EMPATHY_PREFS_INPUT_FEEDBACK_SOUNDS "/desktop/gnome/sound/input_feedback_sounds"
typedef void (*EmpathyConfNotifyFunc) (EmpathyConf *conf,
const gchar *key,
ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
CA_PROP_EVENT_ID, "phone-hangup",
CA_PROP_EVENT_DESCRIPTION, _("Voice call ended"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
NULL);
DEBUG ("Call clicked, end call");
call_window_finalize (window);
ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
CA_PROP_EVENT_ID, "phone-incoming-call",
CA_PROP_EVENT_DESCRIPTION, _("Incoming voice call"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
NULL);
}
else
ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
CA_PROP_EVENT_ID, "phone-outgoing-calling",
CA_PROP_EVENT_DESCRIPTION, _("Outgoing voice call"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
NULL);
}
EmpathyChatWindowPriv *priv;
gboolean has_focus;
gboolean needs_urgency;
- gboolean action_sounds_enabled;
EmpathyContact *sender;
priv = GET_PRIV (window);
has_focus = empathy_chat_window_has_focus (window);
- empathy_conf_get_bool (empathy_conf_get (),
- EMPATHY_PREFS_INPUT_FEEDBACK_SOUNDS,
- &action_sounds_enabled);
- /* always play sounds if enabled, otherwise only play if chat is not in focus */
- if (action_sounds_enabled || !has_focus || priv->current_chat != chat) {
- sender = empathy_message_get_sender(message);
- if (empathy_contact_is_user (sender) != FALSE) {
+ /* - if we're the sender, we play the sound if it's specified in the
+ * preferences and we're not away.
+ * - if we receive a message, we play the sound if it's specified in the
+ * prefereces and the window does not have focus on the chat receiving
+ * the message.
+ */
+
+ sender = empathy_message_get_sender (message);
+
+ if (empathy_contact_is_user (sender) != FALSE) {
+ if (empathy_sound_pref_is_enabled (EMPATHY_PREFS_SOUNDS_OUTGOING_MESSAGE)) {
ca_gtk_play_for_widget (GTK_WIDGET (priv->dialog), 0,
- CA_PROP_EVENT_ID, "message-sent-instant",
+ CA_PROP_EVENT_ID, "message-sent-instant",
CA_PROP_EVENT_DESCRIPTION, _("Sent an instant message"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
NULL);
- } else {
+ }
+ } else {
+ if ((!has_focus || priv->current_chat != chat) &&
+ empathy_sound_pref_is_enabled (EMPATHY_PREFS_SOUNDS_INCOMING_MESSAGE)) {
ca_gtk_play_for_widget (GTK_WIDGET (priv->dialog), 0,
CA_PROP_EVENT_ID, "message-new-instant",
CA_PROP_EVENT_DESCRIPTION, _("Received an instant message"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
NULL);
}
}
static void
main_window_flash_start (EmpathyMainWindow *window)
{
- ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
- CA_PROP_EVENT_ID, "message-new-instant",
- CA_PROP_EVENT_DESCRIPTION, _("Incoming chat request"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
- NULL);
+ if (empathy_sound_pref_is_enabled (EMPATHY_PREFS_SOUNDS_NEW_CONVERSATION)) {
+ ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
+ CA_PROP_EVENT_ID, "message-new-instant",
+ CA_PROP_EVENT_DESCRIPTION, _("Incoming chat request"),
+ NULL);
+ }
if (window->flash_timeout_id != 0) {
return;
main_window_error_display (window, account, message);
}
- if (status == TP_CONNECTION_STATUS_DISCONNECTED) {
+ if (status == TP_CONNECTION_STATUS_DISCONNECTED &&
+ empathy_sound_pref_is_enabled (EMPATHY_PREFS_SOUNDS_SERVICE_LOGOUT)) {
ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
CA_PROP_EVENT_ID, "service-logout",
CA_PROP_EVENT_DESCRIPTION, _("Disconnected from server"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
NULL);
}
if (status == TP_CONNECTION_STATUS_CONNECTED) {
GtkWidget *error_widget;
- ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
- CA_PROP_EVENT_ID, "service-login",
- CA_PROP_EVENT_DESCRIPTION, _("Connected to server"),
- CA_PROP_APPLICATION_NAME, g_get_application_name (),
- NULL);
+ if (empathy_sound_pref_is_enabled (EMPATHY_PREFS_SOUNDS_SERVICE_LOGIN)) {
+ ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
+ CA_PROP_EVENT_ID, "service-login",
+ CA_PROP_EVENT_DESCRIPTION, _("Connected to server"),
+ NULL);
+ }
+
/* Account connected without error, remove error message if any */
error_widget = g_hash_table_lookup (window->errors, account);
if (error_widget) {