[AUDIO-BRINGUP]
[reactos.git] / lib / drivers / sound / mmixer / wave.c
index c0d832a..1d39f37 100644 (file)
@@ -109,22 +109,7 @@ MMixerGetWaveInfoByIndexAndType(
 }
 
 
-VOID
-MMixerInitializePinConnect(
-    IN OUT PKSPIN_CONNECT PinConnect,
-    IN ULONG PinId)
-{
-    PinConnect->Interface.Set = KSINTERFACESETID_Standard;
-    PinConnect->Interface.Id = KSINTERFACE_STANDARD_STREAMING;
-    PinConnect->Interface.Flags = 0;
-    PinConnect->Medium.Set = KSMEDIUMSETID_Standard;
-    PinConnect->Medium.Id = KSMEDIUM_TYPE_ANYINSTANCE;
-    PinConnect->Medium.Flags = 0;
-    PinConnect->PinToHandle = NULL;
-    PinConnect->PinId = PinId;
-    PinConnect->Priority.PriorityClass = KSPRIORITY_NORMAL;
-    PinConnect->Priority.PrioritySubClass = 1;
-}
+
 
 VOID
 MMixerInitializeDataFormat(
@@ -369,7 +354,7 @@ MMixerInitializeWaveInfo(
     WaveInfo->PinId = Pins[0];
 
     /* sanity check */
-    ASSERT(wcslen(DeviceName) < MAXPNAMELEN);
+    ASSERT(wcslen(DeviceName) + 1 < MAXPNAMELEN);
 
     /* copy device name */
     if (bWaveIn)
@@ -623,6 +608,16 @@ MMixerSetWaveStatus(
 {
     KSPROPERTY Property;
     ULONG Length;
+    MIXER_STATUS Status;
+
+    /* verify mixer context */
+    Status = MMixerVerifyContext(MixerContext);
+
+    if (Status != MM_STATUS_SUCCESS)
+    {
+        /* invalid context passed */
+        return Status;
+    }
 
     /* setup property request */
     Property.Set = KSPROPSETID_Connection;
@@ -632,6 +627,31 @@ MMixerSetWaveStatus(
     return MixerContext->Control(PinHandle, IOCTL_KS_PROPERTY, &Property, sizeof(KSPROPERTY), &State, sizeof(KSSTATE), &Length);
 }
 
+MIXER_STATUS
+MMixerSetWaveResetState(
+    IN PMIXER_CONTEXT MixerContext,
+    IN HANDLE PinHandle,
+    IN ULONG bBegin)
+{
+    ULONG Length;
+    MIXER_STATUS Status;
+    KSRESET Reset;
+
+    /* verify mixer context */
+    Status = MMixerVerifyContext(MixerContext);
+
+    if (Status != MM_STATUS_SUCCESS)
+    {
+        /* invalid context passed */
+        return Status;
+    }
+
+    /* begin / stop reset */
+    Reset = (bBegin ? KSRESET_BEGIN : KSRESET_END);
+
+    return MixerContext->Control(PinHandle, IOCTL_KS_RESET_STATE, &Reset, sizeof(KSRESET), NULL, 0, &Length);
+}
+
 MIXER_STATUS
 MMixerGetWaveDevicePath(
     IN PMIXER_CONTEXT MixerContext,