From 9bc84396dea8af2ac05e8c36cedc146bae3b4b8d Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Sun, 26 Jan 2020 21:51:36 +0100 Subject: [PATCH] dmcompos: Partially implement Chord Map track GetParam/SetParam methods. Signed-off-by: Michael Stefaniuc Signed-off-by: Alexandre Julliard --- dlls/dmcompos/chordmaptrack.c | 38 +++++++++++++++++++++++++--------- dlls/dmcompos/tests/dmcompos.c | 6 ++---- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/dlls/dmcompos/chordmaptrack.c b/dlls/dmcompos/chordmaptrack.c index b60b06768ba..cf4f8259868 100644 --- a/dlls/dmcompos/chordmaptrack.c +++ b/dlls/dmcompos/chordmaptrack.c @@ -117,20 +117,38 @@ static HRESULT WINAPI chordmap_track_Play(IDirectMusicTrack8 *iface, void *pStat return S_OK; } -static HRESULT WINAPI chordmap_track_GetParam(IDirectMusicTrack8 *iface, REFGUID rguidType, - MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) +static HRESULT WINAPI chordmap_track_GetParam(IDirectMusicTrack8 *iface, REFGUID type, + MUSIC_TIME time, MUSIC_TIME *next, void *param) { - IDirectMusicChordMapTrack *This = impl_from_IDirectMusicTrack8(iface); - FIXME("(%p, %s, %d, %p, %p): stub\n", This, debugstr_dmguid(rguidType), mtTime, pmtNext, pParam); - return S_OK; + IDirectMusicChordMapTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %s, %d, %p, %p)\n", This, debugstr_dmguid(type), time, next, param); + + if (!type) + return E_POINTER; + if (!IsEqualGUID(type, &GUID_IDirectMusicChordMap)) + return DMUS_E_GET_UNSUPPORTED; + + FIXME("GUID_IDirectMusicChordMap not handled yet\n"); + + return S_OK; } -static HRESULT WINAPI chordmap_track_SetParam(IDirectMusicTrack8 *iface, REFGUID rguidType, - MUSIC_TIME mtTime, void *pParam) +static HRESULT WINAPI chordmap_track_SetParam(IDirectMusicTrack8 *iface, REFGUID type, + MUSIC_TIME time, void *param) { - IDirectMusicChordMapTrack *This = impl_from_IDirectMusicTrack8(iface); - FIXME("(%p, %s, %d, %p): stub\n", This, debugstr_dmguid(rguidType), mtTime, pParam); - return S_OK; + IDirectMusicChordMapTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %s, %d, %p)\n", This, debugstr_dmguid(type), time, param); + + if (!type) + return E_POINTER; + if (!IsEqualGUID(type, &GUID_IDirectMusicChordMap)) + return DMUS_E_SET_UNSUPPORTED; + + FIXME("GUID_IDirectMusicChordMap not handled yet\n"); + + return S_OK; } static HRESULT WINAPI chordmap_track_IsParamSupported(IDirectMusicTrack8 *iface, REFGUID rguidType) diff --git a/dlls/dmcompos/tests/dmcompos.c b/dlls/dmcompos/tests/dmcompos.c index f041d0ac347..d4dbd2206c4 100644 --- a/dlls/dmcompos/tests/dmcompos.c +++ b/dlls/dmcompos/tests/dmcompos.c @@ -321,12 +321,10 @@ static void test_chordmaptrack(void) ok(hr == S_OK, "IDirectMusicTrack8_EndPlay failed: %08x\n", hr); hr = IDirectMusicTrack8_Play(dmt8, NULL, 0, 0, 0, 0, NULL, NULL, 0); ok(hr == S_OK, "IDirectMusicTrack8_Play failed: %08x\n", hr); - todo_wine { hr = IDirectMusicTrack8_GetParam(dmt8, NULL, 0, NULL, NULL); ok(hr == E_POINTER, "IDirectMusicTrack8_GetParam failed: %08x\n", hr); hr = IDirectMusicTrack8_SetParam(dmt8, NULL, 0, NULL); ok(hr == E_POINTER, "IDirectMusicTrack8_SetParam failed: %08x\n", hr); - } hr = IDirectMusicTrack8_IsParamSupported(dmt8, NULL); ok(hr == E_POINTER, "IDirectMusicTrack8_IsParamSupported failed: %08x\n", hr); @@ -348,11 +346,11 @@ static void test_chordmaptrack(void) "IsParamSupported(%s) failed: %08x, expected DMUS_E_TYPE_UNSUPPORTED\n", unsupported[i].name, hr); hr = IDirectMusicTrack8_GetParam(dmt8, unsupported[i].type, 0, NULL, &chordmap); - todo_wine ok(hr == DMUS_E_GET_UNSUPPORTED, + ok(hr == DMUS_E_GET_UNSUPPORTED, "GetParam(%s) failed: %08x, expected DMUS_E_GET_UNSUPPORTED\n", unsupported[i].name, hr); hr = IDirectMusicTrack8_SetParam(dmt8, unsupported[i].type, 0, chordmap); - todo_wine ok(hr == DMUS_E_SET_UNSUPPORTED, + ok(hr == DMUS_E_SET_UNSUPPORTED, "SetParam(%s) failed: %08x, expected DMUS_E_SET_UNSUPPORTED\n", unsupported[i].name, hr); }