Module: wine Branch: master Commit: 01d521e5afc39dfcfc1487f60102afe0e58337b8 URL: https://source.winehq.org/git/wine.git/?a=commit;h=01d521e5afc39dfcfc1487f60...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Sat Jan 4 16:44:16 2020 +0100
dmime: IDirectMusicSegment8 SetLoopPoints support zero start/end.
Both end and start set to zero loop the whole segement.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=25728 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/segment.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c index b6357b6f5f..0455b6c5dd 100644 --- a/dlls/dmime/segment.c +++ b/dlls/dmime/segment.c @@ -445,17 +445,20 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetStartPoint(IDirectMusicSegment }
static HRESULT WINAPI IDirectMusicSegment8Impl_SetLoopPoints(IDirectMusicSegment8 *iface, - MUSIC_TIME mtStart, MUSIC_TIME mtEnd) + MUSIC_TIME start, MUSIC_TIME end) { - IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface); + IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
- TRACE("(%p, %d, %d)\n", This, mtStart, mtEnd); - if (mtStart >= This->header.mtLength || mtEnd > This->header.mtLength || mtStart > mtEnd) { - return DMUS_E_OUT_OF_RANGE; - } - This->header.mtLoopStart = mtStart; - This->header.mtLoopEnd = mtEnd; - return S_OK; + TRACE("(%p, %d, %d)\n", This, start, end); + + if ((end || start) && + (start >= This->header.mtLength || end > This->header.mtLength || start > end)) + return DMUS_E_OUT_OF_RANGE; + + This->header.mtLoopStart = start; + This->header.mtLoopEnd = end; + + return S_OK; }
static HRESULT WINAPI IDirectMusicSegment8Impl_GetLoopPoints(IDirectMusicSegment8 *iface,