+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS Kernel Streaming
- * FILE: drivers/wdm/audio/filters/splitter/filter.c
- * PURPOSE: Filter File Context Handling
- * PROGRAMMER: Johannes Anderwald
- */
-
-#include "precomp.h"
-
-NTSTATUS
-NTAPI
-FilterProcess(
- IN PKSFILTER Filter,
- IN PKSPROCESSPIN_INDEXENTRY ProcessPinsIndex)
-{
- ULONG Index;
- PKSPROCESSPIN CurPin, Pin;
- BOOLEAN PendingFrames = FALSE;
-
- if (ProcessPinsIndex->Count)
- {
- /* check if there are outstanding frames */
- for(Index = 1; Index < ProcessPinsIndex->Count; Index++)
- {
- /* get current pin */
- CurPin = ProcessPinsIndex->Pins[Index];
-
- if (CurPin->BytesAvailable && CurPin->Pin->DeviceState == KSSTATE_RUN)
- {
- /* pin has pending frames
- * to keep all pins synchronized, every pin has to wait untill each chained pin has send its frames downwards
- */
- PendingFrames = TRUE;
- }
- }
- }
-
- if (!PendingFrames && ProcessPinsIndex->Count)
- {
- /* get first pin */
- Pin = ProcessPinsIndex->Pins[0];
-
- /* check if there is new data available */
- if (Pin->BytesAvailable)
- {
- for(Index = 1; Index < ProcessPinsIndex->Count; Index++)
- {
- /* get current pin */
- CurPin = ProcessPinsIndex->Pins[Index];
-
- /* copy the frame to pin */
- RtlMoveMemory(CurPin->Data, Pin->Data, Pin->BytesAvailable);
- CurPin->BytesUsed = Pin->BytesAvailable;
- }
- }
- }
- /* done */
- return STATUS_SUCCESS;
-}
-