Module: wine Branch: master Commit: f0d35a96b2eef4bd35674c59f2adc1665eb98797 URL: https://source.winehq.org/git/wine.git/?a=commit;h=f0d35a96b2eef4bd35674c59f...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Thu Mar 26 19:09:26 2020 +0100
dmime: Reimplement IDirectMusicAudioPath Activate.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com Signed-off-by: Michael Stefaniuc mstefani@winehq.org Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dmime/audiopath.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/dlls/dmime/audiopath.c b/dlls/dmime/audiopath.c index 1aadba92ae..078d843d46 100644 --- a/dlls/dmime/audiopath.c +++ b/dlls/dmime/audiopath.c @@ -216,21 +216,23 @@ static HRESULT WINAPI IDirectMusicAudioPathImpl_GetObjectInPath (IDirectMusicAud return E_INVALIDARG; }
-static HRESULT WINAPI IDirectMusicAudioPathImpl_Activate (IDirectMusicAudioPath *iface, BOOL fActivate) +static HRESULT WINAPI IDirectMusicAudioPathImpl_Activate(IDirectMusicAudioPath *iface, BOOL activate) { - struct IDirectMusicAudioPathImpl *This = impl_from_IDirectMusicAudioPath(iface); - FIXME("(%p, %d): stub\n", This, fActivate); - if (!fActivate) { - if (!This->fActive) return S_OK; - This->fActive = FALSE; - } else { - if (This->fActive) return S_OK; - This->fActive = TRUE; - if (NULL != This->pDSBuffer) { - IDirectSoundBuffer_Stop(This->pDSBuffer); + struct IDirectMusicAudioPathImpl *This = impl_from_IDirectMusicAudioPath(iface); + + FIXME("(%p, %d): semi-stub\n", This, activate); + + if (!!activate == This->fActive) + return S_FALSE; + + if (!activate && This->pDSBuffer) { + /* Path is being deactivated */ + IDirectSoundBuffer_Stop(This->pDSBuffer); } - } - return S_OK; + + This->fActive = !!activate; + + return S_OK; }
static HRESULT WINAPI IDirectMusicAudioPathImpl_SetVolume (IDirectMusicAudioPath *iface, LONG lVolume, DWORD dwDuration)