From 77a6d341c76a62f3195efdc2cea42474d32c8760 Mon Sep 17 00:00:00 2001 From: Rein Klazes Date: Mon, 21 Nov 2005 11:56:55 +0000 Subject: [PATCH] Break from the SNDCTL_DSP_CHANNELS loops on first error instead of continuing with even higher channels numbers. --- dlls/winmm/wineoss/audio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlls/winmm/wineoss/audio.c b/dlls/winmm/wineoss/audio.c index 498e08f1dc2..6cb9c5ada3f 100644 --- a/dlls/winmm/wineoss/audio.c +++ b/dlls/winmm/wineoss/audio.c @@ -788,6 +788,7 @@ static BOOL OSS_WaveOutInit(OSS_DEVICE* ossdev) for (c = 1; c <= MAX_CHANNELS; c++) { arg=c; rc=ioctl(ossdev->fd, SNDCTL_DSP_CHANNELS, &arg); + if( rc == -1) break; if (rc!=0 || arg!=c) { TRACE("DSP_CHANNELS: rc=%d returned %d for %d\n",rc,arg,c); continue; @@ -927,6 +928,7 @@ static BOOL OSS_WaveInInit(OSS_DEVICE* ossdev) for (c = 1; c <= MAX_CHANNELS; c++) { arg=c; rc=ioctl(ossdev->fd, SNDCTL_DSP_CHANNELS, &arg); + if( rc == -1) break; if (rc!=0 || arg!=c) { TRACE("DSP_CHANNELS: rc=%d returned %d for %d\n",rc,arg,c); continue; @@ -1019,6 +1021,7 @@ static void OSS_WaveFullDuplexInit(OSS_DEVICE* ossdev) for (c = 1; c <= MAX_CHANNELS; c++) { arg=c; rc=ioctl(ossdev->fd, SNDCTL_DSP_CHANNELS, &arg); + if( rc == -1) break; if (rc!=0 || arg!=c) { TRACE("DSP_CHANNELS: rc=%d returned %d for %d\n",rc,arg,c); continue;