Commit 8a317d89 authored by Andrew Eikum's avatar Andrew Eikum Committed by Alexandre Julliard

xaudio2: Implement IXAudio2SourceVoice::Play.

parent 1c643f39
...@@ -140,6 +140,8 @@ typedef struct _XA2SourceImpl { ...@@ -140,6 +140,8 @@ typedef struct _XA2SourceImpl {
DWORD nsends; DWORD nsends;
XAUDIO2_SEND_DESCRIPTOR *sends; XAUDIO2_SEND_DESCRIPTOR *sends;
BOOL running;
struct list entry; struct list entry;
} XA2SourceImpl; } XA2SourceImpl;
...@@ -429,6 +431,8 @@ static void WINAPI XA2SRC_DestroyVoice(IXAudio2SourceVoice *iface) ...@@ -429,6 +431,8 @@ static void WINAPI XA2SRC_DestroyVoice(IXAudio2SourceVoice *iface)
This->in_use = FALSE; This->in_use = FALSE;
This->running = FALSE;
HeapFree(GetProcessHeap(), 0, This->fmt); HeapFree(GetProcessHeap(), 0, This->fmt);
LeaveCriticalSection(&This->lock); LeaveCriticalSection(&This->lock);
...@@ -438,7 +442,15 @@ static HRESULT WINAPI XA2SRC_Start(IXAudio2SourceVoice *iface, UINT32 Flags, ...@@ -438,7 +442,15 @@ static HRESULT WINAPI XA2SRC_Start(IXAudio2SourceVoice *iface, UINT32 Flags,
UINT32 OperationSet) UINT32 OperationSet)
{ {
XA2SourceImpl *This = impl_from_IXAudio2SourceVoice(iface); XA2SourceImpl *This = impl_from_IXAudio2SourceVoice(iface);
TRACE("%p, 0x%x, 0x%x\n", This, Flags, OperationSet); TRACE("%p, 0x%x, 0x%x\n", This, Flags, OperationSet);
EnterCriticalSection(&This->lock);
This->running = TRUE;
LeaveCriticalSection(&This->lock);
return S_OK; return S_OK;
} }
...@@ -446,7 +458,15 @@ static HRESULT WINAPI XA2SRC_Stop(IXAudio2SourceVoice *iface, UINT32 Flags, ...@@ -446,7 +458,15 @@ static HRESULT WINAPI XA2SRC_Stop(IXAudio2SourceVoice *iface, UINT32 Flags,
UINT32 OperationSet) UINT32 OperationSet)
{ {
XA2SourceImpl *This = impl_from_IXAudio2SourceVoice(iface); XA2SourceImpl *This = impl_from_IXAudio2SourceVoice(iface);
TRACE("%p, 0x%x, 0x%x\n", This, Flags, OperationSet); TRACE("%p, 0x%x, 0x%x\n", This, Flags, OperationSet);
EnterCriticalSection(&This->lock);
This->running = FALSE;
LeaveCriticalSection(&This->lock);
return S_OK; return S_OK;
} }
...@@ -1324,6 +1344,7 @@ static HRESULT WINAPI IXAudio2Impl_CreateSourceVoice(IXAudio2 *iface, ...@@ -1324,6 +1344,7 @@ static HRESULT WINAPI IXAudio2Impl_CreateSourceVoice(IXAudio2 *iface,
} }
src->in_use = TRUE; src->in_use = TRUE;
src->running = FALSE;
LeaveCriticalSection(&This->lock); LeaveCriticalSection(&This->lock);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment