diff options
| author | malc | 2010-01-09 15:54:07 +0100 |
|---|---|---|
| committer | malc | 2010-01-09 15:55:18 +0100 |
| commit | 6d246526ce3c145b2831285def6983f5de6190d3 (patch) | |
| tree | 9c6a2d16ed0d478112fb04692883862fac49b30a /audio/ossaudio.c | |
| parent | finish VPATH -> vpath translation (diff) | |
| download | qemu-6d246526ce3c145b2831285def6983f5de6190d3.tar.gz qemu-6d246526ce3c145b2831285def6983f5de6190d3.tar.xz qemu-6d246526ce3c145b2831285def6983f5de6190d3.zip | |
oss: issue OSS_GETVERSION ioctl only when needed
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'audio/ossaudio.c')
| -rw-r--r-- | audio/ossaudio.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/audio/ossaudio.c b/audio/ossaudio.c index fe6fb523bc..79d1daa1c0 100644 --- a/audio/ossaudio.c +++ b/audio/ossaudio.c @@ -244,9 +244,6 @@ static int oss_open (int in, struct oss_params *req, struct oss_params *obt, int *pfd) { int fd; -#ifdef USE_DSP_POLICY - int version; -#endif int oflags = conf.exclusive ? O_EXCL : 0; audio_buf_info abinfo; int fmt, freq, nchannels; @@ -288,22 +285,25 @@ static int oss_open (int in, struct oss_params *req, } #ifdef USE_DSP_POLICY - if (ioctl (fd, OSS_GETVERSION, &version)) { - oss_logerr2 (errno, typ, "Failed to get OSS version\n"); - version = 0; - } + if (conf.policy >= 0) { + int version; - if (conf.debug) { - dolog ("OSS version = %#x\n", version); - } + if (ioctl (fd, OSS_GETVERSION, &version)) { + oss_logerr2 (errno, typ, "Failed to get OSS version\n"); + version = 0; + } - if (conf.policy >= 0 && version >= 0x040000) - { - int policy = conf.policy; - if (ioctl (fd, SNDCTL_DSP_POLICY, &policy)) { - oss_logerr2 (errno, typ, "Failed to set timing policy to %d\n", - conf.policy); - goto err; + if (conf.debug) { + dolog ("OSS version = %#x\n", version); + } + + if (version >= 0x040000) { + int policy = conf.policy; + if (ioctl (fd, SNDCTL_DSP_POLICY, &policy)) { + oss_logerr2 (errno, typ, "Failed to set timing policy to %d\n", + conf.policy); + goto err; + } } } else |
