Zebediah Figura : quartz/dsoundrender: Use flush_event instead of reimplementing it.
Alexandre Julliard
julliard at winehq.org
Wed Jul 3 17:11:53 CDT 2019
Module: wine
Branch: master
Commit: 221a0cdb94d4c8ff8a96d20ee191ad5b9a07421f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=221a0cdb94d4c8ff8a96d20ee191ad5b9a07421f
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Tue Jul 2 22:25:43 2019 -0500
quartz/dsoundrender: Use flush_event instead of reimplementing it.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/quartz/dsoundrender.c | 39 +++------------------------------------
1 file changed, 3 insertions(+), 36 deletions(-)
diff --git a/dlls/quartz/dsoundrender.c b/dlls/quartz/dsoundrender.c
index f74b673..fd04212 100644
--- a/dlls/quartz/dsoundrender.c
+++ b/dlls/quartz/dsoundrender.c
@@ -64,8 +64,6 @@ typedef struct DSoundRenderImpl
REFERENCE_TIME play_time;
- HANDLE blocked;
-
LONG volume;
LONG pan;
@@ -245,7 +243,7 @@ static HRESULT DSoundRender_HandleEndOfStream(DSoundRenderImpl *This)
This->in_loop = 1;
LeaveCriticalSection(&This->renderer.filter.csFilter);
LeaveCriticalSection(&This->renderer.csRenderLock);
- WaitForSingleObject(This->blocked, 10);
+ WaitForSingleObject(This->renderer.flush_event, 10);
EnterCriticalSection(&This->renderer.csRenderLock);
EnterCriticalSection(&This->renderer.filter.csFilter);
This->in_loop = 0;
@@ -270,7 +268,7 @@ static HRESULT DSoundRender_SendSampleData(DSoundRenderImpl* This, REFERENCE_TIM
if (hr != S_OK) {
This->in_loop = 1;
LeaveCriticalSection(&This->renderer.csRenderLock);
- ret = WaitForSingleObject(This->blocked, 10);
+ ret = WaitForSingleObject(This->renderer.flush_event, 10);
EnterCriticalSection(&This->renderer.csRenderLock);
This->in_loop = 0;
if (This->renderer.sink.flushing || This->renderer.filter.state == State_Stopped)
@@ -434,7 +432,6 @@ static VOID WINAPI DSoundRender_OnStopStreaming(BaseRenderer * iface)
IDirectSoundBuffer_Stop(This->dsbuffer);
This->writepos = This->buf_size;
- SetEvent(This->blocked);
}
static VOID WINAPI DSoundRender_OnStartStreaming(BaseRenderer * iface)
@@ -445,13 +442,7 @@ static VOID WINAPI DSoundRender_OnStartStreaming(BaseRenderer * iface)
if (This->renderer.sink.pin.pConnectedTo)
{
- if (This->renderer.filter.state == State_Paused)
- {
- /* Unblock our thread, state changing from paused to running doesn't need a reset for state change */
- SetEvent(This->blocked);
- }
IDirectSoundBuffer_Play(This->dsbuffer, 0, 0, DSBPLAY_LOOPING);
- ResetEvent(This->blocked);
}
}
@@ -548,17 +539,6 @@ static HRESULT WINAPI DSoundRender_EndOfStream(BaseRenderer* iface)
return hr;
}
-static HRESULT WINAPI DSoundRender_BeginFlush(BaseRenderer* iface)
-{
- DSoundRenderImpl *This = impl_from_BaseRenderer(iface);
-
- TRACE("\n");
- BaseRendererImpl_BeginFlush(iface);
- SetEvent(This->blocked);
-
- return S_OK;
-}
-
static HRESULT WINAPI DSoundRender_EndFlush(BaseRenderer* iface)
{
DSoundRenderImpl *This = impl_from_BaseRenderer(iface);
@@ -566,8 +546,6 @@ static HRESULT WINAPI DSoundRender_EndFlush(BaseRenderer* iface)
TRACE("\n");
BaseRendererImpl_EndFlush(iface);
- if (This->renderer.filter.state != State_Stopped)
- ResetEvent(This->blocked);
if (This->dsbuffer)
{
@@ -602,8 +580,6 @@ static void dsound_render_destroy(BaseRenderer *iface)
IDirectSound8_Release(filter->dsound);
filter->dsound = NULL;
- CloseHandle(filter->blocked);
-
strmbase_renderer_cleanup(&filter->renderer);
CoTaskMemFree(filter);
}
@@ -643,7 +619,7 @@ static const BaseRendererFuncTable BaseFuncTable = {
DSoundRender_CompleteConnect,
DSoundRender_BreakConnect,
DSoundRender_EndOfStream,
- DSoundRender_BeginFlush,
+ NULL,
DSoundRender_EndFlush,
dsound_render_destroy,
dsound_render_query_interface,
@@ -695,14 +671,6 @@ HRESULT DSoundRender_create(IUnknown *outer, void **out)
if (SUCCEEDED(hr))
{
- pDSoundRender->blocked = CreateEventW(NULL, TRUE, TRUE, NULL);
-
- if (!pDSoundRender->blocked || FAILED(hr))
- {
- IBaseFilter_Release(&pDSoundRender->renderer.filter.IBaseFilter_iface);
- return HRESULT_FROM_WIN32(GetLastError());
- }
-
*out = &pDSoundRender->renderer.filter.IUnknown_inner;
}
else
@@ -735,7 +703,6 @@ static HRESULT WINAPI DSoundRender_Pause(IBaseFilter * iface)
if (SUCCEEDED(hr))
This->renderer.filter.state = State_Paused;
- ResetEvent(This->blocked);
ResetEvent(This->renderer.flush_event);
}
LeaveCriticalSection(&This->renderer.csRenderLock);
More information about the wine-cvs
mailing list