[maemo-commits] [maemo-commits] r12451 - in projects/haf/trunk/hildon-desktop: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Jun 25 17:22:04 EEST 2007
Author: lucasr
Date: 2007-06-25 17:21:50 +0300 (Mon, 25 Jun 2007)
New Revision: 12451

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
Log:
2007-06-25  Lucas Rocha  <lucas.rocha at nokia.com>

	* src/hd-switcher-menu.c: added support for sound hint on
	notifications.


Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-06-25 14:21:15 UTC (rev 12450)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-06-25 14:21:50 UTC (rev 12451)
@@ -1,3 +1,8 @@
+2007-06-25  Lucas Rocha  <lucas.rocha at nokia.com>
+
+	* src/hd-switcher-menu.c: added support for sound hint on
+	notifications.
+
 2007-06-25  Johan Bilien  <johan.bilien at nokia.com>
 
 	* background-manager/{background-manager.[ch],

Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-06-25 14:21:15 UTC (rev 12450)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-06-25 14:21:50 UTC (rev 12451)
@@ -29,6 +29,7 @@
 /* Hildon includes */
 #include "hd-switcher-menu.h"
 #include "hd-switcher-menu-item.h"
+#include "hn-app-sound.h"
 #include "hn-app-pixbuf-anim-blinker.h"
 
 #include <gdk/gdkx.h>
@@ -126,6 +127,8 @@
 
   GtkWidget		   *window_dialog;
   GtkWidget		   *toggle_button;
+  
+  gint                      esd_socket;
 };
 
 static GObject *hd_switcher_menu_constructor (GType gtype,
@@ -210,6 +213,8 @@
   switcher->priv->icon_theme = gtk_icon_theme_get_default ();
 
   g_object_ref (switcher->hdwm);
+
+  switcher->priv->esd_socket = hn_as_sound_init ();
 }
 
 static void 
@@ -693,7 +698,9 @@
     gtk_widget_destroy (switcher->priv->window_dialog);	  
 
   g_object_unref (switcher->priv->icon_theme);
-	
+
+  hn_as_sound_deinit (switcher->priv->esd_socket); 
+  
   G_OBJECT_CLASS (hd_switcher_menu_parent_class)->finalize (object);
 }
 
@@ -1446,7 +1453,7 @@
 {
   GdkPixbuf *icon = NULL;
   gchar *summary = NULL, *body = NULL;
-  const gchar *category = NULL;
+  const gchar *category = NULL, *sound_file = NULL;
   GHashTable *hints;
   GList *children;
   GValue *hint;
@@ -1478,6 +1485,34 @@
     if (g_str_has_prefix (category, "system.note"))
       goto out;	  
   }
+
+  hint = g_hash_table_lookup (hints, "sound-file");
+
+  if (hint)
+  {
+    gint sample_id;
+
+    g_debug ("PLAYING SOUND!");
+    
+    sound_file = g_value_get_string (hint);
+
+    sample_id = hn_as_sound_register_sample (switcher->priv->esd_socket,
+                                             sound_file);
+
+    if (hn_as_sound_play_sample (switcher->priv->esd_socket, 
+			         sample_id) == -1)
+    {
+      hn_as_sound_deinit (switcher->priv->esd_socket);
+      
+      switcher->priv->esd_socket = hn_as_sound_init ();
+
+      hn_as_sound_play_sample (switcher->priv->esd_socket, 
+		               sample_id);
+    }
+
+    hn_as_sound_deregister_sample (switcher->priv->esd_socket, 
+		                   sample_id);
+  }
   
   if (switcher->priv->last_iter_added == NULL)
     hd_switcher_menu_notification_deleted_cb 


More information about the maemo-commits mailing list