From fa1eae069776f59e8bf404b06f44a10be873470f Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Sun, 20 Nov 2005 23:25:16 +0000 Subject: [PATCH] correct some bugs svn path=/trunk/; revision=19397 --- reactos/lib/mmdrv/midi.c | 2 ++ reactos/lib/mmdrv/mmddk.h | 9 +++++++++ reactos/lib/mmdrv/wave.c | 21 +++++++++++---------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/reactos/lib/mmdrv/midi.c b/reactos/lib/mmdrv/midi.c index 4c501919281..ac2299af615 100644 --- a/reactos/lib/mmdrv/midi.c +++ b/reactos/lib/mmdrv/midi.c @@ -157,6 +157,7 @@ static DWORD OpenMidiDevice(UINT DeviceType, DWORD ID, DWORD User, DWORD Param1, if (DeviceType == MidiInDevice) { + pClient->AuxEvent1 = CreateEvent(NULL, FALSE, FALSE, NULL); if (pClient->AuxEvent1 == NULL) { @@ -174,6 +175,7 @@ static DWORD OpenMidiDevice(UINT DeviceType, DWORD ID, DWORD User, DWORD Param1, // TaskCreate + WaitForSingleObject(pClient->AuxEvent2, INFINITE); } diff --git a/reactos/lib/mmdrv/mmddk.h b/reactos/lib/mmdrv/mmddk.h index ce8c9ade52a..2598b084e32 100644 --- a/reactos/lib/mmdrv/mmddk.h +++ b/reactos/lib/mmdrv/mmddk.h @@ -29,6 +29,15 @@ #include #include +typedef VOID (TASKCALLBACK) (DWORD dwInst); + +typedef TASKCALLBACK FAR *LPTASKCALLBACK; + +UINT APIENTRY mmTaskCreate(LPTASKCALLBACK lpfn, HANDLE FAR * lph, DWORD dwInst); +VOID APIENTRY mmTaskBlock(DWORD h); +BOOL APIENTRY mmTaskSignal(DWORD h); +VOID APIENTRY mmTaskYield(VOID); +DWORD APIENTRY mmGetCurrentTask(VOID); #define MAX_MIDIINDRV (16) diff --git a/reactos/lib/mmdrv/wave.c b/reactos/lib/mmdrv/wave.c index 62894bb9cd0..47d264852f3 100644 --- a/reactos/lib/mmdrv/wave.c +++ b/reactos/lib/mmdrv/wave.c @@ -36,15 +36,7 @@ MMRESULT GetDeviceCapabilities(DWORD ID, UINT DeviceType, if (Result != MMSYSERR_NOERROR) return Result; - // - // Set our data. - // - // Setting the overlapped parameter (last) to null means we - // wait until the operation completes. - // - - - if (DeviceType == WaveOutDevice) + if ((DeviceType == WaveOutDevice) || (DeviceType == WaveInDevice)) { Result = DeviceIoControl(DeviceHandle, IOCTL_WAVE_GET_CAPABILITIES, NULL, 0, (LPVOID)pCaps, Size, @@ -69,7 +61,7 @@ MMRESULT GetDeviceCapabilities(DWORD ID, UINT DeviceType, // Close the handle and return the result code -// CloseHandle(DeviceHandle); + CloseHandle(DeviceHandle); return Result; } @@ -81,6 +73,15 @@ static MMRESULT OpenWaveDevice(UINT DeviceType, DWORD dwParam2) { // TODO: Implement + //PWAVEALLOC pClient; + //MMRESULT mResult; + //BOOL Result; + //DWORD BytesReturned; + LPWAVEFORMATEX pFormats; + + pFormats = (LPWAVEFORMATEX)((LPWAVEOPENDESC)dwParam1)->lpFormat; + + return MMSYSERR_NOERROR; }