Module: wine Branch: master Commit: 3429068f35376f2d817b7ba8b98af69adc6a3a60 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3429068f35376f2d817b7ba8b9...
Author: Tijl Coosemans tijl@ulyssis.org Date: Wed Aug 8 00:19:14 2007 +0200
wineoss: Avoid SNDCTL_DSP_GETTRIGGER.
---
dlls/wineoss.drv/audio.c | 26 ++++++++------------------ 1 files changed, 8 insertions(+), 18 deletions(-)
diff --git a/dlls/wineoss.drv/audio.c b/dlls/wineoss.drv/audio.c index e9c93f7..5c233da 100644 --- a/dlls/wineoss.drv/audio.c +++ b/dlls/wineoss.drv/audio.c @@ -389,18 +389,16 @@ static DWORD OSS_RawOpenDevice(OSS_DEVICE* ossdev, int strict_format) } ossdev->fd = fd;
+ ossdev->bOutputEnabled = TRUE; /* OSS enables by default */ + ossdev->bInputEnabled = TRUE; /* OSS enables by default */ + if (ossdev->open_access == O_RDONLY) + ossdev->bOutputEnabled = FALSE; + if (ossdev->open_access == O_WRONLY) + ossdev->bInputEnabled = FALSE; + if (ossdev->bTriggerSupport) { int trigger; - rc = ioctl(fd, SNDCTL_DSP_GETTRIGGER, &trigger); - if (rc != 0) { - ERR("ioctl(%s, SNDCTL_DSP_GETTRIGGER) failed (%s)\n", - ossdev->dev_name, strerror(errno)); - goto error; - } - - ossdev->bOutputEnabled = ((trigger & PCM_ENABLE_OUTPUT) == PCM_ENABLE_OUTPUT); - ossdev->bInputEnabled = ((trigger & PCM_ENABLE_INPUT) == PCM_ENABLE_INPUT); - + trigger = getEnables(ossdev); /* If we do not have full duplex, but they opened RDWR ** (as you have to in order for an mmap to succeed) ** then we start out with input off @@ -411,16 +409,8 @@ static DWORD OSS_RawOpenDevice(OSS_DEVICE* ossdev, int strict_format) trigger &= ~PCM_ENABLE_INPUT; ioctl(fd, SNDCTL_DSP_SETTRIGGER, &trigger); } - } else { - ossdev->bOutputEnabled = TRUE; /* OSS enables by default */ - ossdev->bInputEnabled = TRUE; /* OSS enables by default */ }
- if (ossdev->open_access == O_RDONLY) - ossdev->bOutputEnabled = FALSE; - if (ossdev->open_access == O_WRONLY) - ossdev->bInputEnabled = FALSE; - return MMSYSERR_NOERROR;
error: