630 callback_instance = 0;
640 callback_instance = 0;
642 trace(
"CreateThread() failed\n");
647 trace(
"CALLBACK_THREAD not implemented\n");
651 trace(
"Undefined callback type!\n");
655 trace(
"CALLBACK_NULL not implemented\n");
673 "waveOutOpen(%s): format=%dx%2dx%d flags=%x(%s) rc=%s\n",
678 trace(
" Reason: The device lists this format as supported in its " 679 "capabilities but opening it failed.\n");
682 trace(
"waveOutOpen(%s): format=%dx%2dx%d %s rc=%s failed but format " 696 "got the wrong format: %dx%2dx%d instead of %dx%2dx%d\n",
721 frags[
i].dwBufferLength=frag_length;
734 trace(
"Playing %g second %s at %5dx%2dx%d %2d header%s %d loop%s %d bytes %s %s\n",duration,
737 loops, loops == 1 ?
" " :
"s",
length * (loops + 1),
740 if (sine && has_volume &&
volume == 0)
741 trace(
"*** Warning the sound is muted, you will not hear the test\n");
759 "WHDR_INQUEUE WHDR_PREPARED expected, got= %s\n",
764 "waveOutWrite(%s): WAVE_STILLPLAYING expected, got %s\n",
768 "WHDR_INQUEUE WHDR_PREPARED expected, got %s\n",
771 if (
headers == 1 && loops == 0 && pause) {
772 paused = duration / 2;
773 Sleep(paused * 1000);
777 trace(
"pausing for %g seconds\n", paused);
778 Sleep(paused * 1000);
784 for (
j = 0;
j <= loops;
j++) {
787 if (!((
j == loops) && (
i == (
headers - 1)))) {
803 "(%02d) WHDR_DONE WHDR_PREPARED expected, got %s\n",
860 wout = (HWAVEOUT)0xdeadf00d;
864 ok(wout==(HWAVEOUT)0xdeadf00d,
"WAVE_FORMAT_QUERY handle %p\n", wout);
#define WAVE_FORMAT_QUERY
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
const char * wave_out_error(MMRESULT error)
const char * dev_name(int device)
vector< Header * > headers
#define CALLBACK_TYPEMASK
static const char * wave_header_flags(DWORD flags)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
UINT WINAPI waveOutPrepareHeader(HWAVEOUT hWaveOut, WAVEHDR *lpWaveOutHdr, UINT uSize)
#define WAVE_FORMAT_DIRECT
const char * get_format_str(WORD format)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
UINT WINAPI waveOutGetVolume(HWAVEOUT hWaveOut, LPDWORD lpdw)
#define MMSYSERR_NODRIVER
#define WAVERR_STILLPLAYING
VOID CALLBACK_FUNCTION(__in PVOID CallbackContext, __in_opt PVOID Argument1, __in_opt PVOID Argument2)
static char * wave_generate_silence(WAVEFORMATEX *wfx, double duration, DWORD *size)
GLenum GLuint GLenum GLsizei length
const char * wave_open_flags(DWORD flags)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
UINT WINAPI waveOutSetVolume(HWAVEOUT hWaveOut, DWORD dw)
static void check_position(int device, HWAVEOUT wout, DWORD bytes, LPWAVEFORMATEX pwfx)
DWORD WINAPI GetCurrentThreadId(VOID)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
UINT WINAPI waveOutPause(HWAVEOUT hWaveOut)
#define MMSYSERR_ALLOCATED
#define MMSYSERR_INVALFLAG
#define MMSYSERR_NOTSUPPORTED
#define MMSYSERR_NOTENABLED
UINT WINAPI waveOutWrite(HWAVEOUT hWaveOut, LPWAVEHDR lpWaveOutHdr, UINT uSize)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define MMSYSERR_BADDEVICEID
static void CALLBACK callback_func(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dwInstance, DWORD dwParam1, DWORD dwParam2)
UINT WINAPI waveOutUnprepareHeader(HWAVEOUT hWaveOut, LPWAVEHDR lpWaveOutHdr, UINT uSize)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
MMRESULT WINAPI waveOutOpen(LPHWAVEOUT lphWaveOut, UINT uDeviceID, LPCWAVEFORMATEX lpFormat, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD dwFlags)
#define MMSYSERR_INVALPARAM
static DWORD WINAPI callback_thread(LPVOID lpParameter)
UINT WINAPI waveOutClose(HWAVEOUT hWaveOut)
UINT WINAPI waveOutRestart(HWAVEOUT hWaveOut)
static IPrintDialogCallback callback
BOOL WINAPI PostThreadMessageW(_In_ DWORD, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
UINT WINAPI waveOutReset(HWAVEOUT hWaveOut)
#define HeapFree(x, y, z)
static char * wave_generate_la(WAVEFORMATEX *wfx, double duration, DWORD *size)
const char * mmsys_error(MMRESULT error)