winmm: Make the return behavior of waveOutPrepareHeader consistent for 16-bit and 32-bit.
This commit is contained in:
parent
7742fe283a
commit
cb6ddfc75b
|
@ -1279,15 +1279,26 @@ UINT16 WINAPI waveOutPrepareHeader16(HWAVEOUT16 hWaveOut, /* [in] */
|
||||||
{
|
{
|
||||||
LPWINE_MLD wmld;
|
LPWINE_MLD wmld;
|
||||||
LPWAVEHDR lpWaveOutHdr = MapSL(lpsegWaveOutHdr);
|
LPWAVEHDR lpWaveOutHdr = MapSL(lpsegWaveOutHdr);
|
||||||
|
UINT16 result;
|
||||||
|
|
||||||
TRACE("(%04X, %08x, %u);\n", hWaveOut, lpsegWaveOutHdr, uSize);
|
TRACE("(%04X, %08x, %u);\n", hWaveOut, lpsegWaveOutHdr, uSize);
|
||||||
|
|
||||||
if (lpWaveOutHdr == NULL) return MMSYSERR_INVALPARAM;
|
if (lpWaveOutHdr == NULL) return MMSYSERR_INVALPARAM;
|
||||||
|
|
||||||
if ((wmld = MMDRV_Get(HWAVEOUT_32(hWaveOut), MMDRV_WAVEOUT, FALSE)) == NULL)
|
if ((wmld = MMDRV_Get(HWAVEOUT_32(hWaveOut), MMDRV_WAVEOUT, FALSE)) == NULL)
|
||||||
return MMSYSERR_INVALHANDLE;
|
return MMSYSERR_INVALHANDLE;
|
||||||
|
|
||||||
return MMDRV_Message(wmld, WODM_PREPARE, lpsegWaveOutHdr, uSize, FALSE);
|
if ((result = MMDRV_Message(wmld, WODM_PREPARE, lpsegWaveOutHdr,
|
||||||
|
uSize, FALSE)) != MMSYSERR_NOTSUPPORTED)
|
||||||
|
return result;
|
||||||
|
|
||||||
|
if (lpWaveOutHdr->dwFlags & WHDR_INQUEUE)
|
||||||
|
return WAVERR_STILLPLAYING;
|
||||||
|
|
||||||
|
lpWaveOutHdr->dwFlags |= WHDR_PREPARED;
|
||||||
|
lpWaveOutHdr->dwFlags &= ~WHDR_DONE;
|
||||||
|
|
||||||
|
return MMSYSERR_NOERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
|
Loading…
Reference in New Issue