upload android base code part6
This commit is contained in:
parent
421e214c7d
commit
4e516ec6ed
35396 changed files with 9188716 additions and 0 deletions
315
android/system/bt/btif/include/btif_hl.h
Normal file
315
android/system/bt/btif/include/btif_hl.h
Normal file
|
@ -0,0 +1,315 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2009-2012 Broadcom Corporation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef BTIF_HL_H
|
||||
#define BTIF_HL_H
|
||||
|
||||
#include <hardware/bluetooth.h>
|
||||
|
||||
#include "bt_common.h"
|
||||
#include "bta_hl_api.h"
|
||||
#include "osi/include/alarm.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* Constants & Macros
|
||||
******************************************************************************/
|
||||
|
||||
#define BTIF_HL_DATA_TYPE_NONE 0x0000
|
||||
#define BTIF_HL_DATA_TYPE_PULSE_OXIMETER 0x1004 /* from BT assigned number */
|
||||
#define BTIF_HL_DATA_TYPE_BLOOD_PRESSURE_MON 0x1007
|
||||
#define BTIF_HL_DATA_TYPE_BODY_THERMOMETER 0x1008
|
||||
#define BTIF_HL_DATA_TYPE_BODY_WEIGHT_SCALE 0x100F
|
||||
#define BTIF_HL_DATA_TYPE_GLUCOSE_METER 0x1011
|
||||
#define BTIF_HL_DATA_TYPE_STEP_COUNTER 0x1068
|
||||
#define BTIF_HL_DATA_TYPE_BCA 0x1014
|
||||
#define BTIF_HL_DATA_TYPE_PEAK_FLOW 0x1015
|
||||
#define BTIF_HL_DATA_TYPE_CARDIO 0x1029
|
||||
#define BTIF_HL_DATA_TYPE_ACTIVITY_HUB 0x1047
|
||||
#define BTIF_HL_DATA_TYPE_AMM 0x1048
|
||||
|
||||
#define BTIF_HL_CCH_NUM_FILTER_ELEMS 3
|
||||
#define BTIF_HL_APPLICATION_NAME_LEN 512
|
||||
|
||||
/*******************************************************************************
|
||||
* Type definitions and return values
|
||||
******************************************************************************/
|
||||
|
||||
typedef enum {
|
||||
BTIF_HL_SOC_STATE_IDLE,
|
||||
BTIF_HL_SOC_STATE_W4_ADD,
|
||||
BTIF_HL_SOC_STATE_W4_CONN,
|
||||
BTIF_HL_SOC_STATE_W4_READ,
|
||||
BTIF_HL_SOC_STATE_W4_REL
|
||||
} btif_hl_soc_state_t;
|
||||
|
||||
typedef enum {
|
||||
BTIF_HL_STATE_DISABLED,
|
||||
BTIF_HL_STATE_DISABLING,
|
||||
BTIF_HL_STATE_ENABLED,
|
||||
BTIF_HL_STATE_ENABLING,
|
||||
} btif_hl_state_t;
|
||||
|
||||
typedef enum {
|
||||
BTIF_HL_CCH_OP_NONE,
|
||||
BTIF_HL_CCH_OP_MDEP_FILTERING,
|
||||
BTIF_HL_CCH_OP_MATCHED_CTRL_PSM,
|
||||
BTIF_HL_CCH_OP_DCH_OPEN,
|
||||
BTIF_HL_CCH_OP_DCH_RECONNECT,
|
||||
BTIF_HL_CCH_OP_DCH_ECHO_TEST
|
||||
} btif_hl_cch_op_t;
|
||||
|
||||
typedef enum {
|
||||
BTIF_HL_PEND_DCH_OP_NONE,
|
||||
BTIF_HL_PEND_DCH_OP_DELETE_MDL,
|
||||
BTIF_HL_PEND_DCH_OP_OPEN,
|
||||
BTIF_HL_PEND_DCH_OP_RECONNECT
|
||||
} btif_hl_pend_dch_op_t;
|
||||
|
||||
typedef enum { BTIF_HL_DCH_OP_NONE, BTIF_HL_DCH_OP_DISC } btif_hl_dch_op_t;
|
||||
|
||||
typedef enum {
|
||||
BTIF_HL_CHAN_CB_STATE_NONE,
|
||||
BTIF_HL_CHAN_CB_STATE_CONNECTING_PENDING,
|
||||
BTIF_HL_CHAN_CB_STATE_CONNECTED_PENDING,
|
||||
|
||||
BTIF_HL_CHAN_CB_STATE_DISCONNECTING_PENDING,
|
||||
BTIF_HL_CHAN_CB_STATE_DISCONNECTED_PENDING,
|
||||
BTIF_HL_CHAN_CB_STATE_DESTROYED_PENDING,
|
||||
} btif_hl_chan_cb_state_t;
|
||||
|
||||
enum {
|
||||
BTIF_HL_SEND_CONNECTED_CB,
|
||||
BTIF_HL_SEND_DISCONNECTED_CB,
|
||||
BTIF_HL_REG_APP,
|
||||
BTIF_HL_UNREG_APP,
|
||||
BTIF_HL_UPDATE_MDL,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
uint8_t mdep_cfg_idx;
|
||||
int data_type;
|
||||
tBTA_HL_MDEP_ID peer_mdep_id;
|
||||
} btif_hl_extra_mdl_cfg_t;
|
||||
|
||||
typedef struct {
|
||||
tBTA_HL_MDL_CFG base;
|
||||
btif_hl_extra_mdl_cfg_t extra;
|
||||
} btif_hl_mdl_cfg_t;
|
||||
|
||||
typedef struct {
|
||||
bool active;
|
||||
uint8_t app_idx;
|
||||
} btif_hl_app_data_t;
|
||||
|
||||
typedef struct {
|
||||
int channel_id;
|
||||
RawAddress bd_addr;
|
||||
uint8_t mdep_cfg_idx;
|
||||
int max_s;
|
||||
int socket_id[2];
|
||||
uint8_t app_idx;
|
||||
uint8_t mcl_idx;
|
||||
uint8_t mdl_idx;
|
||||
btif_hl_soc_state_t state;
|
||||
} btif_hl_soc_cb_t;
|
||||
|
||||
typedef struct {
|
||||
uint16_t data_type;
|
||||
uint16_t max_tx_apdu_size;
|
||||
uint16_t max_rx_apdu_size;
|
||||
} btif_hl_data_type_cfg_t;
|
||||
|
||||
typedef struct {
|
||||
uint16_t data_type;
|
||||
tBTA_HL_MDEP_ROLE peer_mdep_role;
|
||||
} btif_hl_filter_elem_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t num_elems;
|
||||
btif_hl_filter_elem_t elem[BTIF_HL_CCH_NUM_FILTER_ELEMS];
|
||||
} btif_hl_cch_filter_t;
|
||||
|
||||
typedef struct {
|
||||
bool in_use;
|
||||
uint16_t mdl_id;
|
||||
tBTA_HL_MDL_HANDLE mdl_handle;
|
||||
btif_hl_dch_op_t dch_oper;
|
||||
tBTA_HL_MDEP_ID local_mdep_id;
|
||||
uint8_t local_mdep_cfg_idx;
|
||||
tBTA_HL_DCH_CFG local_cfg;
|
||||
tBTA_HL_MDEP_ID peer_mdep_id;
|
||||
uint16_t peer_data_type;
|
||||
tBTA_HL_MDEP_ROLE peer_mdep_role;
|
||||
tBTA_HL_DCH_MODE dch_mode;
|
||||
tBTA_SEC sec_mask;
|
||||
bool is_the_first_reliable;
|
||||
bool delete_mdl;
|
||||
uint16_t mtu;
|
||||
tMCA_CHNL_CFG chnl_cfg;
|
||||
uint16_t tx_size;
|
||||
uint8_t* p_tx_pkt;
|
||||
uint8_t* p_rx_pkt;
|
||||
bool cong;
|
||||
btif_hl_soc_cb_t* p_scb;
|
||||
int channel_id;
|
||||
} btif_hl_mdl_cb_t;
|
||||
|
||||
typedef struct {
|
||||
int channel_id;
|
||||
int mdep_cfg_idx;
|
||||
bool in_use;
|
||||
btif_hl_chan_cb_state_t cb_state;
|
||||
btif_hl_pend_dch_op_t op;
|
||||
RawAddress bd_addr;
|
||||
bool abort_pending;
|
||||
} btif_hl_pending_chan_cb_t;
|
||||
|
||||
typedef struct {
|
||||
btif_hl_mdl_cb_t mdl[BTA_HL_NUM_MDLS_PER_MCL];
|
||||
bool in_use;
|
||||
bool is_connected;
|
||||
uint16_t req_ctrl_psm;
|
||||
uint16_t ctrl_psm;
|
||||
uint16_t data_psm;
|
||||
RawAddress bd_addr;
|
||||
uint16_t cch_mtu;
|
||||
tBTA_SEC sec_mask;
|
||||
tBTA_HL_MCL_HANDLE mcl_handle;
|
||||
btif_hl_pending_chan_cb_t pcb;
|
||||
bool valid_sdp_idx;
|
||||
uint8_t sdp_idx;
|
||||
tBTA_HL_SDP sdp;
|
||||
btif_hl_cch_op_t cch_oper;
|
||||
alarm_t* cch_timer;
|
||||
} btif_hl_mcl_cb_t;
|
||||
|
||||
typedef struct {
|
||||
bool active;
|
||||
uint16_t mdl_id;
|
||||
uint8_t mdep_cfg_idx;
|
||||
RawAddress bd_addr;
|
||||
int channel_id;
|
||||
} btif_hl_delete_mdl_t;
|
||||
|
||||
typedef struct {
|
||||
btif_hl_mcl_cb_t mcb[BTA_HL_NUM_MCLS]; /* application Control Blocks */
|
||||
bool in_use; /* this CB is in use*/
|
||||
bool reg_pending;
|
||||
uint8_t app_id;
|
||||
|
||||
tBTA_HL_SUP_FEATURE sup_feature;
|
||||
tBTA_HL_DCH_CFG channel_type[BTA_HL_NUM_MDEPS];
|
||||
tBTA_HL_SDP_INFO_IND sdp_info_ind;
|
||||
btif_hl_cch_filter_t filter;
|
||||
|
||||
btif_hl_mdl_cfg_t mdl_cfg[BTA_HL_NUM_MDL_CFGS];
|
||||
int mdl_cfg_channel_id[BTA_HL_NUM_MDL_CFGS];
|
||||
|
||||
btif_hl_delete_mdl_t delete_mdl;
|
||||
tBTA_HL_DEVICE_TYPE dev_type;
|
||||
tBTA_HL_APP_HANDLE app_handle;
|
||||
uint16_t sec_mask; /* Security mask for BTM_SetSecurityLevel() */
|
||||
char srv_name[BTA_SERVICE_NAME_LEN +
|
||||
1]; /* service name to be used in the SDP; null terminated*/
|
||||
char srv_desp[BTA_SERVICE_DESP_LEN + 1]; /* service description to be used in
|
||||
the SDP; null terminated */
|
||||
char provider_name[BTA_PROVIDER_NAME_LEN + 1]; /* provide name to be used in
|
||||
the SDP; null terminated */
|
||||
char
|
||||
application_name[BTIF_HL_APPLICATION_NAME_LEN + 1]; /* applicaiton name */
|
||||
} btif_hl_app_cb_t;
|
||||
|
||||
typedef struct {
|
||||
bool in_use;
|
||||
uint8_t app_idx;
|
||||
} btif_hl_pending_reg_cb_t;
|
||||
|
||||
/* BTIF-HL control block */
|
||||
typedef struct {
|
||||
btif_hl_app_cb_t acb[BTA_HL_NUM_APPS]; /* HL Control Blocks */
|
||||
tBTA_HL_CTRL_CBACK* p_ctrl_cback; /* pointer to control callback function */
|
||||
uint8_t next_app_id;
|
||||
uint16_t next_channel_id;
|
||||
btif_hl_state_t state;
|
||||
} btif_hl_cb_t;
|
||||
|
||||
typedef uint8_t btif_hl_evt_t;
|
||||
|
||||
typedef struct {
|
||||
int app_id;
|
||||
RawAddress bd_addr;
|
||||
int mdep_cfg_index;
|
||||
int channel_id;
|
||||
btif_hl_chan_cb_state_t cb_state;
|
||||
int fd;
|
||||
} btif_hl_send_chan_state_cb_t;
|
||||
|
||||
typedef struct { uint8_t app_idx; } btif_hl_reg_t;
|
||||
|
||||
typedef btif_hl_reg_t btif_hl_unreg_t;
|
||||
typedef btif_hl_reg_t btif_hl_update_mdl_t;
|
||||
|
||||
typedef union {
|
||||
btif_hl_send_chan_state_cb_t chan_cb;
|
||||
btif_hl_reg_t reg;
|
||||
btif_hl_unreg_t unreg;
|
||||
btif_hl_update_mdl_t update_mdl;
|
||||
} btif_hl_evt_cb_t;
|
||||
|
||||
/*******************************************************************************
|
||||
* Functions
|
||||
******************************************************************************/
|
||||
|
||||
#define BTIF_HL_GET_CB_PTR() &(btif_hl_cb)
|
||||
#define BTIF_HL_GET_APP_CB_PTR(app_idx) &(btif_hl_cb.acb[(app_idx)])
|
||||
#define BTIF_HL_GET_MCL_CB_PTR(app_idx, mcl_idx) \
|
||||
&(btif_hl_cb.acb[(app_idx)].mcb[(mcl_idx)])
|
||||
#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])
|
||||
#define BTIF_HL_GET_PCB_PTR(app_idx, mcl_idx) \
|
||||
&(btif_hl_cb.acb[app_idx].mcb[mcl_idx].pcb)
|
||||
#define BTIF_HL_GET_MDL_CFG_PTR(app_idx, item_idx) \
|
||||
&(btif_hl_cb.acb[(app_idx)].mdl_cfg[(item_idx)])
|
||||
#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)])
|
||||
|
||||
extern btif_hl_cb_t btif_hl_cb;
|
||||
extern btif_hl_cb_t* p_btif_hl_cb;
|
||||
|
||||
extern bool btif_hl_find_mcl_idx(uint8_t app_idx, const RawAddress& p_bd_addr,
|
||||
uint8_t* p_mcl_idx);
|
||||
extern bool btif_hl_find_app_idx(uint8_t app_id, uint8_t* p_app_idx);
|
||||
extern bool btif_hl_find_avail_mcl_idx(uint8_t app_idx, uint8_t* p_mcl_idx);
|
||||
extern bool btif_hl_find_avail_mdl_idx(uint8_t app_idx, uint8_t mcl_idx,
|
||||
uint8_t* p_mdl_idx);
|
||||
extern bool btif_hl_find_mcl_idx_using_handle(tBTA_HL_MCL_HANDLE mcl_handle,
|
||||
uint8_t* p_app_idx,
|
||||
uint8_t* p_mcl_idx);
|
||||
extern bool btif_hl_save_mdl_cfg(uint8_t app_id, uint8_t item_idx,
|
||||
tBTA_HL_MDL_CFG* p_mdl_cfg);
|
||||
extern bool btif_hl_delete_mdl_cfg(uint8_t app_id, uint8_t item_idx);
|
||||
extern bool btif_hl_find_mdl_idx_using_handle(tBTA_HL_MDL_HANDLE mdl_handle,
|
||||
uint8_t* p_app_idx,
|
||||
uint8_t* p_mcl_idx,
|
||||
uint8_t* p_mdl_idx);
|
||||
extern void btif_hl_abort_pending_chan_setup(uint8_t app_idx, uint8_t mcl_idx);
|
||||
extern bool btif_hl_proc_pending_op(uint8_t app_idx, uint8_t mcl_idx);
|
||||
extern bool btif_hl_load_mdl_config(uint8_t app_id, uint8_t buffer_size,
|
||||
tBTA_HL_MDL_CFG* p_mdl_buf);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue