Aric Stewart : winecoreaudio: Implement WIDM_GETPOS.
Alexandre Julliard
julliard at winehq.org
Wed Nov 28 08:01:47 CST 2007
Module: wine
Branch: master
Commit: fd812bdc1acf25eef7d6b129d0a92cb9c8f6d836
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fd812bdc1acf25eef7d6b129d0a92cb9c8f6d836
Author: Aric Stewart <aric at codeweavers.com>
Date: Wed Nov 28 19:37:58 2007 +0900
winecoreaudio: Implement WIDM_GETPOS.
---
dlls/winecoreaudio.drv/audio.c | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/dlls/winecoreaudio.drv/audio.c b/dlls/winecoreaudio.drv/audio.c
index a831bf7..ee089ab 100644
--- a/dlls/winecoreaudio.drv/audio.c
+++ b/dlls/winecoreaudio.drv/audio.c
@@ -2129,6 +2129,29 @@ static DWORD widStop(WORD wDevID)
return ret;
}
+/**************************************************************************
+ * widGetPos [internal]
+ */
+static DWORD widGetPos(WORD wDevID, LPMMTIME lpTime, UINT size)
+{
+ DWORD val;
+ WINE_WAVEIN* wwi;
+
+ TRACE("(%u);\n", wDevID);
+ if (wDevID >= MAX_WAVEINDRV)
+ {
+ WARN("invalid device ID\n");
+ return MMSYSERR_INVALHANDLE;
+ }
+
+ wwi = &WInDev[wDevID];
+
+ OSSpinLockLock(&WInDev[wDevID].lock);
+ val = wwi->dwTotalRecorded;
+ OSSpinLockUnlock(&WInDev[wDevID].lock);
+
+ return bytes_to_mmtime(lpTime, val, &wwi->format);
+}
/**************************************************************************
* widReset [internal]
@@ -2283,6 +2306,7 @@ DWORD WINAPI CoreAudio_widMessage(WORD wDevID, WORD wMsg, DWORD dwUser,
case WIDM_RESET: return widReset (wDevID);
case WIDM_START: return widStart (wDevID);
case WIDM_STOP: return widStop (wDevID);
+ case WIDM_GETPOS: return widGetPos (wDevID, (LPMMTIME)dwParam1, (UINT)dwParam2 );
case DRV_QUERYDEVICEINTERFACESIZE: return widDevInterfaceSize (wDevID, (LPDWORD)dwParam1);
case DRV_QUERYDEVICEINTERFACE: return widDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2);
case DRV_QUERYDSOUNDIFACE: return widDsCreate (wDevID, (PIDSCDRIVER*)dwParam1);
More information about the wine-cvs
mailing list