}
-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(
WaveInfo->PinId = Pins[0];
/* sanity check */
- ASSERT(wcslen(DeviceName) < MAXPNAMELEN);
+ ASSERT(wcslen(DeviceName) + 1 < MAXPNAMELEN);
/* copy device name */
if (bWaveIn)
{
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;
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,