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

Commit 931c0cfd authored by Satya Calloji's avatar Satya Calloji Committed by Wei Wang
Browse files

LE Onfound and Onlost feature

BTIF and stack layer changes for onfound/onlost feature

Change-Id: Id52cdd5855ca8c0ff276b42613b51c4cd3882bfc
parent 8469d3a2
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -5426,6 +5426,21 @@ void bta_dm_ble_read_scan_reports(tBTA_DM_MSG *p_data)
#endif
}

/*******************************************************************************
**
** Function         bta_dm_ble_track_advertiser
**
** Description      This function tracks the specific advertiser
**
** Parameters:
**
*******************************************************************************/
void bta_dm_ble_track_advertiser(tBTA_DM_MSG *p_data)
{
    BTM_BleTrackAdvertiser(p_data->ble_track_advert.p_track_adv_cback,
                           p_data->ble_track_advert.ref_value);
}

/*******************************************************************************
**
** Function         bta_ble_scan_setup_cb
+28 −1
Original line number Diff line number Diff line
@@ -1705,6 +1705,33 @@ BTA_API extern void BTA_DmBleReadScanReports(tBTA_BLE_SCAN_MODE scan_type,
    }
}

/*******************************************************************************
**
** Function         BTA_DmBleTrackAdvertiser
**
** Description      This function is called to track advertiser
**
** Parameters       ref_value - Reference value
**                  p_track_adv_cback - Track ADV callback
**
** Returns          None
**
*******************************************************************************/
BTA_API extern void BTA_DmBleTrackAdvertiser(tBTA_DM_BLE_REF_VALUE ref_value,
                            tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback)
{
    tBTA_DM_API_TRACK_ADVERTISER  *p_msg;

    if ((p_msg = (tBTA_DM_API_TRACK_ADVERTISER *)
         GKI_getbuf(sizeof(tBTA_DM_API_TRACK_ADVERTISER))) != NULL)
    {
        p_msg->hdr.event = BTA_DM_API_BLE_TRACK_ADVERTISER_EVT;
        p_msg->p_track_adv_cback = p_track_adv_cback;
        p_msg->ref_value = ref_value;
        bta_sys_sendmsg(p_msg);
    }
}

/*******************************************************************************
**
** Function         BTA_DmBleBroadcast
+6 −4
Original line number Diff line number Diff line
@@ -637,10 +637,8 @@ typedef struct
typedef struct
{
    BT_HDR                  hdr;
    UINT8 track_adv_action;
    tBLE_ADDR_TYPE addr_type;
    tBLE_BD_ADDR *p_bda;
    UINT8 onlost_timeout;
    tBTA_DM_BLE_REF_VALUE ref_value;
    tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback;
} tBTA_DM_API_TRACK_ADVERTISER;

#endif /* BLE_INCLUDED */
@@ -914,7 +912,9 @@ typedef struct
    BOOLEAN                     is_bta_dm_active;
    tBTA_DM_ACTIVE_LINK         device_list;
    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;
@@ -1197,6 +1197,8 @@ extern void bta_dm_ble_setup_storage(tBTA_DM_MSG *p_data);
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);

#endif
extern void bta_dm_set_encryption(tBTA_DM_MSG *p_data);
extern void bta_dm_confirm(tBTA_DM_MSG *p_data);
+1 −0
Original line number Diff line number Diff line
@@ -117,6 +117,7 @@ const tBTA_DM_ACTION bta_dm_action[] =
    bta_dm_ble_enable_batch_scan,  /* BTA_DM_API_BLE_ENABLE_BATCH_SCAN_EVT */
    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 */
#endif

#if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&( BTA_EIR_CANNED_UUID_LIST != TRUE )&&(BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0)
+40 −8
Original line number Diff line number Diff line
@@ -1132,9 +1132,16 @@ typedef void (tBTA_BLE_SCAN_THRESHOLD_CBACK)(tBTA_DM_BLE_REF_VALUE ref_value);
typedef void (tBTA_BLE_SCAN_REP_CBACK) (tBTA_DM_BLE_REF_VALUE ref_value, UINT8 report_format,
                                        UINT8 num_records, UINT16 data_len,
                                        UINT8* p_rep_data, tBTA_STATUS status);

