First Edition.
[bpt/emacs.git] / src / sound.c
index 0f0706e..521f1fd 100644 (file)
@@ -41,6 +41,14 @@ Boston, MA 02111-1307, USA.  */
 #ifdef HAVE_SYS_SOUNDCARD_H
 #include <sys/soundcard.h>
 #endif
+#ifdef HAVE_SOUNDCARD_H
+#include <sys/ioctl.h>
+#include <soundcard.h>
+#endif
+
+#ifndef DEFAULT_SOUND_DEVICE
+#define DEFAULT_SOUND_DEVICE "/dev/dsp"
+#endif
 
 #define max(X, Y) ((X) > (Y) ? (X) : (Y))
 #define min(X, Y) ((X) < (Y) ? (X) : (Y))
@@ -347,7 +355,8 @@ sound_cleanup (arg)
 {
   if (current_sound_device)
     {
-      current_sound_device->close (current_sound_device);
+      if (current_sound_device->close)
+       current_sound_device->close (current_sound_device);
       if (current_sound->fd > 0)
        emacs_close (current_sound->fd);
     }
@@ -359,7 +368,7 @@ DEFUN ("play-sound", Fplay_sound, Splay_sound, 1, 1, 0,
 SOUND is a list of the form `(sound KEYWORD VALUE...)'.\n\
 The following keywords are recognized:\n\
 \n\
-  :file FILE.- read sound data from FILE.  If FILE Isn't an\n\
+  :file FILE.- read sound data from FILE.  If FILE isn't an\n\
 absolute file name, it is searched in `data-directory'.\n\
 \n\
   :data DATA - read sound data from string DATA.\n\
@@ -434,7 +443,7 @@ a system-dependent default device name is used.")
 
   args[0] = Qplay_sound_functions;
   args[1] = sound;
-  Frun_hook_with_args (make_number (2), args);
+  Frun_hook_with_args (2, args);
 
   /* There is only one type of device we currently support, the VOX
      sound driver.  Set up the device interface functions for that
@@ -735,7 +744,7 @@ vox_open (sd)
   if (sd->file)
     file = sd->file;
   else
-    file = "/dev/dsp";
+    file = DEFAULT_SOUND_DEVICE;
   
   sd->fd = emacs_open (file, O_WRONLY, 0);
   if (sd->fd < 0)