[PATCH 3/5] amstream/tests: Move the testclock code above to use it in GetTime tests.

Anton Baskanov baskanov at gmail.com
Mon Nov 16 09:31:46 CST 2020


Signed-off-by: Anton Baskanov <baskanov at gmail.com>
---
 dlls/amstream/tests/amstream.c | 208 ++++++++++++++++-----------------
 1 file changed, 104 insertions(+), 104 deletions(-)

diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c
index cd014ee7f91..c2331205994 100644
--- a/dlls/amstream/tests/amstream.c
+++ b/dlls/amstream/tests/amstream.c
@@ -1305,6 +1305,110 @@ static const IMediaSeekingVtbl testsource_seeking_vtbl =
     testsource_seeking_GetPreroll,
 };
 
+struct advise_time_cookie
+{
+    LONGLONG base;
+    LONGLONG offset;
+    HANDLE event;
+    HANDLE advise_time_called_event;
+    BOOL unadvise_called;
+};
+
+struct testclock
+{
+    IReferenceClock IReferenceClock_iface;
+    LONG refcount;
+    LONGLONG time;
+    struct advise_time_cookie *advise_time_cookie;
+    HRESULT get_time_hr;
+};
+
+static inline struct testclock *impl_from_IReferenceClock(IReferenceClock *iface)
+{
+    return CONTAINING_RECORD(iface, struct testclock, IReferenceClock_iface);
+}
+
+static HRESULT WINAPI testclock_QueryInterface(IReferenceClock *iface, REFIID iid, void **out)
+{
+    if (winetest_debug > 1) trace("QueryInterface(%s)\n", wine_dbgstr_guid(iid));
+    if (IsEqualGUID(iid, &IID_IReferenceClock)
+            || IsEqualGUID(iid, &IID_IUnknown))
+    {
+        *out = iface;
+        IReferenceClock_AddRef(iface);
+        return S_OK;
+    }
+    return E_NOINTERFACE;
+}
+
+static ULONG WINAPI testclock_AddRef(IReferenceClock *iface)
+{
+    struct testclock *clock = impl_from_IReferenceClock(iface);
+    return InterlockedIncrement(&clock->refcount);
+}
+
+static ULONG WINAPI testclock_Release(IReferenceClock *iface)
+{
+    struct testclock *clock = impl_from_IReferenceClock(iface);
+    return InterlockedDecrement(&clock->refcount);
+}
+
+static HRESULT WINAPI testclock_GetTime(IReferenceClock *iface, REFERENCE_TIME *time)
+{
+    struct testclock *clock = impl_from_IReferenceClock(iface);
+    if (SUCCEEDED(clock->get_time_hr))
+        *time = clock->time;
+    return clock->get_time_hr;
+}
+
+static HRESULT WINAPI testclock_AdviseTime(IReferenceClock *iface, REFERENCE_TIME base, REFERENCE_TIME offset, HEVENT event, DWORD_PTR *cookie)
+{
+    struct testclock *clock = impl_from_IReferenceClock(iface);
+    if (clock->advise_time_cookie)
+    {
+        clock->advise_time_cookie->base = base;
+        clock->advise_time_cookie->offset = offset;
+        clock->advise_time_cookie->event = (HANDLE)event;
+        SetEvent(clock->advise_time_cookie->advise_time_called_event);
+    }
+    else
+    {
+        SetEvent((HANDLE)event);
+    }
+    *cookie = (DWORD_PTR)clock->advise_time_cookie;
+    return S_OK;
+}
+
+static HRESULT WINAPI testclock_AdvisePeriodic(IReferenceClock *iface, REFERENCE_TIME start, REFERENCE_TIME period, HSEMAPHORE semaphore, DWORD_PTR *cookie)
+{
+    ok(0, "Unexpected call.\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI testclock_Unadvise(IReferenceClock *iface, DWORD_PTR cookie)
+{
+    if (cookie)
+        ((struct advise_time_cookie *)cookie)->unadvise_called = TRUE;
+    return S_OK;
+}
+
+static IReferenceClockVtbl testclock_vtbl =
+{
+    testclock_QueryInterface,
+    testclock_AddRef,
+    testclock_Release,
+    testclock_GetTime,
+    testclock_AdviseTime,
+    testclock_AdvisePeriodic,
+    testclock_Unadvise,
+};
+
+static void testclock_init(struct testclock *clock)
+{
+    memset(clock, 0, sizeof(*clock));
+    clock->IReferenceClock_iface.lpVtbl = &testclock_vtbl;
+}
+
 #define check_get_stream(a,b,c,d) check_get_stream_(__LINE__,a,b,c,d)
 static void check_get_stream_(int line, IAMMultiMediaStream *mmstream,
         IMediaStreamFilter *filter, const GUID *mspid, IMediaStream *expect)
@@ -3148,110 +3252,6 @@ out_unknown:
     IUnknown_Release(unknown);
 }
 
-struct advise_time_cookie
-{
-    LONGLONG base;
-    LONGLONG offset;
-    HANDLE event;
-    HANDLE advise_time_called_event;
-    BOOL unadvise_called;
-};
-
-struct testclock
-{
-    IReferenceClock IReferenceClock_iface;
-    LONG refcount;
-    LONGLONG time;
-    struct advise_time_cookie *advise_time_cookie;
-    HRESULT get_time_hr;
-};
-
-static inline struct testclock *impl_from_IReferenceClock(IReferenceClock *iface)
-{
-    return CONTAINING_RECORD(iface, struct testclock, IReferenceClock_iface);
-}
-
-static HRESULT WINAPI testclock_QueryInterface(IReferenceClock *iface, REFIID iid, void **out)
-{
-    if (winetest_debug > 1) trace("QueryInterface(%s)\n", wine_dbgstr_guid(iid));
-    if (IsEqualGUID(iid, &IID_IReferenceClock)
-            || IsEqualGUID(iid, &IID_IUnknown))
-    {
-        *out = iface;
-        IReferenceClock_AddRef(iface);
-        return S_OK;
-    }
-    return E_NOINTERFACE;
-}
-
-static ULONG WINAPI testclock_AddRef(IReferenceClock *iface)
-{
-    struct testclock *clock = impl_from_IReferenceClock(iface);
-    return InterlockedIncrement(&clock->refcount);
-}
-
-static ULONG WINAPI testclock_Release(IReferenceClock *iface)
-{
-    struct testclock *clock = impl_from_IReferenceClock(iface);
-    return InterlockedDecrement(&clock->refcount);
-}
-
-static HRESULT WINAPI testclock_GetTime(IReferenceClock *iface, REFERENCE_TIME *time)
-{
-    struct testclock *clock = impl_from_IReferenceClock(iface);
-    if (SUCCEEDED(clock->get_time_hr))
-        *time = clock->time;
-    return clock->get_time_hr;
-}
-
-static HRESULT WINAPI testclock_AdviseTime(IReferenceClock *iface, REFERENCE_TIME base, REFERENCE_TIME offset, HEVENT event, DWORD_PTR *cookie)
-{
-    struct testclock *clock = impl_from_IReferenceClock(iface);
-    if (clock->advise_time_cookie)
-    {
-        clock->advise_time_cookie->base = base;
-        clock->advise_time_cookie->offset = offset;
-        clock->advise_time_cookie->event = (HANDLE)event;
-        SetEvent(clock->advise_time_cookie->advise_time_called_event);
-    }
-    else
-    {
-        SetEvent((HANDLE)event);
-    }
-    *cookie = (DWORD_PTR)clock->advise_time_cookie;
-    return S_OK;
-}
-
-static HRESULT WINAPI testclock_AdvisePeriodic(IReferenceClock *iface, REFERENCE_TIME start, REFERENCE_TIME period, HSEMAPHORE semaphore, DWORD_PTR *cookie)
-{
-    ok(0, "Unexpected call.\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT WINAPI testclock_Unadvise(IReferenceClock *iface, DWORD_PTR cookie)
-{
-    if (cookie)
-        ((struct advise_time_cookie *)cookie)->unadvise_called = TRUE;
-    return S_OK;
-}
-
-static IReferenceClockVtbl testclock_vtbl =
-{
-    testclock_QueryInterface,
-    testclock_AddRef,
-    testclock_Release,
-    testclock_GetTime,
-    testclock_AdviseTime,
-    testclock_AdvisePeriodic,
-    testclock_Unadvise,
-};
-
-static void testclock_init(struct testclock *clock)
-{
-    memset(clock, 0, sizeof(*clock));
-    clock->IReferenceClock_iface.lpVtbl = &testclock_vtbl;
-}
-
 static void test_audiostream_get_format(void)
 {
     static const WAVEFORMATEX pin_format =
-- 
2.17.1




More information about the wine-devel mailing list