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

Commit 59a10c99 authored by Martin Brabham's avatar Martin Brabham
Browse files

Floss: AllowWakeByHid for bonded LE HID devices.

Bug: 230604670
Test: mma -j $(nproc)
Test: ./build.py
Test: system/gd/cert/run --clean --topshim
Tag: #floss
Change-Id: I8d3183a913de97da2779df228f9028b9d8b5f075
parent bed8983b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -241,6 +241,17 @@ bt_status_t btif_storage_load_bonded_hid_info(void);
 ******************************************************************************/
bt_status_t btif_storage_remove_hid_info(const RawAddress& remote_bd_addr);

/*******************************************************************************
 *
 * Function         btif_storage_get_hid_device_addresses
 *
 * Description      BTIF storage API - Finds all bonded HID devices
 *
 * Returns          std::vector of RawAddress
 *
 ******************************************************************************/
std::vector<RawAddress> btif_storage_get_hid_device_addresses(void);

/** Loads information about bonded hearing aid devices */
void btif_storage_load_bonded_hearing_aids();

+27 −0
Original line number Diff line number Diff line
@@ -30,6 +30,12 @@

#define LOG_TAG "bt_btif_storage"

constexpr char kPrivateAddressPrefix[] = "xx:xx:xx:xx";
#define PRIVATE_ADDRESS(addr)                                            \
  (addr.ToString()                                                       \
       .replace(0, strlen(kPrivateAddressPrefix), kPrivateAddressPrefix) \
       .c_str())

#include "btif_storage.h"

#include <alloca.h>
@@ -1594,6 +1600,27 @@ bt_status_t btif_storage_remove_hid_info(const RawAddress& remote_bd_addr) {
  return BT_STATUS_SUCCESS;
}

/*******************************************************************************
 *
 * Function         btif_storage_get_hid_device_addresses
 *
 * Description      BTIF storage API - Finds all bonded HID devices
 *
 * Returns          std::vector of RawAddress
 *
 ******************************************************************************/
std::vector<RawAddress> btif_storage_get_hid_device_addresses(void) {
  std::vector<RawAddress> hid_addresses;
  for (const auto& bd_addr : btif_config_get_paired_devices()) {
    auto name = bd_addr.ToString();
    int value;
    if (!btif_config_get_int(name, "HidAttrMask", &value)) continue;
    hid_addresses.push_back(bd_addr);
    LOG_DEBUG("Remote device: %s", PRIVATE_ADDRESS(bd_addr));
  }
  return hid_addresses;
}

constexpr char HEARING_AID_READ_PSM_HANDLE[] = "HearingAidReadPsmHandle";
constexpr char HEARING_AID_CAPABILITIES[] = "HearingAidCapabilities";
constexpr char HEARING_AID_CODECS[] = "HearingAidCodecs";