42 trace(
"skipping spurious message %04x\n",
msg->message);
49#define test_notification(hwnd, command, type) test_notification_dbg(hwnd, command, type, __LINE__)
66 ok_(__FILE__,
line)(
msg.hwnd ==
hwnd,
"Didn't get the handle to our test window\n");
72#define CDFRAMES_PERSEC 75
95 DWORD numtracks, track, duration;
120 if(!
err && wDeviceID != 1)
trace(
"Device '%s' is open.\n",
buf);
174 skip(
"No CD-ROM in drive.\n");
183 skip(
"CD-ROM mode not ready (DVD in drive?)\n");
186 skip(
"CD-ROM drive is open\n");
223 ok(0 < numtracks && numtracks <= 99,
"number of tracks=%ld\n", parm.
status.
dwReturn);
239 "status position initially %s\n",
buf);
245 "status position start %s\n",
buf);
296 if(!
err)
ok(duration > 2000,
"status position initially %sms\n",
buf);
308 trace(
"track #1 length %sms\n",
buf);
310 }
else duration = 2001;
338 "unknown track type %lx\n", parm.status.dwReturn);
345 parm.status.dwReturn = 2000;
349 if(!
err && track)
ok(parm.status.dwReturn > duration,
350 "Seek did not skip data tracks, position %lums\n", parm.status.dwReturn);
359 parm.status.dwTrack = 1;
360 parm.status.dwReturn = 0xFEEDABAD;
363 duration = parm.status.dwReturn;
364 trace(
"track #1 length: %02um:%02us:%02uframes\n",
366 ok(duration>>24==0,
"CD length high bits %08X\n", duration);
371 parm.play.dwTo = duration;
381 skip(
"Got no mixed data+audio CD.\n");
386 skip(
"Found no audio track.\n");
399 trace(
"last track length: %02um:%02us:%02uframes\n",
401 ok(duration>>24==0,
"CD length high bits %08X\n", duration);
407 trace(
"last track position: %02um:%02us:%02uframes\n",
428 skip(
"Cannot manage to play track %u.\n", track);
534 parm.
play.
dwTo = (duration << 8) | numtracks;
556 char drive[] = {
'a',
':',
'\\',
'X',
'\0'};
559 skip(
"CD-ROM device likely not installed or disabled.\n");
575 wDeviceID = parm.open.wDeviceID;
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
DWORD WINAPI mciSendCommandA(MCIDEVICEID wDevID, UINT wMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
DWORD WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrRet, UINT uRetLen, HWND hwndCallback)
GLuint GLuint GLsizei GLenum type
GLenum GLuint GLenum GLsizei const GLchar * buf
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 factor
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
#define trace_(file, line,...)
#define MCIERR_FLAGS_NOT_COMPATIBLE
#define MCI_OPEN_SHAREABLE
#define MCI_NOTIFY_SUPERSEDED
#define MCI_CDA_TRACK_OTHER
#define MCI_STATUS_POSITION
#define MCI_MAKE_TMSF(t, m, s, f)
#define MCI_OPEN_ELEMENT_ID
#define MCI_MAKE_MSF(m, s, f)
#define MCIERR_CANNOT_LOAD_DRIVER
#define MCI_GETDEVCAPS_DEVICE_TYPE
#define MCI_MSF_MINUTE(t)
#define MCIERR_NO_IDENTITY
#define MCIERR_UNRECOGNIZED_COMMAND
#define MCI_ALL_DEVICE_ID
#define MCI_CDA_TRACK_AUDIO
#define MCIERR_INVALID_FILE
#define MCIERR_MISSING_PARAMETER
#define MCI_NOTIFY_ABORTED
#define MCIERR_OUTOFRANGE
#define MCI_STATUS_NUMBER_OF_TRACKS
#define MCI_GETDEVCAPS_ITEM
#define MCI_STATUS_LENGTH
#define MCIERR_MUST_USE_SHAREABLE
#define MCI_NOTIFY_SUCCESSFUL
#define MCI_MSF_SECOND(t)
#define MCI_CDA_STATUS_TYPE_TRACK
#define MCI_MODE_NOT_READY
#define MCI_STATUS_MEDIA_PRESENT
#define MCIERR_UNSUPPORTED_FUNCTION
#define MCI_STATUS_TIME_FORMAT
#define MCI_DEVTYPE_CD_AUDIO
static void test_play(void)
const char * dbg_mcierr(MCIERROR err)
static DWORD MSF_Add(DWORD d1, DWORD d2)
static BOOL spurious_message(LPMSG msg)
static void test_notification_dbg(HWND hwnd, const char *command, WPARAM type, int line)
#define test_notification(hwnd, command, type)
static void test_openclose(HWND hwnd)
int seek(void *fd, ulong off, int mode)
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
MCI_GETDEVCAPS_PARMS caps
MCI_WAVE_OPEN_PARMSA open
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI DestroyWindow(_In_ HWND)