empathy r2082 - in trunk: libempathy-gtk python/pyempathygtk src



Author: xclaesse
Date: Tue Jan  6 16:49:01 2009
New Revision: 2082
URL: http://svn.gnome.org/viewvc/empathy?rev=2082&view=rev

Log:
Update empathy_sound_play () to be nicer to use and centralize the list
of sounds we support.

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

Modified: trunk/libempathy-gtk/empathy-ui-utils.c
==============================================================================
--- trunk/libempathy-gtk/empathy-ui-utils.c	(original)
+++ trunk/libempathy-gtk/empathy-ui-utils.c	Tue Jan  6 16:49:01 2009
@@ -1493,6 +1493,36 @@
 	gtk_widget_show (widget);
 }
 
+typedef struct {
+	EmpathySound sound_id;
+	const char * event_ca_id;
+	const char * event_ca_description;
+	const char * gconf_key;
+} EmpathySoundEntry;
+
+static EmpathySoundEntry sound_entries[LAST_EMPATHY_SOUND] = {
+	{ EMPATHY_SOUND_MESSAGE_INCOMING, "message-new-instant",
+	  N_("Received an instant message"), EMPATHY_PREFS_SOUNDS_INCOMING_MESSAGE } ,
+	{ EMPATHY_SOUND_MESSAGE_OUTGOING, "message-sent-instant",
+	  N_("Sent an instant message"), EMPATHY_PREFS_SOUNDS_OUTGOING_MESSAGE } ,
+	{ EMPATHY_SOUND_CONVERSATION_NEW, "message-new-instant",
+	  N_("Incoming chat request"), EMPATHY_PREFS_SOUNDS_NEW_CONVERSATION },
+	{ EMPATHY_SOUND_CONTACT_CONNECTED, "service-login",
+	  N_("Contact connected"), EMPATHY_PREFS_SOUNDS_CONTACT_LOGIN },
+	{ EMPATHY_SOUND_CONTACT_DISCONNECTED, "service-logout",
+	  N_("Contact disconnected"), EMPATHY_PREFS_SOUNDS_CONTACT_LOGOUT },
+	{ EMPATHY_SOUND_ACCOUNT_CONNECTED, "service-login",
+	  N_("Connected to server"), EMPATHY_PREFS_SOUNDS_SERVICE_LOGIN },
+	{ EMPATHY_SOUND_ACCOUNT_DISCONNECTED, "service-logout",
+	  N_("Disconnected from server"), EMPATHY_PREFS_SOUNDS_SERVICE_LOGOUT },
+	{ EMPATHY_SOUND_PHONE_INCOMING, "phone-incoming-call",
+	  N_("Incoming voice call"), NULL },
+	{ EMPATHY_SOUND_PHONE_OUTGOING, "phone-outgoing-calling",
+	  N_("Outgoing voice call"), NULL },
+	{ EMPATHY_SOUND_PHONE_HANGUP, "phone-hangup",
+	  N_("Voice call ended"), NULL },
+};
+
 static gboolean
 empathy_sound_pref_is_enabled (const char *key)
 {
@@ -1530,14 +1560,19 @@
 
 void
 empathy_sound_play (GtkWidget *widget,
-		    const char *key,
-		    const char *event_id,
-		    const char *description)
+		    EmpathySound sound_id)
 {
-	if (empathy_sound_pref_is_enabled (key)) {
+	EmpathySoundEntry *entry = &(sound_entries[sound_id]);
+	gboolean should_play = TRUE;
+
+	if (entry->gconf_key != NULL) {
+		should_play = empathy_sound_pref_is_enabled (entry->gconf_key);
+	}
+
+	if (should_play) {
 		ca_gtk_play_for_widget (widget, 0,
-					CA_PROP_EVENT_ID, event_id,
-					CA_PROP_EVENT_DESCRIPTION, description,
+					CA_PROP_EVENT_ID, entry->event_ca_id,
+					CA_PROP_EVENT_DESCRIPTION, entry->event_ca_description,
 					NULL);
 	}
 }
\ No newline at end of file

Modified: trunk/libempathy-gtk/empathy-ui-utils.h
==============================================================================
--- trunk/libempathy-gtk/empathy-ui-utils.h	(original)
+++ trunk/libempathy-gtk/empathy-ui-utils.h	Tue Jan  6 16:49:01 2009
@@ -44,6 +44,20 @@
 
 G_BEGIN_DECLS
 
+typedef enum {
+	EMPATHY_SOUND_MESSAGE_INCOMING,
+	EMPATHY_SOUND_MESSAGE_OUTGOING,
+	EMPATHY_SOUND_CONVERSATION_NEW,
+	EMPATHY_SOUND_CONTACT_CONNECTED,
+	EMPATHY_SOUND_CONTACT_DISCONNECTED,
+	EMPATHY_SOUND_ACCOUNT_CONNECTED,
+	EMPATHY_SOUND_ACCOUNT_DISCONNECTED,
+	EMPATHY_SOUND_PHONE_INCOMING,
+	EMPATHY_SOUND_PHONE_OUTGOING,
+	EMPATHY_SOUND_PHONE_HANGUP,
+	LAST_EMPATHY_SOUND
+} EmpathySound;
+
 #define G_STR_EMPTY(x) ((x) == NULL || (x)[0] == '\0')
 
 void            empathy_gtk_init                        (void);
@@ -116,9 +130,7 @@
 
 /* Sounds */
 void        empathy_sound_play                          (GtkWidget        *widget,
-							 const char       *key,
-							 const char       *event_id,
-							 const char       *description);
+							 EmpathySound      sound_id);
 
 G_END_DECLS
 

