#ifndef _AEM_APP_BT_EVENT_H_
#define _AEM_APP_BT_EVENT_H_
#include <stdint.h>

typedef enum
{
    AEM_BT_CONNECTION_EVENT = 2,
    AEM_BT_DISCONNECTION_EVENT,
    AEM_BT_A2DP_CONNECTION_EVENT = 4,
    AEM_BT_A2DP_DISCONNECTION_EVENT,
    AEM_BT_A2DP_STREAM_START_EVENT,
    AEM_BT_A2DP_STREAM_SUSPEND_EVENT,
    AEM_BT_A2DP_STREAM_DATA_IND_EVENT,
    AEM_BT_HFP_CONNECTION_EVENT = 10,
    AEM_BT_HFP_DISCONNECTION_EVENT,
    AEM_BT_HFP_ESCO_ESTABLISHED_EVENT = 13,
    AEM_BT_HFP_ESCO_RELEASED_EVENT,
    AEM_BT_HFP_ACTIVEDEV_CHANGE_EVENT,
    AEM_BT_HFP_CALL_RING_STATR_EVENT,
    AEM_BT_HFP_CALL_CCWA_EVENT,
    AEM_BT_HFP_CALL_RING_STOP_EVENT,
    AEM_BT_HFP_CALL_OUTGOING,
    AEM_BT_HFP_CALL_INCOMING,
    AEM_BT_HFP_CALL_ONGOING,
    AEM_BT_HFP_CALL_SIRI_MODE,
    AEM_BT_HFP_CALL_HUNGUP,
    AEM_BT_HFP_SIRI_START,
    AEM_BT_HFP_SIRI_STOP,
    AEM_BT_HFP_CALL_STATE_START,
    AEM_BT_HFP_CALL_STATE_EXIT,
    AEM_BT_HFP_CALL_CLCC_INFO,
    AEM_BT_AVRCP_CONNECTION_EVENT,
    AEM_BT_AVRCP_DISCONNECTION_EVENT,
    AEM_BT_AVRCP_PLAYBACK_STATUS_CHANGED_EVENT,
    AEM_BT_AVRCP_TRACK_CHANGED_EVENT,
    AEM_BT_AVRCP_UPDATE_ID3_INFO_EVENT,
    AEM_BT_AVRCP_UPDATE_PLAYBACK_POS,
    AEM_BT_HID_CONNECTION_EVENT,
    AEM_BT_HID_DISCONNECTION_EVENT,
    AEM_BT_HID_ACTIVEDEV_CHANGE_EVENT,
    AEM_BT_MAP_SET_TIME_EVENT,
    AEM_BT_RMT_VOL_SYNC_EVENT,
    AEM_BT_TWS_CONNECTION_EVENT,
    AEM_BT_TWS_DISCONNECTION_EVENT,
    AEM_BT_TWS_CHANNEL_MODE_SWITCH,
    AEM_BT_REQ_RESTART_PLAY,
    AEM_BT_ANCS_INCOMMING_CALL_EVENT,
    AEM_BT_TWS_START_PLAY = 0xE0,
    AEM_BT_TWS_STOP_PLAY = 0xE1,
    // #ifdef CONFIG_AEM_BT_A2DP_TRS
    AEM_BT_TRS_A2DP_STREAM_READY_EVENT,
    AEM_BT_TRS_A2DP_STREAM_START_EVENT,
    AEM_BT_TRS_A2DP_STREAM_SUSPEND_EVENT,
    AEM_BT_TRS_INQUIRY_START_EVENT,
    AEM_BT_TRS_INQUIRY_RESTART_EVENT,
    AEM_BT_TRS_INQUIRY_STOP_EVENT,
    AEM_BT_TRS_AVRCP_PLAY_EVENT,
    AEM_BT_TRS_AVRCP_PAUSE_EVENT,
    AEM_BT_TRS_AVRCP_FORWARD_EVENT,
    AEM_BT_TRS_AVRCP_BACKWARD_EVENT,
    AEM_BT_TRS_A2DP_STREAM_CLOSE_EVENT,
    // #endif
} aem_bt_evt_type_e;

typedef enum
{
    AEM_BT_STATUS_HFP_NONE = 0x0000,
    AEM_BT_STATUS_INCOMING = 0x0001,
    AEM_BT_STATUS_OUTGOING = 0x0002,
    AEM_BT_STATUS_ONGOING = 0x0004,
    AEM_BT_STATUS_MULTIPARTY = 0x0008,
    AEM_BT_STATUS_SIRI = 0x0010,
    AEM_BT_STATUS_3WAYIN = 0x0020,
} aem_bt_hfp_status_e;

typedef enum
{
    // bt call key message
    AEM_BT_CALL_SWITCH_CALLOUT,
    AEM_BT_CALL_SWITCH_MICMUTE,
    AEM_BT_HOLD_CURR_ANSWER_ANOTHER,
    AEM_BT_HANGUP_ANOTHER,
    AEM_BT_HANGUP_CURR_ANSER_ANOTHER,
    AEM_BT_HANGUP_CALL,
    AEM_BT_ACCEPT_CALL,
    AEM_BT_REJECT_CALL,
    AEM_BT_CALL_NUMBER,
    AEM_BT_SIRI_START,
    AEM_BT_SIRI_STOP,
    AEM_BT_CAMERA,
    AEM_BT_HID_START,
} aem_bt_call_key_e;

typedef enum
{
    /**  Disconnect all device */
    AEM_BT_DISCONNECT_ALL_MODE,
    /** Just disconnect all phone */
    AEM_BT_DISCONNECT_PHONE_MODE,
    /** Just disconnect tws */
    AEM_BT_DISCONNECT_TWS_MODE,
    /** Just disconnect trs */
    AEM_BT_DISCONNECT_TRS_MODE,
} aem_bt_disconnect_mode_e;

#endif