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

> ACP_COMMAND_UPDATE_EQCOMP_CONTEXT_ENTRY

# ACP\_COMMAND\_UPDATE\_EQCOMP\_CONTEXT\_ENTRY

`SHAPE_EQCOMP_CONTEXT`를 업데이트하기 위한 항목입니다.

## 구문

```cpp theme={null}
typedef struct ACP_COMMAND_UPDATE_EQCOMP_CONTEXT_ENTRY {  
    UINT32 contextIndex;  
    UINT32 eqAB0Target : 24;  
    UINT32 eqAB1Target_L : 8;  
    UINT32 eqAB1Target_H : 16;  
    UINT32 eqAB2Target_L : 16;  
    UINT32 eqAB2Target_H : 8;  
    UINT32 eqAA1Target : 24;  
    UINT32 eqAA2Target : 24;  
    UINT32 eqBB0Target_L : 8;  
    UINT32 eqBB0Target_H : 16;  
    UINT32 eqBB1Target_L : 16;  
    UINT32 eqBB1Target_H : 8;  
    UINT32 eqBB2Target : 24;  
    UINT32 eqBA1Target : 24;  
    UINT32 eqBA2Target_L : 8;  
    UINT32 eqBA2Target_H : 16;  
    UINT32 eqCB0Target_L : 16;  
    UINT32 eqCB0Target_H : 8;  
    UINT32 eqCB1Target : 24;  
    UINT32 eqCB2Target : 24;  
    UINT32 eqCA1Target_L : 8;  
    UINT32 eqCA1Target_H : 16;  
    UINT32 eqCA2Target_L : 16;  
    UINT32 eqCA2Target_H : 8;  
    UINT32 reserved : 24;  
    UINT32 compGainTarget;  
} ACP_COMMAND_UPDATE_EQCOMP_CONTEXT_ENTRY  
```

### 멤버

*contextIndex*\
형식: UINT32

0에서 `ACP_MAX_NUM_EQCOMP_CONTEXTS` 범위의 인덱스입니다.

*eqAB0Target*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqAB0Target`의 기존 값을 대체합니다.

*eqAB1Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqAB1Target_L`의 기존 값을 대체합니다.

*eqAB1Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqAB1Target_H`의 기존 값을 대체합니다.

*eqAB2Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqAB2Target_L`의 기존 값을 대체합니다.

*eqAB2Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqAB2Target_H`의 기존 값을 대체합니다.

*eqAA1Target*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqAA1Target`의 기존 값을 대체합니다.

*eqAA2Target*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqAA2Target`의 기존 값을 대체합니다.

*eqBB0Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBB0Target_L`의 기존 값을 대체합니다.

*eqBB0Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBB0Target_H`의 기존 값을 대체합니다.

*eqBB1Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBB1Target_L`의 기존 값을 대체합니다.

*eqBB1Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBB1Target_H`의 기존 값을 대체합니다.

*eqBB2Target*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBB2Target`의 기존 값을 대체합니다.

*eqBA1Target*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBA1Target`의 기존 값을 대체합니다.

*eqBA2Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBA2Target_L`의 기존 값을 대체합니다.

*eqBA2Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqBA2Target_H`의 기존 값을 대체합니다.

*eqCB0Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCB0Target_L`의 기존 값을 대체합니다.

*eqCB0Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCB0Target_H`의 기존 값을 대체합니다.

*eqCB1Target*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCB1Target`의 기존 값을 대체합니다.

*eqCB2Target*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCB2Target`의 기존 값을 대체합니다.

*eqCA1Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCA1Target_L`의 기존 값을 대체합니다.

*eqCA1Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCA1Target_H`의 기존 값을 대체합니다.

*eqCA2Target\_L*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCA2Target_L`의 기존 값을 대체합니다.

