Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95421117 authored by Prerepa Viswanadham's avatar Prerepa Viswanadham Committed by Android Git Automerger
Browse files

am 235759bc: Use run time parameters to control LE features

* commit '235759bc':
  Use run time parameters to control LE features
parents c55fec28 235759bc
Loading
Loading
Loading
Loading
+170 −91
Original line number Diff line number Diff line
@@ -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
}
@@ -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
@@ -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)
    {
@@ -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);
    }
}
/*******************************************************************************
**
@@ -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);
    }
}
/*******************************************************************************
**
@@ -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);
    }

}
/*******************************************************************************
**
@@ -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);
    }
}

/*******************************************************************************
@@ -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,
@@ -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
}

/*******************************************************************************
@@ -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
}

/*******************************************************************************
@@ -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
}

/*******************************************************************************
@@ -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
}

/*******************************************************************************
@@ -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
@@ -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
@@ -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
+67 −55
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#include "btm_int.h"
#include <string.h>
#include "utl.h"
#include "vendor_ble.h"

/*****************************************************************************
**  Constants
@@ -1260,8 +1261,6 @@ void bta_dmexecutecallback (tBTA_DM_EXEC_CBACK* p_callback, void * p_param)
    }
}

#if BLE_INCLUDED == TRUE

/*******************************************************************************
**
** Function         BTA_DmAddBleKey
@@ -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)
@@ -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
/*******************************************************************************
@@ -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)
{
@@ -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;
}

/*******************************************************************************
@@ -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;
}

/*******************************************************************************
@@ -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)
{
@@ -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;
@@ -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;
}

/*******************************************************************************
@@ -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)
    {
@@ -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;
}

/*******************************************************************************
**
@@ -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
+3 −10
Original line number Diff line number Diff line
@@ -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,
@@ -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;
@@ -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;
@@ -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);
@@ -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);

+1 −1
Original line number Diff line number Diff line
@@ -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      */
+26 −5
Original line number Diff line number Diff line
@@ -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 */
@@ -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);

/*******************************************************************************
@@ -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);

/*******************************************************************************
@@ -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);

/*******************************************************************************
@@ -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);

/*******************************************************************************
**
@@ -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