From: Johannes Anderwald Date: Fri, 10 Dec 2010 07:41:44 +0000 (+0000) Subject: [AUDIO-BRINGUP] X-Git-Tag: backups/ros-branch-0_3_13@51035~84^2~14 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=6c695cc12d8ed4505b654b22e1dd0aa3d387f8a9;ds=sidebyside [AUDIO-BRINGUP] - Fix broken wave recording svn path=/branches/audio-bringup/; revision=49998 --- diff --git a/dll/win32/wdmaud.drv/mmixer.c b/dll/win32/wdmaud.drv/mmixer.c index 143c670082c..a98418aa792 100644 --- a/dll/win32/wdmaud.drv/mmixer.c +++ b/dll/win32/wdmaud.drv/mmixer.c @@ -15,6 +15,7 @@ typedef struct HANDLE hDevice; PSOUND_OVERLAPPED Overlap; LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine; + DWORD IoCtl; }IO_PACKET, *LPIO_PACKET; BOOL MMixerLibraryInitialized = FALSE; @@ -786,29 +787,19 @@ IoStreamingThread( LPIO_PACKET Packet = (LPIO_PACKET)lpParameter; Result = SyncOverlappedDeviceIoControl(Packet->hDevice, - IOCTL_KS_WRITE_STREAM, //FIXME IOCTL_KS_READ_STREAM + Packet->IoCtl, NULL, 0, &Packet->Header, sizeof(KSSTREAM_HEADER), &Length); - /* HACK: - * don't call completion routine directly - */ - Packet->CompletionRoutine(ERROR_SUCCESS, Packet->Header.DataUsed, (LPOVERLAPPED)Packet->Overlap); HeapFree(GetProcessHeap(), 0, Packet); return 0; } - - - - - - MMRESULT WdmAudCommitWaveBufferByMMixer( IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance, @@ -849,6 +840,7 @@ WdmAudCommitWaveBufferByMMixer( Packet->hDevice = SoundDeviceInstance->Handle; Packet->Overlap = Overlap; Packet->CompletionRoutine = CompletionRoutine; + Packet->IoCtl = (DeviceType == WAVE_OUT_DEVICE_TYPE ? IOCTL_KS_WRITE_STREAM : IOCTL_KS_READ_STREAM); if (DeviceType == WAVE_OUT_DEVICE_TYPE) {