]> git.proxmox.com Git - qemu.git/commitdiff
oss: refactor code around policy setting
authormalc <av1474@comtv.ru>
Fri, 8 Jan 2010 21:28:40 +0000 (00:28 +0300)
committermalc <av1474@comtv.ru>
Fri, 8 Jan 2010 21:28:59 +0000 (00:28 +0300)
This fixes a problem with a previous patch spotted by Juergen Lock,
thanks to him again.

Signed-off-by: malc <av1474@comtv.ru>
audio/ossaudio.c

index 4766aa72583af542af39f344e5eaaf75d544fe83..fe6fb523bca73ad0a2f88d3d8fe3dbaac9abd0f4 100644 (file)
 #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,