Commit 4cfa5b87 authored by Ken Thomases's avatar Ken Thomases Committed by Alexandre Julliard

winecoreaudio.drv: Add support for waveOutBreakLoop/WODM_BREAKLOOP.

parent ad0a5f1b
...@@ -1329,6 +1329,36 @@ static DWORD wodReset(WORD wDevID) ...@@ -1329,6 +1329,36 @@ static DWORD wodReset(WORD wDevID)
} }
/************************************************************************** /**************************************************************************
* 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] * wodGetPosition [internal]
*/ */
static DWORD wodGetPosition(WORD wDevID, LPMMTIME lpTime, DWORD uSize) static DWORD wodGetPosition(WORD wDevID, LPMMTIME lpTime, DWORD uSize)
...@@ -1488,7 +1518,7 @@ DWORD WINAPI CoreAudio_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, ...@@ -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_WRITE: return wodWrite(wDevID, (LPWAVEHDR) dwParam1, dwParam2);
case WODM_PAUSE: return wodPause(wDevID); case WODM_PAUSE: return wodPause(wDevID);
case WODM_GETPOS: return wodGetPosition(wDevID, (LPMMTIME) dwParam1, dwParam2); 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_PREPARE: return wodPrepare(wDevID, (LPWAVEHDR)dwParam1, dwParam2);
case WODM_UNPREPARE: return wodUnprepare(wDevID, (LPWAVEHDR)dwParam1, dwParam2); case WODM_UNPREPARE: return wodUnprepare(wDevID, (LPWAVEHDR)dwParam1, dwParam2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment