Commit 65f7803d authored by Xavier Claessens's avatar Xavier Claessens

Turn empathy_sound_pref_is_enabled into empathy_sound_play that

automatically plays the sound if the pref is enabled.

svn path=/trunk/; revision=2078
parent aef8f7c5
......@@ -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
......@@ -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
......
......@@ -1732,11 +1732,14 @@
)
)
(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")
)
)
......
......@@ -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"));
}
}
......
......@@ -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"));
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment