ekiga r7483 - in trunk: . src/gui
- From: dsandras svn gnome org
- To: svn-commits-list gnome org
- Subject: ekiga r7483 - in trunk: . src/gui
- Date: Sun, 28 Dec 2008 21:33:42 +0000 (UTC)
Author: dsandras
Date: Sun Dec 28 21:33:42 2008
New Revision: 7483
URL: http://svn.gnome.org/viewvc/ekiga?rev=7483&view=rev
Log:
Make sure sound events are played through the correct devices following
the type of sound event. Fixes #564370.
Modified:
trunk/ChangeLog
trunk/src/gui/preferences.cpp
Modified: trunk/src/gui/preferences.cpp
==============================================================================
--- trunk/src/gui/preferences.cpp (original)
+++ trunk/src/gui/preferences.cpp Sun Dec 28 21:33:42 2008
@@ -351,6 +351,7 @@
1, _("Play sound on incoming calls"),
2, SOUND_EVENTS_KEY "incoming_call_sound",
3, SOUND_EVENTS_KEY "enable_incoming_call_sound",
+ 4, "incoming_call_sound",
-1);
enabled = gm_conf_get_bool (SOUND_EVENTS_KEY "enable_ring_tone_sound");
@@ -360,6 +361,7 @@
1, _("Play ring tone"),
2, SOUND_EVENTS_KEY "ring_tone_sound",
3, SOUND_EVENTS_KEY "enable_ring_tone_sound",
+ 4, "ring_tone_sound",
-1);
enabled = gm_conf_get_bool (SOUND_EVENTS_KEY "enable_busy_tone_sound");
@@ -369,6 +371,7 @@
1, _("Play busy tone"),
2, SOUND_EVENTS_KEY "busy_tone_sound",
3, SOUND_EVENTS_KEY "enable_busy_tone_sound",
+ 4, "busy_tone_sound",
-1);
enabled = gm_conf_get_bool (SOUND_EVENTS_KEY "enable_new_voicemail_sound");
@@ -378,6 +381,7 @@
1, _("Play sound for new voice mails"),
2, SOUND_EVENTS_KEY "new_voicemail_sound",
3, SOUND_EVENTS_KEY "enable_new_voicemail_sound",
+ 4, "new_voicemail_sound",
-1);
enabled = gm_conf_get_bool (SOUND_EVENTS_KEY "enable_new_message_sound");
@@ -387,6 +391,7 @@
1, _("Play sound for new instant messages"),
2, SOUND_EVENTS_KEY "new_message_sound",
3, SOUND_EVENTS_KEY "enable_new_message_sound",
+ 4, "new_message_sound",
-1);
if (!path)
@@ -553,10 +558,11 @@
the file to play. The 4th one contains the key determining if the
sound event is enabled or not. */
list_store =
- gtk_list_store_new (4,
+ gtk_list_store_new (5,
G_TYPE_BOOLEAN,
G_TYPE_STRING,
G_TYPE_STRING,
+ G_TYPE_STRING,
G_TYPE_STRING);
pw->sound_events_list =
@@ -597,24 +603,6 @@
gtk_tree_view_append_column (GTK_TREE_VIEW (pw->sound_events_list), column);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 325);
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Event"),
- renderer,
- "text",
- 2,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (pw->sound_events_list), column);
- gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (column), FALSE);
-
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Event"),
- renderer,
- "text",
- 3,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (pw->sound_events_list), column);
- gtk_tree_view_column_set_visible (GTK_TREE_VIEW_COLUMN (column), FALSE);
-
hbox = gtk_hbox_new (0, FALSE);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
@@ -657,7 +645,7 @@
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (sound_event_play_cb),
- (gpointer) fsbutton);
+ (gpointer) prefs_window);
/* Place it after the signals so that we can make sure they are run if
required */
@@ -1152,21 +1140,37 @@
sound_event_play_cb (G_GNUC_UNUSED GtkWidget *widget,
gpointer data)
{
+ GtkTreeSelection *selection = NULL;
+ GtkTreeModel *model = NULL;
+ GtkTreeIter selected_iter;
+
+ gchar *sound_event = NULL;
+
+ GmPreferencesWindow *pw = NULL;
+
g_return_if_fail (data != NULL);
+ pw = gm_pw_get_pw (GTK_WIDGET (data));
- //FIXME
- Ekiga::ServiceCore *core = GnomeMeeting::Process ()->GetServiceCore ();
- gmref_ptr<Ekiga::AudioOutputCore> audiooutput_core
- = core->get ("audiooutput-core");
+ g_return_if_fail (data != NULL);
- gchar* file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (data));
- if (file_name) {
- std::string file_name_string = file_name;
- audiooutput_core->play_file(file_name_string);
- g_free (file_name);
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (pw->sound_events_list));
+
+ if (gtk_tree_selection_get_selected (selection, &model, &selected_iter)) {
+
+ gtk_tree_model_get (GTK_TREE_MODEL (model), &selected_iter, 4, &sound_event, -1);
+
+ //FIXME
+ Ekiga::ServiceCore *core = GnomeMeeting::Process ()->GetServiceCore ();
+ gmref_ptr<Ekiga::AudioOutputCore> audiooutput_core = core->get ("audiooutput-core");
+
+ if (sound_event) {
+ audiooutput_core->play_event(sound_event);
+ g_free (sound_event);
+ }
}
}
+
static void
sound_event_toggled_cb (G_GNUC_UNUSED GtkCellRendererToggle *cell,
gchar *path_str,
@@ -1211,7 +1215,7 @@
std::string file_name_string = file_name;
audiooutput_core->play_file(file_name_string);
- g_free (file_name);
+ g_free (file_name);
}
void on_videoinput_device_added_cb (const Ekiga::VideoInputDevice & device, bool isDesired, GtkWidget *prefs_window)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]