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

Commit 1e2e5a57 authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge changes I197d670c,Ic241364c

* changes:
  Add hfp sysprop for hf_features
  Add hfp sysprop for hf_client_features
parents 4dd5ff6c 698f4dce
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
module: "android.sysprop.bluetooth.Hfp"
owner: Platform

prop {
    api_name: "hf_client_features"
    type: Integer
    scope: Internal
    access: Readonly
    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
@@ -17,4 +33,3 @@ prop {
    prop_name: "bluetooth.hfp.version.config"
}
+30 −0
Original line number Diff line number Diff line
@@ -28,6 +28,10 @@

#include <cstdint>

#ifdef OS_ANDROID
#include <hfp.sysprop.h>
#endif

#include "bt_trace.h"  // Legacy trace logging
#include "bta/hf_client/bta_hf_client_int.h"
#include "bta/sys/bta_sys.h"
@@ -204,3 +208,29 @@ void BTA_HfClientSendAT(uint16_t handle, tBTA_HF_CLIENT_AT_CMD_TYPE at,
 *
 ******************************************************************************/
void BTA_HfClientDumpStatistics(int fd) { bta_hf_client_dump_statistics(fd); }

/*******************************************************************************
 *
 * function         get_default_hf_client_features
 *
 * description      return the hf_client features.
 *                  value can be override via system property
 *
 * returns          int
 *
 ******************************************************************************/
int get_default_hf_client_features() {
#define DEFAULT_BTIF_HF_CLIENT_FEATURES                                        \
  (BTA_HF_CLIENT_FEAT_ECNR | BTA_HF_CLIENT_FEAT_3WAY |                         \
   BTA_HF_CLIENT_FEAT_CLI | BTA_HF_CLIENT_FEAT_VREC | BTA_HF_CLIENT_FEAT_VOL | \
   BTA_HF_CLIENT_FEAT_ECS | BTA_HF_CLIENT_FEAT_ECC | BTA_HF_CLIENT_FEAT_CODEC)

#ifdef OS_ANDROID
  static const int features =
      android::sysprop::bluetooth::Hfp::hf_client_features().value_or(
          DEFAULT_BTIF_HF_CLIENT_FEATURES);
  return features;
#else
  return DEFAULT_BTIF_HF_CLIENT_FEATURES;
#endif
}
+11 −0
Original line number Diff line number Diff line
@@ -391,4 +391,15 @@ void BTA_HfClientSendAT(uint16_t handle, tBTA_HF_CLIENT_AT_CMD_TYPE at,
 ******************************************************************************/
void BTA_HfClientDumpStatistics(int fd);

/*******************************************************************************
 *
 * function         get_default_hf_client_features
 *
 * description      return the hf_client features.
 *                  value can be override via system property
 *
 * returns          int
 *
 ******************************************************************************/
int get_default_hf_client_features();
#endif /* BTA_HF_CLIENT_API_H */
+1 −1
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ class BtaHfClientAddRecordTest : public ::testing::Test {
};

TEST_F(BtaHfClientAddRecordTest, test_hf_client_add_record) {
  tBTA_HF_CLIENT_FEAT features = BTIF_HF_CLIENT_FEATURES;
  tBTA_HF_CLIENT_FEAT features = get_default_hf_client_features();
  uint32_t sdp_handle = 0;
  uint8_t scn = 0;

+21 −9
Original line number Diff line number Diff line
@@ -77,16 +77,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)

@@ -160,6 +153,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
Loading