Skip to main content

XDspConnectWithMaximumStreamLimit

ハードウェア サーバーとの接続を確立し、XDSP クライアント インスタンスを作成し、処理に必要なリソースを割り当てます。これは XDspConnect API と似ていますが、API で使用されるメモリ全体を削減するために、追加の 2 つのパラメーター maximumStreamCount と maximumChannelCount を受け取る点が異なります。同時にアクティブな XDSP クライアントはグローバルに 8 個までに制限されています。

構文

パラメーター

baseBuffer   _In_
型: float*
入力データを渡し、出力データを取得するために XDSP 呼び出し元によって割り当てられる連続バッファー。詳細については、以下の 解説 セクションを参照してください。 baseBufferLength   _In_
型: uint32_t
baseBuffer の長さ (バイト単位)。この長さは 64 KB 以上、500 MB 以下でなければなりません。 aggregateImpulseResponseInSeconds   _In_
型: uint32_t
このクライアントで同時にアクティブ化されるすべての個別のインパルス応答の合計時間を表します。aggregateImpulseResponseInSeconds は、XDspProcessType::Convolution の場合は 0 より大きい値に設定する必要があり、それ以外の場合は 0 でなければなりません。すべての XDSP クライアントにわたる集約インパルス応答は、グローバルに 128 秒に制限されています。 maximumStreamCount   _In_
型: uint32_t
この XDspClientHandle について、任意の時点でアクティブにできるストリームの最大数。この数は 256 を超えることはできません。この数を超えると、XDspActivate は XDSP_E_NO_DEVICE_RESOURCES を返します。 maximumChannelCount   _In_
型: uint32_t
これは 1 (モノラル ストリームの場合) または 2 (ステレオ ストリームの場合) のいずれかにできます。それ以外の値が使用された場合、この API は E_INVALIDARG を返します。 handle   _Outptr_
型: XDspClientHandle*
XDspActivate を介してストリームをアクティブ化し、XDspDisconnect を介してハードウェア サーバーからクライアントを切断するために使用する XDSP クライアントへのハンドル。

戻り値

型: HRESULT メソッドが成功した場合は S_OK を返します。失敗した場合は次のコードのいずれかを返します (一部の一覧):

解説

呼び出しが成功すると、呼び出し元は XDspCommand パラメーターを介して、ストリームの入力データを渡し、出力データを取得するために baseBuffer を使用できます。エンベロープを使用する場合、このバッファーはエンベロープ パラメーターを保存するためのバッファーも考慮する必要があります。エンベロープの詳細については、XDSP API を使用したエンベロープの概要を参照してください。 この関数は、XDSP ストリームをアクティブ化する前に呼び出し、入力として使用する複数の完全なオーディオ ストリームを保持するのに十分な 1 つの大きなメモリ チャンク、XDspActivate を介してアクティブ化されるすべての XDSP ストリームに対する複数の出力バッファー、および XDspProcessType::ForwardFourierTransform 処理タイプの XDspCommand の一部として使用される場合がある複数のブロック乗数バッファーを登録する必要があります。上記のこのバッファーの最小および最大サイズ要件に注意してください。この呼び出しが成功した場合、すべての XDSP ストリームはこのメモリ チャンクの任意の部分にアクセスできます。 このメモリは、次の属性を使用して XMemAlloc() で割り当てる必要があります: XALLOC_MEMTYPE_PHYSICAL_CACHEABLEXALLOC_PAGESIZE_64KBXALLOC_ALIGNMENT_64K これらの属性は、MAKE_XALLOC_ATTRIBUTES() を使用して設定する必要があります。 これの例は次のとおりです:
上記の例における allocatorId は、タイトルで使用する正しいアロケーター ID に置き換える必要があります。 複数のストリームに対する異なる入力ストリームと出力バッファーを保持するために baseBuffer を分割してリサイクルするのは、呼び出し元の責任です。impulseResponse はこの baseBuffer からのものである必要はなく、呼び出し元が割り当てた任意のメモリからのものにできます。 baseBuffer が指すメモリは、XDspConnect が呼び出されるまで解放しないでください。 XDSP API に渡されるすべてのメモリ ポインターは 16 バイト境界に整列している必要があります。 呼び出しが成功すると、XDspActivate および XDspDisconnect の呼び出しで使用する有効な XDspClientHandle が返されます。

要件

ヘッダー: XDspAudio.h ライブラリ: Chad.lib サポートされるプラットフォーム: XBOX Series X|S

概念ドキュメント

関連項目

XDSP
XDSPConnect
XDspDisconnect
XDSP エラー
XDSP API を使用した単一ストリーム畳み込みの概要
XDSP API を使用した単一ストリーム FFT/IFFT の概要
XDSP API を使用したエンベロープ付き単一ストリーム畳み込みの概要
最終更新日 2026年8月24日