[PATCH v2] mmdevapi: Support new AUDCLNT_* creation flags.

Andrew Eikum aeikum at codeweavers.com
Fri Jul 10 14:08:43 CDT 2020


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=25173
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45700
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
 dlls/winealsa.drv/mmdevdrv.c      | 6 ++++--
 dlls/wineandroid.drv/mmdevdrv.c   | 6 ++++--
 dlls/winecoreaudio.drv/mmdevdrv.c | 6 ++++--
 dlls/wineoss.drv/mmdevdrv.c       | 6 ++++--
 dlls/winepulse.drv/mmdevdrv.c     | 6 ++++--
 include/audiosessiontypes.h       | 2 ++
 6 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c
index 09f98dc7b85..714d6ab9b16 100644
--- a/dlls/winealsa.drv/mmdevdrv.c
+++ b/dlls/winealsa.drv/mmdevdrv.c
@@ -1264,8 +1264,10 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
                 AUDCLNT_STREAMFLAGS_RATEADJUST |
                 AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED |
                 AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE |
-                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)){
-        TRACE("Unknown flags: %08x\n", flags);
+                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED |
+                AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY |
+                AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM)){
+        FIXME("Unknown flags: %08x\n", flags);
         return E_INVALIDARG;
     }
 
diff --git a/dlls/wineandroid.drv/mmdevdrv.c b/dlls/wineandroid.drv/mmdevdrv.c
index b4d85642561..eac55f9e290 100644
--- a/dlls/wineandroid.drv/mmdevdrv.c
+++ b/dlls/wineandroid.drv/mmdevdrv.c
@@ -813,8 +813,10 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
                 AUDCLNT_STREAMFLAGS_RATEADJUST |
                 AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED |
                 AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE |
-                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)){
-        TRACE("Unknown flags: %08x\n", flags);
+                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED |
+                AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY |
+                AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM)){
+        FIXME("Unknown flags: %08x\n", flags);
         return E_INVALIDARG;
     }
 
diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c
index acfa01c3d62..860d33fa3ba 100644
--- a/dlls/winecoreaudio.drv/mmdevdrv.c
+++ b/dlls/winecoreaudio.drv/mmdevdrv.c
@@ -1323,8 +1323,10 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
                 AUDCLNT_STREAMFLAGS_RATEADJUST |
                 AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED |
                 AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE |
-                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)){
-        TRACE("Unknown flags: %08x\n", flags);
+                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED |
+                AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY |
+                AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM)){
+        FIXME("Unknown flags: %08x\n", flags);
         return E_INVALIDARG;
     }
 
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c
index a08e7f561b5..0c97b85f3a9 100644
--- a/dlls/wineoss.drv/mmdevdrv.c
+++ b/dlls/wineoss.drv/mmdevdrv.c
@@ -1055,8 +1055,10 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
                 AUDCLNT_STREAMFLAGS_RATEADJUST |
                 AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED |
                 AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE |
-                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)){
-        TRACE("Unknown flags: %08x\n", flags);
+                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED |
+                AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY |
+                AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM)){
+        FIXME("Unknown flags: %08x\n", flags);
         return E_INVALIDARG;
     }
 
diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
index 463d3d5a71a..23c34a50f66 100644
--- a/dlls/winepulse.drv/mmdevdrv.c
+++ b/dlls/winepulse.drv/mmdevdrv.c
@@ -1590,8 +1590,10 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
                 AUDCLNT_STREAMFLAGS_RATEADJUST |
                 AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED |
                 AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE |
-                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)) {
-        TRACE("Unknown flags: %08x\n", flags);
+                AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED |
+                AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY |
+                AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM)) {
+        FIXME("Unknown flags: %08x\n", flags);
         return E_INVALIDARG;
     }
 
diff --git a/include/audiosessiontypes.h b/include/audiosessiontypes.h
index 2f785743539..81c65265759 100644
--- a/include/audiosessiontypes.h
+++ b/include/audiosessiontypes.h
@@ -34,9 +34,11 @@ typedef enum _AUDCLNT_SHAREMODE
 #define AUDCLNT_STREAMFLAGS_EVENTCALLBACK 0x00040000
 #define AUDCLNT_STREAMFLAGS_NOPERSIST 0x00080000
 #define AUDCLNT_STREAMFLAGS_RATEADJUST 0x00100000
+#define AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY 0x08000000
 #define AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED 0x10000000
 #define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE 0x20000000
 #define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED 0x40000000
+#define AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM 0x80000000
 
 typedef enum _AudioSessionState
 {
-- 
2.27.0




More information about the wine-devel mailing list