26#define BTIF_HL_DATA_TYPE_NONE 0x0000
27#define BTIF_HL_DATA_TYPE_PULSE_OXIMETER 0x1004
28#define BTIF_HL_DATA_TYPE_BLOOD_PRESSURE_MON 0x1007
29#define BTIF_HL_DATA_TYPE_BODY_THERMOMETER 0x1008
30#define BTIF_HL_DATA_TYPE_BODY_WEIGHT_SCALE 0x100F
31#define BTIF_HL_DATA_TYPE_GLUCOSE_METER 0x1011
32#define BTIF_HL_DATA_TYPE_STEP_COUNTER 0x1068
34#define BTIF_HL_CCH_NUM_FILTER_ELEMS 3
35#define BTIF_HL_APPLICATION_NAME_LEN 512
37#define BTIF_HL_NV_MAX_APPS 16
46 BTIF_HL_SOC_STATE_IDLE,
47 BTIF_HL_SOC_STATE_W4_ADD,
48 BTIF_HL_SOC_STATE_W4_CONN,
49 BTIF_HL_SOC_STATE_W4_READ,
50 BTIF_HL_SOC_STATE_W4_REL
55 BTIF_HL_STATE_DISABLED,
56 BTIF_HL_STATE_DISABLING,
57 BTIF_HL_STATE_ENABLED,
58 BTIF_HL_STATE_ENABLING,
64 BTIF_HL_CCH_OP_MDEP_FILTERING,
65 BTIF_HL_CCH_OP_MATCHED_CTRL_PSM,
66 BTIF_HL_CCH_OP_DCH_OPEN,
67 BTIF_HL_CCH_OP_DCH_RECONNECT,
68 BTIF_HL_CCH_OP_DCH_ECHO_TEST
73 BTIF_HL_PEND_DCH_OP_NONE,
74 BTIF_HL_PEND_DCH_OP_DELETE_MDL,
75 BTIF_HL_PEND_DCH_OP_OPEN,
76 BTIF_HL_PEND_DCH_OP_RECONNECT
77} btif_hl_pend_dch_op_t;
87 BTIF_HL_CHAN_CB_STATE_NONE,
88 BTIF_HL_CHAN_CB_STATE_CONNECTING_PENDING,
89 BTIF_HL_CHAN_CB_STATE_CONNECTED_PENDING,
91 BTIF_HL_CHAN_CB_STATE_DISCONNECTING_PENDING,
92 BTIF_HL_CHAN_CB_STATE_DISCONNECTED_PENDING,
93 BTIF_HL_CHAN_CB_STATE_DESTROYED_PENDING,
94} btif_hl_chan_cb_state_t;
98 BTIF_HL_SEND_CONNECTED_CB,
99 BTIF_HL_SEND_DISCONNECTED_CB,
109 tBTA_HL_MDEP_ID peer_mdep_id;
126 tBTA_HL_DCH_CFG channel_type[BTA_HL_NUM_MDEPS];
127 char srv_name[BTA_SERVICE_NAME_LEN +1];
128 char srv_desp[BTA_SERVICE_DESP_LEN +1];
129 char provider_name[BTA_PROVIDER_NAME_LEN +1];
130 char application_name[BTIF_HL_APPLICATION_NAME_LEN +1];
169 btif_hl_soc_state_t state;
175 UINT16 max_tx_apdu_size;
176 UINT16 max_rx_apdu_size;
182 tBTA_HL_MDEP_ROLE peer_mdep_role;
195 tBTA_HL_MDL_HANDLE mdl_handle;
196 btif_hl_dch_op_t dch_oper;
197 tBTA_HL_MDEP_ID local_mdep_id;
198 UINT8 local_mdep_cfg_idx;
199 tBTA_HL_DCH_CFG local_cfg;
200 tBTA_HL_MDEP_ID peer_mdep_id;
201 UINT16 peer_data_type;
202 tBTA_HL_MDEP_ROLE peer_mdep_role;
203 tBTA_HL_DCH_MODE dch_mode;
205 BOOLEAN is_the_first_reliable;
222 btif_hl_chan_cb_state_t cb_state;
223 btif_hl_pend_dch_op_t op;
225 BOOLEAN abort_pending;
232 BOOLEAN is_connected;
239 tBTA_HL_MCL_HANDLE mcl_handle;
241 BOOLEAN valid_sdp_idx;
244 btif_hl_cch_op_t cch_oper;
245 BOOLEAN cch_timer_active;
246 TIMER_LIST_ENT cch_timer;
268 tBTA_HL_DCH_CFG channel_type[BTA_HL_NUM_MDEPS];
273 int mdl_cfg_channel_id[BTA_HL_NUM_MDL_CFGS];
276 tBTA_HL_DEVICE_TYPE dev_type;
277 tBTA_HL_APP_HANDLE app_handle;
279 char srv_name[BTA_SERVICE_NAME_LEN +1];
280 char srv_desp[BTA_SERVICE_DESP_LEN +1];
281 char provider_name[BTA_PROVIDER_NAME_LEN +1];
282 char application_name[BTIF_HL_APPLICATION_NAME_LEN +1];
295 tBTA_HL_CTRL_CBACK *p_ctrl_cback;
297 UINT16 next_channel_id;
298 btif_hl_state_t state;
302typedef UINT8 btif_hl_evt_t;
310 btif_hl_chan_cb_state_t cb_state;
327 btif_hl_unreg_t unreg;
328 btif_hl_update_mdl_t update_mdl;
336#define BTIF_HL_GET_CB_PTR() &(btif_hl_cb)
337#define BTIF_HL_GET_APP_CB_PTR(app_idx) &(btif_hl_cb.acb[(app_idx)])
338#define BTIF_HL_GET_MCL_CB_PTR(app_idx, mcl_idx) &(btif_hl_cb.acb[(app_idx)].mcb[(mcl_idx)])
339#define BTIF_HL_GET_MDL_CB_PTR(app_idx, mcl_idx, mdl_idx) &(btif_hl_cb.acb[(app_idx)].mcb[(mcl_idx)].mdl[mdl_idx])
340#define BTIF_HL_GET_PCB_PTR(app_idx, mcl_idx) &(btif_hl_cb.acb[app_idx].mcb[mcl_idx].pcb)
341#define BTIF_HL_GET_MDL_CFG_PTR(app_idx, item_idx) &(btif_hl_cb.acb[(app_idx)].mdl_cfg[(item_idx)])
342#define BTIF_HL_GET_MDL_CFG_CHANNEL_ID_PTR(app_idx, item_idx) &(btif_hl_cb.acb[(app_idx)].mdl_cfg_channel_id[(item_idx)])
348extern BOOLEAN btif_hl_find_mcl_idx(UINT8 app_idx, BD_ADDR p_bd_addr, UINT8 *p_mcl_idx);
349extern BOOLEAN btif_hl_find_app_idx(UINT8 app_id, UINT8 *p_app_idx);
350extern BOOLEAN btif_hl_find_avail_mcl_idx(UINT8 app_idx, UINT8 *p_mcl_idx);
351extern BOOLEAN btif_hl_find_avail_mdl_idx(UINT8 app_idx, UINT8 mcl_idx,
353extern BOOLEAN btif_hl_find_mcl_idx_using_handle( tBTA_HL_MCL_HANDLE mcl_handle,
354 UINT8 *p_app_idx, UINT8 *p_mcl_idx);
355extern BOOLEAN btif_hl_save_mdl_cfg(UINT8 app_id, UINT8 item_idx,
tBTA_HL_MDL_CFG *p_mdl_cfg);
356extern BOOLEAN btif_hl_delete_mdl_cfg(UINT8 app_id, UINT8 item_idx);
357extern void * btif_hl_get_buf(UINT16 size);
358extern void btif_hl_free_buf(
void **p);
359extern BOOLEAN btif_hl_find_mdl_idx_using_handle(tBTA_HL_MDL_HANDLE mdl_handle,
360 UINT8 *p_app_idx,UINT8 *p_mcl_idx,
362extern void btif_hl_abort_pending_chan_setup(UINT8 app_idx, UINT8 mcl_idx);
363extern BOOLEAN btif_hl_proc_pending_op(UINT8 app_idx, UINT8 mcl_idx);
364extern BOOLEAN btif_hl_load_mdl_config (UINT8 app_id, UINT8 buffer_size,