From 0db537dac80007abf8eeaec611c5d21d073d04ed Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Fri, 3 Dec 2010 11:14:29 +0000 Subject: [PATCH] [AUDIO-BRINGUP] - Fix opening of mixer / midi devices svn path=/branches/audio-bringup/; revision=49917 --- lib/drivers/sound/mmebuddy/mmewrap.c | 4 ++-- lib/drivers/sound/mmebuddy/wave/format.c | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/drivers/sound/mmebuddy/mmewrap.c b/lib/drivers/sound/mmebuddy/mmewrap.c index 583d198ca87..9e03770c175 100644 --- a/lib/drivers/sound/mmebuddy/mmewrap.c +++ b/lib/drivers/sound/mmebuddy/mmewrap.c @@ -130,11 +130,11 @@ MmeOpenDevice( UINT Message; PSOUND_DEVICE SoundDevice; PSOUND_DEVICE_INSTANCE SoundDeviceInstance; - LPWAVEFORMATEX Format; + LPWAVEFORMATEX Format = NULL; SND_TRACE(L"Opening device"); - VALIDATE_MMSYS_PARAMETER( IS_WAVE_DEVICE_TYPE(DeviceType) ); /* FIXME? wave in too? */ + VALIDATE_MMSYS_PARAMETER( IS_WAVE_DEVICE_TYPE(DeviceType) || IS_MIXER_DEVICE_TYPE(DeviceType) || IS_MIDI_DEVICE_TYPE(DeviceType) ); /* FIXME? wave in too? */ VALIDATE_MMSYS_PARAMETER( OpenParameters ); Result = GetSoundDevice(DeviceType, DeviceId, &SoundDevice); diff --git a/lib/drivers/sound/mmebuddy/wave/format.c b/lib/drivers/sound/mmebuddy/wave/format.c index ecc5bbc1d9a..34541c4fa0c 100644 --- a/lib/drivers/sound/mmebuddy/wave/format.c +++ b/lib/drivers/sound/mmebuddy/wave/format.c @@ -65,8 +65,6 @@ SetWaveDeviceFormat( SND_TRACE(L"Setting wave format\n"); VALIDATE_MMSYS_PARAMETER( IsValidSoundDeviceInstance(SoundDeviceInstance) ); - VALIDATE_MMSYS_PARAMETER( Format ); - VALIDATE_MMSYS_PARAMETER( FormatSize >= sizeof(WAVEFORMATEX) ); Result = GetSoundDeviceFromInstance(SoundDeviceInstance, &SoundDevice); if ( ! MMSUCCESS(Result) ) @@ -74,9 +72,14 @@ SetWaveDeviceFormat( Result = GetSoundDeviceType(SoundDevice, &DeviceType); SND_ASSERT( Result == MMSYSERR_NOERROR ); + if (DeviceType == WAVE_IN_DEVICE_TYPE || DeviceType == WAVE_OUT_DEVICE_TYPE) + { + VALIDATE_MMSYS_PARAMETER( Format ); + VALIDATE_MMSYS_PARAMETER( FormatSize >= sizeof(WAVEFORMATEX) ); + } /* Ensure we have a wave device (TODO: check if this applies to wavein as well) */ - VALIDATE_MMSYS_PARAMETER( IS_WAVE_DEVICE_TYPE(DeviceType) ); + VALIDATE_MMSYS_PARAMETER( IS_WAVE_DEVICE_TYPE(DeviceType) || IS_MIDI_DEVICE_TYPE(DeviceType) || IS_MIXER_DEVICE_TYPE(DeviceType)); /* Obtain the function table */ Result = GetSoundDeviceFunctionTable(SoundDevice, &FunctionTable); -- 2.17.1