Modified: trunk/python/pyempathygtk/pyempathygtk.defs
==============================================================================
--- trunk/python/pyempathygtk/pyempathygtk.defs	(original)
+++ trunk/python/pyempathygtk/pyempathygtk.defs	Tue Jan  6 16:49:01 2009
@@ -198,6 +198,25 @@
   )
 )
 
+(define-enum Sound
+  (in-module "Empathy")
+  (c-name "EmpathySound")
+  (gtype-id "EMPATHY_TYPE_SOUND")
+  (values
+    '("empathy-sound-message-incoming" "EMPATHY_SOUND_MESSAGE_INCOMING")
+    '("empathy-sound-message-outgoing" "EMPATHY_SOUND_MESSAGE_OUTGOING")
+    '("empathy-sound-conversation-new" "EMPATHY_SOUND_CONVERSATION_NEW")
+    '("empathy-sound-contact-connected" "EMPATHY_SOUND_CONTACT_CONNECTED")
+    '("empathy-sound-contact-disconnected" "EMPATHY_SOUND_CONTACT_DISCONNECTED")
+    '("empathy-sound-account-connected" "EMPATHY_SOUND_ACCOUNT_CONNECTED")
+    '("empathy-sound-account-disconnected" "EMPATHY_SOUND_ACCOUNT_DISCONNECTED")
+    '("empathy-sound-phone-incoming" "EMPATHY_SOUND_PHONE_INCOMING")
+    '("empathy-sound-phone-outgoing" "EMPATHY_SOUND_PHONE_OUTGOING")
+    '("empathy-sound-phone-hangup" "EMPATHY_SOUND_PHONE_HANGUP")
+    '("last-empathy-sound" "LAST_EMPATHY_SOUND")
+  )
+)
+
 
 ;; From empathy-account-chooser.h
 
@@ -1737,9 +1756,7 @@
   (return-type "none")
   (parameters
     '("GtkWidget*" "widget")
-    '("const-char*" "key")
-    '("const-char*" "event_id")
-    '("const-char*" "description")
+    '("EmpathySound" "sound_id")
   )
 )
 

Modified: trunk/src/empathy-call-window.c
==============================================================================
--- trunk/src/empathy-call-window.c	(original)
+++ trunk/src/empathy-call-window.c	Tue Jan  6 16:49:01 2009
@@ -25,7 +25,6 @@
 
 #include <glade/glade.h>
 #include <glib/gi18n.h>
-#include <canberra-gtk.h>
 
 #include <telepathy-glib/enums.h>
 
