diff options
author | malc <av1474@comtv.ru> | 2010-01-09 00:28:40 +0300 |
---|---|---|
committer | malc <av1474@comtv.ru> | 2010-01-09 00:28:59 +0300 |
commit | 78d9356d3caad95a74bc9cd65eea5fc7e050c35d (patch) | |
tree | 4451283c5590d774685e7df0b9632dd129204d2c /audio | |
parent | 25d0ae900fa2cc6607db4b5d224de47cd721e60d (diff) | |
download | qemu-78d9356d3caad95a74bc9cd65eea5fc7e050c35d.zip qemu-78d9356d3caad95a74bc9cd65eea5fc7e050c35d.tar.gz qemu-78d9356d3caad95a74bc9cd65eea5fc7e050c35d.tar.bz2 |
oss: refactor code around policy setting
This fixes a problem with a previous patch spotted by Juergen Lock,
thanks to him again.
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'audio')
-rw-r--r-- | audio/ossaudio.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/audio/ossaudio.c b/audio/ossaudio.c index 4766aa7..fe6fb52 100644 --- a/audio/ossaudio.c +++ b/audio/ossaudio.c @@ -38,6 +38,10 @@ #define AUDIO_CAP "oss" #include "audio_int.h" +#if defined OSS_GETVERSION && defined SNDCTL_DSP_POLICY +#define USE_DSP_POLICY +#endif + typedef struct OSSVoiceOut { HWVoiceOut hw; void *pcm_buf; @@ -240,7 +244,7 @@ static int oss_open (int in, struct oss_params *req, struct oss_params *obt, int *pfd) { int fd; -#ifdef OSS_GETVERSION +#ifdef USE_DSP_POLICY int version; #endif int oflags = conf.exclusive ? O_EXCL : 0; @@ -283,7 +287,7 @@ static int oss_open (int in, struct oss_params *req, goto err; } -#ifdef OSS_GETVERSION +#ifdef USE_DSP_POLICY if (ioctl (fd, OSS_GETVERSION, &version)) { oss_logerr2 (errno, typ, "Failed to get OSS version\n"); version = 0; @@ -292,16 +296,8 @@ static int oss_open (int in, struct oss_params *req, if (conf.debug) { dolog ("OSS version = %#x\n", version); } -#endif -#ifdef SNDCTL_DSP_POLICY - if (conf.policy >= 0 -#ifdef OSS_GETVERSION - && version >= 0x040000 -#else - 0 -#endif - ) + if (conf.policy >= 0 && version >= 0x040000) { int policy = conf.policy; if (ioctl (fd, SNDCTL_DSP_POLICY, &policy)) { @@ -868,7 +864,7 @@ static struct audio_option oss_options[] = { .valp = &conf.exclusive, .descr = "Open device in exclusive mode (vmix wont work)" }, -#ifdef SNDCTL_DSP_POLICY +#ifdef USE_DSP_POLICY { .name = "POLICY", .tag = AUD_OPT_INT, |