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

Commit 92ae3bfe authored by William Escande's avatar William Escande
Browse files

Add hfp sysprop for hf_features

The `define` cannot be override on runtime and some target need to
configure the features (Eg: Wear OS)

Test: manual | set the property and check new behavior
Bug: 263323082
Change-Id: I197d670c929c7a086340f9d8ff72b0ec170616fe
(cherry picked from https://android-review.googlesource.com/q/commit:698f4dce56fc120263c944d19af60506f79d2afb)
Merged-In: I197d670c929c7a086340f9d8ff72b0ec170616fe
parent 8f2b868d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -9,6 +9,14 @@ prop {
    prop_name: "bluetooth.hfp.hf_client_features.config"
}

prop {
    api_name: "hf_features"
    type: Integer
    scope: Internal
    access: Readonly
    prop_name: "bluetooth.hfp.hf_features.config"
}

prop {
    api_name: "hf_services"
    type: Integer
+21 −9
Original line number Diff line number Diff line
@@ -73,16 +73,9 @@ namespace headset {
  { BTIF_HSAG_SERVICE_NAME, BTIF_HFAG_SERVICE_NAME }
#endif

#ifndef BTIF_HF_FEATURES
#define BTIF_HF_FEATURES                                          \
  (BTA_AG_FEAT_3WAY | BTA_AG_FEAT_ECNR | BTA_AG_FEAT_REJECT |     \
   BTA_AG_FEAT_ECS | BTA_AG_FEAT_EXTERR | BTA_AG_FEAT_VREC |      \
   BTA_AG_FEAT_CODEC | BTA_AG_FEAT_HF_IND | BTA_AG_FEAT_ESCO_S4 | \
   BTA_AG_FEAT_UNAT)
#endif

static uint32_t get_hf_features();
/* HF features supported at runtime */
static uint32_t btif_hf_features = BTIF_HF_FEATURES;
static uint32_t btif_hf_features = get_hf_features();

#define BTIF_HF_INVALID_IDX (-1)

@@ -156,6 +149,25 @@ static tBTA_SERVICE_MASK get_BTIF_HF_SERVICES() {
#endif
}

/* HF features supported at runtime */
static uint32_t get_hf_features() {
#define DEFAULT_BTIF_HF_FEATURES                                  \
  (BTA_AG_FEAT_3WAY | BTA_AG_FEAT_ECNR | BTA_AG_FEAT_REJECT |     \
   BTA_AG_FEAT_ECS | BTA_AG_FEAT_EXTERR | BTA_AG_FEAT_VREC |      \
   BTA_AG_FEAT_CODEC | BTA_AG_FEAT_HF_IND | BTA_AG_FEAT_ESCO_S4 | \
   BTA_AG_FEAT_UNAT)
#ifdef OS_ANDROID
  static const uint32_t hf_features =
      android::sysprop::bluetooth::Hfp::hf_features().value_or(
          DEFAULT_BTIF_HF_FEATURES);
  return hf_features;
#elif TARGET_FLOSS
  return BTA_AG_FEAT_ECS | BTA_AG_FEAT_CODEC;
#else
  return DEFAULT_BTIF_HF_FEATURES;
#endif
}

/*******************************************************************************
 *
 * Function         is_connected