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

Commit ed011d58 authored by Steven Liu's avatar Steven Liu
Browse files

Get the default ble conn interval for GATT client.

Flag: com.android.bluetooth.flags.channel_sounding_25q2_apis
Bug: 367409858
Bug: 381631939
Test: m com.android.btservices

Change-Id: Ifc375e557721fa5af463d58c17a4e5d0f013928e
parent 01172369
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@
#include "stack/include/bt_types.h"
#include "stack/include/btm_ble_addr.h"
#include "stack/include/gap_api.h"
#include "stack/include/l2cap_interface.h"
#include "stack/include/main_thread.h"
#include "types/ble_address_with_type.h"
#include "types/bluetooth/uuid.h"
@@ -257,9 +258,13 @@ public:
      log::debug("no ongoing measurement, skip");
      return;
    }
    if (tracker->conn_interval_ != evt.interval) {
      tracker->conn_interval_ = evt.interval;
      log::info("conn interval is updated as {}", evt.interval);
      callbacks_->OnConnIntervalUpdated(tracker->address_for_cs_, tracker->conn_interval_);
    } else {
      log::debug("conn interval was not updated");
    }
  }

  void OnGattConnected(const tBTA_GATTC_OPEN& evt) {
@@ -285,6 +290,9 @@ public:
    }
    tracker->conn_id_ = evt.conn_id;
    tracker->is_connected_ = true;
    tracker->conn_interval_ =
            bluetooth::stack::l2cap::get_interface().L2CA_GetBleConnInterval(tracker->address_);
    log::debug("The initial conn interval {}", tracker->conn_interval_);
    log::info("Search service");
    BTA_GATTC_ServiceSearchRequest(tracker->conn_id_, kRangingService);
  }
+1 −1
Original line number Diff line number Diff line
@@ -508,7 +508,7 @@ struct DistanceMeasurementManager::impl : bluetooth::hal::RangingHalCallback {

  void handle_conn_interval_updated(const Address& address, uint16_t connection_handle,
                                    uint16_t conn_interval) {
    if (com::android::bluetooth::flags::channel_sounding_25q2_apis()) {
    if (!com::android::bluetooth::flags::channel_sounding_25q2_apis()) {
      log::debug("connection interval is not required.");
      return;
    }
+1 −0
Original line number Diff line number Diff line
@@ -638,6 +638,7 @@ public:
   ******************************************************************************/
  virtual void L2CA_Consolidate(const RawAddress& identity_addr, const RawAddress& rpa) = 0;
  virtual tHCI_ROLE L2CA_GetBleConnRole(const RawAddress& bd_addr) = 0;
  virtual uint16_t L2CA_GetBleConnInterval(const RawAddress& bd_addr) = 0;

  /*******************************************************************************
   **
+1 −0
Original line number Diff line number Diff line
@@ -705,6 +705,7 @@ void L2CA_LockBleConnParamsForProfileConnection(const RawAddress& rem_bda, bool
 ******************************************************************************/
void L2CA_Consolidate(const RawAddress& identity_addr, const RawAddress& rpa);
[[nodiscard]] tHCI_ROLE L2CA_GetBleConnRole(const RawAddress& bd_addr);
[[nodiscard]] uint16_t L2CA_GetBleConnInterval(const RawAddress& bd_addr);

void L2CA_AdjustConnectionIntervals(uint16_t* min_interval, uint16_t* max_interval,
                                    uint16_t floor_interval);
+1 −0
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@ public:
  void L2CA_LockBleConnParamsForServiceDiscovery(const RawAddress& bd_addr, bool lock) override;
  void L2CA_LockBleConnParamsForProfileConnection(const RawAddress& bd_addr, bool lock) override;
  [[nodiscard]] tHCI_ROLE L2CA_GetBleConnRole(const RawAddress& bd_addr) override;
  [[nodiscard]] uint16_t L2CA_GetBleConnInterval(const RawAddress& bd_addr) override;
  [[nodiscard]] bool L2CA_SetLeGattTimeout(const RawAddress& bd_addr, uint16_t idle_tout) override;
  [[nodiscard]] bool L2CA_MarkLeLinkAsActive(const RawAddress& bd_addr) override;
  [[nodiscard]] bool L2CA_GetPeerLECocConfig(uint16_t lcid, tL2CAP_LE_CFG_INFO* peer_cfg) override;
Loading