update.
[chise/xemacs-chise.git.1] / src / sound.c
index 9bdedb9..ec7e9e3 100644 (file)
@@ -37,12 +37,10 @@ Boston, MA 02111-1307, USA.  */
 #include "redisplay.h"
 #include "sysdep.h"
 
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
+#include "sysfile.h"
 
 #ifdef HAVE_NATIVE_SOUND
-# include <netdb.h>
+# include "sysproc.h"
 # include "nativesound.h"
 #endif
 
@@ -52,8 +50,8 @@ 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;
+Fixnum bell_volume;
+Fixnum bell_inhibit_time;
 Lisp_Object Vsound_alist;
 Lisp_Object Vsynchronous_sounds;
 Lisp_Object Vnative_sound_only_on_console;
@@ -122,9 +120,7 @@ Windows the sound file must be in WAV format.
     {
       char *fileext;
 
-      TO_EXTERNAL_FORMAT (LISP_STRING, file,
-                         C_STRING_ALLOCA, fileext,
-                         Qfile_name);
+      LISP_STRING_TO_EXTERNAL (file, fileext, Qfile_name);
       /* #### NAS code should allow specification of a device. */
       if (nas_play_sound_file (fileext, vol))
        return Qnil;
@@ -137,9 +133,7 @@ Windows the sound file must be in WAV format.
       char *fileext;
       int result;
 
-      TO_EXTERNAL_FORMAT (LISP_STRING, file,
-                         C_STRING_ALLOCA, fileext,
-                         Qfile_name);
+      LISP_STRING_TO_EXTERNAL (file, fileext, Qfile_name);
 
       /* #### ESD uses alarm(). But why should we also stop SIGIO? */
       stop_interrupts ();
@@ -155,9 +149,7 @@ Windows the sound file must be in WAV format.
     {
       const char *fileext;
 
-      TO_EXTERNAL_FORMAT (LISP_STRING, file,
-                         C_STRING_ALLOCA, fileext,
-                         Qfile_name);
+      LISP_STRING_TO_EXTERNAL (file, fileext, Qfile_name);
       /* The sound code doesn't like getting SIGIO interrupts.
         Unix sucks! */
       stop_interrupts ();
@@ -279,7 +271,7 @@ See the variable `sound-alist'.
   /* variable `sound' is anything that can be a cdr in sound-alist */
   Lisp_Object new_volume, pitch, duration, data;
   int loop_count = 0;
-  int vol, pit, dur, succes;
+  int vol, pit, dur;
   struct device *d = decode_device (device);
 
   /* NOTE!  You'd better not signal an error in here. */
@@ -335,13 +327,14 @@ See the variable `sound-alist'.
     {
       Extbyte *soundext;
       Extcount soundextlen;
+      int succes;
 
       TO_EXTERNAL_FORMAT (LISP_STRING, sound, ALLOCA, (soundext, soundextlen),
                          Qbinary);
       
       /* #### ESD uses alarm(). But why should we also stop SIGIO? */
       stop_interrupts ();
-      succes = esd_play_sound_data (soundext, soundextlen, vol);
+      succes = esd_play_sound_data ((unsigned char *) soundext, soundextlen, vol);
       start_interrupts ();
       QUIT;
       if(succes)
@@ -355,6 +348,7 @@ See the variable `sound-alist'.
     {
       const Extbyte *soundext;
       Extcount soundextlen;
+      int succes;
 
       TO_EXTERNAL_FORMAT (LISP_STRING, sound,
                          ALLOCA, (soundext, soundextlen),
@@ -473,7 +467,7 @@ init_nas_sound (struct device *d)
 static void
 init_native_sound (struct device *d)
 {
-  if (DEVICE_TTY_P (d) || DEVICE_STREAM_P (d) || DEVICE_MSWINDOWS_P(d))
+  if (!(DEVICE_X_P(d) || DEVICE_GTK_P(d)))
     DEVICE_ON_CONSOLE_P (d) = 1;
 #ifdef HAVE_X_WINDOWS
   else
@@ -523,7 +517,7 @@ init_native_sound (struct device *d)
                DEVICE_ON_CONSOLE_P (d) = 0;
              else
                {
-                 char hn [255];
+                 char *hn = alloca_array (char, strlen (h->h_name) + 1);
                  struct hostent *l;
                  strcpy (hn, h->h_name);
                  l = gethostbyname (localname);
@@ -652,7 +646,7 @@ of sounds.  Otherwise, sounds are always played synchronously.
   DEFVAR_LISP ("native-sound-only-on-console", &Vnative_sound_only_on_console /*
 Non-nil value means play sounds only if XEmacs is running
 on the system console.
-Nil means always always play sounds, even if running on a non-console tty
+Nil means always play sounds, even if running on a non-console tty
 or a secondary X display.
 
 This variable only applies to native sound support.