Andrew Eikum : xaudio2: Implement IXAudio2SourceVoice::Play.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Aug 26 09:57:11 CDT 2015
Module: wine
Branch: master
Commit: 8a317d89cf1c81c798c938ea7d1586052f1faad8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8a317d89cf1c81c798c938ea7d1586052f1faad8
Author: Andrew Eikum <aeikum at 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);
More information about the wine-cvs
mailing list