| diff -ru libao-1.2.0.orig/src/ao_wmm.c libao-1.2.0/src/ao_wmm.c |
| |
| |
| @@ -31,9 +31,7 @@ |
| #define _CRT_SECURE_NO_DEPRECATE |
| |
| #include <windows.h> |
| -#include <mmreg.h> |
| #include <mmsystem.h> |
| -#include <ksmedia.h> |
| |
| #include <stdlib.h> |
| #include <string.h> |
| @@ -41,6 +39,47 @@ |
| #include <stdarg.h> |
| #include <stdio.h> |
| |
| +#define waveOutGetErrorText waveOutGetErrorTextA |
| +#define waveOutGetDevCaps waveOutGetDevCapsA |
| + |
| +#ifndef WAVE_MAPPER |
| +#define WAVE_MAPPER ((unsigned int)-1) |
| +#endif |
| + |
| +#ifndef WAVE_FORMAT_EXTENSIBLE |
| +#define WAVE_FORMAT_EXTENSIBLE 0xFFFE |
| +#endif |
| + |
| +#ifndef WAVE_ALLOWSYNC |
| +#define WAVE_ALLOWSYNC 0x0002 |
| +#endif |
| + |
| +#ifndef CALLBACK_NULL |
| +#define CALLBACK_NULL (unsigned int)(0x00000000) |
| +#endif |
| + |
| +typedef struct { |
| + WAVEFORMATEX Format; |
| + union { |
| + WORD wValidBitsPerSample; |
| + WORD wSamplesPerBlock; |
| + WORD wReserved; |
| + } Samples; |
| + DWORD dwChannelMask; |
| + GUID SubFormat; |
| +} WAVEFORMATEXTENSIBLE,*PWAVEFORMATEXTENSIBLE; |
| + |
| +typedef struct tagWAVEOUTCAPSA { |
| + WORD wMid; |
| + WORD wPid; |
| + UINT vDriverVersion; |
| + CHAR szPname[32]; |
| + DWORD dwFormats; |
| + WORD wChannels; |
| + WORD wReserved1; |
| + DWORD dwSupport; |
| +} WAVEOUTCAPS; |
| + |
| #ifndef KSDATAFORMAT_SUBTYPE_PCM |
| #define KSDATAFORMAT_SUBTYPE_PCM (GUID) {0x00000001,0x0000,0x0010,{0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71}} |
| #endif |
| @@ -339,7 +378,7 @@ |
| unsigned int ms = (internal->msPerBlock>>1)+1; |
| if (wait_all) ms *= n; |
| adebug("sleep for %ums wait on %d blocks\n",ms, internal->sent_blocks); |
| - Sleep(ms); |
| + usleep(ms * 1000); |
| } |
| } |
| |
| @@ -558,7 +597,7 @@ |
| const int idx = _ao_get_free_block(device); |
| |
| if (idx == -1) { |
| - Sleep(internal->msPerBlock); |
| + usleep(internal->msPerBlock * 1000); |
| continue; |
| } |
| |
| @@ -572,7 +611,7 @@ |
| } |
| |
| /* Do copy */ |
| - CopyMemory((char*)internal->wh[idx].wh.lpData |
| + memcpy((char*)internal->wh[idx].wh.lpData |
| + internal->wh[idx].count, |
| output_samples, n); |
| |