diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2009-01-07 00:49:01 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2009-01-07 00:49:01 +0800 |
commit | 35f3ccfb4d7934dbe3192e9d5e418fe7cb392176 (patch) | |
tree | 6002960fd501559c78475443174d91c5ce0bfa42 | |
parent | 9cd97524aad5e22138407fa59ab4be651fe6468d (diff) | |
download | gsoc2013-empathy-35f3ccfb4d7934dbe3192e9d5e418fe7cb392176.tar gsoc2013-empathy-35f3ccfb4d7934dbe3192e9d5e418fe7cb392176.tar.gz gsoc2013-empathy-35f3ccfb4d7934dbe3192e9d5e418fe7cb392176.tar.bz2 gsoc2013-empathy-35f3ccfb4d7934dbe3192e9d5e418fe7cb392176.tar.lz gsoc2013-empathy-35f3ccfb4d7934dbe3192e9d5e418fe7cb392176.tar.xz gsoc2013-empathy-35f3ccfb4d7934dbe3192e9d5e418fe7cb392176.tar.zst gsoc2013-empathy-35f3ccfb4d7934dbe3192e9d5e418fe7cb392176.zip |
Update empathy_sound_play () to be nicer to use and centralize the list
of sounds we support.
svn path=/trunk/; revision=2082
-rw-r--r-- | libempathy-gtk/empathy-ui-utils.c | 47 | ||||
-rw-r--r-- | libempathy-gtk/empathy-ui-utils.h | 18 | ||||
-rw-r--r-- | python/pyempathygtk/pyempathygtk.defs | 23 | ||||
-rw-r--r-- | src/empathy-call-window.c | 23 | ||||
-rw-r--r-- | src/empathy-chat-window.c | 6 | ||||
-rw-r--r-- | src/empathy-main-window.c | 15 |
6 files changed, 91 insertions, 41 deletions
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index f937ce110..7c125a57b 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -1493,6 +1493,36 @@ empathy_send_file_with_file_chooser (EmpathyContact *contact) 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 @@ empathy_sound_pref_is_enabled (const char *key) 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 diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h index 285b66452..0ed291af7 100644 --- a/libempathy-gtk/empathy-ui-utils.h +++ b/libempathy-gtk/empathy-ui-utils.h @@ -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 @@ void empathy_send_file_with_file_chooser (EmpathyContact *conta /* Sounds */ void empathy_sound_play (GtkWidget *widget, - const char *key, - const char *event_id, - const char *description); + EmpathySound sound_id); G_END_DECLS diff --git a/python/pyempathygtk/pyempathygtk.defs b/python/pyempathygtk/pyempathygtk.defs index 3c83a28ec..574bbcd1f 100644 --- a/python/pyempathygtk/pyempathygtk.defs +++ b/python/pyempathygtk/pyempathygtk.defs @@ -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") ) ) diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c index 4c6777d62..324f37c1e 100644 --- a/src/empathy-call-window.c +++ b/src/empathy-call-window.c @@ -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 @@ static void 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 @@ call_window_update (EmpathyCallWindow *window) 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) { diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 2c97301a5..c6b23b68d 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -858,13 +858,11 @@ chat_window_new_message_cb (EmpathyChat *chat, 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); } } diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c index 07f4b9f7d..f034638e3 100644 --- a/src/empathy-main-window.c +++ b/src/empathy-main-window.c @@ -284,8 +284,7 @@ static void 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 @@ main_window_connection_changed_cb (EmpathyAccountManager *manager, 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 @@ main_window_contact_presence_changed_cb (EmpathyContactMonitor *monitor, 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); } } |