> ## 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.

# ACP_COMMAND_UPDATE_ALL_CONTEXTS

> ACP_COMMAND_UPDATE_ALL_CONTEXTS

# ACP\_COMMAND\_UPDATE\_ALL\_CONTEXTS

Command for updating arrays of all Scalable Hardware Audio Processing Engine (SHAPE) context types.

## Syntax

```cpp theme={null}
typedef struct ACP_COMMAND_UPDATE_ALL_CONTEXTS {  
    UINT32 srcEntryCount;  
    UINT32 eqCompEntryCount;  
    UINT32 filtVolEntryCount;  
    UINT32 dmaReadEntryCount;  
    UINT32 dmaWriteEntryCount;  
    UINT32 pcmEntryCount;  
    UINT32 xmaEntryCount;  
    APU_ADDRESS srcEntries;  
    APU_ADDRESS eqCompEntries;  
    APU_ADDRESS filtVolEntries;  
    APU_ADDRESS dmaReadEntries;  
    APU_ADDRESS dmaWriteEntries;  
    APU_ADDRESS pcmEntries;  
    APU_ADDRESS xmaEntries;  
    UINT32 srcIndexCount;  
    UINT32 eqCompIndexCount;  
    UINT32 filtVolIndexCount;  
    UINT32 dmaReadIndexCount;  
    UINT32 dmaWriteIndexCount;  
    UINT32 pcmIndexCount;  
    UINT32 xmaIndexCount;  
    APU_ADDRESS srcIndices;  
    APU_ADDRESS eqCompIndices;  
    APU_ADDRESS filtVolIndices;  
    APU_ADDRESS dmaReadIndices;  
    APU_ADDRESS dmaWriteIndices;  
    APU_ADDRESS pcmIndices;  
    APU_ADDRESS xmaIndices;  
} ACP_COMMAND_UPDATE_ALL_CONTEXTS  
```

### Members

*srcEntryCount*\
Type: UINT32

Count of Sample Rate Convertor (SRC) entries.

*eqCompEntryCount*\
Type: UINT32

Count of EQ/Comp entries.

*filtVolEntryCount*\
Type: UINT32

Count of Filter/Volume entries.

*dmaReadEntryCount*\
Type: UINT32

Count of Direct Memory Access (DMA) entries that read from a mix buffer.

*dmaWriteEntryCount*\
Type: UINT32

Count of DMA entries that write to a mix buffer.

*pcmEntryCount*\
Type: UINT32

Count of pulse-code modulation (PCM) entries.

*xmaEntryCount*\
Type: UINT32

Count of XBOX Media Audio (XMA) entries.

*srcEntries*\
Type: APU\_ADDRESS

Pointer to an array of SRC entries.

*eqCompEntries*\
Type: APU\_ADDRESS

Pointer to an array of EQ/Comp entries.

*filtVolEntries*\
Type: APU\_ADDRESS

Pointer to an array of Filter/Volume entries.

*dmaReadEntries*\
Type: APU\_ADDRESS

Pointer to an array of DMA entries that read from a mix buffer.

*dmaWriteEntries*\
Type: APU\_ADDRESS

Pointer to an array of DMA entries that write to a mix buffer.

*pcmEntries*\
Type: APU\_ADDRESS

Pointer to an array of PCM entries.

*xmaEntries*\
Type: APU\_ADDRESS

Pointer to an array of XMA entries.

*srcIndexCount*\
Type: UINT32

Count of SRC indices.

*eqCompIndexCount*\
Type: UINT32

Count of EQ/Comp indices.

*filtVolIndexCount*\
Type: UINT32

Count of Filter/Volume indices.

*dmaReadIndexCount*\
Type: UINT32

Count of DMA indices that read from a mix buffer.

*dmaWriteIndexCount*\
Type: UINT32

Count of DMA indices that write to a mix buffer.

*pcmIndexCount*\
Type: UINT32

Count of PCM indices.

*xmaIndexCount*\
Type: UINT32

Count of XMA indices.

*srcIndices*\
Type: APU\_ADDRESS

Array of unsigned 16-bit indices into SRC entries.

*eqCompIndices*\
Type: APU\_ADDRESS

Array of unsigned 16-bit indices into EQ/Comp entries.

*filtVolIndices*\
Type: APU\_ADDRESS

Array of unsigned 16-bit indices into Filter/Volume entries.

*dmaReadIndices*\
Type: APU\_ADDRESS

Array of unsigned 16-bit indices into DMA read entries.

*dmaWriteIndices*\
Type: APU\_ADDRESS

Array of unsigned 16-bit indices into DMA write entries.

*pcmIndices*\
Type: APU\_ADDRESS

Array of unsigned 16-bit indices into PCM entries.

*xmaIndices*\
Type: APU\_ADDRESS

Array of unsigned 16-bit indices into XMA entries.

## Remarks

There are two methods of performing block updates.

In the direct method, the *\*EntryCount* and *\*Entries* members are used and the index members are ignored. The block update behaves as follows.

```cpp theme={null}
    for(i = 0; i < entryCount; ++i)
    {
        UpdateContext(entries[i]);
    } 
```

In the indirect method, the *\*IndexCount* and *\*Indices* members are used and the entry members are ignored. The block update behaves as follows.

```cpp theme={null}
    for(int i = 0; i < indexCount; ++i)
    {
        UpdateContext(entries[indices[i] ]);
    }  
```

To update a single context, use the [ACP\_COMMAND\_UPDATE\_CONTEXTS](/reference/audio/acphal/structs/acp_command_update_contexts) structure.

## Requirements

**Header:** acphal.h

**Supported platforms:** XBOX One family consoles and XBOX Series consoles

## See also

[SubmitCommand](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_submitcommand)\
[AcpHal](/reference/audio/acphal/acphal_members)
