ハードウェアの接続と起動
XDspConnect または XDspConnectWithMaximumStreamLimit を介して、ハードウェア アクセラレーション ユニットとの接続を確立する必要があります。呼び出し元は、次のパラメーターを使用して接続の要件を設定します。-
baseBuffer - ハードウェアに渡される入力、出力、エンベロープ バッファー、および/またはブロック マルチプライヤー バッファーを保持するのに十分なユーザー割り当てメモリへのポインター。このメモリは、次の属性で XMemAlloc を介して割り当てる必要があります。XALLOC_MEMTYPE_PHYSICAL_CACHEABLE、XALLOC_PAGESIZE_64KB、XALLOC_ALIGNMENT_64K。これらの属性は、以下の例に示すように
MAKE_XALLOC_ATTRIBUTES()を使用して設定する必要があります。このメモリは、XDspDisconnect の呼び出しが成功するまで解放してはなりません。このバッファーのサイズは少なくとも 64KB である必要があります。 - baseBufferLength - baseBuffer の長さ (バイト単位)。このバッファーは少なくとも 64KB で 500 MB 以下である必要があります。
- aggregateImpulseResponseInSeconds - XDspProcessType::Convolution で XDspActivate を使用して同時にアクティブ化されるすべての個別のインパルス応答の全体的な持続時間を表します。この値が 0 の場合、XDspProcessType::Convolution を持つストリームをアクティブ化することはできません。
- handle - この呼び出しによって返されるハンドルを保持する XDspClientHandle へのポインター。
ストリームのアクティブ化と非アクティブ化
デバイスとの接続が確立された後、呼び出し元は、コンボリューション、FFT、または IFFT を起動するためにストリーム アクティブ化コマンドを送信する必要があります。呼び出し元は、XDspActivationParameters で XDspProcessType、ブロック フレーム カウント、チャネル カウント、float 単位のインパルス応答の長さ、および周波数領域のインパルス応答データへのポインターを指定する必要があります。モノラルまたはステレオのストリームのみが許可されます。XDspProcessType::ForwardFourierTransform および XDspProcessType::inverseFourierTransform の場合、XDspActivationParameters::impulseResponse は nullptr で、XDspActivationParameters::impulseResponseLengthInFloats = 0 である必要があります。XDspActivationOptions は適切に設定してください。 コンボリューション用に 1 つのストリームをアクティブ化するコードを以下に示します。- 入力バッファーに正確に blockFrameCount のデータを入れます。
- XDspCommand に適切な値と、16 バイトにアラインされた入力および出力バッファーを入れます。
- XDspSubmitCommand を呼び出して、ハードウェアにコマンドを送信します。この関数は、ハードウェアに送信されたコマンドの数を追跡するために使用できるコマンド シーケンス番号を返します。
