Jörg Höhle : midimap: Support midiOutGetVolume, returning FFFFFFFF.
Alexandre Julliard
julliard at winehq.org
Wed Feb 3 09:33:06 CST 2010
Module: wine
Branch: master
Commit: bceee275920c68b0910c3257664bafca4a1066a8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bceee275920c68b0910c3257664bafca4a1066a8
Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date: Thu Jan 28 16:39:52 2010 +0100
midimap: Support midiOutGetVolume, returning FFFFFFFF.
---
dlls/midimap/midimap.c | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/dlls/midimap/midimap.c b/dlls/midimap/midimap.c
index 293465f..129427f 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);
}
More information about the wine-cvs
mailing list