diff --git a/dlls/winealsa.drv/midi.c b/dlls/winealsa.drv/midi.c index 0eee1c88c07..49b7f94ed25 100644 --- a/dlls/winealsa.drv/midi.c +++ b/dlls/winealsa.drv/midi.c @@ -1065,6 +1065,17 @@ static DWORD modUnprepare(WORD wDevID, LPMIDIHDR lpMidiHdr, DWORD dwSize) return MMSYSERR_NOERROR; } +/************************************************************************** + * modGetVolume [internal] + */ +static DWORD modGetVolume(WORD wDevID, DWORD* lpdwVolume) +{ + if (!lpdwVolume) return MMSYSERR_INVALPARAM; + if (wDevID >= MODM_NumDevs) return MMSYSERR_BADDEVICEID; + *lpdwVolume = 0xFFFFFFFF; + return (MidiOutDev[wDevID].caps.dwSupport & MIDICAPS_VOLUME) ? 0 : MMSYSERR_NOTSUPPORTED; +} + /************************************************************************** * modReset [internal] */ @@ -1371,7 +1382,7 @@ DWORD WINAPI ALSA_modMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, case MODM_GETNUMDEVS: return MODM_NumDevs; case MODM_GETVOLUME: - return 0; + return modGetVolume(wDevID, (DWORD*)dwParam1); case MODM_SETVOLUME: return 0; case MODM_RESET: