Loading system/bta/dm/bta_dm_act.c +48 −1 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ static void bta_dm_ctrl_features_rd_cmpl_cback(tBTM_STATUS result); static void bta_dm_remove_sec_dev_entry(BD_ADDR remote_bd_addr); extern void sdpu_uuid16_to_uuid128(UINT16 uuid16, UINT8* p_uuid128); extern tBTA_DM_CONTRL_STATE bta_dm_pm_obtain_controller_state(void); const UINT16 bta_service_id_to_uuid_lkup_tbl [BTA_MAX_SERVICE_ID] = { Loading Loading @@ -5503,7 +5504,7 @@ static void bta_ble_scan_cfg_cmpl(tBTM_BLE_PF_ACTION action, tBTM_BLE_SCAN_COND_ /******************************************************************************* ** ** Function bta_ble_enable_scan_cmpl ** Function bta_ble_status_cmpl ** ** Description ADV payload filtering enable / disable complete callback ** Loading @@ -5522,6 +5523,51 @@ 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 @@ -5593,6 +5639,7 @@ void bta_dm_enable_scan_filter(tBTA_DM_MSG *p_data) p_data->ble_enable_scan_filt.ref_value, status); } /******************************************************************************* ** ** Function bta_dm_scan_filter_param_setup Loading system/bta/dm/bta_dm_api.c +27 −0 Original line number Diff line number Diff line Loading @@ -2329,6 +2329,33 @@ void BTA_DmBleScanFilterSetup(UINT8 action, tBTA_DM_BLE_PF_FILT_INDEX filt_index #endif } /******************************************************************************* ** ** Function BTA_DmBleGetEnergyInfo ** ** Description This function is called to obtain the energy info ** ** Parameters p_cmpl_cback - Command complete callback ** ** Returns void ** *******************************************************************************/ void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK *p_cmpl_cback) { tBTA_DM_API_ENERGY_INFO *p_msg; APPL_TRACE_API ("BTA_DmBleGetEnergyInfo"); UINT16 len = sizeof(tBTA_DM_API_ENERGY_INFO) + sizeof(tBLE_BD_ADDR); if ((p_msg = (tBTA_DM_API_ENERGY_INFO *) GKI_getbuf(len)) != NULL) { memset (p_msg, 0, len); p_msg->hdr.event = BTA_DM_API_BLE_ENERGY_INFO_EVT; p_msg->p_energy_info_cback = p_cmpl_cback; bta_sys_sendmsg(p_msg); } } /******************************************************************************* ** ** Function BTA_DmEnableScanFilter Loading system/bta/dm/bta_dm_int.h +10 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ enum BTA_DM_API_BLE_DISABLE_BATCH_SCAN_EVT, BTA_DM_API_BLE_READ_SCAN_REPORTS_EVT, BTA_DM_API_BLE_TRACK_ADVERTISER_EVT, BTA_DM_API_BLE_ENERGY_INFO_EVT, #endif #if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&( BTA_EIR_CANNED_UUID_LIST != TRUE )&&(BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) Loading Loading @@ -641,6 +642,12 @@ typedef struct tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback; } tBTA_DM_API_TRACK_ADVERTISER; typedef struct { BT_HDR hdr; tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; } tBTA_DM_API_ENERGY_INFO; #endif /* BLE_INCLUDED */ typedef struct Loading Loading @@ -810,6 +817,7 @@ typedef union tBTA_DM_API_READ_SCAN_REPORTS ble_read_reports; tBTA_DM_API_DISABLE_SCAN ble_disable_scan; tBTA_DM_API_TRACK_ADVERTISER ble_track_advert; tBTA_DM_API_ENERGY_INFO ble_energy_info; #endif tBTA_DM_API_SET_AFH_CHANNEL_ASSESSMENT set_afh_channel_assessment; Loading Loading @@ -918,6 +926,7 @@ typedef struct 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; 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 @@ -1198,6 +1207,7 @@ extern void bta_dm_ble_enable_batch_scan(tBTA_DM_MSG * p_data); extern void bta_dm_ble_disable_batch_scan(tBTA_DM_MSG * p_data); extern void bta_dm_ble_read_scan_reports(tBTA_DM_MSG * p_data); extern void bta_dm_ble_track_advertiser(tBTA_DM_MSG * p_data); extern void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data); #endif extern void bta_dm_set_encryption(tBTA_DM_MSG *p_data); Loading system/bta/dm/bta_dm_main.c +1 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ 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 #if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&( BTA_EIR_CANNED_UUID_LIST != TRUE )&&(BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) Loading system/bta/dm/bta_dm_pm.c +21 −0 Original line number Diff line number Diff line Loading @@ -970,3 +970,24 @@ static void bta_dm_pm_set_sniff_policy(tBTA_DM_PEER_DEVICE *p_dev, BOOLEAN bDisa BTM_SetLinkPolicy(p_dev->peer_bdaddr, &policy_setting); } /******************************************************************************* ** ** Function bta_dm_pm_obtain_controller_state ** ** Description This function obtains the consolidated controller power state ** ** Parameters: ** *******************************************************************************/ tBTA_DM_CONTRL_STATE bta_dm_pm_obtain_controller_state(void) { /* Did not use counts as it is not sure, how accurate the count values are in ** bta_dm_cb.device_list.count > 0 || bta_dm_cb.device_list.le_count > 0 */ tBTA_DM_CONTRL_STATE cur_state = BTA_DM_CONTRL_UNKNOWN; cur_state = BTM_PM_ReadControllerState(); APPL_TRACE_DEBUG("bta_dm_pm_obtain_controller_state: %d", cur_state); return cur_state; } Loading
system/bta/dm/bta_dm_act.c +48 −1 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ static void bta_dm_ctrl_features_rd_cmpl_cback(tBTM_STATUS result); static void bta_dm_remove_sec_dev_entry(BD_ADDR remote_bd_addr); extern void sdpu_uuid16_to_uuid128(UINT16 uuid16, UINT8* p_uuid128); extern tBTA_DM_CONTRL_STATE bta_dm_pm_obtain_controller_state(void); const UINT16 bta_service_id_to_uuid_lkup_tbl [BTA_MAX_SERVICE_ID] = { Loading Loading @@ -5503,7 +5504,7 @@ static void bta_ble_scan_cfg_cmpl(tBTM_BLE_PF_ACTION action, tBTM_BLE_SCAN_COND_ /******************************************************************************* ** ** Function bta_ble_enable_scan_cmpl ** Function bta_ble_status_cmpl ** ** Description ADV payload filtering enable / disable complete callback ** Loading @@ -5522,6 +5523,51 @@ 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 @@ -5593,6 +5639,7 @@ void bta_dm_enable_scan_filter(tBTA_DM_MSG *p_data) p_data->ble_enable_scan_filt.ref_value, status); } /******************************************************************************* ** ** Function bta_dm_scan_filter_param_setup Loading
system/bta/dm/bta_dm_api.c +27 −0 Original line number Diff line number Diff line Loading @@ -2329,6 +2329,33 @@ void BTA_DmBleScanFilterSetup(UINT8 action, tBTA_DM_BLE_PF_FILT_INDEX filt_index #endif } /******************************************************************************* ** ** Function BTA_DmBleGetEnergyInfo ** ** Description This function is called to obtain the energy info ** ** Parameters p_cmpl_cback - Command complete callback ** ** Returns void ** *******************************************************************************/ void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK *p_cmpl_cback) { tBTA_DM_API_ENERGY_INFO *p_msg; APPL_TRACE_API ("BTA_DmBleGetEnergyInfo"); UINT16 len = sizeof(tBTA_DM_API_ENERGY_INFO) + sizeof(tBLE_BD_ADDR); if ((p_msg = (tBTA_DM_API_ENERGY_INFO *) GKI_getbuf(len)) != NULL) { memset (p_msg, 0, len); p_msg->hdr.event = BTA_DM_API_BLE_ENERGY_INFO_EVT; p_msg->p_energy_info_cback = p_cmpl_cback; bta_sys_sendmsg(p_msg); } } /******************************************************************************* ** ** Function BTA_DmEnableScanFilter Loading
system/bta/dm/bta_dm_int.h +10 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ enum BTA_DM_API_BLE_DISABLE_BATCH_SCAN_EVT, BTA_DM_API_BLE_READ_SCAN_REPORTS_EVT, BTA_DM_API_BLE_TRACK_ADVERTISER_EVT, BTA_DM_API_BLE_ENERGY_INFO_EVT, #endif #if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&( BTA_EIR_CANNED_UUID_LIST != TRUE )&&(BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) Loading Loading @@ -641,6 +642,12 @@ typedef struct tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback; } tBTA_DM_API_TRACK_ADVERTISER; typedef struct { BT_HDR hdr; tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback; } tBTA_DM_API_ENERGY_INFO; #endif /* BLE_INCLUDED */ typedef struct Loading Loading @@ -810,6 +817,7 @@ typedef union tBTA_DM_API_READ_SCAN_REPORTS ble_read_reports; tBTA_DM_API_DISABLE_SCAN ble_disable_scan; tBTA_DM_API_TRACK_ADVERTISER ble_track_advert; tBTA_DM_API_ENERGY_INFO ble_energy_info; #endif tBTA_DM_API_SET_AFH_CHANNEL_ASSESSMENT set_afh_channel_assessment; Loading Loading @@ -918,6 +926,7 @@ typedef struct 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; 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 @@ -1198,6 +1207,7 @@ extern void bta_dm_ble_enable_batch_scan(tBTA_DM_MSG * p_data); extern void bta_dm_ble_disable_batch_scan(tBTA_DM_MSG * p_data); extern void bta_dm_ble_read_scan_reports(tBTA_DM_MSG * p_data); extern void bta_dm_ble_track_advertiser(tBTA_DM_MSG * p_data); extern void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data); #endif extern void bta_dm_set_encryption(tBTA_DM_MSG *p_data); Loading
system/bta/dm/bta_dm_main.c +1 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ 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 #if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&( BTA_EIR_CANNED_UUID_LIST != TRUE )&&(BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) Loading
system/bta/dm/bta_dm_pm.c +21 −0 Original line number Diff line number Diff line Loading @@ -970,3 +970,24 @@ static void bta_dm_pm_set_sniff_policy(tBTA_DM_PEER_DEVICE *p_dev, BOOLEAN bDisa BTM_SetLinkPolicy(p_dev->peer_bdaddr, &policy_setting); } /******************************************************************************* ** ** Function bta_dm_pm_obtain_controller_state ** ** Description This function obtains the consolidated controller power state ** ** Parameters: ** *******************************************************************************/ tBTA_DM_CONTRL_STATE bta_dm_pm_obtain_controller_state(void) { /* Did not use counts as it is not sure, how accurate the count values are in ** bta_dm_cb.device_list.count > 0 || bta_dm_cb.device_list.le_count > 0 */ tBTA_DM_CONTRL_STATE cur_state = BTA_DM_CONTRL_UNKNOWN; cur_state = BTM_PM_ReadControllerState(); APPL_TRACE_DEBUG("bta_dm_pm_obtain_controller_state: %d", cur_state); return cur_state; }