]> git.0d.be Git - empathy.git/commitdiff
Turn empathy_sound_pref_is_enabled into empathy_sound_play that
authorXavier Claessens <xclaesse@src.gnome.org>
Tue, 6 Jan 2009 16:48:49 +0000 (16:48 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Tue, 6 Jan 2009 16:48:49 +0000 (16:48 +0000)
automatically plays the sound if the pref is enabled.

svn path=/trunk/; revision=2078

libempathy-gtk/empathy-ui-utils.c
libempathy-gtk/empathy-ui-utils.h
python/pyempathygtk/pyempathygtk.defs
src/empathy-chat-window.c
src/empathy-main-window.c

index da658dac6d5db57bb9a6f5febe401cce50450e34..f937ce110e2c0f6cdb19553773d86d4d91b864df 100644 (file)
@@ -38,6 +38,7 @@
 #include <gtk/gtk.h>
 #include <gio/gio.h>
 #include <glade/glade.h>
+#include <canberra-gtk.h>
 
 #include <libmissioncontrol/mc-profile.h>
 
@@ -1492,7 +1493,7 @@ empathy_send_file_with_file_chooser (EmpathyContact *contact)
        gtk_widget_show (widget);
 }
 
-gboolean
+static gboolean
 empathy_sound_pref_is_enabled (const char *key)
 {
        EmpathyConf *conf;
@@ -1526,3 +1527,17 @@ empathy_sound_pref_is_enabled (const char *key)
 
        return res;
 }
+
+void
+empathy_sound_play (GtkWidget *widget,
+                   const char *key,
+                   const char *event_id,
+                   const char *description)
+{
+       if (empathy_sound_pref_is_enabled (key)) {
+               ca_gtk_play_for_widget (widget, 0,
+                                       CA_PROP_EVENT_ID, event_id,
+                                       CA_PROP_EVENT_DESCRIPTION, description,
+                                       NULL);
+       }
+}
\ No newline at end of file
index 7c97f0943ab9e802b70b31be3579b4c253461a92..285b66452c42c31b14c65ccdee08cb1f2e4568f5 100644 (file)
@@ -114,7 +114,11 @@ GtkWidget * empathy_link_button_new                     (const gchar      *url,
 
 void        empathy_send_file_with_file_chooser         (EmpathyContact   *contact);
 
-gboolean    empathy_sound_pref_is_enabled               (const char       *key);     
+/* Sounds */
+void        empathy_sound_play                          (GtkWidget        *widget,
+                                                        const char       *key,
+                                                        const char       *event_id,
+                                                        const char       *description);
 
 G_END_DECLS
 
index 90bfa0c2fab464684d5aea30a763a4e229f2b2b1..3c83a28ec52a501d29b237e954ea17375c0970aa 100644 (file)
   )
 )
 
-(define-function sound_pref_is_enabled
-  (c-name "empathy_sound_pref_is_enabled")
-  (return-type "gboolean")
+(define-function sound_play
+  (c-name "empathy_sound_play")
+  (return-type "none")
   (parameters
+    '("GtkWidget*" "widget")
     '("const-char*" "key")
+    '("const-char*" "event_id")
+    '("const-char*" "description")
   )
 )
 
index e1bd9075ead604ae130afd3299eccca1060143bb..2c97301a52e7bce9eb2a40504081aa7b39dda1e3 100644 (file)
@@ -33,7 +33,6 @@
 #include <gdk/gdkkeysyms.h>
 #include <glade/glade.h>
 #include <glib/gi18n.h>
-#include <canberra-gtk.h>
 
 #include <telepathy-glib/util.h>
 #include <libmissioncontrol/mission-control.h>
@@ -858,19 +857,14 @@ chat_window_new_message_cb (EmpathyChat       *chat,
        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_DESCRIPTION, _("Sent an instant message"),
-                                               NULL);
-               }
+               empathy_sound_play (GTK_WIDGET (priv->dialog),
+                                   EMPATHY_PREFS_SOUNDS_OUTGOING_MESSAGE,
+                                   "message-sent-instant", _("Sent an instant message"));
        } 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"),
