87 lines
2.3 KiB
C
87 lines
2.3 KiB
C
|
/**
|
||
|
****************************************************************************************
|
||
|
*
|
||
|
* @file bt_prf_sys.h
|
||
|
*
|
||
|
* @brief Application entry point
|
||
|
*
|
||
|
* Copyright (C) Espressif 2016
|
||
|
* Created by Yulong at 2016/10/12
|
||
|
*
|
||
|
*
|
||
|
****************************************************************************************
|
||
|
*/
|
||
|
|
||
|
#ifndef _PROFILE_SYS_H__
|
||
|
#define _PROFILE_SYS_H__
|
||
|
|
||
|
#include "bt_types.h"
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
PRF_ID_SYS,
|
||
|
PRF_ID_CONN,
|
||
|
PRF_ID_HIDD_LE,
|
||
|
PRF_ID_HIDH_LE,
|
||
|
PRF_ID_DISS_LE,
|
||
|
PRF_ID_DISC_LE,
|
||
|
PRF_ID_AIRSYNC_LE,
|
||
|
PRF_ID_ANCC_LE,
|
||
|
PRF_ID_BUT_LE,
|
||
|
|
||
|
PRF_ID_MAX
|
||
|
};
|
||
|
|
||
|
typedef UINT8 tBT_PRF_SYS_CONN_STATUS;
|
||
|
|
||
|
|
||
|
/* disable function type */
|
||
|
typedef void (tBT_PRF_SYS_DISABLE)(void);
|
||
|
/* event handler function type */
|
||
|
typedef BOOLEAN (tBT_PRF_SYS_EVT_HDLR)(BT_HDR *p_msg);
|
||
|
|
||
|
/* conn callback for role / low power manager*/
|
||
|
typedef void (tBT_PRF_SYS_CONN_CBACK)(tBT_PRF_SYS_CONN_STATUS status,
|
||
|
UINT8 id, UINT8 app_id, BD_ADDR peer_addr);
|
||
|
|
||
|
/* Calculate start of event enumeration; id is top 8 bits of event */
|
||
|
#define BT_PRF_SYS_EVT_START(id) ((id) << 8)
|
||
|
|
||
|
|
||
|
|
||
|
/* registration structure */
|
||
|
typedef struct
|
||
|
{
|
||
|
tBT_PRF_SYS_EVT_HDLR *evt_hdlr;
|
||
|
tBT_PRF_SYS_DISABLE *disable;
|
||
|
} tBT_PRF_SYS_REG;
|
||
|
|
||
|
/* system manager control block */
|
||
|
typedef struct
|
||
|
{
|
||
|
tBT_PRF_SYS_REG *reg[PRF_ID_MAX]; /* registration structures */
|
||
|
BOOLEAN is_reg[PRF_ID_MAX]; /* registration structures */
|
||
|
tBT_PRF_SYS_CONN_CBACK *prm_cb; /* role management callback registered by DM */
|
||
|
tBT_PRF_SYS_CONN_CBACK *ppm_cb; /* low power management callback registered by DM */
|
||
|
tBT_PRF_SYS_CONN_CBACK *p_policy_cb; /* link policy change callback registered by DM */
|
||
|
|
||
|
} tBT_PRF_SYS_CB;
|
||
|
|
||
|
|
||
|
extern tBT_PRF_SYS_CB bt_prf_sys_cb;
|
||
|
|
||
|
|
||
|
extern void bt_prf_sys_init(void);
|
||
|
extern void bt_prf_sys_free(void);
|
||
|
extern void bt_prf_sys_event(BT_HDR *p_msg);
|
||
|
|
||
|
extern void bt_prf_sys_register(UINT8 id, const tBT_PRF_SYS_REG *p_reg);
|
||
|
extern void bt_prf_sys_deregister(UINT8 id);
|
||
|
extern BOOLEAN bt_prf_sys_is_register(UINT8 id);
|
||
|
|
||
|
extern void bt_prf_sys_idle(UINT8 id, UINT8 app_id, BD_ADDR peer_addr);
|
||
|
extern void bt_prf_sys_busy(UINT8 id, UINT8 app_id, BD_ADDR peer_addr);
|
||
|
|
||
|
|
||
|
#endif ///_PROFILE_SYS_H__
|