Module: wine Branch: master Commit: 8a317d89cf1c81c798c938ea7d1586052f1faad8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8a317d89cf1c81c798c938ea7d...
Author: Andrew Eikum aeikum@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);