次の方法で共有


ACX_STREAM_BRIDGE_CONFIG構造体 (acxstreams.h)

AcxStreamBridge 構造体は、回線によってストリームの作成、ストリームの状態遷移、エンドポイントの回線ストリーム セグメント間の DRM 設定を伝達するために使用されます。

構文

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;

メンバー

Size

この構造体の長さ (バイト単位)。

Flags

列挙型のビットごとの OR ACX_STREAM_BRIDGE_CONFIG_FLAGS

Type

ブリッジ 種類を定義するACX_STREAM_BRIDGE_TYPE列挙型。

InModesCount

InModes にリストされているAUDIO_SIGNALPROCESSINGMODEsの数。 これらは ACXSTREAMBRIDGE によって入力として受け入れられる信号処理モードです。 オーディオ モードの詳細については、「 オーディオ信号処理モード」を参照してください。

このフィールドは、InModes フィールドが NULL に設定されている場合にのみ 0 にすることができます。

InModes

ACXSTREAMBRIDGE でサポートされているAUDIO_SIGNALPROCESSINGMODE ポインターの一覧へのポインター。 このフィールドは NULL になる場合があります。 NULL GUID は野生のカード値であり、任意のAUDIO_SIGNALPROCESSINGMODEsと一致します。

入力信号処理モードが定義されていない場合、ACXSTREAMBRIDGE はどのモードとも自動的には一致しません。 この場合、入力ストリームをストリーム ブリッジに手動で追加するのはドライバー次第です。

OutMode

出力ストリームのオーディオ信号処理モードを定義するAUDIO_SIGNALPROCESSINGMODEへのポインター。 このフィールドが NULL の場合、関連付けられた ACXPIN でサポートされている場合はAUDIO_SIGNALPROCESSINGMODE_DEFAULTが使用されます。それ以外の場合は、AUDIO_SIGNALPROCESSINGMODE_RAWが使用されます。 後者もサポートされていない場合は、オーディオ信号処理モードを指定せずに出力ストリームが作成されます。

OutStreamVarArguments

出力ストリームの可変引数を提供するために使用される ACXOBJECTBAG オブジェクト。 これは省略可能な設定であり、NULL にすることができます。 ACX オブジェクトの詳細については、「 ACX - ACX オブジェクトの概要」を参照してください。

TargetStreamAttributes

ACXTARGETSTREAM オブジェクト属性を定義するために使用される WDF_OBJECT_ATTRIBUTES 構造体。

注釈

AcxStreamBridge は、回線によって、ストリームの作成、ストリームの状態の遷移、エンドポイントの回線ストリーム セグメント間の DRM 設定を伝達するために使用されます。 このオブジェクトは、マルチ回線 (オーディオ 複合) シナリオでのみ使用されます。

ピンは、0 個、1 つ以上の ACXSTREAMBRIDGEs に関連付けることができます。 ACX は、関連付けられている ACXPIN の信号処理モード リストでストリーム信号処理モードの一致を検索します。 検索は最初の一致で停止します。

ACX は、ACXCIRCUIT から ACXCIRCUIT ブリッジに対して既定の ACXSTREAMBRIDGE を作成します。ドライバーが作成せず、ドライバーが AcxCircuitInitDisableDefaultStreamBridgeHandling 関数を使用して既定のストリーム ブリッジ処理を無効にしなかった場合。

関連付けられている ACXPIN で指定されたオーディオ信号処理モードがサポートされている場合、そのオーディオ信号処理モードの既定のデータ形式が出力ストリームの作成時に使用されます。

関連付けられている ACXPIN で指定されたオーディオ信号処理モードがサポートされていない場合、出力ストリームの作成時に入力ストリームのデータ形式が使用されます。

ACXSTREAMBRIDGE は、先祖として ACXCIRCUIT を持つオブジェクトの親である必要があります。

使用例を次に示します。

        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);

この例では、RAW モードと DEFAULT モードのストリーム BRIDGE を設定する方法を示します。

    //
    // 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 の要件

最小 ACX バージョン: 1.0

ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。

要件

要件
Header acxstreams.h

こちらもご覧ください