> ## 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](/ja-jp/reference/audio/acphal/acphal_members.md)
- [ACP_COMMAND_UPDATE_EQCOMP_CONTEXT](/ja-jp/reference/audio/acphal/structs/acp_command_update_eqcomp_context.md)
- [ACP_COMMAND_UPDATE_CONTEXTS](/ja-jp/reference/audio/acphal/structs/acp_command_update_contexts.md)
- [ACP_COMMAND_UPDATE_ALL_CONTEXTS](/ja-jp/reference/audio/acphal/structs/acp_command_update_all_contexts.md)
- [ACP_COMMAND_UPDATE_FILTVOL_CONTEXT_ENTRY](/ja-jp/reference/audio/acphal/structs/acp_command_update_filtvol_context_entry.md)
