Skip to main content

XDspConnect

Estabelece uma conexão com o servidor de hardware, cria uma instância de cliente XDSP e aloca os recursos necessários para o processamento. Há um limite global de 8 clientes XDSP ativos simultaneamente.

Sintaxe

Parâmetros

baseBuffer   _In_
Tipo: float*
Buffer contíguo alocado por um chamador do XDSP para ser usado para passar dados de entrada e recuperar os dados de saída. Para obter detalhes adicionais, confira a seção Comentários abaixo. baseBufferLength   _In_
Tipo: uint32_t
Comprimento do baseBuffer, em bytes. Esse comprimento deve ser de pelo menos 64 KB e no máximo 500 MB. aggregateImpulseResponseInSeconds   _In_
Tipo: uint32_t
Representa a duração total de todas as respostas ao impulso individuais que serão ativadas simultaneamente nesse cliente. aggregateImpulseResponseInSeconds deve ser definido como um valor maior que zero para XDspProcessType::Convolution; caso contrário, deve ser zero. Há um limite global de 128 segundos de resposta ao impulso agregada em todos os clientes XDSP. handle   _Outptr_
Tipo: XDspClientHandle*
Identificador para um cliente XDSP que deve ser usado para ativar fluxos por meio de XDspActivate e desconectar o cliente do servidor de hardware por meio de XDspDisconnect. No máximo 256 fluxos podem estar ativos a qualquer momento para todos os XDSPClientHandles.

Valor retornado

Tipo: HRESULT Se o método for bem-sucedido, ele retornará S_OK. Se o método falhar, ele retornará um dos seguintes códigos (lista parcial):

Comentários

Se a chamada for bem-sucedida, o baseBuffer poderá ser usado pelo chamador para passar dados de entrada e recuperar os dados de saída do fluxo por meio dos parâmetros de XDspCommand. Se o envelopamento for usado, esse buffer também deverá considerar os buffers para armazenar parâmetros de envelope. Confira Visão geral do envelopamento usando a API do XDSP para obter mais informações sobre envelopamento. Essa função deve ser chamada antes de ativar fluxos XDSP para registrar um grande bloco de memória suficiente para conter vários fluxos de áudio completos para uso como entrada, vários buffers de saída para todos os fluxos XDSP que serão ativados por meio de XDspActivate e vários buffers de multiplicador de bloco que podem ser usados como parte do XDspCommand para o tipo de processamento XDspProcessType::ForwardFourierTransform. Esteja ciente dos requisitos de tamanho mínimo e máximo desse buffer, conforme observado acima. Se essa chamada for bem-sucedida, todos os fluxos XDSP poderão acessar qualquer parte desse bloco de memória. Essa memória deve ser alocada por meio de XMemAlloc() com estes atributos: XALLOC_MEMTYPE_PHYSICAL_CACHEABLE, XALLOC_PAGESIZE_64KB, XALLOC_ALIGNMENT_64K Esses atributos devem ser definidos usando MAKE_XALLOC_ATTRIBUTES(). Um exemplo disso é o seguinte:
allocatorId no exemplo acima deve ser substituído pela ID de alocador correta usada pelo título. Cabe ao chamador particionar e reciclar o baseBuffer para conter diferentes fluxos de entrada e buffers de saída para vários fluxos. A impulseResponse não precisa vir desse baseBuffer e pode vir de qualquer memória alocada pelo chamador. A memória apontada por baseBuffer não deve ser liberada até que XDspConnect seja chamado. Todos os ponteiros de memória passados para a API do XDSP devem estar alinhados em 16 bytes. Se a chamada for bem-sucedida, um XDspClientHandle válido será retornado para ser usado com as chamadas XDspActivate e XDspDisconnect.

Requisitos

Cabeçalho: XDspAudio.h Biblioteca: Chad.lib Plataformas compatíveis: XBOX Series X|S

Documentação conceitual

Confira também

XDSP
XDspConnectWithMaximumStreamLimit
XDspDisconnect
Erros do XDSP
Visão geral de uma convolução de fluxo único usando a API do XDSP
Visão geral de uma FFT/IFFT de fluxo único usando a API do XDSP
Visão geral de uma convolução de fluxo único com envelope usando a API do XDSP
Last modified on October 6, 2026