Andrew Eikum : mmdevapi: Implement IsOffloadCapable.

Alexandre Julliard julliard at winehq.org
Fri Oct 2 14:54:09 CDT 2020


Module: wine
Branch: master
Commit: 530c79fba272219e9ed7bc1ebf309fe7163ac8ee
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=530c79fba272219e9ed7bc1ebf309fe7163ac8ee

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Thu Oct  1 14:31:27 2020 -0500

mmdevapi: Implement IsOffloadCapable.

Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mmdevapi/tests/render.c      | 7 +++++++
 dlls/winealsa.drv/mmdevdrv.c      | 9 +++++++--
 dlls/wineandroid.drv/mmdevdrv.c   | 9 +++++++--
 dlls/winecoreaudio.drv/mmdevdrv.c | 9 +++++++--
 dlls/wineoss.drv/mmdevdrv.c       | 9 +++++++--
 dlls/winepulse.drv/mmdevdrv.c     | 9 +++++++--
 6 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c
index 8d52f48333..e58cc449d8 100644
--- a/dlls/mmdevapi/tests/render.c
+++ b/dlls/mmdevapi/tests/render.c
@@ -140,6 +140,7 @@ static void test_audioclient(void)
     WAVEFORMATEX *pwfx, *pwfx2;
     REFERENCE_TIME t1, t2;
     HANDLE handle;
+    BOOL offload_capable;
 
     hr = IMMDevice_Activate(dev, &IID_IAudioClient2, CLSCTX_INPROC_SERVER,
             NULL, (void**)&ac2);
@@ -253,6 +254,12 @@ static void test_audioclient(void)
     hr = IAudioClient_QueryInterface(ac, &IID_IAudioClient2, (void**)&ac2);
     ok(hr == S_OK, "Failed to query IAudioClient2 interface: %08x\n", hr);
 
+    hr = IAudioClient2_IsOffloadCapable(ac2, AudioCategory_BackgroundCapableMedia, NULL);
+    ok(hr == E_INVALIDARG, "IsOffloadCapable gave wrong error: %08x\n", hr);
+
+    hr = IAudioClient2_IsOffloadCapable(ac2, AudioCategory_BackgroundCapableMedia, &offload_capable);
+    ok(hr == S_OK, "IsOffloadCapable failed: %08x\n", hr);
+
     IAudioClient2_Release(ac2);
 
     test_uninitialized(ac);
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c
index 2c3165385e..233b0dfda1 100644
--- a/dlls/winealsa.drv/mmdevdrv.c
+++ b/dlls/winealsa.drv/mmdevdrv.c
@@ -2661,9 +2661,14 @@ static HRESULT WINAPI AudioClient_IsOffloadCapable(IAudioClient2 *iface,
 {
     ACImpl *This = impl_from_IAudioClient2(iface);
 
-    FIXME("(%p)->(0x%x, %p)\n", This, category, offload_capable);
+    TRACE("(%p)->(0x%x, %p)\n", This, category, offload_capable);
 
-    return E_NOTIMPL;
+    if(!offload_capable)
+        return E_INVALIDARG;
+
+    *offload_capable = FALSE;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI AudioClient_SetClientProperties(IAudioClient2 *iface,
diff --git a/dlls/wineandroid.drv/mmdevdrv.c b/dlls/wineandroid.drv/mmdevdrv.c
index 4e9ada3f55..8ee1bb12d3 100644
--- a/dlls/wineandroid.drv/mmdevdrv.c
+++ b/dlls/wineandroid.drv/mmdevdrv.c
@@ -1620,9 +1620,14 @@ static HRESULT WINAPI AudioClient_IsOffloadCapable(IAudioClient2 *iface,
 {
     ACImpl *This = impl_from_IAudioClient2(iface);
 
-    FIXME("(%p)->(0x%x, %p)\n", This, category, offload_capable);
+    TRACE("(%p)->(0x%x, %p)\n", This, category, offload_capable);
 
-    return E_NOTIMPL;
+    if(!offload_capable)
+        return E_INVALIDARG;
+
+    *offload_capable = FALSE;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI AudioClient_SetClientProperties(IAudioClient2 *iface,
diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c
index dd2ad916f8..f32c1d5e41 100644
--- a/dlls/winecoreaudio.drv/mmdevdrv.c
+++ b/dlls/winecoreaudio.drv/mmdevdrv.c
@@ -2228,9 +2228,14 @@ static HRESULT WINAPI AudioClient_IsOffloadCapable(IAudioClient2 *iface,
 {
     ACImpl *This = impl_from_IAudioClient2(iface);
 
-    FIXME("(%p)->(0x%x, %p)\n", This, category, offload_capable);
+    TRACE("(%p)->(0x%x, %p)\n", This, category, offload_capable);
 
-    return E_NOTIMPL;
+    if(!offload_capable)
+        return E_INVALIDARG;
+
+    *offload_capable = FALSE;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI AudioClient_SetClientProperties(IAudioClient2 *iface,
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c
index 50c7db2c7c..9b1cdf3fa7 100644
--- a/dlls/wineoss.drv/mmdevdrv.c
+++ b/dlls/wineoss.drv/mmdevdrv.c
@@ -1785,9 +1785,14 @@ static HRESULT WINAPI AudioClient_IsOffloadCapable(IAudioClient2 *iface,
 {
     ACImpl *This = impl_from_IAudioClient2(iface);
 
-    FIXME("(%p)->(0x%x, %p)\n", This, category, offload_capable);
+    TRACE("(%p)->(0x%x, %p)\n", This, category, offload_capable);
 
-    return E_NOTIMPL;
+    if(!offload_capable)
+        return E_INVALIDARG;
+
+    *offload_capable = FALSE;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI AudioClient_SetClientProperties(IAudioClient2 *iface,
diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
index b8386cfe55..e384955b01 100644
--- a/dlls/winepulse.drv/mmdevdrv.c
+++ b/dlls/winepulse.drv/mmdevdrv.c
@@ -2233,9 +2233,14 @@ static HRESULT WINAPI AudioClient_IsOffloadCapable(IAudioClient2 *iface,
 {
     ACImpl *This = impl_from_IAudioClient2(iface);
 
-    FIXME("(%p)->(0x%x, %p)\n", This, category, offload_capable);
+    TRACE("(%p)->(0x%x, %p)\n", This, category, offload_capable);
 
-    return E_NOTIMPL;
+    if(!offload_capable)
+        return E_INVALIDARG;
+
+    *offload_capable = FALSE;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI AudioClient_SetClientProperties(IAudioClient2 *iface,




More information about the wine-cvs mailing list