Loading system/bta/dm/bta_dm_act.c +170 −91 Original line number Diff line number Diff line Loading @@ -3173,7 +3173,7 @@ static void bta_dm_local_name_cback(UINT8 *p_name) if(bta_dm_cb.p_sec_cback) bta_dm_cb.p_sec_cback(BTA_DM_ENABLE_EVT, &sec_event); #if ( BLE_INCLUDED == TRUE) #if BLE_VND_INCLUDED == TRUE BTM_BleReadControllerFeatures (bta_dm_ctrl_features_rd_cmpl_cback); #endif } Loading Loading @@ -5149,7 +5149,6 @@ void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data) BTM_BleConfigPrivacy (p_data->ble_local_privacy.privacy_enable); } #endif /******************************************************************************* ** ** Function bta_dm_ble_observe Loading @@ -5161,7 +5160,6 @@ void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_observe (tBTA_DM_MSG *p_data) { tBTM_STATUS status; if (p_data->ble_observe.start) { Loading Loading @@ -5273,10 +5271,23 @@ void bta_dm_ble_broadcast (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_multi_adv_enb(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleEnableAdvInstance((tBTM_BLE_ADV_PARAMS*)p_data->ble_multi_adv_enb.p_params, p_data->ble_multi_adv_enb.p_cback,p_data->ble_multi_adv_enb.p_ref); #endif tBTM_STATUS btm_status = 0; void *p_ref = NULL; bta_dm_cb.p_multi_adv_cback = p_data->ble_multi_adv_enb.p_cback; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && NULL != p_data->ble_multi_adv_enb.p_ref) { btm_status = BTM_BleEnableAdvInstance((tBTM_BLE_ADV_PARAMS*) p_data->ble_multi_adv_enb.p_params, p_data->ble_multi_adv_enb.p_cback, p_data->ble_multi_adv_enb.p_ref); } if(BTM_CMD_STARTED != btm_status) { bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_ENB_EVT, 0xFF, p_data->ble_multi_adv_enb.p_ref, BTA_FAILURE); } } /******************************************************************************* ** Loading @@ -5289,10 +5300,22 @@ void bta_dm_ble_multi_adv_enb(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_multi_adv_upd_param(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleUpdateAdvInstParam(p_data->ble_multi_adv_param.inst_id, tBTM_STATUS btm_status = 0; void *p_ref = NULL; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && p_data->ble_multi_adv_param.inst_id > 0 && p_data->ble_multi_adv_param.inst_id < BTM_BleMaxMultiAdvInstanceCount()) { btm_status = BTM_BleUpdateAdvInstParam(p_data->ble_multi_adv_param.inst_id, (tBTM_BLE_ADV_PARAMS*)p_data->ble_multi_adv_param.p_params); #endif } if(BTM_CMD_STARTED != btm_status) { p_ref = btm_ble_multi_adv_get_ref(p_data->ble_multi_adv_param.inst_id); bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_PARAM_EVT, p_data->ble_multi_adv_param.inst_id, p_ref, BTA_FAILURE); } } /******************************************************************************* ** Loading @@ -5306,10 +5329,25 @@ void bta_dm_ble_multi_adv_upd_param(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_multi_adv_data(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleCfgAdvInstData(p_data->ble_multi_adv_data.inst_id,p_data->ble_multi_adv_data.is_scan_rsp, p_data->ble_multi_adv_data.data_mask,(tBTM_BLE_ADV_DATA*)p_data->ble_multi_adv_data.p_data); #endif tBTM_STATUS btm_status = 0; void *p_ref = NULL; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && p_data->ble_multi_adv_data.inst_id > 0 && p_data->ble_multi_adv_data.inst_id < BTM_BleMaxMultiAdvInstanceCount()) { btm_status = BTM_BleCfgAdvInstData(p_data->ble_multi_adv_data.inst_id, p_data->ble_multi_adv_data.is_scan_rsp, p_data->ble_multi_adv_data.data_mask, (tBTM_BLE_ADV_DATA*)p_data->ble_multi_adv_data.p_data); } if(BTM_CMD_STARTED != btm_status) { p_ref = btm_ble_multi_adv_get_ref(p_data->ble_multi_adv_data.inst_id); bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_DATA_EVT, p_data->ble_multi_adv_data.inst_id, p_ref, BTA_FAILURE); } } /******************************************************************************* ** Loading @@ -5322,9 +5360,21 @@ void bta_dm_ble_multi_adv_data(tBTA_DM_MSG *p_data) *******************************************************************************/ void btm_dm_ble_multi_adv_disable(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleDisableAdvInstance(p_data->ble_multi_adv_disable.inst_id); #endif tBTM_STATUS btm_status = 0; void *p_ref = NULL; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && p_data->ble_multi_adv_disable.inst_id > 0 && p_data->ble_multi_adv_disable.inst_id < BTM_BleMaxMultiAdvInstanceCount()) { btm_status = BTM_BleDisableAdvInstance(p_data->ble_multi_adv_disable.inst_id); } if(BTM_CMD_STARTED != btm_status) { p_ref = btm_ble_multi_adv_get_ref(p_data->ble_multi_adv_disable.inst_id); bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_DISABLE_EVT, p_data->ble_multi_adv_disable.inst_id, p_ref, BTA_FAILURE); } } /******************************************************************************* Loading @@ -5338,9 +5388,13 @@ void btm_dm_ble_multi_adv_disable(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_setup_storage (tBTA_DM_MSG *p_data) { #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleSetStorageConfig(p_data->ble_set_storage.batch_scan_full_max, p_data->ble_set_storage.batch_scan_trunc_max, p_data->ble_set_storage.batch_scan_notify_threshold, Loading @@ -5348,11 +5402,11 @@ void bta_dm_ble_setup_storage (tBTA_DM_MSG *p_data) p_data->ble_set_storage.p_thres_cback, p_data->ble_set_storage.p_read_rep_cback, p_data->ble_set_storage.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_CFG_STRG_EVT, p_data->ble_set_storage.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5366,20 +5420,24 @@ void bta_dm_ble_setup_storage (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_enable_batch_scan (tBTA_DM_MSG *p_data) { #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleEnableBatchScan(p_data->ble_enable_scan.scan_mode, p_data->ble_enable_scan.scan_int,p_data->ble_enable_scan.scan_window, p_data->ble_enable_scan.addr_type, p_data->ble_enable_scan.scan_int, p_data->ble_enable_scan.scan_window, p_data->ble_enable_scan.discard_rule, p_data->ble_enable_scan.addr_type, p_data->ble_enable_scan.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_ENABLE_EVT, p_data->ble_enable_scan.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5394,15 +5452,19 @@ void bta_dm_ble_enable_batch_scan (tBTA_DM_MSG *p_data) void bta_dm_ble_disable_batch_scan (tBTA_DM_MSG *p_data) { UNUSED(p_data); #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleDisableBatchScan(p_data->ble_disable_scan.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_DISABLE_EVT, p_data->ble_enable_scan.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5416,16 +5478,20 @@ void bta_dm_ble_disable_batch_scan (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_read_scan_reports(tBTA_DM_MSG *p_data) { #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleReadScanReports(p_data->ble_read_reports.scan_type, p_data->ble_read_reports.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_READ_REPTS_EVT, p_data->ble_enable_scan.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5439,10 +5505,23 @@ void bta_dm_ble_read_scan_reports(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_track_advertiser(tBTA_DM_MSG *p_data) { BTM_BleTrackAdvertiser(p_data->ble_track_advert.p_track_adv_cback, tBTM_STATUS btm_status = 0; BD_ADDR bda; memset(&bda, 0 , sizeof(BD_ADDR)); tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleTrackAdvertiser(p_data->ble_track_advert.p_track_adv_cback, p_data->ble_track_advert.ref_value); } if(BTM_CMD_STARTED != btm_status) p_data->ble_track_advert.p_track_adv_cback(0, 0, bda, 0, p_data->ble_track_advert.ref_value); } /******************************************************************************* ** ** Function bta_ble_scan_setup_cb Loading Loading @@ -5527,51 +5606,6 @@ static void bta_ble_status_cmpl(tBTM_BLE_PF_ACTION action, tBTM_BLE_REF_VALUE re bta_dm_cb.p_scan_filt_status_cback(action, ref_value, st); } /******************************************************************************* ** ** Function bta_ble_enable_scan_cmpl ** ** Description ADV payload filtering enable / disable complete callback ** ** ** Returns None ** *******************************************************************************/ static void bta_ble_energy_info_cmpl(tBTM_BLE_TX_TIME_MS tx_time, tBTM_BLE_RX_TIME_MS rx_time, tBTM_BLE_IDLE_TIME_MS idle_time, tBTM_BLE_ENERGY_USED energy_used, tBTM_STATUS status) { tBTA_STATUS st = (status == BTM_SUCCESS) ? BTA_SUCCESS: BTA_FAILURE; tBTA_DM_CONTRL_STATE ctrl_state = 0; if (BTA_SUCCESS == st) ctrl_state = bta_dm_pm_obtain_controller_state(); if (bta_dm_cb.p_energy_info_cback) bta_dm_cb.p_energy_info_cback(tx_time, rx_time, idle_time, energy_used, ctrl_state, st); } /******************************************************************************* ** ** Function bta_dm_ble_get_energy_info ** ** Description This function obtains the energy info ** ** Parameters: ** *******************************************************************************/ void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data) { tBTM_STATUS btm_status = 0; bta_dm_cb.p_energy_info_cback = p_data->ble_energy_info.p_energy_info_cback; btm_status = BTM_BleGetEnergyInfo(bta_ble_energy_info_cmpl); if (BTM_CMD_STARTED != btm_status) bta_ble_energy_info_cmpl(0, 0, 0, 0, btm_status); } /******************************************************************************* ** ** Function bta_dm_cfg_filter_cond Loading Loading @@ -5684,6 +5718,51 @@ void bta_dm_scan_filter_param_setup (tBTA_DM_MSG *p_data) } #endif /******************************************************************************* ** ** Function bta_ble_enable_scan_cmpl ** ** Description ADV payload filtering enable / disable complete callback ** ** ** Returns None ** *******************************************************************************/ static void bta_ble_energy_info_cmpl(tBTM_BLE_TX_TIME_MS tx_time, tBTM_BLE_RX_TIME_MS rx_time, tBTM_BLE_IDLE_TIME_MS idle_time, tBTM_BLE_ENERGY_USED energy_used, tBTM_STATUS status) { tBTA_STATUS st = (status == BTM_SUCCESS) ? BTA_SUCCESS: BTA_FAILURE; tBTA_DM_CONTRL_STATE ctrl_state = 0; if (BTA_SUCCESS == st) ctrl_state = bta_dm_pm_obtain_controller_state(); if (bta_dm_cb.p_energy_info_cback) bta_dm_cb.p_energy_info_cback(tx_time, rx_time, idle_time, energy_used, ctrl_state, st); } /******************************************************************************* ** ** Function bta_dm_ble_get_energy_info ** ** Description This function obtains the energy info ** ** Parameters: ** *******************************************************************************/ void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data) { tBTM_STATUS btm_status = 0; bta_dm_cb.p_energy_info_cback = p_data->ble_energy_info.p_energy_info_cback; btm_status = BTM_BleGetEnergyInfo(bta_ble_energy_info_cmpl); if (BTM_CMD_STARTED != btm_status) bta_ble_energy_info_cmpl(0, 0, 0, 0, btm_status); } #if ((defined BTA_GATT_INCLUDED) && (BTA_GATT_INCLUDED == TRUE)) #ifndef BTA_DM_GATT_CLOSE_DELAY_TOUT #define BTA_DM_GATT_CLOSE_DELAY_TOUT 1000 Loading system/bta/dm/bta_dm_api.c +67 −55 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ #include "btm_int.h" #include <string.h> #include "utl.h" #include "vendor_ble.h" /***************************************************************************** ** Constants Loading Loading @@ -1260,8 +1261,6 @@ void bta_dmexecutecallback (tBTA_DM_EXEC_CBACK* p_callback, void * p_param) } } #if BLE_INCLUDED == TRUE /******************************************************************************* ** ** Function BTA_DmAddBleKey Loading Loading @@ -1984,7 +1983,6 @@ void BTA_DmBleEnableRemotePrivacy(BD_ADDR bd_addr, BOOLEAN privacy_enable) void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable) { #if BLE_INCLUDED == TRUE #if BLE_VND_INCLUDED == TRUE && BLE_PRIVACY_SPT == TRUE tBTA_DM_API_LOCAL_PRIVACY *p_msg; if ((p_msg = (tBTA_DM_API_LOCAL_PRIVACY *) GKI_getbuf(sizeof(tBTA_DM_API_ENABLE_PRIVACY))) != NULL) Loading @@ -1996,12 +1994,10 @@ void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable) bta_sys_sendmsg(p_msg); } #endif #else UNUSED (privacy_enable); #endif } #endif #if BLE_INCLUDED == TRUE /******************************************************************************* Loading @@ -2018,7 +2014,7 @@ void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable) ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, void BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, tBTA_BLE_MULTI_ADV_CBACK *p_cback, void *p_ref) { Loading @@ -2041,10 +2037,7 @@ tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, p_msg->p_ref = p_ref; bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } return BTA_FAILURE; } /******************************************************************************* Loading @@ -2060,29 +2053,22 @@ tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_params) void BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_params) { tBTA_DM_API_BLE_MULTI_ADV_PARAM *p_msg; UINT16 len = sizeof(tBTA_BLE_ADV_PARAMS) + sizeof(tBTA_DM_API_BLE_MULTI_ADV_PARAM); APPL_TRACE_API ("BTA_BleUpdateAdvInstParam"); if (inst_id <= BTM_BLE_MULTI_ADV_MAX && inst_id != BTA_BLE_MULTI_ADV_ILLEGAL) { if ((p_msg = (tBTA_DM_API_BLE_MULTI_ADV_PARAM *) GKI_getbuf(len)) != NULL) { memset(p_msg, 0, sizeof(tBTA_DM_API_BLE_MULTI_ADV_PARAM)); p_msg->hdr.event = BTA_DM_API_BLE_MULTI_ADV_PARAM_UPD_EVT; p_msg->inst_id = inst_id; p_msg->p_params = (void *)(p_msg + 1); memcpy(p_msg->p_params, p_params, sizeof(tBTA_BLE_ADV_PARAMS)); bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } } return BTA_FAILURE; } /******************************************************************************* Loading @@ -2102,7 +2088,7 @@ tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_par ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, void BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_data) { Loading @@ -2111,12 +2097,9 @@ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, APPL_TRACE_API ("BTA_BleCfgAdvInstData"); if (inst_id <= BTM_BLE_MULTI_ADV_MAX && inst_id != BTA_BLE_MULTI_ADV_ILLEGAL) { if ((p_msg = (tBTA_DM_API_BLE_MULTI_ADV_DATA *) GKI_getbuf(len)) != NULL) { memset(p_msg, 0, len); p_msg->hdr.event = BTA_DM_API_BLE_MULTI_ADV_DATA_EVT; p_msg->inst_id = inst_id; p_msg->is_scan_rsp = is_scan_rsp; Loading @@ -2124,11 +2107,7 @@ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, p_msg->p_data = p_data; bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } } return BTA_FAILURE; } /******************************************************************************* Loading @@ -2142,14 +2121,11 @@ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleDisableAdvInstance (UINT8 inst_id) void BTA_BleDisableAdvInstance (UINT8 inst_id) { tBTA_DM_API_BLE_MULTI_ADV_DISABLE *p_msg; APPL_TRACE_API ("BTA_BleDisableAdvInstance: %d", inst_id); if (inst_id <= BTM_BLE_MULTI_ADV_MAX && inst_id != BTA_BLE_MULTI_ADV_ILLEGAL) { if ((p_msg = (tBTA_DM_API_BLE_MULTI_ADV_DISABLE *) GKI_getbuf(sizeof(tBTA_DM_API_BLE_MULTI_ADV_DISABLE))) != NULL) { Loading @@ -2157,11 +2133,8 @@ tBTA_STATUS BTA_BleDisableAdvInstance (UINT8 inst_id) p_msg->hdr.event = BTA_DM_API_BLE_MULTI_ADV_DISABLE_EVT; p_msg->inst_id = inst_id; bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } } return BTA_FAILURE; } /******************************************************************************* ** Loading Loading @@ -2543,4 +2516,43 @@ BTA_API extern void BTA_DmBleObserve(BOOLEAN start, UINT8 duration, bta_sys_sendmsg(p_msg); } } /******************************************************************************* ** ** Function BTA_VendorInit ** ** Description This function initializes vendor specific ** ** Returns void ** *******************************************************************************/ void BTA_VendorInit (void) { APPL_TRACE_API("BTA_VendorInit"); } /******************************************************************************* ** ** Function BTA_VendorCleanup ** ** Description This function frees up Broadcom specific VS specific dynamic memory ** ** Returns void ** *******************************************************************************/ void BTA_VendorCleanup (void) { tBTM_BLE_VSC_CB cmn_ble_vsc_cb; #if (BLE_INCLUDED == TRUE && BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE) btm_ble_adv_filter_cleanup(); btm_ble_vendor_cleanup(); #endif BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if(cmn_ble_vsc_cb.adv_inst_max > 0) btm_ble_multi_adv_cleanup(); } #endif system/bta/dm/bta_dm_int.h +3 −10 Original line number Diff line number Diff line Loading @@ -100,11 +100,9 @@ enum BTA_DM_API_BLE_SCAN_PARAM_EVT, BTA_DM_API_BLE_OBSERVE_EVT, BTA_DM_API_UPDATE_CONN_PARAM_EVT, #if BLE_PRIVACY_SPT == TRUE BTA_DM_API_LOCAL_PRIVACY_EVT, #endif BTA_DM_API_BLE_ADV_PARAM_EVT, BTA_DM_API_BLE_SET_ADV_CONFIG_EVT, BTA_DM_API_BLE_SET_SCAN_RSP_EVT, Loading Loading @@ -564,7 +562,7 @@ typedef struct typedef struct { BT_HDR hdr; void *p_cback; tBTA_BLE_MULTI_ADV_CBACK *p_cback; void *p_ref; tBTA_BLE_ADV_PARAMS *p_params; }tBTA_DM_API_BLE_MULTI_ADV_ENB; Loading Loading @@ -922,13 +920,12 @@ typedef struct tBTA_DM_SEC_CBACK *p_sec_cback; #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) tBTA_BLE_SCAN_SETUP_CBACK *p_setup_cback; #endif tBTA_DM_BLE_PF_CFG_CBACK *p_scan_filt_cfg_cback; tBTA_DM_BLE_PF_STATUS_CBACK *p_scan_filt_status_cback; tBTA_DM_BLE_PF_PARAM_CBACK *p_scan_filt_param_cback; #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; tBTA_BLE_MULTI_ADV_CBACK *p_multi_adv_cback; #endif tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; TIMER_LIST_ENT signal_strength_timer; tBTA_SIG_STRENGTH_MASK signal_strength_mask; UINT16 state; Loading Loading @@ -1186,9 +1183,7 @@ extern void bta_dm_ble_set_scan_params (tBTA_DM_MSG *p_data); extern void bta_dm_close_gatt_conn(tBTA_DM_MSG *p_data); extern void bta_dm_ble_observe (tBTA_DM_MSG *p_data); extern void bta_dm_ble_update_conn_params (tBTA_DM_MSG *p_data); #if BLE_PRIVACY_SPT == TRUE extern void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data); #endif extern void bta_dm_ble_set_adv_params (tBTA_DM_MSG *p_data); extern void bta_dm_ble_set_adv_config (tBTA_DM_MSG *p_data); extern void bta_dm_ble_set_scan_rsp (tBTA_DM_MSG *p_data); Loading Loading @@ -1245,9 +1240,7 @@ extern void bta_dm_search_cancel_transac_cmpl(tBTA_DM_MSG *p_data); extern void bta_dm_disc_rmt_name (tBTA_DM_MSG *p_data); extern tBTA_DM_PEER_DEVICE * bta_dm_find_peer_device(BD_ADDR peer_addr); #if BLE_PRIVACY_SPT == TRUE extern void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data); #endif extern void bta_dm_pm_active(BD_ADDR peer_addr); Loading system/bta/dm/bta_dm_main.c +1 −1 Original line number Diff line number Diff line Loading @@ -118,8 +118,8 @@ const tBTA_DM_ACTION bta_dm_action[] = bta_dm_ble_disable_batch_scan, /* BTA_DM_API_BLE_DISABLE_BATCH_SCAN_EVT */ bta_dm_ble_read_scan_reports, /* BTA_DM_API_BLE_READ_SCAN_REPORTS_EVT */ bta_dm_ble_track_advertiser, /* BTA_DM_API_BLE_TRACK_ADVERTISER_EVT */ bta_dm_ble_get_energy_info, /* BTA_DM_API_BLE_ENERGY_INFO_EVT */ #endif bta_dm_ble_get_energy_info, /* BTA_DM_API_BLE_ENERGY_INFO_EVT */ #if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&( BTA_EIR_CANNED_UUID_LIST != TRUE )&&(BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) bta_dm_update_eir_uuid, /* BTA_DM_API_UPDATE_EIR_UUID_EVT */ Loading system/bta/include/bta_api.h +26 −5 Original line number Diff line number Diff line Loading @@ -944,7 +944,6 @@ typedef union /* Security callback */ typedef void (tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC *p_data); #define BTA_BLE_MULTI_ADV_MAX BTM_BLE_MULTI_ADV_MAX #define BTA_BLE_MULTI_ADV_ILLEGAL 0 /* multi adv callback event */ Loading Loading @@ -2373,7 +2372,7 @@ BTA_API extern void BTA_DmBleBroadcast (BOOLEAN start); ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, BTA_API extern void BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, tBTA_BLE_MULTI_ADV_CBACK *p_cback,void *p_ref); /******************************************************************************* Loading @@ -2388,7 +2387,7 @@ BTA_API extern tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_para ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, BTA_API extern void BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_params); /******************************************************************************* Loading @@ -2403,7 +2402,7 @@ BTA_API extern tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, BTA_API extern void BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_data); /******************************************************************************* Loading @@ -2417,7 +2416,7 @@ BTA_API extern tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleDisableAdvInstance(UINT8 inst_id); BTA_API extern void BTA_BleDisableAdvInstance(UINT8 inst_id); /******************************************************************************* ** Loading Loading @@ -2606,6 +2605,28 @@ BTA_API extern void BTA_DmBleTrackAdvertiser(tBTA_DM_BLE_REF_VALUE ref_value, *******************************************************************************/ BTA_API extern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK *p_cmpl_cback); /******************************************************************************* ** ** Function BTA_BrcmInit ** ** Description This function initializes Broadcom specific VS handler in BTA ** ** Returns void ** *******************************************************************************/ BTA_API extern void BTA_VendorInit (void); /******************************************************************************* ** ** Function BTA_BrcmCleanup ** ** Description This function frees up Broadcom specific VS specific dynamic memory ** ** Returns void ** *******************************************************************************/ BTA_API extern void BTA_VendorCleanup (void); #endif #ifdef __cplusplus Loading Loading
system/bta/dm/bta_dm_act.c +170 −91 Original line number Diff line number Diff line Loading @@ -3173,7 +3173,7 @@ static void bta_dm_local_name_cback(UINT8 *p_name) if(bta_dm_cb.p_sec_cback) bta_dm_cb.p_sec_cback(BTA_DM_ENABLE_EVT, &sec_event); #if ( BLE_INCLUDED == TRUE) #if BLE_VND_INCLUDED == TRUE BTM_BleReadControllerFeatures (bta_dm_ctrl_features_rd_cmpl_cback); #endif } Loading Loading @@ -5149,7 +5149,6 @@ void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data) BTM_BleConfigPrivacy (p_data->ble_local_privacy.privacy_enable); } #endif /******************************************************************************* ** ** Function bta_dm_ble_observe Loading @@ -5161,7 +5160,6 @@ void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_observe (tBTA_DM_MSG *p_data) { tBTM_STATUS status; if (p_data->ble_observe.start) { Loading Loading @@ -5273,10 +5271,23 @@ void bta_dm_ble_broadcast (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_multi_adv_enb(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleEnableAdvInstance((tBTM_BLE_ADV_PARAMS*)p_data->ble_multi_adv_enb.p_params, p_data->ble_multi_adv_enb.p_cback,p_data->ble_multi_adv_enb.p_ref); #endif tBTM_STATUS btm_status = 0; void *p_ref = NULL; bta_dm_cb.p_multi_adv_cback = p_data->ble_multi_adv_enb.p_cback; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && NULL != p_data->ble_multi_adv_enb.p_ref) { btm_status = BTM_BleEnableAdvInstance((tBTM_BLE_ADV_PARAMS*) p_data->ble_multi_adv_enb.p_params, p_data->ble_multi_adv_enb.p_cback, p_data->ble_multi_adv_enb.p_ref); } if(BTM_CMD_STARTED != btm_status) { bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_ENB_EVT, 0xFF, p_data->ble_multi_adv_enb.p_ref, BTA_FAILURE); } } /******************************************************************************* ** Loading @@ -5289,10 +5300,22 @@ void bta_dm_ble_multi_adv_enb(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_multi_adv_upd_param(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleUpdateAdvInstParam(p_data->ble_multi_adv_param.inst_id, tBTM_STATUS btm_status = 0; void *p_ref = NULL; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && p_data->ble_multi_adv_param.inst_id > 0 && p_data->ble_multi_adv_param.inst_id < BTM_BleMaxMultiAdvInstanceCount()) { btm_status = BTM_BleUpdateAdvInstParam(p_data->ble_multi_adv_param.inst_id, (tBTM_BLE_ADV_PARAMS*)p_data->ble_multi_adv_param.p_params); #endif } if(BTM_CMD_STARTED != btm_status) { p_ref = btm_ble_multi_adv_get_ref(p_data->ble_multi_adv_param.inst_id); bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_PARAM_EVT, p_data->ble_multi_adv_param.inst_id, p_ref, BTA_FAILURE); } } /******************************************************************************* ** Loading @@ -5306,10 +5329,25 @@ void bta_dm_ble_multi_adv_upd_param(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_multi_adv_data(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleCfgAdvInstData(p_data->ble_multi_adv_data.inst_id,p_data->ble_multi_adv_data.is_scan_rsp, p_data->ble_multi_adv_data.data_mask,(tBTM_BLE_ADV_DATA*)p_data->ble_multi_adv_data.p_data); #endif tBTM_STATUS btm_status = 0; void *p_ref = NULL; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && p_data->ble_multi_adv_data.inst_id > 0 && p_data->ble_multi_adv_data.inst_id < BTM_BleMaxMultiAdvInstanceCount()) { btm_status = BTM_BleCfgAdvInstData(p_data->ble_multi_adv_data.inst_id, p_data->ble_multi_adv_data.is_scan_rsp, p_data->ble_multi_adv_data.data_mask, (tBTM_BLE_ADV_DATA*)p_data->ble_multi_adv_data.p_data); } if(BTM_CMD_STARTED != btm_status) { p_ref = btm_ble_multi_adv_get_ref(p_data->ble_multi_adv_data.inst_id); bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_DATA_EVT, p_data->ble_multi_adv_data.inst_id, p_ref, BTA_FAILURE); } } /******************************************************************************* ** Loading @@ -5322,9 +5360,21 @@ void bta_dm_ble_multi_adv_data(tBTA_DM_MSG *p_data) *******************************************************************************/ void btm_dm_ble_multi_adv_disable(tBTA_DM_MSG *p_data) { #if BLE_MULTI_ADV_INCLUDED == TRUE BTM_BleDisableAdvInstance(p_data->ble_multi_adv_disable.inst_id); #endif tBTM_STATUS btm_status = 0; void *p_ref = NULL; if(BTM_BleMaxMultiAdvInstanceCount() > 0 && p_data->ble_multi_adv_disable.inst_id > 0 && p_data->ble_multi_adv_disable.inst_id < BTM_BleMaxMultiAdvInstanceCount()) { btm_status = BTM_BleDisableAdvInstance(p_data->ble_multi_adv_disable.inst_id); } if(BTM_CMD_STARTED != btm_status) { p_ref = btm_ble_multi_adv_get_ref(p_data->ble_multi_adv_disable.inst_id); bta_dm_cb.p_multi_adv_cback(BTA_BLE_MULTI_ADV_DISABLE_EVT, p_data->ble_multi_adv_disable.inst_id, p_ref, BTA_FAILURE); } } /******************************************************************************* Loading @@ -5338,9 +5388,13 @@ void btm_dm_ble_multi_adv_disable(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_setup_storage (tBTA_DM_MSG *p_data) { #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleSetStorageConfig(p_data->ble_set_storage.batch_scan_full_max, p_data->ble_set_storage.batch_scan_trunc_max, p_data->ble_set_storage.batch_scan_notify_threshold, Loading @@ -5348,11 +5402,11 @@ void bta_dm_ble_setup_storage (tBTA_DM_MSG *p_data) p_data->ble_set_storage.p_thres_cback, p_data->ble_set_storage.p_read_rep_cback, p_data->ble_set_storage.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_CFG_STRG_EVT, p_data->ble_set_storage.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5366,20 +5420,24 @@ void bta_dm_ble_setup_storage (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_enable_batch_scan (tBTA_DM_MSG *p_data) { #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleEnableBatchScan(p_data->ble_enable_scan.scan_mode, p_data->ble_enable_scan.scan_int,p_data->ble_enable_scan.scan_window, p_data->ble_enable_scan.addr_type, p_data->ble_enable_scan.scan_int, p_data->ble_enable_scan.scan_window, p_data->ble_enable_scan.discard_rule, p_data->ble_enable_scan.addr_type, p_data->ble_enable_scan.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_ENABLE_EVT, p_data->ble_enable_scan.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5394,15 +5452,19 @@ void bta_dm_ble_enable_batch_scan (tBTA_DM_MSG *p_data) void bta_dm_ble_disable_batch_scan (tBTA_DM_MSG *p_data) { UNUSED(p_data); #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleDisableBatchScan(p_data->ble_disable_scan.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_DISABLE_EVT, p_data->ble_enable_scan.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5416,16 +5478,20 @@ void bta_dm_ble_disable_batch_scan (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_read_scan_reports(tBTA_DM_MSG *p_data) { #if BLE_BATCH_SCAN_INCLUDED == TRUE tBTM_STATUS btm_status = 0; tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleReadScanReports(p_data->ble_read_reports.scan_type, p_data->ble_read_reports.ref_value); } if(BTM_CMD_STARTED != btm_status) bta_ble_scan_setup_cb(BTM_BLE_BATCH_SCAN_READ_REPTS_EVT, p_data->ble_enable_scan.ref_value, btm_status); #endif } /******************************************************************************* Loading @@ -5439,10 +5505,23 @@ void bta_dm_ble_read_scan_reports(tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_track_advertiser(tBTA_DM_MSG *p_data) { BTM_BleTrackAdvertiser(p_data->ble_track_advert.p_track_adv_cback, tBTM_STATUS btm_status = 0; BD_ADDR bda; memset(&bda, 0 , sizeof(BD_ADDR)); tBTM_BLE_VSC_CB cmn_ble_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if (0 != cmn_ble_vsc_cb.tot_scan_results_strg) { btm_status = BTM_BleTrackAdvertiser(p_data->ble_track_advert.p_track_adv_cback, p_data->ble_track_advert.ref_value); } if(BTM_CMD_STARTED != btm_status) p_data->ble_track_advert.p_track_adv_cback(0, 0, bda, 0, p_data->ble_track_advert.ref_value); } /******************************************************************************* ** ** Function bta_ble_scan_setup_cb Loading Loading @@ -5527,51 +5606,6 @@ static void bta_ble_status_cmpl(tBTM_BLE_PF_ACTION action, tBTM_BLE_REF_VALUE re bta_dm_cb.p_scan_filt_status_cback(action, ref_value, st); } /******************************************************************************* ** ** Function bta_ble_enable_scan_cmpl ** ** Description ADV payload filtering enable / disable complete callback ** ** ** Returns None ** *******************************************************************************/ static void bta_ble_energy_info_cmpl(tBTM_BLE_TX_TIME_MS tx_time, tBTM_BLE_RX_TIME_MS rx_time, tBTM_BLE_IDLE_TIME_MS idle_time, tBTM_BLE_ENERGY_USED energy_used, tBTM_STATUS status) { tBTA_STATUS st = (status == BTM_SUCCESS) ? BTA_SUCCESS: BTA_FAILURE; tBTA_DM_CONTRL_STATE ctrl_state = 0; if (BTA_SUCCESS == st) ctrl_state = bta_dm_pm_obtain_controller_state(); if (bta_dm_cb.p_energy_info_cback) bta_dm_cb.p_energy_info_cback(tx_time, rx_time, idle_time, energy_used, ctrl_state, st); } /******************************************************************************* ** ** Function bta_dm_ble_get_energy_info ** ** Description This function obtains the energy info ** ** Parameters: ** *******************************************************************************/ void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data) { tBTM_STATUS btm_status = 0; bta_dm_cb.p_energy_info_cback = p_data->ble_energy_info.p_energy_info_cback; btm_status = BTM_BleGetEnergyInfo(bta_ble_energy_info_cmpl); if (BTM_CMD_STARTED != btm_status) bta_ble_energy_info_cmpl(0, 0, 0, 0, btm_status); } /******************************************************************************* ** ** Function bta_dm_cfg_filter_cond Loading Loading @@ -5684,6 +5718,51 @@ void bta_dm_scan_filter_param_setup (tBTA_DM_MSG *p_data) } #endif /******************************************************************************* ** ** Function bta_ble_enable_scan_cmpl ** ** Description ADV payload filtering enable / disable complete callback ** ** ** Returns None ** *******************************************************************************/ static void bta_ble_energy_info_cmpl(tBTM_BLE_TX_TIME_MS tx_time, tBTM_BLE_RX_TIME_MS rx_time, tBTM_BLE_IDLE_TIME_MS idle_time, tBTM_BLE_ENERGY_USED energy_used, tBTM_STATUS status) { tBTA_STATUS st = (status == BTM_SUCCESS) ? BTA_SUCCESS: BTA_FAILURE; tBTA_DM_CONTRL_STATE ctrl_state = 0; if (BTA_SUCCESS == st) ctrl_state = bta_dm_pm_obtain_controller_state(); if (bta_dm_cb.p_energy_info_cback) bta_dm_cb.p_energy_info_cback(tx_time, rx_time, idle_time, energy_used, ctrl_state, st); } /******************************************************************************* ** ** Function bta_dm_ble_get_energy_info ** ** Description This function obtains the energy info ** ** Parameters: ** *******************************************************************************/ void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data) { tBTM_STATUS btm_status = 0; bta_dm_cb.p_energy_info_cback = p_data->ble_energy_info.p_energy_info_cback; btm_status = BTM_BleGetEnergyInfo(bta_ble_energy_info_cmpl); if (BTM_CMD_STARTED != btm_status) bta_ble_energy_info_cmpl(0, 0, 0, 0, btm_status); } #if ((defined BTA_GATT_INCLUDED) && (BTA_GATT_INCLUDED == TRUE)) #ifndef BTA_DM_GATT_CLOSE_DELAY_TOUT #define BTA_DM_GATT_CLOSE_DELAY_TOUT 1000 Loading
system/bta/dm/bta_dm_api.c +67 −55 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ #include "btm_int.h" #include <string.h> #include "utl.h" #include "vendor_ble.h" /***************************************************************************** ** Constants Loading Loading @@ -1260,8 +1261,6 @@ void bta_dmexecutecallback (tBTA_DM_EXEC_CBACK* p_callback, void * p_param) } } #if BLE_INCLUDED == TRUE /******************************************************************************* ** ** Function BTA_DmAddBleKey Loading Loading @@ -1984,7 +1983,6 @@ void BTA_DmBleEnableRemotePrivacy(BD_ADDR bd_addr, BOOLEAN privacy_enable) void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable) { #if BLE_INCLUDED == TRUE #if BLE_VND_INCLUDED == TRUE && BLE_PRIVACY_SPT == TRUE tBTA_DM_API_LOCAL_PRIVACY *p_msg; if ((p_msg = (tBTA_DM_API_LOCAL_PRIVACY *) GKI_getbuf(sizeof(tBTA_DM_API_ENABLE_PRIVACY))) != NULL) Loading @@ -1996,12 +1994,10 @@ void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable) bta_sys_sendmsg(p_msg); } #endif #else UNUSED (privacy_enable); #endif } #endif #if BLE_INCLUDED == TRUE /******************************************************************************* Loading @@ -2018,7 +2014,7 @@ void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable) ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, void BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, tBTA_BLE_MULTI_ADV_CBACK *p_cback, void *p_ref) { Loading @@ -2041,10 +2037,7 @@ tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, p_msg->p_ref = p_ref; bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } return BTA_FAILURE; } /******************************************************************************* Loading @@ -2060,29 +2053,22 @@ tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_params) void BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_params) { tBTA_DM_API_BLE_MULTI_ADV_PARAM *p_msg; UINT16 len = sizeof(tBTA_BLE_ADV_PARAMS) + sizeof(tBTA_DM_API_BLE_MULTI_ADV_PARAM); APPL_TRACE_API ("BTA_BleUpdateAdvInstParam"); if (inst_id <= BTM_BLE_MULTI_ADV_MAX && inst_id != BTA_BLE_MULTI_ADV_ILLEGAL) { if ((p_msg = (tBTA_DM_API_BLE_MULTI_ADV_PARAM *) GKI_getbuf(len)) != NULL) { memset(p_msg, 0, sizeof(tBTA_DM_API_BLE_MULTI_ADV_PARAM)); p_msg->hdr.event = BTA_DM_API_BLE_MULTI_ADV_PARAM_UPD_EVT; p_msg->inst_id = inst_id; p_msg->p_params = (void *)(p_msg + 1); memcpy(p_msg->p_params, p_params, sizeof(tBTA_BLE_ADV_PARAMS)); bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } } return BTA_FAILURE; } /******************************************************************************* Loading @@ -2102,7 +2088,7 @@ tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_par ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, void BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_data) { Loading @@ -2111,12 +2097,9 @@ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, APPL_TRACE_API ("BTA_BleCfgAdvInstData"); if (inst_id <= BTM_BLE_MULTI_ADV_MAX && inst_id != BTA_BLE_MULTI_ADV_ILLEGAL) { if ((p_msg = (tBTA_DM_API_BLE_MULTI_ADV_DATA *) GKI_getbuf(len)) != NULL) { memset(p_msg, 0, len); p_msg->hdr.event = BTA_DM_API_BLE_MULTI_ADV_DATA_EVT; p_msg->inst_id = inst_id; p_msg->is_scan_rsp = is_scan_rsp; Loading @@ -2124,11 +2107,7 @@ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, p_msg->p_data = p_data; bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } } return BTA_FAILURE; } /******************************************************************************* Loading @@ -2142,14 +2121,11 @@ tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, ** Returns BTA_SUCCESS if command started sucessfully; otherwise failure. ** *******************************************************************************/ tBTA_STATUS BTA_BleDisableAdvInstance (UINT8 inst_id) void BTA_BleDisableAdvInstance (UINT8 inst_id) { tBTA_DM_API_BLE_MULTI_ADV_DISABLE *p_msg; APPL_TRACE_API ("BTA_BleDisableAdvInstance: %d", inst_id); if (inst_id <= BTM_BLE_MULTI_ADV_MAX && inst_id != BTA_BLE_MULTI_ADV_ILLEGAL) { if ((p_msg = (tBTA_DM_API_BLE_MULTI_ADV_DISABLE *) GKI_getbuf(sizeof(tBTA_DM_API_BLE_MULTI_ADV_DISABLE))) != NULL) { Loading @@ -2157,11 +2133,8 @@ tBTA_STATUS BTA_BleDisableAdvInstance (UINT8 inst_id) p_msg->hdr.event = BTA_DM_API_BLE_MULTI_ADV_DISABLE_EVT; p_msg->inst_id = inst_id; bta_sys_sendmsg(p_msg); return BTA_SUCCESS; } } return BTA_FAILURE; } /******************************************************************************* ** Loading Loading @@ -2543,4 +2516,43 @@ BTA_API extern void BTA_DmBleObserve(BOOLEAN start, UINT8 duration, bta_sys_sendmsg(p_msg); } } /******************************************************************************* ** ** Function BTA_VendorInit ** ** Description This function initializes vendor specific ** ** Returns void ** *******************************************************************************/ void BTA_VendorInit (void) { APPL_TRACE_API("BTA_VendorInit"); } /******************************************************************************* ** ** Function BTA_VendorCleanup ** ** Description This function frees up Broadcom specific VS specific dynamic memory ** ** Returns void ** *******************************************************************************/ void BTA_VendorCleanup (void) { tBTM_BLE_VSC_CB cmn_ble_vsc_cb; #if (BLE_INCLUDED == TRUE && BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE) btm_ble_adv_filter_cleanup(); btm_ble_vendor_cleanup(); #endif BTM_BleGetVendorCapabilities(&cmn_ble_vsc_cb); if(cmn_ble_vsc_cb.adv_inst_max > 0) btm_ble_multi_adv_cleanup(); } #endif
system/bta/dm/bta_dm_int.h +3 −10 Original line number Diff line number Diff line Loading @@ -100,11 +100,9 @@ enum BTA_DM_API_BLE_SCAN_PARAM_EVT, BTA_DM_API_BLE_OBSERVE_EVT, BTA_DM_API_UPDATE_CONN_PARAM_EVT, #if BLE_PRIVACY_SPT == TRUE BTA_DM_API_LOCAL_PRIVACY_EVT, #endif BTA_DM_API_BLE_ADV_PARAM_EVT, BTA_DM_API_BLE_SET_ADV_CONFIG_EVT, BTA_DM_API_BLE_SET_SCAN_RSP_EVT, Loading Loading @@ -564,7 +562,7 @@ typedef struct typedef struct { BT_HDR hdr; void *p_cback; tBTA_BLE_MULTI_ADV_CBACK *p_cback; void *p_ref; tBTA_BLE_ADV_PARAMS *p_params; }tBTA_DM_API_BLE_MULTI_ADV_ENB; Loading Loading @@ -922,13 +920,12 @@ typedef struct tBTA_DM_SEC_CBACK *p_sec_cback; #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) tBTA_BLE_SCAN_SETUP_CBACK *p_setup_cback; #endif tBTA_DM_BLE_PF_CFG_CBACK *p_scan_filt_cfg_cback; tBTA_DM_BLE_PF_STATUS_CBACK *p_scan_filt_status_cback; tBTA_DM_BLE_PF_PARAM_CBACK *p_scan_filt_param_cback; #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; tBTA_BLE_MULTI_ADV_CBACK *p_multi_adv_cback; #endif tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; TIMER_LIST_ENT signal_strength_timer; tBTA_SIG_STRENGTH_MASK signal_strength_mask; UINT16 state; Loading Loading @@ -1186,9 +1183,7 @@ extern void bta_dm_ble_set_scan_params (tBTA_DM_MSG *p_data); extern void bta_dm_close_gatt_conn(tBTA_DM_MSG *p_data); extern void bta_dm_ble_observe (tBTA_DM_MSG *p_data); extern void bta_dm_ble_update_conn_params (tBTA_DM_MSG *p_data); #if BLE_PRIVACY_SPT == TRUE extern void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data); #endif extern void bta_dm_ble_set_adv_params (tBTA_DM_MSG *p_data); extern void bta_dm_ble_set_adv_config (tBTA_DM_MSG *p_data); extern void bta_dm_ble_set_scan_rsp (tBTA_DM_MSG *p_data); Loading Loading @@ -1245,9 +1240,7 @@ extern void bta_dm_search_cancel_transac_cmpl(tBTA_DM_MSG *p_data); extern void bta_dm_disc_rmt_name (tBTA_DM_MSG *p_data); extern tBTA_DM_PEER_DEVICE * bta_dm_find_peer_device(BD_ADDR peer_addr); #if BLE_PRIVACY_SPT == TRUE extern void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data); #endif extern void bta_dm_pm_active(BD_ADDR peer_addr); Loading
system/bta/dm/bta_dm_main.c +1 −1 Original line number Diff line number Diff line Loading @@ -118,8 +118,8 @@ const tBTA_DM_ACTION bta_dm_action[] = bta_dm_ble_disable_batch_scan, /* BTA_DM_API_BLE_DISABLE_BATCH_SCAN_EVT */ bta_dm_ble_read_scan_reports, /* BTA_DM_API_BLE_READ_SCAN_REPORTS_EVT */ bta_dm_ble_track_advertiser, /* BTA_DM_API_BLE_TRACK_ADVERTISER_EVT */ bta_dm_ble_get_energy_info, /* BTA_DM_API_BLE_ENERGY_INFO_EVT */ #endif bta_dm_ble_get_energy_info, /* BTA_DM_API_BLE_ENERGY_INFO_EVT */ #if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&( BTA_EIR_CANNED_UUID_LIST != TRUE )&&(BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) bta_dm_update_eir_uuid, /* BTA_DM_API_UPDATE_EIR_UUID_EVT */ Loading
system/bta/include/bta_api.h +26 −5 Original line number Diff line number Diff line Loading @@ -944,7 +944,6 @@ typedef union /* Security callback */ typedef void (tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC *p_data); #define BTA_BLE_MULTI_ADV_MAX BTM_BLE_MULTI_ADV_MAX #define BTA_BLE_MULTI_ADV_ILLEGAL 0 /* multi adv callback event */ Loading Loading @@ -2373,7 +2372,7 @@ BTA_API extern void BTA_DmBleBroadcast (BOOLEAN start); ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, BTA_API extern void BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, tBTA_BLE_MULTI_ADV_CBACK *p_cback,void *p_ref); /******************************************************************************* Loading @@ -2388,7 +2387,7 @@ BTA_API extern tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_para ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, BTA_API extern void BTA_BleUpdateAdvInstParam (UINT8 inst_id, tBTA_BLE_ADV_PARAMS *p_params); /******************************************************************************* Loading @@ -2403,7 +2402,7 @@ BTA_API extern tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, BTA_API extern void BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_data); /******************************************************************************* Loading @@ -2417,7 +2416,7 @@ BTA_API extern tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan ** Returns None ** *******************************************************************************/ BTA_API extern tBTA_STATUS BTA_BleDisableAdvInstance(UINT8 inst_id); BTA_API extern void BTA_BleDisableAdvInstance(UINT8 inst_id); /******************************************************************************* ** Loading Loading @@ -2606,6 +2605,28 @@ BTA_API extern void BTA_DmBleTrackAdvertiser(tBTA_DM_BLE_REF_VALUE ref_value, *******************************************************************************/ BTA_API extern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK *p_cmpl_cback); /******************************************************************************* ** ** Function BTA_BrcmInit ** ** Description This function initializes Broadcom specific VS handler in BTA ** ** Returns void ** *******************************************************************************/ BTA_API extern void BTA_VendorInit (void); /******************************************************************************* ** ** Function BTA_BrcmCleanup ** ** Description This function frees up Broadcom specific VS specific dynamic memory ** ** Returns void ** *******************************************************************************/ BTA_API extern void BTA_VendorCleanup (void); #endif #ifdef __cplusplus Loading