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

Commit 3f970ca3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add empty filter when CSIS discovery start"

parents 73d00b63 9c8568ed
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -295,6 +295,7 @@ cc_test {
    ],
    srcs : [
        ":TestMockBtif",
        ":TestMockMainShimLeScanning",
        "csis/csis_client.cc",
        "csis/csis_client_test.cc",
        "groups/groups.cc",
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include "csis_types.h"
#include "gap_api.h"
#include "gatt_api.h"
#include "main/shim/le_scanning_manager.h"
#include "osi/include/osi.h"
#include "osi/include/properties.h"
#include "stack/btm/btm_dev.h"
@@ -1126,6 +1127,8 @@ class CsisClientImpl : public CsisClient {
  void CsisActiveObserverSet(bool enable) {
    LOG(INFO) << __func__ << " CSIS Discovery SET: " << enable;

    bluetooth::shim::set_empty_filter(enable);

    BTA_DmBleCsisObserve(
        enable, [](tBTA_DM_SEARCH_EVT event, tBTA_DM_SEARCH* p_data) {
          /* If there's no instance we are most likely shutting
+1 −1
Original line number Diff line number Diff line
@@ -674,7 +674,7 @@ struct LeScanningManager::impl : public bluetooth::hci::LeAddressManagerCallback
                advertising_filter_parameter.delivery_mode,
                advertising_filter_parameter.onfound_timeout,
                advertising_filter_parameter.onfound_timeout_cnt,
                advertising_filter_parameter.rssi_low_thres,
                advertising_filter_parameter.rssi_low_thresh,
                advertising_filter_parameter.onlost_timeout,
                advertising_filter_parameter.num_of_tracking_entries),
            module_handler_->BindOnceOn(this, &impl::on_advertising_filter_complete));
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ class AdvertisingFilterParameter {
  DeliveryMode delivery_mode;
  uint16_t onfound_timeout;
  uint8_t onfound_timeout_cnt;
  uint8_t rssi_low_thres;
  uint8_t rssi_low_thresh;
  uint16_t onlost_timeout;
  uint16_t num_of_tracking_entries;
};
+22 −1
Original line number Diff line number Diff line
@@ -47,6 +47,10 @@ using bluetooth::ToGdAddress;

namespace {
constexpr char kBtmLogTag[] = "SCAN";
constexpr uint16_t kAllowAllFilter = 0x00;
constexpr uint16_t kListLogicOr = 0x01;
constexpr uint8_t kFilterLogicOr = 0x00;
constexpr uint8_t kLowestRssiValue = 129;
}

extern void btm_ble_process_adv_pkt_cont_for_inquiry(
@@ -123,7 +127,7 @@ class BleScannerInterfaceImpl : public BleScannerInterface,
            filt_param->found_timeout;
        advertising_filter_parameter.onfound_timeout_cnt =
            filt_param->found_timeout_cnt;
        advertising_filter_parameter.rssi_low_thres =
        advertising_filter_parameter.rssi_low_thresh =
            filt_param->rssi_low_thres;
        advertising_filter_parameter.onlost_timeout = filt_param->lost_timeout;
        advertising_filter_parameter.num_of_tracking_entries =
@@ -539,3 +543,20 @@ BleScannerInterface* bluetooth::shim::get_ble_scanner_instance() {
void bluetooth::shim::init_scanning_manager() {
  bt_le_scanner_instance->Init();
}

void bluetooth::shim::set_empty_filter(bool enable) {
  bluetooth::hci::AdvertisingFilterParameter advertising_filter_parameter;
  bluetooth::shim::GetScanning()->ScanFilterParameterSetup(
      bluetooth::hci::ApcfAction::DELETE, 0x00, advertising_filter_parameter);
  if (enable) {
    /* Add an allow-all filter on index 0 */
    advertising_filter_parameter.delivery_mode =
        bluetooth::hci::DeliveryMode::IMMEDIATE;
    advertising_filter_parameter.feature_selection = kAllowAllFilter;
    advertising_filter_parameter.list_logic_type = kListLogicOr;
    advertising_filter_parameter.filter_logic_type = kFilterLogicOr;
    advertising_filter_parameter.rssi_high_thresh = kLowestRssiValue;
    bluetooth::shim::GetScanning()->ScanFilterParameterSetup(
        bluetooth::hci::ApcfAction::ADD, 0x00, advertising_filter_parameter);
  }
}
 No newline at end of file
Loading