[MMDEVAPI_WINETEST] Sync with Wine Staging 3.3. CORE-14434
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 17 Mar 2018 12:23:50 +0000 (13:23 +0100)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 17 Mar 2018 12:23:50 +0000 (13:23 +0100)
modules/rostests/winetests/mmdevapi/capture.c
modules/rostests/winetests/mmdevapi/mmdevenum.c
modules/rostests/winetests/mmdevapi/render.c

index 3cdfda1..0fa9f0c 100644 (file)
@@ -308,20 +308,17 @@ static void test_capture(IAudioClient *ac, HANDLE handle, WAVEFORMATEX *wfx)
           hr==S_OK ? (UINT)pos : -1, pad, flags, frames);
 
     if(hr == S_OK){
-        /* The discontinuity is reported here, but is this an old or new packet? */
-        todo_wine_if(!(flags & AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY)) {
-            /* FIXME: Some drivers fail */
-            ok(flags & AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY, "expect DISCONTINUITY %x\n", flags);
+        if(flags & AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY){
             /* Native's position is one period further than what we read.
              * Perhaps that's precisely the meaning of DATA_DISCONTINUITY:
              * signal when the position jump left a gap. */
-            ok(pos == sum + frames, "Position %u gap %d\n", (UINT)pos, (UINT)pos - sum);
+            ok(pos == sum + frames, "Position %u last %u frames %u\n", (UINT)pos, sum, frames);
+            sum = pos;
+        }else{ /* win10 */
+            ok(pos == sum, "Position %u last %u frames %u\n", (UINT)pos, sum, frames);
         }
 
         ok(pad == next, "GCP %u vs. BufferSize %u\n", (UINT32)pad, next);
-
-        if(flags & AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY)
-            sum = pos;
     }
 
     hr = IAudioCaptureClient_ReleaseBuffer(acc, frames);
@@ -416,9 +413,9 @@ static void test_capture(IAudioClient *ac, HANDLE handle, WAVEFORMATEX *wfx)
     hr = IAudioCaptureClient_GetBuffer(acc, &data, &frames, &flags, &pos, &qpc);
     ok(hr == S_OK, "Valid IAudioCaptureClient_GetBuffer returns %08x\n", hr);
     trace("Running position %d pad %u flags %x, amount of frames locked: %u\n",
-          hr==S_OK ? (UINT)pos : -1, pad, flags, frames);
+          SUCCEEDED(hr) ? (UINT)pos : -1, pad, flags, frames);
 
-    if(hr == S_OK){
+    if(SUCCEEDED(hr)){
         /* Some w7 machines signal DATA_DISCONTINUITY here following the
          * previous AUDCLNT_S_BUFFER_EMPTY, others not.  What logic? */
         ok(pos >= sum, "Position %u gap %d\n", (UINT)pos, (UINT)pos - sum);
index 12e2156..23f5b82 100644 (file)
@@ -21,6 +21,9 @@
 #define COBJMACROS
 
 #include "initguid.h"
+#ifndef __REACTOS__
+#include "endpointvolume.h"
+#endif
 #include "mmdeviceapi.h"
 #include "audioclient.h"
 #include "audiopolicy.h"
index 8487fbb..b1c62f0 100644 (file)
 
 #define COBJMACROS
 
+#ifdef STANDALONE
+#include "initguid.h"
+#endif
+
 #include "unknwn.h"
 #include "uuids.h"
 #include "mmdeviceapi.h"
 #include "mmsystem.h"
 #include "audioclient.h"
 #include "audiopolicy.h"
-#include "initguid.h"
+#ifdef __REACTOS__
+#include <initguid.h>
+#endif
 #include "endpointvolume.h"
 
 static const unsigned int win_formats[][4] = {
@@ -945,8 +951,9 @@ static void test_clock(int share)
     ok(gbsize == bufsize,
        "BufferSize %u at rate %u\n", gbsize, pwfx->nSamplesPerSec);
     else
-    ok(gbsize == parts * fragment || gbsize == MulDiv(bufsize, 1, 1024) * 1024,
-       "BufferSize %u misfits fragment size %u at rate %u\n", gbsize, fragment, pwfx->nSamplesPerSec);
+        todo_wine
+        ok(gbsize == parts * fragment || gbsize == MulDiv(bufsize, 1, 1024) * 1024,
+           "BufferSize %u misfits fragment size %u at rate %u\n", gbsize, fragment, pwfx->nSamplesPerSec);
 
     /* In shared mode, GetCurrentPadding decreases in multiples of
      * fragment size (i.e. updated only at period ticks), whereas