correct some bugs Modified: trunk/reactos/lib/mmdrv/midi.c Modified: trunk/reactos/lib/mmdrv/mmddk.h Modified: trunk/reactos/lib/mmdrv/wave.c _____
Modified: trunk/reactos/lib/mmdrv/midi.c --- trunk/reactos/lib/mmdrv/midi.c 2005-11-20 22:30:01 UTC (rev 19396) +++ trunk/reactos/lib/mmdrv/midi.c 2005-11-20 23:25:16 UTC (rev 19397) @@ -157,6 +157,7 @@
if (DeviceType == MidiInDevice) { + pClient->AuxEvent1 = CreateEvent(NULL, FALSE, FALSE, NULL); if (pClient->AuxEvent1 == NULL) { @@ -174,6 +175,7 @@
// TaskCreate
+ WaitForSingleObject(pClient->AuxEvent2, INFINITE); }
_____
Modified: trunk/reactos/lib/mmdrv/mmddk.h --- trunk/reactos/lib/mmdrv/mmddk.h 2005-11-20 22:30:01 UTC (rev 19396) +++ trunk/reactos/lib/mmdrv/mmddk.h 2005-11-20 23:25:16 UTC (rev 19397) @@ -29,8 +29,17 @@
#include <mmsystem.h> #include <winbase.h>
+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) /* For now I'm making 16 the maximum number of midi devices one can * have. This should be more than enough for everybody. But as a purist, _____
Modified: trunk/reactos/lib/mmdrv/wave.c --- trunk/reactos/lib/mmdrv/wave.c 2005-11-20 22:30:01 UTC (rev 19396) +++ trunk/reactos/lib/mmdrv/wave.c 2005-11-20 23:25:16 UTC (rev 19397) @@ -36,15 +36,7 @@
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 @@
// Close the handle and return the result code -// CloseHandle(DeviceHandle); + CloseHandle(DeviceHandle);
return Result; } @@ -81,6 +73,15 @@ DWORD dwParam2) { // TODO: Implement + //PWAVEALLOC pClient; + //MMRESULT mResult; + //BOOL Result; + //DWORD BytesReturned; + LPWAVEFORMATEX pFormats; + + pFormats = (LPWAVEFORMATEX)((LPWAVEOPENDESC)dwParam1)->lpFormat; + + return MMSYSERR_NOERROR; }