typedef void (tBTA_BLE_SCAN_SETUP_CBACK) (tBTA_BLE_BATCH_SCAN_EVT evt, tBTA_DM_BLE_REF_VALUE ref_value,
                                          tBTA_STATUS status);

typedef void (tBTA_BLE_TRACK_ADV_CMPL_CBACK)(int action, tBTA_STATUS status,
                                tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, tBTA_DM_BLE_REF_VALUE ref_value);

typedef void (tBTA_BLE_TRACK_ADV_CBACK)(int filt_index, tBLE_ADDR_TYPE addr_type, BD_ADDR bda,
                                        int adv_state, tBTA_DM_BLE_REF_VALUE ref_value);

#else
typedef UINT8                       tBTA_DM_BLE_SEC_ACT;
#endif
@@ -2413,7 +2420,7 @@ BTA_API extern void BTA_DmBleUpdateConnectionParams(BD_ADDR bd_addr, UINT16 min_
**                  p_setup_cback - Setup callback
**                  p_thres_cback - Threshold callback
**                  p_rep_cback - Reports callback
**                  p_ref - Ref pointer
**                  ref_value - Reference value
**
** Returns           None
**
@@ -2437,6 +2444,7 @@ BTA_API extern void BTA_DmBleSetStorageParams(UINT8 batch_scan_full_max,
**                  scan_window - Scan window
**                  discard_rule -Discard rules
**                  addr_type - Address type
**                  ref_value - Reference value
**
** Returns           None
**
@@ -2454,6 +2462,7 @@ BTA_API extern void BTA_DmBleEnableBatchScan(tBTA_BLE_SCAN_MODE scan_mode,
** Description      This function is called to read the batch scan reports
**
** Parameters       scan_mode -Batch scan mode
**                  ref_value - Reference value
**
** Returns          None
**
@@ -2467,7 +2476,7 @@ BTA_API extern void BTA_DmBleReadScanReports(tBTA_BLE_SCAN_MODE scan_type,
**
** Description      This function is called to disable the batch scanning
**
** Parameters       None
** Parameters       ref_value - Reference value
**
** Returns          None
**
@@ -2480,7 +2489,9 @@ BTA_API extern void BTA_DmBleDisableBatchScan(tBTA_DM_BLE_REF_VALUE ref_value);
**
** Description      This function is called to enable the adv data payload filter
**
** Parameters     action -1: enable the filter condition, 0 - disables the filter condition
** Parameters       action - enable or disable the APCF feature
**                  p_cmpl_cback - Command completed callback
**                  ref_value - Reference value
**
** Returns          void
**
@@ -2495,8 +2506,12 @@ BTA_API extern void BTA_DmEnableScanFilter(UINT8 action,
**
** Description      This function is called to setup the filter params
**
** Parameters      action: to read/write/clear
**                      filt_index - filter index
** Parameters       p_target: enable the filter condition on a target device; if NULL
**                  filt_index - Filter index
**                  p_filt_params -Filter parameters
**                  ref_value - Reference value
**                  action - Add, delete or clear
**                  p_cmpl_back - Command completed callback
**
** Returns          void
**
@@ -2516,10 +2531,11 @@ BTA_API extern void BTA_DmBleScanFilterSetup(UINT8 action,
**                  condition.
**
** Parameters       action: to read/write/clear
**                  cond_type: filter condition type.
**                  filt_index - filter index
**                  cond_type: filter condition type
**                  filt_index - Filter index
**                  p_cond: filter condition parameter
**                  ref_value:    Reference
**                  p_cmpl_back - Command completed callback
**                  ref_value - Reference value
**
** Returns          void
**
@@ -2531,6 +2547,22 @@ BTA_API extern void BTA_DmBleCfgFilterCondition(tBTA_DM_BLE_SCAN_COND_OP action,
                                                 tBTA_DM_BLE_PF_CFG_CBACK *p_cmpl_cback,
                                                 tBTA_DM_BLE_REF_VALUE ref_value);


/*******************************************************************************
**
** Function         BTA_DmBleTrackAdvertiser
**
** Description      This function is called to track the advertiser
**
** Parameters    ref_value - Reference value
**               p_track_adv_cback - ADV callback
**
** Returns          None
**
*******************************************************************************/
BTA_API extern void BTA_DmBleTrackAdvertiser(tBTA_DM_BLE_REF_VALUE ref_value,
                            tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback);

#endif

#ifdef __cplusplus
Loading