XEmacs 21.2.33 "Melpomene".
[chise/xemacs-chise.git.1] / src / ntplay.c
index 2b85ab8..bbfa228 100644 (file)
@@ -19,18 +19,19 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.*/
 
 #include <windows.h>
-#undef CONST
 #include <config.h>
 #include <stdio.h>
 #include "sysfile.h"
 #include "lisp.h"
+#include "nativesound.h"
 
-#if defined (__CYGWIN32__) || defined(__MINGW32__)
+#if (defined (__CYGWIN32__) || defined(__MINGW32__)) && \
+       CYGWIN_VERSION_DLL_MAJOR < 21
 extern BOOL WINAPI PlaySound(LPCSTR,HMODULE,DWORD);
 #else
 #include <mmsystem.h>
 #endif
-static void play_sound_data_1 (unsigned char *data, int length,
+static int play_sound_data_1 (unsigned char *data, int length,
                               int volume, int convert);
 
 void play_sound_file (char *sound_file, int volume)
@@ -51,7 +52,7 @@ void play_sound_file (char *sound_file, int volume)
        return;
 
       size = lseek (ofd, 0, SEEK_END);
-      data = xmalloc (size);
+      data = (unsigned char *)xmalloc (size);
       lseek (ofd, 0, SEEK_SET);
       
       if (!data)
@@ -76,7 +77,7 @@ void play_sound_file (char *sound_file, int volume)
 
 /* mswindows can't cope with playing a sound from alloca space so we
    have to convert if necessary */
-static void play_sound_data_1 (unsigned char *data, int length, int volume,
+static int play_sound_data_1 (unsigned char *data, int length, int volume,
                               int convert_to_malloc)
 {
   DWORD flags = SND_ASYNC | SND_MEMORY | SND_NODEFAULT;
@@ -90,7 +91,7 @@ static void play_sound_data_1 (unsigned char *data, int length, int volume,
 
   if (convert_to_malloc)
     {
-      sound_data = xmalloc (length);
+      sound_data = (unsigned char *)xmalloc (length);
       memcpy (sound_data, data, length);
     }
   else
@@ -98,10 +99,11 @@ static void play_sound_data_1 (unsigned char *data, int length, int volume,
 
   PlaySound(sound_data, NULL, flags);
 
-  return;
+  /* #### Error handling? */ 
+  return 1;
 }
 
-void play_sound_data (unsigned char *data, int length, int volume)
+int play_sound_data (unsigned char *data, int length, int volume)
 {
-  play_sound_data_1 (data, length, volume, TRUE);
+  return play_sound_data_1 (data, length, volume, TRUE);
 }