Mercurial > hg > xemacs-beta
diff src/nas.c @ 613:023b83f4e54b
[xemacs-hg @ 2001-06-10 10:42:16 by ben]
------ signal-code changes ------
data.c, device-tty.c, emacs.c, floatfns.c, linuxplay.c, nas.c,
process-unix.c, signal.c, sunplay.c, sysdep.c, syssignal.h:
use EMACS_SIGNAL everywhere instead of playing preprocessing
games with signal().
s\windowsnt.h, s\mingw32.h, syssignal.h:
Remove mswindows signal code from s+m headers and move to
syssignal.h as one of the five ways of signal handling,
instead of playing preprocessing games.
fileio.c, sysdep.c:
Rename sys_do_signal to qxe_reliable_signal.
signal.c, process-unix.c, profile.c:
Create set_timeout_signal(); use instead of just EMACS_SIGNAL
to establish a signal handler on a timeout signal; this does
special things under Cygwin.
nt.c:
Eliminate term_ntproc(), which is blank; used as a SIGABRT
handler, which was wrong anyway.
nt.c, win32.c:
Move signal code from nt.c to win32.c, since Cygwin needs it
too when dealing with timeout signals.
s\cygwin32.h:
Define CYGWIN_BROKEN_SIGNALS.
------ other changes ------
s\mingw32.h:
Fix problems with NOT_C_CODE being in the wrong place and
excluding defines needed when building Makefile.in.in.
filelock.c, mule-canna.c, mule-ccl.c, mule-ccl.h, ralloc.c,
unexalpha.c, unexapollo.c, unexcw.c, unexelfsgi.c, unexnt.c,
unexsni.c, s\aix3-1.h, s\bsd4-1.h, s\bsd4-2.h, s\bsd4-3.h, s\cxux.h,
s\cygwin32.h, s\dgux.h, s\dgux5-4r2.h, s\dgux5-4r3.h, s\dgux5-4r4.h,
s\ewsux5r4.h, s\gnu.h, s\hpux.h, s\iris3-5.h, s\iris3-6.h,
s\irix3-3.h, s\linux.h, s\mingw32.h, s\newsos5.h, s\nextstep.h,
s\ptx.h, s\riscix1-1.h, s\riscix1-2.h, s\rtu.h, s\sco4.h, s\sco5.h,
s\template.h, s\ultrix.h, s\umax.h, s\umips.h, s\unipl5-0.h,
s\unipl5-2.h, s\usg5-0.h, s\usg5-2-2.h, s\usg5-2.h, s\usg5-3.h,
s\usg5-4.h, s\windowsnt.h, s\xenix.h:
Rename 'GNU Emacs' to XEmacs in the copyright and comments.
nas.c:
Stylistic cleanup. Avoid preprocessing games with names such
as play_sound_file.
------ signal-code changes ------
data.c, device-tty.c, emacs.c, floatfns.c, linuxplay.c, nas.c,
process-unix.c, signal.c, sunplay.c, sysdep.c, syssignal.h:
use EMACS_SIGNAL everywhere instead of playing preprocessing
games with signal().
s\windowsnt.h, s\mingw32.h, syssignal.h:
Remove mswindows signal code from s+m headers and move to
syssignal.h as one of the five ways of signal handling,
instead of playing preprocessing games.
fileio.c, sysdep.c:
Rename sys_do_signal to qxe_reliable_signal.
signal.c, process-unix.c, profile.c:
Create set_timeout_signal(); use instead of just EMACS_SIGNAL
to establish a signal handler on a timeout signal; this does
special things under Cygwin.
nt.c:
Eliminate term_ntproc(), which is blank; used as a SIGABRT
handler, which was wrong anyway.
nt.c, win32.c:
Move signal code from nt.c to win32.c, since Cygwin needs it
too when dealing with timeout signals.
s\cygwin32.h:
Define CYGWIN_BROKEN_SIGNALS.
------ other changes ------
s\mingw32.h:
Fix problems with NOT_C_CODE being in the wrong place and
excluding defines needed when building Makefile.in.in.
filelock.c, mule-canna.c, mule-ccl.c, mule-ccl.h, ralloc.c,
unexalpha.c, unexapollo.c, unexcw.c, unexelfsgi.c, unexnt.c,
unexsni.c, s\aix3-1.h, s\bsd4-1.h, s\bsd4-2.h, s\bsd4-3.h, s\cxux.h,
s\cygwin32.h, s\dgux.h, s\dgux5-4r2.h, s\dgux5-4r3.h, s\dgux5-4r4.h,
s\ewsux5r4.h, s\gnu.h, s\hpux.h, s\iris3-5.h, s\iris3-6.h,
s\irix3-3.h, s\linux.h, s\mingw32.h, s\newsos5.h, s\nextstep.h,
s\ptx.h, s\riscix1-1.h, s\riscix1-2.h, s\rtu.h, s\sco4.h, s\sco5.h,
s\template.h, s\ultrix.h, s\umax.h, s\umips.h, s\unipl5-0.h,
s\unipl5-2.h, s\usg5-0.h, s\usg5-2-2.h, s\usg5-2.h, s\usg5-3.h,
s\usg5-4.h, s\windowsnt.h, s\xenix.h:
Rename 'GNU Emacs' to XEmacs in the copyright and comments.
nas.c:
Stylistic cleanup. Avoid preprocessing games with names such
as play_sound_file.
xemacs-faq.texi:
Update sections on Windows and MacOS availability.
alist.el, apropos.el, autoload.el, bytecomp.el, cl-compat.el, cl-extra.el, cl-macs.el, cl-seq.el, cl.el, cmdloop.el, cus-edit.el, derived.el, gpm.el, itimer.el, lisp-mode.el, shadow.el, version.el, wid-browse.el:
Rename 'GNU Emacs' to XEmacs in the copyright. Fix other
references to GNU Emacs that should be XEmacs or just Emacs.
files.el:
Fix warning.
simple.el:
transpose-line-up/down will now move the region up or down by
a line if active.
cvtmail.c, fakemail.c, gnuserv.c, gnuserv.h, gnuslib.c, make-msgfile.c, make-path.c, pop.c, pop.h, profile.c, tcp.c:
Rename 'GNU Emacs' to XEmacs in the copyright.
Fix comments in similar ways.
digest-doc.c, sorted-doc.c:
Fix program and author name to reflect XEmacs.
author | ben |
---|---|
date | Sun, 10 Jun 2001 10:42:39 +0000 |
parents | 183866b06e0b |
children | 6728e641994e |
line wrap: on
line diff
--- a/src/nas.c Sat Jun 09 09:02:04 2001 +0000 +++ b/src/nas.c Sun Jun 10 10:42:39 2001 +0000 @@ -82,37 +82,29 @@ /* NAS <= 1.2p5 <audio/fileutil.h> doesn't define the NAS_ versions */ #ifndef NAS_LITTLE_ENDIAN -#define NAS_LITTLE_ENDIAN LITTLE_ENDIAN -#define NAS_BIG_ENDIAN BIG_ENDIAN +# define NAS_LITTLE_ENDIAN LITTLE_ENDIAN +# define NAS_BIG_ENDIAN BIG_ENDIAN #endif -# define XTOOLKIT -# define XTEVENTS -# define ROBUST_PLAY -# define CACHE_SOUNDS +#define XTOOLKIT +#define XTEVENTS +#define ROBUST_PLAY +#define CACHE_SOUNDS /* * For old NAS libraries, force playing to be synchronous * and declare the long jump point locally. */ -# if defined (NAS_NO_ERROR_JUMP) - -# undef XTEVENTS - -# include <setjmp.h> - jmp_buf AuXtErrorJump; -# endif - -# define play_sound_file nas_play_sound_file -# define play_sound_data nas_play_sound_data -# define wait_for_sounds nas_wait_for_sounds -# define init_play nas_init_play -# define close_down_play nas_close_down_play +#if defined (NAS_NO_ERROR_JUMP) +# undef XTEVENTS +# include <setjmp.h> +jmp_buf AuXtErrorJump; +#endif #ifdef XTOOLKIT -# include <X11/Intrinsic.h> -# include <audio/Xtutil.h> +# include <X11/Intrinsic.h> +# include <audio/Xtutil.h> #endif #if defined (ROBUST_PLAY) @@ -139,7 +131,7 @@ #endif /* XTOOLKIT */ Extbyte * -init_play ( +nas_init_play ( #ifdef XTOOLKIT Display *display #else @@ -147,7 +139,7 @@ #endif ); Extbyte * -init_play ( +nas_init_play ( #ifdef XTOOLKIT Display *display #else @@ -169,10 +161,10 @@ #endif #ifdef ROBUST_PLAY - old_sigpipe = signal (SIGPIPE, sigpipe_handle); + old_sigpipe = EMACS_SIGNAL (SIGPIPE, sigpipe_handle); if (setjmp (AuXtErrorJump)) { - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #ifdef emacs start_interrupts (); #endif @@ -195,7 +187,7 @@ if (!aud) { #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif if (err_message == NULL) return "Can't connect to audio server"; @@ -222,7 +214,7 @@ #endif #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif sounds_in_play = 0; @@ -231,7 +223,7 @@ } static void -close_down_play (void) +nas_close_down_play (void) { AuCloseServer (aud); @@ -329,9 +321,9 @@ #endif /* CACHE_SOUNDS */ -void wait_for_sounds (void); +void nas_wait_for_sounds (void); void -wait_for_sounds (void) +nas_wait_for_sounds (void) { AuEvent ev; @@ -343,45 +335,46 @@ } } -int play_sound_file (Extbyte *sound_file, int volume); +int nas_play_sound_file (Extbyte *sound_file, int volume); int -play_sound_file (Extbyte *sound_file, - int volume) +nas_play_sound_file (Extbyte *sound_file, + int volume) { SIGTYPE (*old_sigpipe) (int); #ifdef ROBUST_PLAY - old_sigpipe=signal (SIGPIPE, sigpipe_handle); + old_sigpipe = EMACS_SIGNAL (SIGPIPE, sigpipe_handle); if (setjmp (AuXtErrorJump)) { - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); return 0; } #endif - if (aud==NULL) { - if (aud_server != NULL) - { - Extbyte *m; - /* attempt to reconect */ - if ((m=init_play (aud_server))!= NULL) - { - + if (aud==NULL) + { + if (aud_server != NULL) + { + Extbyte *m; + /* attempt to reconect */ + if ((m = nas_init_play (aud_server)) != NULL) + { + #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif - return 0; - } - } - else - { - sound_warn ("Attempt to play with no audio init\n"); + return 0; + } + } + else + { + sound_warn ("Attempt to play with no audio init\n"); #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif - return 0; - } - } + return 0; + } + } #ifndef CACHE_SOUNDS sounds_in_play++; @@ -403,7 +396,7 @@ if ((s = SoundOpenFileForReading (sound_file))==NULL) { #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif return 0; } @@ -421,26 +414,22 @@ #endif /* CACHE_SOUNDS */ #ifndef XTEVENTS - wait_for_sounds (); + nas_wait_for_sounds (); #else if (!NILP (Vsynchronous_sounds)) - { - wait_for_sounds (); - } + nas_wait_for_sounds (); #endif #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif return 1; } -int play_sound_data (UChar_Binary *data, int length, int volume); +int nas_play_sound_data (UChar_Binary *data, int length, int volume); int -play_sound_data (UChar_Binary *data, - int length, - int volume) +nas_play_sound_data (UChar_Binary *data, int length, int volume) { Sound s; int offset; @@ -451,10 +440,10 @@ #endif #ifdef ROBUST_PLAY - old_sigpipe = signal (SIGPIPE, sigpipe_handle); - if (setjmp (AuXtErrorJump) !=0) + old_sigpipe = EMACS_SIGNAL (SIGPIPE, sigpipe_handle); + if (setjmp (AuXtErrorJump) != 0) { - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); return 0; } #endif @@ -465,10 +454,10 @@ { Extbyte *m; /* attempt to reconect */ - if ((m = init_play (aud_server)) != NULL) + if ((m = nas_init_play (aud_server)) != NULL) { #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif return 0; } @@ -477,7 +466,7 @@ { sound_warn ("Attempt to play with no audio init\n"); #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif return 0; } @@ -487,7 +476,7 @@ { sound_warn ("unknown sound type"); #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif return 0; } @@ -506,7 +495,7 @@ sound_warn ("only understand snd and wave files at the moment"); SoundCloseFile (s); #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif return 0; } @@ -526,25 +515,21 @@ #else /* Cache the sounds in buckets on the server */ - { - do_caching_play (s, volume, data+offset); - } + do_caching_play (s, volume, data+offset); #endif /* CACHE_SOUNDS */ #ifndef XTEVENTS - wait_for_sounds (); + nas_wait_for_sounds (); #else if (!NILP (Vsynchronous_sounds)) - { - wait_for_sounds (); - } + nas_wait_for_sounds (); #endif SoundCloseFile (s); #ifdef ROBUST_PLAY - signal (SIGPIPE, old_sigpipe); + EMACS_SIGNAL (SIGPIPE, old_sigpipe); #endif return 1; @@ -570,9 +555,7 @@ #ifdef XTEVENTS #ifdef XTOOLKIT - { - AuXtAppRemoveAudioHandler (aud, input_id); - } + AuXtAppRemoveAudioHandler (aud, input_id); #endif if (aud) @@ -808,36 +791,36 @@ static unsigned short DataReadS (int swapit) { - unsigned short us; + unsigned short us; - dread(&us, 2, 1); - if (swapit) - us = FileSwapS(us); - return us; + dread(&us, 2, 1); + if (swapit) + us = FileSwapS(us); + return us; } static AuUint32 DataReadL (int swapit) { - AuUint32 ul; + AuUint32 ul; - dread(&ul, 4, 1); - if (swapit) - ul = FileSwapL(ul); - return ul; + dread(&ul, 4, 1); + if (swapit) + ul = FileSwapL(ul); + return ul; } static int readChunk (RiffChunk *c) { - int status; - Char_Binary n; + int status; + Char_Binary n; - if ((status = dread(c, sizeof(RiffChunk), 1))) - if (NAS_BIG_ENDIAN) - swapl(&c->ckSize, n); + if ((status = dread(c, sizeof(RiffChunk), 1))) + if (NAS_BIG_ENDIAN) + swapl(&c->ckSize, n); - return status; + return status; } /* A very straight-forward translation of WaveOpenFileForReading to @@ -847,133 +830,133 @@ WaveOpenDataForReading (const Char_Binary *data, int length) { - RiffChunk ck; - RIFF_FOURCC fourcc; - AuInt32 fileSize; - WaveInfo *wi; + RiffChunk ck; + RIFF_FOURCC fourcc; + AuInt32 fileSize; + WaveInfo *wi; - if (!(wi = (WaveInfo *) malloc(sizeof(WaveInfo)))) - return NULL; + if (!(wi = (WaveInfo *) malloc(sizeof(WaveInfo)))) + return NULL; - wi->comment = NULL; - wi->dataOffset = wi->format = wi->writing = 0; + wi->comment = NULL; + wi->dataOffset = wi->format = wi->writing = 0; - dopen(data, length); + dopen(data, length); - if (!readChunk(&ck) || - cmpID(&ck.ckID, RIFF_RiffID) || - !readFourcc(&fourcc) || - cmpID(&fourcc, RIFF_WaveID)) + if (!readChunk(&ck) || + cmpID(&ck.ckID, RIFF_RiffID) || + !readFourcc(&fourcc) || + cmpID(&fourcc, RIFF_WaveID)) + Err(); + + fileSize = PAD2(ck.ckSize) - sizeof(RIFF_FOURCC); + + while (fileSize >= sizeof(RiffChunk)) + { + if (!readChunk(&ck)) Err(); - fileSize = PAD2(ck.ckSize) - sizeof(RIFF_FOURCC); + fileSize -= sizeof(RiffChunk) + PAD2(ck.ckSize); - while (fileSize >= sizeof(RiffChunk)) - { - if (!readChunk(&ck)) + /* LIST chunk */ + if (!cmpID(&ck.ckID, RIFF_ListID)) + { + if (!readFourcc(&fourcc)) Err(); - fileSize -= sizeof(RiffChunk) + PAD2(ck.ckSize); + /* INFO chunk */ + if (!cmpID(&fourcc, RIFF_ListInfoID)) + { + ck.ckSize -= sizeof(RIFF_FOURCC); - /* LIST chunk */ - if (!cmpID(&ck.ckID, RIFF_ListID)) - { - if (!readFourcc(&fourcc)) - Err(); + while (ck.ckSize) + { + RiffChunk c; - /* INFO chunk */ - if (!cmpID(&fourcc, RIFF_ListInfoID)) - { - ck.ckSize -= sizeof(RIFF_FOURCC); + if (!readChunk(&c)) + Err(); - while (ck.ckSize) - { - RiffChunk c; - - if (!readChunk(&c)) + /* ICMT chunk */ + if (!cmpID(&c.ckID, RIFF_InfoIcmtID)) + { + if (!(wi->comment = (Extbyte *) malloc(c.ckSize)) || + !dread(wi->comment, c.ckSize, 1)) Err(); - /* ICMT chunk */ - if (!cmpID(&c.ckID, RIFF_InfoIcmtID)) - { - if (!(wi->comment = (Extbyte *) malloc(c.ckSize)) || - !dread(wi->comment, c.ckSize, 1)) - Err(); + if (c.ckSize & 1) + dgetc(); /* eat the pad byte */ + } + else + /* skip unknown chunk */ + dseek(PAD2(c.ckSize), 1); - if (c.ckSize & 1) - dgetc(); /* eat the pad byte */ - } - else - /* skip unknown chunk */ - dseek(PAD2(c.ckSize), 1); - - ck.ckSize -= sizeof(RiffChunk) + PAD2(c.ckSize); + ck.ckSize -= sizeof(RiffChunk) + PAD2(c.ckSize); } } - else - /* skip unknown chunk */ - dseek(PAD2(ck.ckSize) - sizeof(RIFF_FOURCC), 1); + else + /* skip unknown chunk */ + dseek(PAD2(ck.ckSize) - sizeof(RIFF_FOURCC), 1); } - /* wave format chunk */ - else if (!cmpID(&ck.ckID, RIFF_WaveFmtID) && !wi->format) + /* wave format chunk */ + else if (!cmpID(&ck.ckID, RIFF_WaveFmtID) && !wi->format) { - AuInt32 dummy; + AuInt32 dummy; - wi->format = DataReadS(NAS_BIG_ENDIAN); - wi->channels = DataReadS(NAS_BIG_ENDIAN); - wi->sampleRate = DataReadL(NAS_BIG_ENDIAN); + wi->format = DataReadS(NAS_BIG_ENDIAN); + wi->channels = DataReadS(NAS_BIG_ENDIAN); + wi->sampleRate = DataReadL(NAS_BIG_ENDIAN); - /* we don't care about the next two fields */ - dummy = DataReadL(NAS_BIG_ENDIAN); - dummy = DataReadS(NAS_BIG_ENDIAN); + /* we don't care about the next two fields */ + dummy = DataReadL(NAS_BIG_ENDIAN); + dummy = DataReadS(NAS_BIG_ENDIAN); - if (wi->format != RIFF_WAVE_FORMAT_PCM) - Err(); + if (wi->format != RIFF_WAVE_FORMAT_PCM) + Err(); - wi->bitsPerSample = DataReadS(NAS_BIG_ENDIAN); + wi->bitsPerSample = DataReadS(NAS_BIG_ENDIAN); - /* skip any other format specific fields */ - dseek(PAD2(ck.ckSize - 16), 1); + /* skip any other format specific fields */ + dseek(PAD2(ck.ckSize - 16), 1); } - /* wave data chunk */ - else if (!cmpID(&ck.ckID, RIFF_WaveDataID) && !wi->dataOffset) + /* wave data chunk */ + else if (!cmpID(&ck.ckID, RIFF_WaveDataID) && !wi->dataOffset) { - long endOfFile; + long endOfFile; - wi->dataOffset = dtell(); - wi->dataSize = ck.ckSize; - dseek(0, 2); - endOfFile = dtell(); + wi->dataOffset = dtell(); + wi->dataSize = ck.ckSize; + dseek(0, 2); + endOfFile = dtell(); - /* seek past the data */ - if (dseek(wi->dataOffset + PAD2(ck.ckSize), 0) || - dtell() > endOfFile) + /* seek past the data */ + if (dseek(wi->dataOffset + PAD2(ck.ckSize), 0) || + dtell() > endOfFile) { - /* the seek failed, assume the size is bogus */ - dseek(0, 2); - wi->dataSize = dtell() - wi->dataOffset; + /* the seek failed, assume the size is bogus */ + dseek(0, 2); + wi->dataSize = dtell() - wi->dataOffset; } - wi->dataOffset -= sizeof(long); + wi->dataOffset -= sizeof(long); } - else - /* skip unknown chunk */ - dseek(PAD2(ck.ckSize), 1); + else + /* skip unknown chunk */ + dseek(PAD2(ck.ckSize), 1); } - if (!wi->dataOffset) - Err(); + if (!wi->dataOffset) + Err(); - wi->numSamples = wi->dataSize / wi->channels / (wi->bitsPerSample >> 3); + wi->numSamples = wi->dataSize / wi->channels / (wi->bitsPerSample >> 3); - if (!wi->comment) - wi->comment = NameFromData (data + wi->dataOffset, - length - wi->dataOffset); + if (!wi->comment) + wi->comment = NameFromData (data + wi->dataOffset, + length - wi->dataOffset); - wi->fp = NULL; + wi->fp = NULL; - return wi; + return wi; }