X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fsound.c;h=ec7e9e3f2ae76861df48e01db13aa9d5e4ba095d;hb=660387736370ff5969290ca0b4d93b9f9607dbdc;hp=9bdedb932d852287e885bd01cefea4db63f76a09;hpb=a1655b870904de973c366d85ebdc8adde4ef5e1e;p=chise%2Fxemacs-chise.git.1 diff --git a/src/sound.c b/src/sound.c index 9bdedb9..ec7e9e3 100644 --- a/src/sound.c +++ b/src/sound.c @@ -37,12 +37,10 @@ Boston, MA 02111-1307, USA. */ #include "redisplay.h" #include "sysdep.h" -#ifdef HAVE_UNISTD_H -#include -#endif +#include "sysfile.h" #ifdef HAVE_NATIVE_SOUND -# include +# 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.