硬體連線和啟動
必須透過 XDspConnect 與硬體加速單元建立連線。呼叫端會使用下列參數設定連線的需求:-
baseBuffer - 指向使用者配置記憶體的指標,此記憶體必須足以容納將傳遞給硬體的輸入、輸出和/或區塊乘數緩衝區。此記憶體應透過 XMemAlloc 以下列屬性配置:XALLOC_MEMTYPE_PHYSICAL_CACHEABLE、XALLOC_PAGESIZE_64KB、XALLOC_ALIGNMENT_64K。這些屬性應使用
MAKE_XALLOC_ATTRIBUTES()設定,如下列範例所示。在 XDspDisconnect 呼叫成功之前,不應釋放此記憶體。此緩衝區的大小應至少為 64KB。 - baseBufferLength - baseBuffer 的長度 (以位元組為單位)。此緩衝區應至少為 64KB。
- aggregateImpulseResponseInSeconds - 代表將使用 XDspActivate 搭配 XDspProcessType::Convolution 同時啟用的所有個別脈衝回應的總持續時間。如果此值為 0,則無法啟用任何使用 XDspProcessType::Convolution 的串流。
- handle - 指向 XDspClientHandle 的指標,用來保存此呼叫所傳回的控制代碼。
串流的啟用和停用
與裝置建立連線之後,呼叫端應傳送串流啟用命令以進行摺積、FFT 或 IFFT。呼叫端必須在 XDspActivationParameters 中指定 XDspProcessType、區塊框架計數、聲道計數、以浮點數為單位的脈衝回應長度,以及指向頻域中脈衝回應資料的指標。只允許單聲道或立體聲串流。對於 XDspProcessType::ForwardFourierTransform 和 XDspProcessType::inverseFourierTransform,XDspActivationParameters::impulseResponse 應為 nullptr,且 XDspActivationParameters::impulseResponseLengthInFloats = 0。應適當地設定 XDspActivationOptions。 以下是啟用一個正向傅立葉轉換串流的程式碼,反向傅立葉轉換的程式碼也類似。- 以剛好 blockFrameCount 的資料填入輸入緩衝區。
- 以適當的值以及 16 位元組對齊的輸入和輸出緩衝區填入 XDspCommand。
- 呼叫 XDspSubmitCommand 將命令提交至硬體。此函式會傳回命令序號,可用來追蹤傳送至硬體的命令數目。
