- Partly implement WIDM_ADDBUFFER
[reactos.git] / reactos / lib / drivers / sound / mmebuddy / wave / widMessage.c
index dc8a69f..366ab3c 100644 (file)
     Standard MME driver entry-point for messages relating to wave audio
     input.
 */
-APIENTRY DWORD
+DWORD
+APIENTRY
 widMessage(
-    UINT DeviceId,
-    UINT Message,
-    DWORD_PTR PrivateHandle,
-    DWORD_PTR Parameter1,
-    DWORD_PTR Parameter2)
+    DWORD DeviceId,
+    DWORD Message,
+    DWORD PrivateHandle,
+    DWORD Parameter1,
+    DWORD Parameter2)
 {
     MMRESULT Result = MMSYSERR_NOTSUPPORTED;
 
@@ -46,12 +47,56 @@ widMessage(
 
         case WIDM_GETDEVCAPS :
         {
+
             Result = MmeGetSoundDeviceCapabilities(WAVE_IN_DEVICE_TYPE,
                                                    DeviceId,
-                                                   Parameter1,
+                                                   (PVOID) Parameter1,
                                                    Parameter2);
             break;
         }
+        case WIDM_OPEN :
+        {
+            Result = MmeOpenWaveDevice(WAVE_IN_DEVICE_TYPE,
+                                       DeviceId,
+                                       (LPWAVEOPENDESC) Parameter1,
+                                       Parameter2,
+                                       (DWORD*) PrivateHandle);
+            break;
+        }
+
+        case WIDM_CLOSE :
+        {
+            Result = MmeCloseDevice(PrivateHandle);
+
+            break;
+        }
+
+        case WIDM_PREPARE :
+        {
+            /* TODO: Do we need to pass 2nd parameter? */
+            Result = MmePrepareWaveHeader(PrivateHandle, Parameter1);
+            break;
+        }
+
+        case WIDM_UNPREPARE :
+        {
+            Result = MmeUnprepareWaveHeader(PrivateHandle, Parameter1);
+            break;
+        }
+
+        case WIDM_RESET :
+        {
+            /* Stop playback, reset position to zero */
+            Result = MmeResetWavePlayback(PrivateHandle);
+            break;
+        }
+
+        case WIDM_ADDBUFFER :
+        {
+            Result = MmeWriteWaveHeader(PrivateHandle, Parameter1);
+            break;
+        }
+
     }
 
     SND_TRACE(L"widMessage returning MMRESULT %d\n", Result);