summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTingPing <tingping@tingping.se>2013-04-27 18:05:05 -0400
committerTingPing <tingping@tingping.se>2013-04-27 18:05:05 -0400
commit78e39bfb1c4ee8df75f8f459e2572d6d328ae4cd (patch)
treed257bce35e70448a60adf6b84fd4c0f577177d33
parent7323f7c5618a37bbdf92ba3ea72d8921fb7195f7 (diff)
use libcanberra for beeps
-rw-r--r--configure.ac23
-rw-r--r--src/fe-gtk/fe-gtk.c10
2 files changed, 33 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 2715398c..401c3a50 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,6 +45,7 @@ AH_VERBATIM([USE_GTKSPELL],[#undef USE_GTKSPELL])
 AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY])
 AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES])
 AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY])
+AH_VERBATIM([USE_LIBCANBERRA],[#undef USE_LIBCANBERRA])
 AH_VERBATIM([USE_IPV6],[#undef USE_IPV6])
 AH_VERBATIM([USE_MMX],[#undef USE_MMX])
 AH_VERBATIM([USE_OPENSSL],[#undef USE_OPENSSL])
@@ -153,6 +154,11 @@ AC_ARG_ENABLE(libnotify,
 	[AS_HELP_STRING([--disable-libnotify],[disable libnotify support])],
         libnotify=$enableval, libnotify=yes)
 
+AC_ARG_ENABLE(libcanberra,
+	[AS_HELP_STRING([--disable-libcanberra],[disable libcanberra support])],
+		libcanberra=$enableval, libcanberra=yes)
+
+
 AC_ARG_ENABLE(mmx,
 	[AS_HELP_STRING([--disable-mmx],[disable MMX assembly routines])],
         mmx=$enableval, mmx=yes)
@@ -606,6 +612,21 @@ if test "x$libnotify" = "xyes" ; then
 fi
 
 dnl *********************************************************************
+dnl ** LIBCANBERRA ******************************************************
+dnl *********************************************************************
+
+if test "x$libcanberra" = "xyes" ; then
+	PKG_CHECK_MODULES(LIBCANBERRAGTK, libcanberra-gtk >= 0.22, [], [
+		libcanberra=no
+	])
+	if test "$libcanberra" != "no" ; then
+		GUI_LIBS="$GUI_LIBS $LIBCANBERRAGTK_LIBS"
+		GUI_CFLAGS="$GUI_CFLAGS $LIBCANBERRAGTK_CFLAGS"
+		AC_DEFINE(USE_LIBCANBERRA)
+	fi
+fi
+
+dnl *********************************************************************
 dnl ** SPELL ************************************************************
 dnl *********************************************************************
 
@@ -650,6 +671,7 @@ dnl *********************************************************************
 AM_CONDITIONAL(USE_OPENSSL, test "x$openssl" = "xyes")
 AM_CONDITIONAL(USE_LIBSEXY, test "x$spell" = "xstatic")
 AM_CONDITIONAL(USE_LIBNOTIFY, test "x$libnotify" = "xyes")
+AM_CONDITIONAL(USE_LIBCANBERRA, test "x$libcanberra" = "xyes")
 AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
 AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes")
 AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes")
@@ -969,6 +991,7 @@ fi
 echo OpenSSL support ....... : $openssl
 echo D-Bus support ......... : $dbus
 echo libnotify support ..... : $libnotify
+echo libcanberra support ... : $libcanberra
 echo Spelling .............. : $spell
 echo Plugin interface ...... : $plugin
 echo NLS/gettext ........... : $USE_NLS
diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c
index e26fb6d0..1ec5debd 100644
--- a/src/fe-gtk/fe-gtk.c
+++ b/src/fe-gtk/fe-gtk.c
@@ -56,6 +56,10 @@
 #include <gdk/gdkx.h>
 #endif
 
+#ifdef USE_LIBCANBERRA
+#include <canberra-gtk.h>
+#endif
+
 GdkPixmap *channelwin_pix;
 
 
@@ -671,6 +675,12 @@ fe_beep (session *sess)
 			Beep (1000, 50);
 		}
 #else
+#ifdef USE_LIBCANBERRA
+		if (ca_context_play (ca_gtk_context_get (), 0,
+						CA_PROP_APPLICATION_NAME, DISPLAY_NAME,
+						CA_PROP_EVENT_ID, "message-new-instant", NULL) == 0)
+			return;
+#endif
 		gdk_beep ();
 #endif
 	}