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

Commit 0db3cbc3 authored by Chris Manton's avatar Chris Manton Committed by Gerrit Code Review
Browse files

Merge changes I37e29f23,I512714db,If8acc10e

* changes:
  dumpsys: Clarify dumpsys acceptlist sizing
  shim: Remove le from shadow accept list after connection
  Add include/hardware::bthh_connection_state_text
parents d6a2bfdf 118d4a17
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#define ANDROID_INCLUDE_BT_HH_H

#include <stdint.h>
#include <string>

__BEGIN_DECLS

@@ -26,39 +27,31 @@ __BEGIN_DECLS
/* HH connection states */
typedef enum {
  BTHH_CONN_STATE_CONNECTED = 0,
  BTHH_CONN_STATE_CONNECTING,
  BTHH_CONN_STATE_DISCONNECTED,
  BTHH_CONN_STATE_DISCONNECTING,
  BTHH_CONN_STATE_FAILED_MOUSE_FROM_HOST,
  BTHH_CONN_STATE_FAILED_KBD_FROM_HOST,
  BTHH_CONN_STATE_FAILED_TOO_MANY_DEVICES,
  BTHH_CONN_STATE_FAILED_NO_BTHID_DRIVER,
  BTHH_CONN_STATE_FAILED_GENERIC,
  BTHH_CONN_STATE_UNKNOWN
  BTHH_CONN_STATE_CONNECTING = 1,
  BTHH_CONN_STATE_DISCONNECTED = 2,
  BTHH_CONN_STATE_DISCONNECTING = 3,
  BTHH_CONN_STATE_UNKNOWN = 0xff,
} bthh_connection_state_t;

__END_DECLS
#define CASE_RETURN_TEXT(code) \
  case code:                   \
    return #code

static inline std::string bthh_connection_state_text(
inline std::string bthh_connection_state_text(
    const bthh_connection_state_t& state) {
  switch (state) {
    CASE_RETURN_TEXT(BTHH_CONN_STATE_CONNECTED);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_CONNECTING);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_DISCONNECTED);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_DISCONNECTING);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_FAILED_MOUSE_FROM_HOST);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_FAILED_KBD_FROM_HOST);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_FAILED_TOO_MANY_DEVICES);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_FAILED_NO_BTHID_DRIVER);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_FAILED_GENERIC);
    CASE_RETURN_TEXT(BTHH_CONN_STATE_UNKNOWN);
    default:
      return std::string("UNKNOWN[%u]", state);
  }
}
#undef CASE_RETURN_TEXT
__BEGIN_DECLS

typedef enum {
  BTHH_OK = 0,
+11 −4
Original line number Diff line number Diff line
@@ -859,9 +859,10 @@ struct shim::legacy::Acl::impl {
    for (auto& entry : history) {
      LOG_DEBUG("%s", entry.c_str());
    }
    LOG_DEBUG("Shadow le accept list  size:%hhu",
              controller_get_interface()->get_ble_acceptlist_size());
    const auto acceptlist = shadow_acceptlist_.GetCopy();
    LOG_DEBUG("Shadow le accept list  size:%-3zu controller_max_size:%hhu",
              acceptlist.size(),
              controller_get_interface()->get_ble_acceptlist_size());
    for (auto& entry : acceptlist) {
      LOG_DEBUG("acceptlist:%s", entry.ToString().c_str());
    }
@@ -874,10 +875,12 @@ struct shim::legacy::Acl::impl {
    for (auto& entry : history) {
      LOG_DUMPSYS(fd, "%s", entry.c_str());
    }
    LOG_DUMPSYS(fd, "Shadow le accept list  size:%hhu",
    auto acceptlist = shadow_acceptlist_.GetCopy();
    LOG_DUMPSYS(fd,
                "Shadow le accept list  size:%-3zu controller_max_size:%hhu",
                acceptlist.size(),
                controller_get_interface()->get_ble_acceptlist_size());
    unsigned cnt = 0;
    auto acceptlist = shadow_acceptlist_.GetCopy();
    for (auto& entry : acceptlist) {
      LOG_DUMPSYS(fd, "%03u le acceptlist:%s", ++cnt, entry.ToString().c_str());
    }
@@ -1287,6 +1290,10 @@ void shim::legacy::Acl::OnLeConnectSuccess(
  RawAddress peer_rpa = RawAddress::kEmpty;  /* TODO enhanced */
  uint8_t peer_addr_type = 0;                /* TODO public */

  // Once an le connection has successfully been established
  // the device address is removed from the controller accept list.
  pimpl_->shadow_acceptlist_.Remove(address_with_type);

  TRY_POSTING_ON_MAIN(
      acl_interface_.connection.le.on_connected, legacy_address_with_type,
      handle, ToLegacyRole(connection_role), conn_interval, conn_latency,