@@ -195,10 +194,9 @@
 call_window_hang_up_button_clicked_cb (GtkWidget *widget,
                                        EmpathyCallWindow *window)
 {
-  ca_gtk_play_for_widget (GTK_WIDGET (window->window), 0,
-                          CA_PROP_EVENT_ID, "phone-hangup",
-                          CA_PROP_EVENT_DESCRIPTION, _("Voice call ended"),
-                          NULL);
+  empathy_sound_play (GTK_WIDGET (window->window),
+		      EMPATHY_SOUND_PHONE_HANGUP);
+
   DEBUG ("Call clicked, end call");
   call_window_finalize (window);
 }
@@ -403,19 +401,14 @@
       if (is_incoming)
         {
           call_window_show_confirmation_dialog (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"),
-                                  NULL);
+          empathy_sound_play (GTK_WIDGET (window->window),
+			      EMPATHY_SOUND_PHONE_INCOMING);
         }
       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"),
-                                  NULL);
-        }
-
+          empathy_sound_play (GTK_WIDGET (window->window),
+			      EMPATHY_SOUND_PHONE_OUTGOING);
+	}
     }
   else if (window->status == EMPATHY_TP_CALL_STATUS_ACCEPTED)
     {

Modified: trunk/src/empathy-chat-window.c
==============================================================================
--- trunk/src/empathy-chat-window.c	(original)
+++ trunk/src/empathy-chat-window.c	Tue Jan  6 16:49:01 2009
@@ -858,13 +858,11 @@
 
 	if (empathy_contact_is_user (sender) != FALSE) {
 		empathy_sound_play (GTK_WIDGET (priv->dialog),
-				    EMPATHY_PREFS_SOUNDS_OUTGOING_MESSAGE,
-				    "message-sent-instant", _("Sent an instant message"));
+				    EMPATHY_SOUND_MESSAGE_OUTGOING);
 	} else {
 		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"));
+					    EMPATHY_SOUND_MESSAGE_INCOMING);
 		}
 	}
 

Modified: trunk/src/empathy-main-window.c
==============================================================================
--- trunk/src/empathy-main-window.c	(original)
+++ trunk/src/empathy-main-window.c	Tue Jan  6 16:49:01 2009
@@ -284,8 +284,7 @@
 main_window_flash_start (EmpathyMainWindow *window)
 {
 	empathy_sound_play (GTK_WIDGET (window->window),
-			    EMPATHY_PREFS_SOUNDS_NEW_CONVERSATION,
-			    "message-new-instant", _("Incoming chat request"));
+			    EMPATHY_SOUND_CONVERSATION_NEW);
 
 	if (window->flash_timeout_id != 0) {
 		return;
@@ -431,16 +430,14 @@
 
 	if (current == TP_CONNECTION_STATUS_DISCONNECTED) {
 		empathy_sound_play (GTK_WIDGET (window->window),
-				    EMPATHY_PREFS_SOUNDS_SERVICE_LOGOUT,
-				    "service-logout", _("Disconnected from server"));
+				    EMPATHY_SOUND_ACCOUNT_DISCONNECTED);
 	}
 
 	if (current == TP_CONNECTION_STATUS_CONNECTED) {
 		GtkWidget *error_widget;
 
 		empathy_sound_play (GTK_WIDGET (window->window),
-				    EMPATHY_PREFS_SOUNDS_SERVICE_LOGIN,
-				    "service-login", _("Connected to server"));
+				    EMPATHY_SOUND_ACCOUNT_CONNECTED);
 
 		/* Account connected without error, remove error message if any */
 		error_widget = g_hash_table_lookup (window->errors, account);
@@ -471,16 +468,14 @@
 	if (previous < MC_PRESENCE_AVAILABLE && current > MC_PRESENCE_OFFLINE) {
 		/* someone is logging in */
 		empathy_sound_play (GTK_WIDGET (window->window),
-				    EMPATHY_PREFS_SOUNDS_CONTACT_LOGIN,
-				    "service-login", _("Contact connected"));
+				    EMPATHY_SOUND_CONTACT_CONNECTED);
 		return;
 	}
 
 	if (previous > MC_PRESENCE_OFFLINE && current < MC_PRESENCE_AVAILABLE) {
 		/* someone is logging off */
 		empathy_sound_play (GTK_WIDGET (window->window),
-				    EMPATHY_PREFS_SOUNDS_CONTACT_LOGOUT,
-				    "service-logout", _("Contact disconnected"));
+				    EMPATHY_SOUND_CONTACT_DISCONNECTED);
 	}
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]