X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Flib%2Fdrivers%2Fsound%2Fmmebuddy%2Fmmewrap.c;h=03bce223c86c4d93d227e859f218440ebd57d5c4;hp=1a1870399e5e084199bfc3cf851c703d09f05a31;hb=141ec3a682f3c71d915de7acaa0e34143ef6231b;hpb=0fb477e07a4ee2ff675120b4f6f4f253b25045c2 diff --git a/reactos/lib/drivers/sound/mmebuddy/mmewrap.c b/reactos/lib/drivers/sound/mmebuddy/mmewrap.c index 1a1870399e5..03bce223c86 100644 --- a/reactos/lib/drivers/sound/mmebuddy/mmewrap.c +++ b/reactos/lib/drivers/sound/mmebuddy/mmewrap.c @@ -164,6 +164,9 @@ MmeCloseDevice( VALIDATE_MMSYS_PARAMETER( PrivateHandle ); SoundDeviceInstance = (PSOUND_DEVICE_INSTANCE) PrivateHandle; + if ( ! IsValidSoundDeviceInstance(SoundDeviceInstance) ) + return MMSYSERR_INVALHANDLE; + Result = GetSoundDeviceFromInstance(SoundDeviceInstance, &SoundDevice); if ( ! MMSUCCESS(Result) ) return TranslateInternalMmResult(Result); @@ -172,7 +175,11 @@ MmeCloseDevice( if ( ! MMSUCCESS(Result) ) return TranslateInternalMmResult(Result); + + /* TODO: Check device is stopped! */ + ReleaseEntrypointMutex(DeviceType); + /* TODO: Work with MIDI devices too */ NotifyMmeClient(SoundDeviceInstance, DeviceType == WAVE_OUT_DEVICE_TYPE ? WOM_CLOSE : WIM_CLOSE, 0); @@ -182,3 +189,17 @@ MmeCloseDevice( return Result; } + +MMRESULT +MmeResetWavePlayback( + IN DWORD PrivateHandle) +{ + PSOUND_DEVICE_INSTANCE SoundDeviceInstance; + + SND_TRACE(L"Resetting wave device (WODM_RESET)\n"); + + VALIDATE_MMSYS_PARAMETER( PrivateHandle ); + SoundDeviceInstance = (PSOUND_DEVICE_INSTANCE) PrivateHandle; + + return StopStreaming(SoundDeviceInstance); +}