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

Commit ed3c3b15 authored by Patty's avatar Patty
Browse files

Pass the offload codec capability preference from btif layer to bta layer

Tag: #feature
Bug: 203535499
Bug: 150670922
Test: atest BluetoothLeAudioCodecConfigTest BluetoothInstrumentationTests
Change-Id: Ieb4aee3f2132e31c43eab83b7d94f240cb2f3bd8
parent 773ebd5d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -35,9 +35,11 @@ class LeAudioClient {
 public:
  virtual ~LeAudioClient(void) = default;

  static void Initialize(bluetooth::le_audio::LeAudioClientCallbacks* callbacks,
                         base::Closure initCb,
                         base::Callback<bool()> hal_2_1_verifier);
  static void Initialize(
      bluetooth::le_audio::LeAudioClientCallbacks* callbacks,
      base::Closure initCb, base::Callback<bool()> hal_2_1_verifier,
      const std::vector<bluetooth::le_audio::btle_audio_codec_config_t>&
          offloading_preference);
  static void Cleanup(void);
  static LeAudioClient* Get(void);
  static void DebugDump(int fd);
+3 −1
Original line number Diff line number Diff line
@@ -3303,7 +3303,9 @@ LeAudioClient* LeAudioClient::Get() {
/* Initializer of main le audio implementation class and its instance */
void LeAudioClient::Initialize(
    bluetooth::le_audio::LeAudioClientCallbacks* callbacks_,
    base::Closure initCb, base::Callback<bool()> hal_2_1_verifier) {
    base::Closure initCb, base::Callback<bool()> hal_2_1_verifier,
    const std::vector<bluetooth::le_audio::btle_audio_codec_config_t>&
        offloading_preference) {
  if (instance) {
    LOG(ERROR) << "Already initialized";
    return;
+17 −4
Original line number Diff line number Diff line
@@ -1627,6 +1627,8 @@ class UnicastTest : public UnicastTestNoInit {
    EXPECT_CALL(mock_hal_2_1_verifier, Call()).Times(1);
    EXPECT_CALL(mock_storage_load, Call()).Times(1);

    std::vector<::bluetooth::le_audio::btle_audio_codec_config_t>
        framework_encode_preference;
    BtaAppRegisterCallback app_register_callback;
    EXPECT_CALL(mock_gatt_interface_, AppRegister(_, _, _))
        .WillOnce(DoAll(SaveArg<0>(&gatt_callback),
@@ -1636,7 +1638,8 @@ class UnicastTest : public UnicastTestNoInit {
        base::Bind([](MockFunction<void()>* foo) { foo->Call(); },
                   &mock_storage_load),
        base::Bind([](MockFunction<bool()>* foo) { return foo->Call(); },
                   &mock_hal_2_1_verifier));
                   &mock_hal_2_1_verifier),
        framework_encode_preference);

    SyncOnMainLoop();
    ASSERT_TRUE(gatt_callback);
@@ -1675,6 +1678,8 @@ TEST_F(UnicastTestNoInit, InitializeNoHal_2_1) {
  ON_CALL(mock_gatt_interface_, AppRegister(_, _, _))
      .WillByDefault(DoAll(SaveArg<0>(&gatt_callback),
                           SaveArg<1>(&app_register_callback)));
  std::vector<::bluetooth::le_audio::btle_audio_codec_config_t>
      framework_encode_preference;

  EXPECT_DEATH(
      LeAudioClient::Initialize(
@@ -1682,7 +1687,8 @@ TEST_F(UnicastTestNoInit, InitializeNoHal_2_1) {
          base::Bind([](MockFunction<void()>* foo) { foo->Call(); },
                     &mock_storage_load),
          base::Bind([](MockFunction<bool()>* foo) { return foo->Call(); },
                     &mock_hal_2_1_verifier)),
                     &mock_hal_2_1_verifier),
          framework_encode_preference),
      ", LE Audio Client requires Bluetooth Audio HAL V2.1 at least. Either "
      "disable LE Audio Profile, or update your HAL");
}
@@ -1899,6 +1905,9 @@ TEST_F(UnicastTestNoInit, LoadStoredEarbudsCsisGrouped) {
      .WillByDefault(
          DoAll(SetArgPointee<1>(BTM_SEC_FLAG_ENCRYPTED), Return(true)));

  std::vector<::bluetooth::le_audio::btle_audio_codec_config_t>
      framework_encode_preference;

  // Initialize
  BtaAppRegisterCallback app_register_callback;
  ON_CALL(mock_gatt_interface_, AppRegister(_, _, _))
@@ -1909,7 +1918,8 @@ TEST_F(UnicastTestNoInit, LoadStoredEarbudsCsisGrouped) {
      base::Bind([](MockFunction<void()>* foo) { foo->Call(); },
                 &mock_storage_load),
      base::Bind([](MockFunction<bool()>* foo) { return foo->Call(); },
                 &mock_hal_2_1_verifier));
                 &mock_hal_2_1_verifier),
      framework_encode_preference);
  if (app_register_callback) app_register_callback.Run(gatt_if, GATT_SUCCESS);

  // We need to wait for the storage callback before verifying stuff
@@ -1991,12 +2001,15 @@ TEST_F(UnicastTestNoInit, LoadStoredEarbudsCsisGroupedDifferently) {
  ON_CALL(mock_gatt_interface_, AppRegister(_, _, _))
      .WillByDefault(DoAll(SaveArg<0>(&gatt_callback),
                           SaveArg<1>(&app_register_callback)));
  std::vector<::bluetooth::le_audio::btle_audio_codec_config_t>
      framework_encode_preference;
  LeAudioClient::Initialize(
      &mock_client_callbacks_,
      base::Bind([](MockFunction<void()>* foo) { foo->Call(); },
                 &mock_storage_load),
      base::Bind([](MockFunction<bool()>* foo) { return foo->Call(); },
                 &mock_hal_2_1_verifier));
                 &mock_hal_2_1_verifier),
      framework_encode_preference);
  if (app_register_callback) app_register_callback.Run(gatt_if, GATT_SUCCESS);

  // We need to wait for the storage callback before verifying stuff
+2 −1
Original line number Diff line number Diff line
@@ -85,7 +85,8 @@ class LeAudioClientInterfaceImpl : public LeAudioClientInterface,
                            FROM_HERE, Bind(&btif_storage_load_bonded_leaudio)),
                        base::Bind([]() -> bool {
                          return LeAudioHalVerifier::SupportsLeAudio();
                        })));
                        }),
                        offloading_preference));
  }

  void Cleanup(void) override {
+3 −1
Original line number Diff line number Diff line
@@ -64,7 +64,9 @@ bool LeAudioClient::IsLeAudioClientRunning(void) {
}
void LeAudioClient::Initialize(
    bluetooth::le_audio::LeAudioClientCallbacks* callbacks_,
    base::Closure initCb, base::Callback<bool()> hal_2_1_verifier) {
    base::Closure initCb, base::Callback<bool()> hal_2_1_verifier,
    const std::vector<bluetooth::le_audio::btle_audio_codec_config_t>&
        offloading_preference) {
  mock_function_count_map[__func__]++;
}
void LeAudioClient::DebugDump(int fd) { mock_function_count_map[__func__]++; }
 No newline at end of file