Play back what has been recorded when in interactive mode so that the
user can verify that the recording is correct.
This commit is contained in:
parent
60f0439ba6
commit
e07608064a
|
@ -143,6 +143,47 @@ static void wave_in_test_deviceIn(int device, LPWAVEFORMATEX pwfx, DWORD format,
|
||||||
"waveInClose: device=%s rc=%s\n",dev_name(device),wave_in_error(rc));
|
"waveInClose: device=%s rc=%s\n",dev_name(device),wave_in_error(rc));
|
||||||
res=WaitForSingleObject(hevent,1000);
|
res=WaitForSingleObject(hevent,1000);
|
||||||
ok(res==WAIT_OBJECT_0,"WaitForSingleObject failed for close\n");
|
ok(res==WAIT_OBJECT_0,"WaitForSingleObject failed for close\n");
|
||||||
|
|
||||||
|
if (winetest_interactive)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Now play back what we recorded
|
||||||
|
*/
|
||||||
|
HWAVEOUT wout;
|
||||||
|
|
||||||
|
trace("Playing back recorded sound\n");
|
||||||
|
rc=waveOutOpen(&wout,WAVE_MAPPER,pwfx,(DWORD)hevent,0,CALLBACK_EVENT);
|
||||||
|
ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_BADDEVICEID ||
|
||||||
|
rc==MMSYSERR_NOTENABLED || rc==MMSYSERR_NODRIVER || rc==MMSYSERR_ALLOCATED ||
|
||||||
|
((rc==WAVERR_BADFORMAT || rc==MMSYSERR_NOTSUPPORTED) &&
|
||||||
|
!(pcaps->dwFormats & format)),
|
||||||
|
"waveOutOpen: device=%s format=%ldx%2dx%d flags=%lx(%s) rc=%s\n",dev_name(device),
|
||||||
|
pwfx->nSamplesPerSec,pwfx->wBitsPerSample,pwfx->nChannels,CALLBACK_EVENT|flags,
|
||||||
|
wave_open_flags(CALLBACK_EVENT),wave_out_error(rc));
|
||||||
|
if (rc==MMSYSERR_NOERROR)
|
||||||
|
{
|
||||||
|
rc=waveOutPrepareHeader(wout, &frag, sizeof(frag));
|
||||||
|
ok(rc==MMSYSERR_NOERROR,
|
||||||
|
"waveOutPrepareHeader: device=%s rc=%s\n",dev_name(device),wave_out_error(rc));
|
||||||
|
|
||||||
|
if (rc==MMSYSERR_NOERROR)
|
||||||
|
{
|
||||||
|
WaitForSingleObject(hevent,INFINITE);
|
||||||
|
rc=waveOutWrite(wout, &frag, sizeof(frag));
|
||||||
|
ok(rc==MMSYSERR_NOERROR,"waveOutWrite: device=%s rc=%s\n",dev_name(device),wave_out_error(rc));
|
||||||
|
WaitForSingleObject(hevent,INFINITE);
|
||||||
|
|
||||||
|
rc=waveOutUnprepareHeader(wout, &frag, sizeof(frag));
|
||||||
|
ok(rc==MMSYSERR_NOERROR,
|
||||||
|
"waveOutUnprepareHeader: device=%s rc=%s\n",dev_name(device),wave_out_error(rc));
|
||||||
|
}
|
||||||
|
rc=waveOutClose(wout);
|
||||||
|
ok(rc==MMSYSERR_NOERROR,"waveOutClose: device=%s rc=%s\n",dev_name(device),wave_out_error(rc));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
trace("Unable to play back the recorded sound\n");
|
||||||
|
}
|
||||||
|
|
||||||
free(frag.lpData);
|
free(frag.lpData);
|
||||||
CloseHandle(hevent);
|
CloseHandle(hevent);
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,7 @@ const char* mmsys_error(MMRESULT error)
|
||||||
#undef ERR_TO_STR
|
#undef ERR_TO_STR
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char * wave_out_error(MMRESULT error)
|
const char* wave_out_error(MMRESULT error)
|
||||||
{
|
{
|
||||||
static char msg[1024];
|
static char msg[1024];
|
||||||
static char long_msg[1100];
|
static char long_msg[1100];
|
||||||
|
|
|
@ -63,3 +63,4 @@ static const unsigned int win_formats[][4] = {
|
||||||
extern const char* dev_name(int);
|
extern const char* dev_name(int);
|
||||||
extern const char* wave_open_flags(DWORD);
|
extern const char* wave_open_flags(DWORD);
|
||||||
extern const char* mmsys_error(MMRESULT);
|
extern const char* mmsys_error(MMRESULT);
|
||||||
|
extern const char* wave_out_error(MMRESULT);
|
||||||
|
|
Loading…
Reference in New Issue