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

Commit e0d3e81d authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "le_audio: Move set configurations" am: 61713020 am: 70f87d7a

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/1911878

Change-Id: I5897b4b3e6941ab2eedeaaa49d32bc3c4ff4d906
parents a659e538 70f87d7a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ cc_library_static {
        "le_audio/state_machine.cc",
        "le_audio/client_parser.cc",
        "le_audio/client_audio.cc",
        "le_audio/le_audio_set_configuration_provider.cc",
        "le_audio/le_audio_types.cc",
        "has/has_client.cc",
        "has/has_ctp.cc",
@@ -460,6 +461,7 @@ cc_test {
        "le_audio/client_parser_test.cc",
        "le_audio/devices.cc",
        "le_audio/devices_test.cc",
        "le_audio/le_audio_set_configuration_provider.cc",
        "le_audio/le_audio_types.cc",
        "le_audio/le_audio_types_test.cc",
        "le_audio/mock_iso_manager.cc",
@@ -507,6 +509,7 @@ cc_test {
        "le_audio/client_parser.cc",
        "le_audio/devices.cc",
        "le_audio/le_audio_client_test.cc",
        "le_audio/le_audio_set_configuration_provider.cc",
        "le_audio/le_audio_types.cc",
        "le_audio/mock_iso_manager.cc",
        "le_audio/mock_le_audio_client_audio.cc",
+4 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ class LeAudioClient {
      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 void Cleanup(base::Callback<void()> cleanupCb);
  static LeAudioClient* Get(void);
  static void DebugDump(int fd);

@@ -57,4 +57,7 @@ class LeAudioClient {
  virtual std::vector<RawAddress> GetGroupDevices(const int group_id) = 0;
  static void AddFromStorage(const RawAddress& addr, bool autoconnect);
  static bool IsLeAudioClientRunning();

  static void InitializeAudioSetConfigurationProvider(void);
  static void CleanupAudioSetConfigurationProvider(void);
};
+5 −3
Original line number Diff line number Diff line
@@ -2310,12 +2310,14 @@ class LeAudioClientImpl : public LeAudioClient {
    leAudioDevices_.Dump(fd, bluetooth::groups::kGroupUnknown);
  }

  void Cleanup(void) {
  void Cleanup(base::Callback<void()> cleanupCb) {
    if (alarm_is_scheduled(suspend_timeout_)) alarm_cancel(suspend_timeout_);
    leAudioDevices_.Cleanup();
    aseGroups_.Cleanup();
    StopAudio();
    if (gatt_if_) BTA_GATTC_AppDeregister(gatt_if_);

    std::move(cleanupCb).Run();
  }

  bool UpdateConfigAndCheckIfReconfigurationIsNeeded(
@@ -3361,7 +3363,7 @@ void LeAudioClient::DebugDump(int fd) {
  dprintf(fd, "\n");
}

void LeAudioClient::Cleanup(void) {
void LeAudioClient::Cleanup(base::Callback<void()> cleanupCb) {
  if (!instance) {
    LOG(ERROR) << "Not initialized";
    return;
@@ -3369,7 +3371,7 @@ void LeAudioClient::Cleanup(void) {

  LeAudioClientImpl* ptr = instance;
  instance = nullptr;
  ptr->Cleanup();
  ptr->Cleanup(cleanupCb);
  delete ptr;

  CodecManager::GetInstance()->Stop();
+2 −0
Original line number Diff line number Diff line
@@ -46,3 +46,5 @@ LeAudioClient* LeAudioClient::Get(void) { return nullptr; }
void LeAudioClient::DebugDump(int fd) {}
void LeAudioClient::AddFromStorage(const RawAddress& addr, bool autoconnect) {}
bool LeAudioClient::IsLeAudioClientRunning() { return false; }
void LeAudioClient::InitializeAudioSetConfigurationProvider(void) {}
void LeAudioClient::CleanupAudioSetConfigurationProvider(void) {}
+8 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include "osi/include/properties.h"
#include "stack/acl/acl.h"
#include "stack/include/acl_api.h"
#include "le_audio_set_configuration_provider.h"

namespace {

@@ -32,6 +33,7 @@ using le_audio::types::CodecLocation;

using bluetooth::le_audio::btle_audio_codec_config_t;
using bluetooth::le_audio::btle_audio_codec_index_t;
using le_audio::AudioSetConfigurationProvider;
using le_audio::set_configurations::AudioSetConfiguration;
using le_audio::set_configurations::AudioSetConfigurations;
using le_audio::set_configurations::SetConfiguration;
@@ -220,6 +222,11 @@ struct codec_manager_impl {
    LOG(INFO) << __func__;
    std::unordered_set<uint8_t> offload_preference_set;

    if (AudioSetConfigurationProvider::Get() == nullptr) {
      LOG(ERROR) << __func__ << " Audio set configuration provider is not available.";
      return;
    }

    for (auto codec : offloading_preference) {
      auto it = btle_audio_codec_type_map_.find(codec.codec_type);

@@ -233,7 +240,7 @@ struct codec_manager_impl {
      // Gets the software supported context type and the corresponding config
      // priority
      const AudioSetConfigurations* software_audio_set_confs =
          set_configurations::get_confs_by_type(ctx_type);
          AudioSetConfigurationProvider::Get()->GetConfigurations(ctx_type);

      for (const auto& software_audio_set_conf : *software_audio_set_confs) {
        if (IsAudioSetConfigurationMatched(software_audio_set_conf,
Loading