Andrew Eikum : xaudio2: Implement IXAudio2SourceVoice::Play.
Module: wine Branch: master Commit: 8a317d89cf1c81c798c938ea7d1586052f1faad8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8a317d89cf1c81c798c938ea7d... Author: Andrew Eikum <aeikum(a)codeweavers.com> Date: Tue Aug 25 14:28:46 2015 -0500 xaudio2: Implement IXAudio2SourceVoice::Play. --- dlls/xaudio2_7/xaudio_dll.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c index 52ac747..6cfef9b 100644 --- a/dlls/xaudio2_7/xaudio_dll.c +++ b/dlls/xaudio2_7/xaudio_dll.c @@ -140,6 +140,8 @@ typedef struct _XA2SourceImpl { DWORD nsends; XAUDIO2_SEND_DESCRIPTOR *sends; + BOOL running; + struct list entry; } XA2SourceImpl; @@ -429,6 +431,8 @@ static void WINAPI XA2SRC_DestroyVoice(IXAudio2SourceVoice *iface) This->in_use = FALSE; + This->running = FALSE; + HeapFree(GetProcessHeap(), 0, This->fmt); LeaveCriticalSection(&This->lock); @@ -438,7 +442,15 @@ static HRESULT WINAPI XA2SRC_Start(IXAudio2SourceVoice *iface, UINT32 Flags, UINT32 OperationSet) { XA2SourceImpl *This = impl_from_IXAudio2SourceVoice(iface); + TRACE("%p, 0x%x, 0x%x\n", This, Flags, OperationSet); + + EnterCriticalSection(&This->lock); + + This->running = TRUE; + + LeaveCriticalSection(&This->lock); + return S_OK; } @@ -446,7 +458,15 @@ static HRESULT WINAPI XA2SRC_Stop(IXAudio2SourceVoice *iface, UINT32 Flags, UINT32 OperationSet) { XA2SourceImpl *This = impl_from_IXAudio2SourceVoice(iface); + TRACE("%p, 0x%x, 0x%x\n", This, Flags, OperationSet); + + EnterCriticalSection(&This->lock); + + This->running = FALSE; + + LeaveCriticalSection(&This->lock); + return S_OK; } @@ -1324,6 +1344,7 @@ static HRESULT WINAPI IXAudio2Impl_CreateSourceVoice(IXAudio2 *iface, } src->in_use = TRUE; + src->running = FALSE; LeaveCriticalSection(&This->lock);
participants (1)
-
Alexandre Julliard