/************************************************************************** * wodGetPosition [internal] */ static DWORD wodGetPosition(WORD wDevID, LPMMTIME lpTime, DWORD uSize) { WINE_WAVEDEV* wwo; TRACE("(%u, %p, %u);\n", wDevID, lpTime, uSize); if (wDevID >= ALSA_WodNumDevs) { TRACE("Asked for device %d, but only %d known!\n", wDevID, ALSA_WodNumDevs); return MMSYSERR_BADDEVICEID; } if (WOutDev[wDevID].pcm == NULL) { WARN("Requested to get position of closed device %d!\n", wDevID); return MMSYSERR_BADDEVICEID; } if (lpTime == NULL) return MMSYSERR_INVALPARAM; wwo = &WOutDev[wDevID]; return ALSA_bytes_to_mmtime(lpTime, wwo->dwPlayedTotal, &wwo->format); }
/************************************************************************** * widGetPosition [internal] */ static DWORD widGetPosition(WORD wDevID, LPMMTIME lpTime, DWORD uSize) { WINE_WAVEDEV* wwi; TRACE("(%u, %p, %u);\n", wDevID, lpTime, uSize); if (wDevID >= ALSA_WidNumDevs) { TRACE("Requested device %d, but only %d are known!\n", wDevID, ALSA_WidNumDevs); return MMSYSERR_BADDEVICEID; } if (WInDev[wDevID].state == WINE_WS_CLOSED) { WARN("Requested position of closed device %d!\n", wDevID); return MMSYSERR_BADDEVICEID; } if (lpTime == NULL) { WARN("invalid parameter: lpTime = NULL\n"); return MMSYSERR_INVALPARAM; } wwi = &WInDev[wDevID]; return ALSA_bytes_to_mmtime(lpTime, wwi->dwTotalRecorded, &wwi->format); }