*eqCA2Target\_H*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::eqCA2Target_H`의 기존 값을 대체합니다.

*Reserved*\
형식: UINT32

예약됨

*compGainTarget*\
형식: UINT32

`SHAPE_EQCOMP_CONTEXT::compGainTarget`의 기존 값을 대체합니다.

## 설명

이 구조체는 단일 EQ/Comp 컨텍스트를 업데이트하기 위해 `ACP_COMMAND_UPDATE_CONTEXTS` 및 `ACP_COMMAND_UPDATE_ALL_CONTEXTS` 명령에서 사용됩니다. 오디오 프레임당 적은 수의 컨텍스트만 업데이트하기 위해 이 명령을 사용합니다. 많은 수의 컨텍스트를 업데이트하는 것은 효율적이지 않습니다. 자세한 내용은 [ACP 개요의 오디오 렌더링 섹션](/build/console-features/audio/overviews/acp-overview#ID4E6C)을 참조하세요.

이 구조체에는 인라인 메서드도 포함되어 있습니다.

```cpp theme={null}
inline void SetRawFilterATargetCoefficients(INT32 a1, INT32 a2, INT32 b0, INT32 b1, INT32 b2)
{
    eqAA1Target   = ShapeSignedToU24(a1);
    eqAA2Target   = ShapeSignedToU24(a2);
    eqAB0Target   = ShapeSignedToU24(b0);
    eqAB1Target_L = ShapeSignedToLowU8(b1);
    eqAB1Target_H = ShapeSignedToHighU16(b1);
    eqAB2Target_L = ShapeSignedToLowU16(b2);
    eqAB2Target_H = ShapeSignedToHighU8(b2);
}

inline void SetRawFilterBTargetCoefficients(INT32 a1, INT32 a2, INT32 b0, INT32 b1, INT32 b2)
{
    eqBA1Target   = ShapeSignedToU24(a1);
    eqBA2Target_L = ShapeSignedToLowU8(a2);
    eqBA2Target_H = ShapeSignedToHighU16(a2);
    eqBB0Target_L = ShapeSignedToLowU8(b0);
    eqBB0Target_H = ShapeSignedToHighU16(b0);
    eqBB1Target_L = ShapeSignedToLowU16(b1);
    eqBB1Target_H = ShapeSignedToHighU8(b1);
    eqBB2Target   = ShapeSignedToU24(b2);
}

inline void SetRawFilterCTargetCoefficients(INT32 a1, INT32 a2, INT32 b0, INT32 b1, INT32 b2)
{
    eqCA1Target_L = ShapeSignedToLowU8(a1);
    eqCA1Target_H = ShapeSignedToHighU16(a1);
    eqCA2Target_L = ShapeSignedToLowU16(a2);
    eqCA2Target_H = ShapeSignedToHighU8(a2);
    eqCB0Target_L = ShapeSignedToLowU16(b0);
    eqCB0Target_H = ShapeSignedToHighU8(b0);
    eqCB1Target   = ShapeSignedToU24(b1);
    eqCB2Target   = ShapeSignedToU24(b2);
};

inline void SetGainTarget(float gainTarget) // Gain target (amplitude, not dB)
{
    compGainTarget = ShapeUnsignedToU16((UINT32)(gainTarget * SHAPE_Q13));
}  
```

## 요구 사항

**헤더:** acphal.h

**지원 플랫폼:** XBOX One 제품군 콘솔 및 XBOX Series 콘솔

## 관련 항목

[ACP\_COMMAND\_TYPE](/reference/audio/acphal/enums/acp_command_type)\
[SubmitCommand](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_submitcommand)\
[AcpHal](/reference/audio/acphal/acphal_members)


## Related topics

- [AcpHal](/ko/reference/audio/acphal/acphal_members.md)
- [ACP_COMMAND_UPDATE_CONTEXTS](/ko/reference/audio/acphal/structs/acp_command_update_contexts.md)
- [ACP_COMMAND_UPDATE_EQCOMP_CONTEXT](/ko/reference/audio/acphal/structs/acp_command_update_eqcomp_context.md)
- [ACP_COMMAND_UPDATE_ALL_CONTEXTS](/ko/reference/audio/acphal/structs/acp_command_update_all_contexts.md)
- [ACP_COMMAND_UPDATE_FILTVOL_CONTEXT_ENTRY](/ko/reference/audio/acphal/structs/acp_command_update_filtvol_context_entry.md)
