> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SetShapeDmaCommand

> SetShapeDmaCommand

# SetShapeDmaCommand

Inicializa um comando DMA do SHAPE.

## Sintaxe

```cpp theme={null}
HRESULT SetShapeDmaCommand(  
         SHAPE_FLOWGRAPH_COMMAND* command,  
         UINT32 contextId,  
         UINT32 mixBuffer,  
         bool writeToMixBuffer  
)  
```

### Parâmetros

*command*   \_Inout\_\
Tipo: SHAPE\_FLOWGRAPH\_COMMAND\*

O comando [SHAPE\_FLOWGRAPH\_COMMAND](/pt-BR/reference/audio/shapeflowgraph/structs/shape_flowgraph_command) a ser inicializado.

*contextId*   \
Tipo: UINT32

ID do contexto DMA (ou seja, o índice) que esse comando referenciará.

*mixBuffer*   \
Tipo: UINT32

O buffer de mixagem do qual ler ou no qual gravar, dependendo da configuração do sinalizador *writeToMemory*.

*writeToMixBuffer*   \
Tipo: bool

True se o comando DMA deve gravar no buffer de mixagem especificado e ler da memória principal. False se o comando DMA deve ler do buffer de mixagem especificado e gravar na memória principal.

### Valor retornado

Tipo: HRESULT

Se a função for bem-sucedida, ela retornará `S_OK`. Se um ou mais argumentos forem inválidos, a função retornará `E_INVALIDARG`.

## Comentários

O sistema DMA (Direct Memory Access) dá suporte à funcionalidade de leitura e gravação com conversão automática de float para inteiro e de inteiro para float. O sistema DMA usa buffers circulares contendo amostras desintercaladas em blocos de 128 amostras.

O processador DMA permite que o SHAPE (Scalable Hardware Audio Processing Engine) envie dados dos buffers de mixagem para a memória principal do sistema e recupere dados da memória principal do sistema para os buffers de mixagem para processamento adicional. O DMA é feito por bloco, transferindo um quadro de áudio de dados por vez. Para habilitar dados intercalados por bloco, um valor de salto especifica o número de blocos de quadros de áudio na memória do sistema a serem pulados a partir do endereço base ao ler ou gravar amostras. Fluxos multicanal exigem um contexto 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 sinalizador `floatConvert` do contexto DMA.

<Note>a direção do DMA (leitura ou gravação) é especificada no comando DMA, não no contexto DMA. Isso ajuda a reduzir a quantidade de largura de banda de dados. O mecanismo 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.</Note>

## Requisitos

**Cabeçalho:** shapeflowgraph.h

**Plataformas com suporte:** consoles da família XBOX One e consoles XBOX Series

## Confira também

[Visão geral do ACP](/pt-BR/build/console-features/audio/overviews/acp-overview)

[Visão geral do SHAPE](/pt-BR/build/console-features/audio/overviews/shape-overview)

[shapeflowgraph](/pt-BR/reference/audio/shapeflowgraph/shapeflowgraph_members)


## Related topics

- [ShapeFlowGraph](/pt-BR/reference/audio/shapeflowgraph/shapeflowgraph_members.md)
- [SHAPE_FLOWGRAPH_DMA_COMMAND](/pt-BR/reference/audio/shapeflowgraph/structs/shape_flowgraph_dma_command.md)
- [SetShapeDmaChannel](/pt-BR/reference/audio/shapedmacontext/functions/setshapedmachannel.md)
- [SetShapeDmaAudioBuffer](/pt-BR/reference/audio/shapedmacontext/functions/setshapedmaaudiobuffer_2.md)
- [SetShapeDmaBufferFull](/pt-BR/reference/audio/shapedmacontext/functions/setshapedmabufferfull.md)
