diff src/sunplay.c @ 563:183866b06e0b

[xemacs-hg @ 2001-05-24 07:50:48 by ben] Makefile.in.in, abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c, casetab.c, chartab.c, cmdloop.c, cmds.c, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console.c, data.c, database.c, debug.c, device-gtk.c, device-msw.c, device-tty.c, device-x.c, device.c, dialog-gtk.c, dialog-msw.c, dialog-x.c, dialog.c, dired-msw.c, dired.c, doc.c, doprnt.c, dragdrop.c, editfns.c, eldap.c, eldap.h, elhash.c, emacs-widget-accessors.c, emacs.c, emodules.c, esd.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, filelock.c, floatfns.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, general-slots.h, glade.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-gtk.c, gui-x.c, gui.c, gutter.c, hpplay.c, indent.c, input-method-xlib.c, insdel.c, intl.c, keymap.c, libsst.c, libsst.h, linuxplay.c, lisp.h, lread.c, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, miscplay.c, miscplay.h, mule-ccl.c, mule-charset.c, mule-wnnfns.c, mule.c, nas.c, ntplay.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay.c, scrollbar.c, search.c, select-gtk.c, select-x.c, select.c, sgiplay.c, sheap.c, sound.c, specifier.c, sunplay.c, symbols.c, symeval.h, symsinit.h, syntax.c, sysdep.c, toolbar-msw.c, toolbar.c, tooltalk.c, ui-byhand.c, ui-gtk.c, undo.c, unexaix.c, unexapollo.c, unexconvex.c, unexec.c, widget.c, win32.c, window.c: -- defsymbol -> DEFSYMBOL. -- add an error type to all errors. -- eliminate the error functions in eval.c that let you just use Qerror as the type. -- redo the error API to be more consistent, sensibly named, and easier to use. -- redo the error hierarchy somewhat. create new errors: structure-formation-error, gui-error, invalid-constant, stack-overflow, out-of-memory, process-error, network-error, sound-error, printing-unreadable-object, base64-conversion- error; coding-system-error renamed to text-conversion error; some others. -- fix Mule problems in error strings in emodules.c, tooltalk.c. -- fix error handling in mswin open-network-stream. -- Mule-ize all sound files and clean up the headers. -- nativesound.h -> sound.h and used for all sound files. -- move some shared stuff into glyphs-shared.c: first attempt at eliminating some of the massive GTK code duplication. xemacs.mak: add glyphs-shared.c. xemacs-faq.texi: document how to debug X errors subr.el: fix doc string to reflect reality
author ben
date Thu, 24 May 2001 07:51:33 +0000
parents abe6d1db359e
children 13e3d7ae7155
line wrap: on
line diff
--- a/src/sunplay.c	Thu May 24 06:30:21 2001 +0000
+++ b/src/sunplay.c	Thu May 24 07:51:33 2001 +0000
@@ -15,41 +15,19 @@
 
 /* Synched up with: Not in FSF. */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+/* This file Mule-ized by Ben Wing, 5-15-01. */
 
-#if __STDC__ || defined(STDC_HEADERS)
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>	/* for open() */
-#endif
+#include <config.h>
+#include "lisp.h"
+#include "sound.h"
 
-#include <stdio.h>
-#include <string.h>
-#ifndef emacs
-#include <sys/signal.h>
-#endif
-#include <sys/fcntl.h>
-#include <sys/file.h>
+#include "sysdep.h"
+#include "sysfile.h"
+#include "syssignal.h"
 
 #include <multimedia/libaudio.h>
 #include <multimedia/audio_device.h>
 
-#ifdef emacs
-# include <config.h>
-# include "lisp.h"
-# include "sysdep.h"
-# include <errno.h>
-# include "nativesound.h"
-#include "syssignal.h"
-# define perror(string) \
-    message("audio: %s, %s ", string, strerror (errno))
-# define warn(str) message ("audio: %s ", GETTEXT (str))
-#else /* !emacs */
-# define warn(str) fprintf (stderr, "%s\n", (str))
-#endif /* emacs */
-
 static SIGTYPE (*sighup_handler) (int sig);
 static SIGTYPE (*sigint_handler) (int sig);
 static SIGTYPE sighandler (int sig);
@@ -64,7 +42,7 @@
 static Audio_hdr dev_hdr;
 
 static int
-init_device (int volume, unsigned char *data, int fd,
+init_device (int volume, UChar_Binary *data, int fd,
 	     unsigned int *header_length)
 {
 #ifdef SUNOS4_0_3
@@ -80,7 +58,7 @@
 
   if (AUDIO_SUCCESS != audio_get_play_config (audio_fd, &dev_hdr))
     {
-      perror ("Not a valid audio device");
+      sound_perror ("Not a valid audio device");
       return 1;
     }
 
@@ -89,9 +67,9 @@
 			: audio_read_filehdr (fd, &file_hdr, 0, 0)))
     {
       if (data)
-	perror ("invalid audio data");
+	sound_perror ("invalid audio data");
       else
-	perror ("invalid audio file");
+	sound_perror ("invalid audio file");
       return 1;
     }
 
