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

> ACP_MESSAGE

# ACP\_MESSAGE

Message from the ACP.

## Syntax

```cpp theme={null}
typedef struct ACP_MESSAGE {  
    UINT32 type;  
    UINT32 droppedMessageCount;  
    UINT32 usec;  
    union  
    {  
        ACP_MESSAGE_AUDIO_FRAME_START audioFrameStart;  
        ACP_MESSAGE_FLOWGRAPH_COMPLETED flowgraphCompleted;  
        ACP_MESSAGE_SHAPE_COMMAND_BLOCKED shapeCommandBlocked;  
        ACP_MESSAGE_COMMAND_COMPLETED commandCompleted;  
        ACP_MESSAGE_FLOWGRAPH_TERMINATED flowgraphTerminated;  
        ACP_MESSAGE_ERROR error;  
    };  
} ACP_MESSAGE  
```

### Members

*type*\
Type: UINT32

Message type; see [ACP\_MESSAGE\_TYPE](/reference/audio/acphal/enums/acp_message_type).

*droppedMessageCount*\
Type: UINT32

Count of messages dropped prior to this message.

*usec*\
Type: UINT32

The time this message was constructed.

*audioFrameStart*\
Type: [ACP\_MESSAGE\_AUDIO\_FRAME\_START](/reference/audio/acphal/structs/acp_message_audio_frame_start)

An [ACP\_MESSAGE\_AUDIO\_FRAME\_START](/reference/audio/acphal/structs/acp_message_audio_frame_start) message.

*flowgraphCompleted*\
Type: [ACP\_MESSAGE\_FLOWGRAPH\_COMPLETED](/reference/audio/acphal/structs/acp_message_flowgraph_completed)

An [ACP\_MESSAGE\_FLOWGRAPH\_COMPLETED](/reference/audio/acphal/structs/acp_message_flowgraph_completed) message.

*shapeCommandBlocked*\
Type: [ACP\_MESSAGE\_SHAPE\_COMMAND\_BLOCKED](/reference/audio/acphal/structs/acp_message_shape_command_blocked)

An [ACP\_MESSAGE\_SHAPE\_COMMAND\_BLOCKED](/reference/audio/acphal/structs/acp_message_shape_command_blocked) message.

*commandCompleted*\
Type: [ACP\_MESSAGE\_COMMAND\_COMPLETED](/reference/audio/acphal/structs/acp_message_command_completed)

An [ACP\_MESSAGE\_COMMAND\_COMPLETED](/reference/audio/acphal/structs/acp_message_command_completed) message.

*flowgraphTerminated*\
Type: [ACP\_MESSAGE\_FLOWGRAPH\_TERMINATED](/reference/audio/acphal/structs/acp_message_flowgraph_terminated)

An [ACP\_MESSAGE\_FLOWGRAPH\_TERMINATED](/reference/audio/acphal/structs/acp_message_flowgraph_terminated) message.

*error*\
Type: [ACP\_MESSAGE\_ERROR](/reference/audio/acphal/structs/acp_message_error)

An [ACP\_MESSAGE\_ERROR](/reference/audio/acphal/structs/acp_message_error) message.

## Remarks

To determine the type of the message, examine the *type* member.

To determine the number of messages in the message queue, use the [GetNumMessages](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_getnummessages) method. To obtain the oldest message from the queue, use the [PopMessage](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_popmessage) method.

## Requirements

**Header:** acphal.h

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

## See also

[ACP\_MESSAGE\_TYPE](/reference/audio/acphal/enums/acp_message_type)\
[GetNumMessages](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_getnummessages)\
[PopMessage](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_popmessage)\
[AcpHal](/reference/audio/acphal/acphal_members)


## Related topics

- [ACP_MESSAGE_TYPE](/reference/audio/acphal/enums/acp_message_type.md)
- [IAcpHal::PopMessage](/reference/audio/acphal/interfaces/IAcpHal/methods/iacphal_popmessage.md)
- [Overview of SHAPE](/build/console-features/audio/overviews/shape-overview.md)
- [SHAPE audio flowgraph construction best practices](/build/console-features/audio/overviews/best-practices-audio-flowgraph-construction.md)
- [AcpHal](/reference/audio/acphal/acphal_members.md)
