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