From bceee275920c68b0910c3257664bafca4a1066a8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20H=C3=B6hle?= Date: Thu, 28 Jan 2010 16:39:52 +0100 Subject: [PATCH] midimap: Support midiOutGetVolume, returning FFFFFFFF. --- dlls/midimap/midimap.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/dlls/midimap/midimap.c b/dlls/midimap/midimap.c index 293465f5ff0..129427fa94c 100644 --- a/dlls/midimap/midimap.c +++ b/dlls/midimap/midimap.c @@ -430,6 +430,22 @@ static DWORD modUnprepare(MIDIMAPDATA* mom, LPMIDIHDR lpMidiHdr, DWORD_PTR dwPar return MMSYSERR_NOERROR; } +static DWORD modGetVolume(MIDIMAPDATA* mom, DWORD* lpdwVolume) +{ + if (MIDIMAP_IsBadData(mom)) return MMSYSERR_ERROR; + if (!lpdwVolume) return MMSYSERR_INVALPARAM; + *lpdwVolume = 0xFFFFFFFF; /* tests show this initial value */ + return MMSYSERR_NOERROR; +} + +static DWORD modSetVolume(MIDIMAPDATA* mom, DWORD dwVolume) +{ + /* Native forwards it to some underlying device + * GetVolume returns what was last set here. */ + FIXME("stub\n"); + return MMSYSERR_NOERROR; +} + static DWORD modGetDevCaps(UINT wDevID, MIDIMAPDATA* mom, LPMIDIOUTCAPSW lpMidiCaps, DWORD_PTR size) { static const WCHAR name[] = {'W','i','n','e',' ','m','i','d','i',' ','m','a','p','p','e','r',0}; @@ -441,7 +457,8 @@ static DWORD modGetDevCaps(UINT wDevID, MIDIMAPDATA* mom, LPMIDIOUTCAPSW lpMidiC lpMidiCaps->wVoices = 0; lpMidiCaps->wNotes = 0; lpMidiCaps->wChannelMask = 0xFFFF; - lpMidiCaps->dwSupport = 0L; + /* Native returns volume caps of underlying device | MIDICAPS_STREAM */ + lpMidiCaps->dwSupport = MIDICAPS_VOLUME|MIDICAPS_LRVOLUME; return MMSYSERR_NOERROR; } @@ -494,8 +511,8 @@ DWORD WINAPI MIDIMAP_modMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, case MODM_GETDEVCAPS: return modGetDevCaps (wDevID, (MIDIMAPDATA*)dwUser, (LPMIDIOUTCAPSW)dwParam1,dwParam2); case MODM_GETNUMDEVS: return 1; - case MODM_GETVOLUME: return MMSYSERR_NOTSUPPORTED; - case MODM_SETVOLUME: return MMSYSERR_NOTSUPPORTED; + case MODM_GETVOLUME: return modGetVolume ((MIDIMAPDATA*)dwUser, (DWORD*)dwParam1); + case MODM_SETVOLUME: return modSetVolume ((MIDIMAPDATA*)dwUser, dwParam1); default: FIXME("unknown message %d!\n", wMsg); } -- 2.11.4.GIT