Mercurial > hg > xemacs-beta
diff src/ntplay.c @ 442:abe6d1db359e r21-2-36
Import from CVS: tag r21-2-36
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:35:02 +0200 |
parents | a5df635868b2 |
children | 183866b06e0b |
line wrap: on
line diff
--- a/src/ntplay.c Mon Aug 13 11:33:40 2007 +0200 +++ b/src/ntplay.c Mon Aug 13 11:35:02 2007 +0200 @@ -18,20 +18,14 @@ 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" -#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, +#include "sysfile.h" +#include "nt.h" +#include "nativesound.h" + +static int play_sound_data_1 (unsigned char *data, int length, int volume, int convert); void play_sound_file (char *sound_file, int volume) @@ -52,7 +46,7 @@ return; size = lseek (ofd, 0, SEEK_END); - data = xmalloc (size); + data = (unsigned char *)xmalloc (size); lseek (ofd, 0, SEEK_SET); if (!data) @@ -77,7 +71,7 @@ /* 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; @@ -91,7 +85,7 @@ if (convert_to_malloc) { - sound_data = xmalloc (length); + sound_data = (unsigned char *)xmalloc (length); memcpy (sound_data, data, length); } else @@ -99,10 +93,11 @@ 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); }