winecoreaudio.drv: Add support for waveOutBreakLoop/WODM_BREAKLOOP.
This commit is contained in:
parent
ad0a5f1bd2
commit
4cfa5b875c
dlls/winecoreaudio.drv
|
@ -1328,6 +1328,36 @@ static DWORD wodReset(WORD wDevID)
|
|||
return MMSYSERR_NOERROR;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* wodBreakLoop [internal]
|
||||
*/
|
||||
static DWORD wodBreakLoop(WORD wDevID)
|
||||
{
|
||||
WINE_WAVEOUT* wwo;
|
||||
|
||||
TRACE("(%u);\n", wDevID);
|
||||
|
||||
if (wDevID >= MAX_WAVEOUTDRV)
|
||||
{
|
||||
WARN("bad device ID !\n");
|
||||
return MMSYSERR_BADDEVICEID;
|
||||
}
|
||||
|
||||
wwo = &WOutDev[wDevID];
|
||||
|
||||
OSSpinLockLock(&wwo->lock);
|
||||
|
||||
if (wwo->lpLoopPtr != NULL)
|
||||
{
|
||||
/* ensure exit at end of current loop */
|
||||
wwo->dwLoops = 1;
|
||||
}
|
||||
|
||||
OSSpinLockUnlock(&wwo->lock);
|
||||
|
||||
return MMSYSERR_NOERROR;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* wodGetPosition [internal]
|
||||
*/
|
||||
|
@ -1488,7 +1518,7 @@ DWORD WINAPI CoreAudio_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser,
|
|||
case WODM_WRITE: return wodWrite(wDevID, (LPWAVEHDR) dwParam1, dwParam2);
|
||||
case WODM_PAUSE: return wodPause(wDevID);
|
||||
case WODM_GETPOS: return wodGetPosition(wDevID, (LPMMTIME) dwParam1, dwParam2);
|
||||
case WODM_BREAKLOOP: return MMSYSERR_NOTSUPPORTED;
|
||||
case WODM_BREAKLOOP: return wodBreakLoop(wDevID);
|
||||
case WODM_PREPARE: return wodPrepare(wDevID, (LPWAVEHDR)dwParam1, dwParam2);
|
||||
case WODM_UNPREPARE: return wodUnprepare(wDevID, (LPWAVEHDR)dwParam1, dwParam2);
|
||||
|
||||
|
|
Loading…
Reference in New Issue