diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c index d24ffd095c8..69e8606c0df 100644 --- a/dlls/dsound/dsound_main.c +++ b/dlls/dsound/dsound_main.c @@ -2094,7 +2094,7 @@ static int DSOUND_OpenAudio(void) /* we will most likely not get one, avoid excessive opens ... */ if (audiofd == -ENODEV) return -1; - audiofd = open("/dev/audio",O_WRONLY); + audiofd = open("/dev/audio",O_WRONLY|O_NDELAY); if (audiofd==-1) { /* Don't worry if sound is busy at the moment */ if ((errno != EBUSY) && (errno != ENODEV)) @@ -2290,7 +2290,7 @@ HRESULT WINAPI DirectSoundCreate(REFGUID lpGUID,LPDIRECTSOUND *ppDS,IUnknown *pU /* If we do, whether it's busy or not, we continue */ /* otherwise we return with DSERR_NODRIVER */ - audiofd = open("/dev/audio",O_WRONLY); + audiofd = open("/dev/audio",O_WRONLY|O_NDELAY); if (audiofd == -1) { audiofd = -errno; if (errno == ENODEV) { diff --git a/dlls/winmm/wineoss/audio.c b/dlls/winmm/wineoss/audio.c index e5d9e39e87a..d26617e964c 100644 --- a/dlls/winmm/wineoss/audio.c +++ b/dlls/winmm/wineoss/audio.c @@ -474,7 +474,7 @@ static DWORD wodGetDevCaps(WORD wDevID, LPWAVEOUTCAPSA lpCaps, DWORD dwSize) } if (WOutDev[wDevID].unixdev == 0) { - audio = open(SOUND_DEV, O_WRONLY, 0); + audio = open(SOUND_DEV, O_WRONLY|O_NDELAY, 0); if (audio == -1) return MMSYSERR_ALLOCATED; } else { audio = WOutDev[wDevID].unixdev; @@ -598,7 +598,7 @@ static DWORD wodOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags) WOutDev[wDevID].unixdev = 0; if (access(SOUND_DEV, 0) != 0) return MMSYSERR_NOTENABLED; - audio = open(SOUND_DEV, O_WRONLY, 0); + audio = open(SOUND_DEV, O_WRONLY|O_NDELAY, 0); if (audio == -1) { WARN("can't open !\n"); return MMSYSERR_ALLOCATED ; @@ -909,7 +909,7 @@ static DWORD wodGetVolume(WORD wDevID, LPDWORD lpdwVol) if (lpdwVol == NULL) return MMSYSERR_NOTENABLED; - if ((mixer = open(MIXER_DEV, O_RDONLY)) < 0) { + if ((mixer = open(MIXER_DEV, O_RDONLY|O_NDELAY)) < 0) { WARN("mixer device not available !\n"); return MMSYSERR_NOTENABLED; } @@ -941,7 +941,7 @@ static DWORD wodSetVolume(WORD wDevID, DWORD dwParam) right = (HIWORD(dwParam) * 100) / 0xFFFFl; volume = left + (right << 8); - if ((mixer = open(MIXER_DEV, O_WRONLY)) < 0) { + if ((mixer = open(MIXER_DEV, O_WRONLY|O_NDELAY)) < 0) { WARN("mixer device not available !\n"); return MMSYSERR_NOTENABLED; } @@ -961,7 +961,7 @@ static DWORD wodGetNumDevs(void) DWORD ret = 1; /* FIXME: For now, only one sound device (SOUND_DEV) is allowed */ - int audio = open(SOUND_DEV, O_WRONLY, 0); + int audio = open(SOUND_DEV, O_WRONLY|O_NDELAY, 0); if (audio == -1) { if (errno != EBUSY) @@ -1026,7 +1026,7 @@ static DWORD widGetDevCaps(WORD wDevID, LPWAVEINCAPSA lpCaps, DWORD dwSize) TRACE("(%u, %p, %lu);\n", wDevID, lpCaps, dwSize); if (lpCaps == NULL) return MMSYSERR_NOTENABLED; if (access(SOUND_DEV,0) != 0) return MMSYSERR_NOTENABLED; - audio = open(SOUND_DEV, O_RDONLY, 0); + audio = open(SOUND_DEV, O_RDONLY|O_NDELAY, 0); if (audio == -1) return MMSYSERR_ALLOCATED ; #ifdef EMULATE_SB16 lpCaps->wMid = 0x0002; @@ -1115,7 +1115,7 @@ static DWORD widOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags) WInDev[wDevID].unixdev = 0; if (access(SOUND_DEV,0) != 0) return MMSYSERR_NOTENABLED; - audio = open(SOUND_DEV, O_RDONLY, 0); + audio = open(SOUND_DEV, O_RDONLY|O_NDELAY, 0); if (audio == -1) { WARN("can't open !\n"); return MMSYSERR_ALLOCATED;