X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=dll%2Fwin32%2Fwdmaud.drv%2Fmmixer.c;h=a98418aa7923f0151888156c6615958b3e6d125e;hp=143c670082c6eb733ba334b04ad6e0d170a45fdc;hb=6c695cc12d8ed4505b654b22e1dd0aa3d387f8a9;hpb=a0f720954dd99b87da0b00811858a224c23669fd 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) {