# include <netdb.h>
#endif
+#ifdef HAVE_ESD_SOUND
+extern int esd_play_sound_file (char *file, int vol);
+extern int esd_play_sound_data (unsigned char *data, size_t length, int vol);
+# define DEVICE_CONNECTED_TO_ESD_P(x) 1 /* FIXME: better check */
+#endif
+
int bell_volume;
int bell_inhibit_time;
Lisp_Object Vsound_alist;
{
/* This function can call lisp */
int vol;
-#if defined (HAVE_NATIVE_SOUND) || defined (HAVE_NAS_SOUND)
+#if defined (HAVE_NATIVE_SOUND) || defined (HAVE_NAS_SOUND) \
+ || defined (HAVE_ESD_SOUND)
struct device *d = decode_device (device);
#endif
struct gcpro gcpro1;
}
#endif /* HAVE_NAS_SOUND */
+#ifdef HAVE_ESD_SOUND
+ if (DEVICE_CONNECTED_TO_ESD_P (d))
+ {
+ char *fileext;
+
+ GET_C_STRING_FILENAME_DATA_ALLOCA (file, fileext);
+ if (esd_play_sound_file (fileext, vol))
+ return Qnil;
+ }
+#endif /* HAVE_ESD_SOUND */
+
#ifdef HAVE_NATIVE_SOUND
if (NILP (Vnative_sound_only_on_console) || DEVICE_ON_CONSOLE_P (d))
{
}
#endif /* HAVE_NAS_SOUND */
+#ifdef HAVE_ESD_SOUND
+ if (DEVICE_CONNECTED_TO_ESD_P (d) && STRINGP (sound))
+ {
+ Extbyte *soundext;
+ Extcount soundextlen;
+
+ GET_STRING_BINARY_DATA_ALLOCA (sound, soundext, soundextlen);
+ if (esd_play_sound_data (soundext, soundextlen, vol))
+ return Qnil;
+ }
+#endif /* HAVE_ESD_SOUND */
+
#ifdef HAVE_NATIVE_SOUND
if ((NILP (Vnative_sound_only_on_console) || DEVICE_ON_CONSOLE_P (d))
&& STRINGP (sound))
*/
(arg, sound, device))
{
- static time_t last_bell_time = (time_t) 0;
- static struct device *last_bell_device = (struct device*) 0;
+ static time_t last_bell_time;
+ static struct device *last_bell_device;
time_t now;
struct device *d = decode_device (device);
#ifdef HAVE_NAS_SOUND
Fprovide (intern ("nas-sound"));
#endif
+#ifdef HAVE_ESD_SOUND
+ Fprovide (intern ("esd-sound"));
+#endif
DEFVAR_INT ("bell-volume", &bell_volume /*
*How loud to be, from 0 to 100.