ACX_STREAM_BRIDGE_CONFIG-Struktur (acxstreams.h)

Die AcxStreamBridge-Struktur wird von einer Verbindung verwendet, um die Datenstromerstellung, die Statusübergänge des Datenstroms und die DRM-Einstellungen zwischen den Leitungsdatenstromsegmenten des Endpunkts zu verteilen.

Syntax

typedef struct _ACX_STREAM_BRIDGE_CONFIG {
  ULONG                  Size;
  ULONG                  Flags;
  ACX_STREAM_BRIDGE_TYPE Type;
  ULONG                  InModesCount;
  PCGUID                 *InModes;
  PCGUID                 OutMode;
  ACXOBJECTBAG           OutStreamVarArguments;
  WDF_OBJECT_ATTRIBUTES  TargetStreamAttributes;
} ACX_STREAM_BRIDGE_CONFIG, *PACX_STREAM_BRIDGE_CONFIG;

Member

Size

Die Länge dieser Struktur in Bytes.

Flags

Bitweises OR von ACX_STREAM_BRIDGE_CONFIG_FLAGS Enumeration.

Type

Die ACX_STREAM_BRIDGE_TYPE Enumeration, die den Brückentyp definiert.

InModesCount

Die Anzahl der in InModes aufgeführten AUDIO_SIGNALPROCESSINGMODEs. Dies sind die Signalverarbeitungsmodi, die von ACXSTREAMBRIDGE als Eingabe akzeptiert werden. Weitere Informationen zu Audiomodi finden Sie unter Audiosignalverarbeitungsmodi.

Dieses Feld kann nur null sein, wenn das Feld InModes auf NULL festgelegt ist.

InModes

Ein Zeiger auf eine Liste von AUDIO_SIGNALPROCESSINGMODE Zeigern, die von ACXSTREAMBRIDGE unterstützt werden. Dieses Feld kann den Wert NULL annehmen. Eine NULL-GUID ist ein wilder Karte Wert, der mit jedem AUDIO_SIGNALPROCESSINGMODEs übereinstimmt.

Wenn die Eingangssignalverarbeitungsmodi nicht definiert sind, stimmt ACXSTREAMBRIDGE nicht automatisch mit einem Modus überein. In diesem Fall ist es Sache des Treibers, den Eingabedatenstrom manuell zur Streambrücke hinzuzufügen.

OutMode

Ein Zeiger auf einen AUDIO_SIGNALPROCESSINGMODE, der den Audiosignalverarbeitungsmodus des Ausgabedatenstroms definiert. Wenn dieses Feld NULL ist, wird die AUDIO_SIGNALPROCESSINGMODE_DEFAULT verwendet, wenn es von der zugeordneten ACXPIN unterstützt wird, andernfalls wird die AUDIO_SIGNALPROCESSINGMODE_RAW verwendet. Wenn auch letzteres nicht unterstützt wird, wird der Ausgabestream erstellt, ohne einen Audiosignalverarbeitungsmodus anzugeben.

OutStreamVarArguments

Und ACXOBJECTBAG-Objekt, das verwendet wird, um Variablenargumente für den Ausgabestream bereitzustellen. Dies ist eine optionale Einstellung und kann NULL sein. Weitere Informationen zu ACX-Objekten finden Sie unter ACX – Zusammenfassung von ACX-Objekten.

TargetStreamAttributes

Eine WDF_OBJECT_ATTRIBUTES-Struktur , die zum Definieren der ACXTARGETSTREAM-Objektattribute verwendet wird.

Hinweise

AcxStreamBridge wird von einer Verbindung verwendet, um die Datenstromerstellung, die Statusübergänge des Datenstroms und die DRM-Einstellungen zwischen den Leitungsdatenstromsegmenten des Endpunkts zu verteilen. Dieses Objekt wird nur in einem Szenario mit mehreren Schaltungen (Audio-Verbund) verwendet.

Ein Pin kann 0, einem oder mehreren ACXSTREAMBRIDGEs zugeordnet werden. ACX durchsucht die liste des zugeordneten ACXPIN-Signalverarbeitungsmodus nach einer Übereinstimmung im Streamsignalverarbeitungsmodus. Die Suche wird bei der ersten Übereinstimmung beendet.

ACX erstellt eine ACXSTREAMBRIDGE-Standard-ACXSTREAMBRIDGE für eine ACXCIRCUIT-zu-ACXCIRCUIT-Brücke, wenn der Treiber keine erstellt, und der Treiber die Standarddatenstrombrückenbehandlung nicht mit der AcxCircuitInitDisableDefaultStreamBridgeHandling-Funktion deaktiviert hat.

Wenn der zugeordnete ACXPIN den angegebenen Audiosignalverarbeitungsmodus unterstützt, wird beim Erstellen des Ausgabestreams das Standarddatenformat für diesen Audiosignalverarbeitungsmodus verwendet.

Wenn der zugeordnete ACXPIN den angegebenen Audiosignalverarbeitungsmodus nicht unterstützt, wird beim Erstellen des Ausgabedatenstroms das Datenformat des Eingabedatenstroms verwendet.

AcXSTREAMBRIDGE muss einem Objekt zugeordnet werden, das ACXCIRCUIT als Vorgänger aufweist.

Das Beispiel für die Verwendung ist unten dargestellt.

        ACXSTREAMBRIDGE             bridge          = NULL;
        ACX_STREAM_BRIDGE_CONFIG    bridgeCfg;
    
        ACX_STREAM_BRIDGE_CONFIG_INIT(&bridgeCfg);
        bridgeCfg.InModesCount = 0;     // no in-modes. this stream-bridge is manually managed.
        bridgeCfg.InModes      = NULL; 
        bridgeCfg.OutMode      = NULL;  // no mode, i.e., default (1st), raw (2nd) or no mode (3rd).
        bridgeCfg.Flags       |= AcxStreamBridgeInvertChangeStateSequence;

        WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
        attributes.ParentObject = pin;

        status = AcxStreamBridgeCreate(Circuit, &attributes, &bridgeCfg, &bridge);

In diesem Beispiel wird gezeigt, wie Sie eine Stream-BRIDGE für die Modi RAW und DEFAULT festlegen.

    //
    // Add a stream BRIDGE for RAW and DEFAULT modes.
    //
    PCGUID  inModes[] = 
    {
        &AUDIO_SIGNALPROCESSINGMODE_DEFAULT, 
        &AUDIO_SIGNALPROCESSINGMODE_RAW,
    };

    WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
    attributes.ParentObject = pin;

    ACXSTREAMBRIDGE bridge = NULL;
    ACX_STREAM_BRIDGE_CONFIG bridgeCfg;
 
    ACX_STREAM_BRIDGE_CONFIG_INIT(&bridgeCfg);
    streamCfg.InModesCount = 2;
    streamCfg.InModes      = inModes; 
    streamCfg.OutMode      = &AUDIO_SIGNALPROCESSINGMODE_DEFAULT;

    status = AcxStreamBridgeCreate(circuit, &attributes, &bridgeCfg, &bridge);

ACX-Anforderungen

ACX-Mindestversion: 1.0

Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.

Anforderungen

Anforderung Wert
Header acxstreams.h

Weitere Informationen