SetShapeDmaChannel
Define o canal atual.Sintaxe
Parâmetros
context _Inout_Tipo: SHAPE_DMA_CONTEXT* Ponteiro para uma estrutura SHAPE_DMA_CONTEXT. channel
Tipo: UINT32 O número de um canal no buffer de áudio.
Valor retornado
Tipo: HRESULT Código de êxito ou de erro HRESULT.Comentários
Os números de canal são baseados em zero. O sistema de Direct Memory Access (DMA) oferece suporte à funcionalidade de leitura e gravação com conversão automática de float para inteiro e de inteiro para float. O sistema de DMA usa buffers circulares que contêm amostras desintercaladas em blocos de 128 amostras. O processador de DMA permite que o Scalable Hardware Audio Processing Engine (SHAPE) envie dados dos buffers de mixagem para a memória principal do sistema e recupere dados do sistema principal para os buffers de mixagem para processamento adicional. O DMA é feito por bloco, transferindo um quadro de áudio de dados por vez. Para facilitar dados intercalados em blocos, um valor de salto especifica o número de blocos de quadros de áudio na memória do sistema a serem ignorados (a partir do endereço base) ao ler ou gravar amostras. Portanto, fluxos multicanal exigem um contexto de DMA por canal. As amostras de dados de áudio são sempre lidas e gravadas como valores de 32 bits, inteiros ou float, conforme especificado no sinalizadorfloatConvert da estrutura SHAPE_DMA_CONTEXT. Observe que a direção do DMA (leitura ou gravação) é especificada no comando de DMA, não no contexto de DMA. Isso ajuda a reduzir a quantidade de largura de banda de dados. O mecanismo de DMA não faz processamento de sinal, mas pode realizar conversão de float para inteiro (ou de inteiro para float). Isso permite que a CPU do aplicativo processe amostras de dados em formato de ponto flutuante.
Para calcular o tamanho de um buffer de DMA, use a seguinte fórmula:
Requisitos
Cabeçalho: shapedmacontext.h Plataformas compatíveis: consoles da família XBOX One e consoles XBOX SeriesConfira também
Visão geral do SHAPEShapeDmaContext
