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

Commit 704cc88c authored by Stanley Tng's avatar Stanley Tng
Browse files

Add a persistent key to overwrite MIN_CE_LEN for Hearing Aids

To help in debugging the noise issues on Hearing Aids, add a new
persistent key, persist.bluetooth.hearingaidmincelen, to overwrite the
MIN_CE_LEN parameter that are used for the Connection Parameter Update
operations.

Bug: 130916579
Test: Manual testing
Change-Id: I1c52b2f99235f8d88e0a1d278dbf3174f1c60709
parent c30256d0
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -218,6 +218,8 @@ class HearingAidImpl : public HearingAid {
 private:
  // Keep track of whether the Audio Service has resumed audio playback
  bool audio_running;
  // For Testing: overwrite the MIN_CE_LEN during connection parameter updates
  uint16_t overwrite_min_ce_len;

 public:
  ~HearingAidImpl() override = default;
@@ -225,6 +227,7 @@ class HearingAidImpl : public HearingAid {
  HearingAidImpl(bluetooth::hearing_aid::HearingAidCallbacks* callbacks,
                 Closure initCb)
      : audio_running(false),
        overwrite_min_ce_len(0),
        gatt_if(0),
        seq_counter(0),
        current_volume(VOLUME_UNKNOWN),
@@ -242,6 +245,13 @@ class HearingAidImpl : public HearingAid {
    VLOG(2) << __func__
            << ", default_data_interval_ms=" << default_data_interval_ms;

    overwrite_min_ce_len = (uint16_t)osi_property_get_int32(
        "persist.bluetooth.hearingaidmincelen", 0);
    if (overwrite_min_ce_len) {
      LOG(INFO) << __func__
                << ": Overwrites MIN_CE_LEN=" << overwrite_min_ce_len;
    }

    BTA_GATTC_AppRegister(
        hearingaid_gattc_callback,
        base::Bind(
@@ -278,6 +288,12 @@ class HearingAidImpl : public HearingAid {
        connection_interval = CONNECTION_INTERVAL_10MS_PARAM;
    }

    if (overwrite_min_ce_len != 0) {
      VLOG(2) << __func__ << ": min_ce_len=" << min_ce_len
              << " is overwritten to " << overwrite_min_ce_len;
      min_ce_len = overwrite_min_ce_len;
    }

    L2CA_UpdateBleConnParams(address, connection_interval, connection_interval,
                             0x000A, 0x0064 /*1s*/, min_ce_len, min_ce_len);
    return connection_interval;