-                                               NULL);
+               if ((!has_focus || priv->current_chat != chat)) {
+                       empathy_sound_play (GTK_WIDGET (priv->dialog),
+                                           EMPATHY_PREFS_SOUNDS_INCOMING_MESSAGE,
+                                           "message-new-instant", _("Received an instant message"));
                }
        }
 
index 8a377d79437edeb8f226bd0d6a887febeb67a0fe..b95783f3afa58d90e36abb2f9a1ac9fe8047d39d 100644 (file)
@@ -27,7 +27,6 @@
 #include <gtk/gtk.h>
 #include <glade/glade.h>
 #include <glib/gi18n.h>
-#include <canberra-gtk.h>
 
 #include <libempathy/empathy-contact.h>
 #include <libempathy/empathy-utils.h>
@@ -284,12 +283,9 @@ main_window_flash_cb (EmpathyMainWindow *window)
 static void
 main_window_flash_start (EmpathyMainWindow *window)
 {
-       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);
-       }
+       empathy_sound_play (GTK_WIDGET (window->window),
+                           EMPATHY_PREFS_SOUNDS_NEW_CONVERSATION,
+                           "message-new-instant", _("Incoming chat request"));
 
        if (window->flash_timeout_id != 0) {
                return;
@@ -433,23 +429,18 @@ main_window_connection_changed_cb (EmpathyAccountManager *manager,
                main_window_error_display (window, account, message);
        }
 
-       if (current == 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"),
-                                       NULL);
+       if (current == TP_CONNECTION_STATUS_DISCONNECTED) {
+               empathy_sound_play (GTK_WIDGET (window->window),
+                                   EMPATHY_PREFS_SOUNDS_SERVICE_LOGOUT,
+                                   "service-logout", _("Disconnected from server"));
        }
 
        if (current == TP_CONNECTION_STATUS_CONNECTED) {
                GtkWidget *error_widget;
 
-               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);
-               }
+               empathy_sound_play (GTK_WIDGET (window->window),
+                                   EMPATHY_PREFS_SOUNDS_SERVICE_LOGIN,
+                                   "service-login", _("Connected to server"));
 
                /* Account connected without error, remove error message if any */
                error_widget = g_hash_table_lookup (window->errors, account);
@@ -479,23 +470,17 @@ main_window_contact_presence_changed_cb (EmpathyContactMonitor *monitor,
 
        if (previous < MC_PRESENCE_AVAILABLE && current > MC_PRESENCE_OFFLINE) {
                /* someone is logging in */
-               if (empathy_sound_pref_is_enabled (EMPATHY_PREFS_SOUNDS_CONTACT_LOGIN)) {
-                       ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
-                                               CA_PROP_EVENT_ID, "service-login",
-                                               CA_PROP_EVENT_DESCRIPTION, _("Contact logged in"),
-                                               NULL);
-               }
+               empathy_sound_play (GTK_WIDGET (window->window),
+                                   EMPATHY_PREFS_SOUNDS_CONTACT_LOGIN,
+                                   "service-login", _("Contact logged in"));
                return;
        }
 
        if (previous > MC_PRESENCE_OFFLINE && current < MC_PRESENCE_AVAILABLE) {
                /* someone is logging off */
-               if (empathy_sound_pref_is_enabled (EMPATHY_PREFS_SOUNDS_CONTACT_LOGOUT)) {
-                       ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
-                                               CA_PROP_EVENT_ID, "service-logout",
-                                               CA_PROP_EVENT_DESCRIPTION, _("Contact logged out"),
-                                               NULL);
-               }
+               empathy_sound_play (GTK_WIDGET (window->window),
+                                   EMPATHY_PREFS_SOUNDS_CONTACT_LOGOUT,
+                                   "service-logout", _("Contact logged out"));
        }
 }