Sync to trunk head (r42241)
[reactos.git] / reactos / lib / drivers / sound / mmebuddy / wave / wodMessage.c
index 754b8c3..3eece42 100644 (file)
@@ -33,11 +33,11 @@ MMRESULT HelloWorld(PSOUND_DEVICE_INSTANCE Instance, PVOID String)
 */
 APIENTRY DWORD
 wodMessage(
-    DWORD DeviceId,
-    DWORD Message,
-    DWORD PrivateHandle,
-    DWORD Parameter1,
-    DWORD Parameter2)
+    UINT DeviceId,
+    UINT Message,
+    DWORD_PTR PrivateHandle,
+    DWORD_PTR Parameter1,
+    DWORD_PTR Parameter2)
 {
     MMRESULT Result = MMSYSERR_NOTSUPPORTED;
 
@@ -57,7 +57,7 @@ wodMessage(
         {
             Result = MmeGetSoundDeviceCapabilities(WAVE_OUT_DEVICE_TYPE,
                                                    DeviceId,
-                                                   (PVOID) Parameter1,
+                                                   Parameter1,
                                                    Parameter2);
             break;
         }
@@ -68,7 +68,7 @@ wodMessage(
                                        DeviceId,
                                        (LPWAVEOPENDESC) Parameter1,
                                        Parameter2,
-                                       (DWORD*) PrivateHandle);
+                                       (SIZE_T*)PrivateHandle);
             break;
         }
 
@@ -94,18 +94,26 @@ wodMessage(
 
         case WODM_WRITE :
         {
-            Result = MmeEnqueueWaveHeader(PrivateHandle, Parameter1);
+            Result = MmeWriteWaveHeader(PrivateHandle, Parameter1);
+            break;
+        }
+
+        case WODM_RESET :
+        {
+            /* Stop playback, reset position to zero */
+            Result = MmeResetWavePlayback(PrivateHandle);
+            break;
+        }
+
+        case WODM_RESTART :
+        {
+            /* Continue playback when paused */
             break;
         }
 
         case WODM_GETPOS :
         {
-#if 0
-            /* Hacky code to test the threading */
-            PSOUND_DEVICE_INSTANCE Instance = (PSOUND_DEVICE_INSTANCE)PrivateHandle;
-            CallSoundThread(Instance->Thread, HelloWorld, Instance, L"Hello World!");
-            CallSoundThread(Instance->Thread, HelloWorld, Instance, L"Hello Universe!");
-#endif
+            Result = MmeGetPosition(WAVE_OUT_DEVICE_TYPE, DeviceId, PrivateHandle, (MMTIME*)Parameter1, Parameter2);
             break;
         }
     }