Maarten Lankhorst : winealsa: Fix return value checking in wavein.
Alexandre Julliard
julliard at winehq.org
Fri Dec 7 13:19:12 CST 2007
Module: wine
Branch: master
Commit: 9fb2cacd64dd6a039b9edd4fbdf72c27a8bd6590
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9fb2cacd64dd6a039b9edd4fbdf72c27a8bd6590
Author: Maarten Lankhorst <maarten at codeweavers.com>
Date: Fri Dec 7 10:49:56 2007 +0100
winealsa: Fix return value checking in wavein.
---
dlls/winealsa.drv/wavein.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/dlls/winealsa.drv/wavein.c b/dlls/winealsa.drv/wavein.c
index 5409624..6d1cf24 100644
--- a/dlls/winealsa.drv/wavein.c
+++ b/dlls/winealsa.drv/wavein.c
@@ -162,7 +162,7 @@ static DWORD CALLBACK widRecorder(LPVOID pmt)
/* make sleep time to be # of ms to output a period */
dwSleepTime = (wwi->dwPeriodSize * 1000) / wwi->format.Format.nAvgBytesPerSec;
frames_per_period = snd_pcm_bytes_to_frames(wwi->pcm, wwi->dwPeriodSize);
- TRACE("sleeptime=%d ms\n", dwSleepTime);
+ TRACE("sleeptime=%d ms, total buffer length=%d ms (%d bytes)\n", dwSleepTime, wwi->dwBufferSize * 1000 / wwi->format.Format.nAvgBytesPerSec, wwi->dwBufferSize);
for (;;) {
/* wait for dwSleepTime or an event in thread's queue */
@@ -180,6 +180,7 @@ static DWORD CALLBACK widRecorder(LPVOID pmt)
/* read all the fragments accumulated so far */
frames = snd_pcm_avail_update(wwi->pcm);
bytes = snd_pcm_frames_to_bytes(wwi->pcm, frames);
+
TRACE("frames = %d bytes = %d\n", frames, bytes);
periods = bytes / wwi->dwPeriodSize;
while ((periods > 0) && (wwi->lpQueuePtr))
@@ -194,7 +195,7 @@ static DWORD CALLBACK widRecorder(LPVOID pmt)
bytesRead = snd_pcm_frames_to_bytes(wwi->pcm, read);
TRACE("bytesRead=%d (direct)\n", bytesRead);
- if (bytesRead != (DWORD) -1)
+ if (read != (DWORD) -1)
{
/* update number of bytes recorded in current buffer and by this device */
lpWaveHdr->dwBytesRecorded += bytesRead;
@@ -216,9 +217,9 @@ static DWORD CALLBACK widRecorder(LPVOID pmt)
lpWaveHdr = lpNext;
}
} else {
- TRACE("read(%s, %p, %d) failed (%s)\n", wwi->pcmname,
+ FIXME("read(%s, %p, %d) failed (%s)\n", wwi->pcmname,
lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded,
- frames_per_period, strerror(errno));
+ frames_per_period, snd_strerror(read));
}
}
else
@@ -230,14 +231,14 @@ static DWORD CALLBACK widRecorder(LPVOID pmt)
TRACE("bytesRead=%d (local)\n", bytesRead);
- if (bytesRead == (DWORD) -1) {
+ if (read == (DWORD) -1) {
TRACE("read(%s, %p, %d) failed (%s)\n", wwi->pcmname,
buffer, frames_per_period, strerror(errno));
continue;
}
/* copy data in client buffers */
- while (bytesRead != (DWORD) -1 && bytesRead > 0)
+ while (read != (DWORD) -1 && bytesRead > 0)
{
DWORD dwToCopy = min (bytesRead, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded);
More information about the wine-cvs
mailing list