@@ -105,20 +83,20 @@
       initialized_device_p = 1;
       if (AUDIO_SUCCESS != audio_set_play_config (audio_fd, &new_hdr))
 	{
-	  char buf1 [100], buf2 [100], buf3 [250];
+	  Extbyte buf1 [100], buf2 [100], buf3 [250];
 	  audio_enc_to_str (&file_hdr, buf1);
 	  audio_enc_to_str (&new_hdr, buf2);
 	  sprintf (buf3, "wanted %s, got %s", buf1, buf2);
-	  warn (buf3);
+	  sound_warn (buf3);
 	  return 1;
 	}
     }
 
   if (volume < 0 || volume > 100)
     {
-      char buf [255];
+      Extbyte buf [255];
       sprintf (buf, "volume must be between 0 and 100 (not %d)", volume);
-      warn (buf);
+      sound_warn (buf);
       return 1;
     }
   {
@@ -149,17 +127,17 @@
 
 
 void
-play_sound_file (char *sound_file, int volume)
+play_sound_file (Extbyte *sound_file, int volume)
 {
   int rrtn, wrtn;
-  unsigned char buf [255];
+  UChar_Binary buf [255];
   int file_fd;
 
   audio_fd = audio_open ();
 
   if (audio_fd < 0)
     {
-      perror ("open /dev/audio");
+      sound_perror ("open /dev/audio");
       return;
     }
 
@@ -170,19 +148,19 @@
   file_fd = open (sound_file, O_RDONLY, 0);
   if (file_fd < 0)
     {
-      perror (sound_file);
+      sound_perror (sound_file);
       goto END_OF_PLAY;
     }
 
-  if (init_device (volume, (unsigned char *) 0, file_fd, (unsigned int *) 0))
+  if (init_device (volume, (UChar_Binary *) 0, file_fd, (unsigned int *) 0))
     goto END_OF_PLAY;
 
   while (1)
     {
-      rrtn = read (file_fd, (char *) buf, sizeof (buf));
+      rrtn = read (file_fd, (Char_Binary *) buf, sizeof (buf));
       if (rrtn < 0)
 	{
-	  perror ("read");
+	  sound_perror ("read");
 	  goto END_OF_PLAY;
 	}
       if (rrtn == 0)
@@ -190,10 +168,10 @@
 
       while (1)
 	{
-	  wrtn = write (audio_fd, (char *) buf, rrtn);
+	  wrtn = write (audio_fd, (Char_Binary *) buf, rrtn);
 	  if (wrtn < 0)
 	    {
-	      perror ("write");
+	      sound_perror ("write");
 	      goto END_OF_PLAY;
 	    }
 	  if (wrtn != 0)
@@ -204,9 +182,9 @@
 	}
       if (wrtn != rrtn)
 	{
-	  char warn_buf [255];
+	  Extbyte warn_buf [255];
 	  sprintf (warn_buf, "play: rrtn = %d, wrtn = %d", rrtn, wrtn);
-	  warn (warn_buf);
+	  sound_warn (warn_buf);
 	  goto END_OF_PLAY;
 	}
     }
@@ -228,7 +206,7 @@
 
 
 int
-play_sound_data (unsigned char *data, int length, int volume)
+play_sound_data (UChar_Binary *data, int length, int volume)
 {
   int wrtn, start = 0;
   unsigned int ilen;
@@ -239,14 +217,14 @@
   if (length == 0) return 0;
 
   /* this is just to get a better error message */
-  if (strncmp (".snd\0", (char *) data, 4))
+  if (strncmp (".snd\0", (Char_Binary *) data, 4))
     {
-      warn ("Not valid audio data (bad magic number)");
+      sound_warn ("Not valid audio data (bad magic number)");
       goto END_OF_PLAY;
     }
   if (length <= sizeof (Audio_hdr))
     {
-      warn ("Not valid audio data (too short)");
+      sound_warn ("Not valid audio data (too short)");
       goto END_OF_PLAY;
     }
 
@@ -268,10 +246,10 @@
 
   while (1)
     {
-      wrtn = write (audio_fd, (char *) (data+start), length-start);
+      wrtn = write (audio_fd, (Char_Binary *) (data+start), length-start);
       if (wrtn < 0)
 	{
-	  perror ("write");
+	  sound_perror ("write");
 	  goto END_OF_PLAY;
 	}
       if (wrtn != 0)
@@ -284,9 +262,9 @@
     }
   if (wrtn != length)
     {
-      char buf [255];
+      Extbyte buf [255];
       sprintf (buf, "play: rrtn = %d, wrtn = %d", length, wrtn);
-      warn (buf);
+      sound_warn (buf);
       goto END_OF_PLAY;
     }