Loading system/bta/Android.bp +3 −0 Original line number Diff line number Diff line Loading @@ -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", Loading Loading @@ -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", Loading Loading @@ -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", Loading system/bta/include/bta_le_audio_api.h +4 −1 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); }; system/bta/le_audio/client.cc +5 −3 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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; Loading @@ -3369,7 +3371,7 @@ void LeAudioClient::Cleanup(void) { LeAudioClientImpl* ptr = instance; instance = nullptr; ptr->Cleanup(); ptr->Cleanup(cleanupCb); delete ptr; CodecManager::GetInstance()->Stop(); Loading system/bta/le_audio/client_linux.cc +2 −0 Original line number Diff line number Diff line Loading @@ -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) {} system/bta/le_audio/codec_manager.cc +8 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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; Loading Loading @@ -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); Loading @@ -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 Loading
system/bta/Android.bp +3 −0 Original line number Diff line number Diff line Loading @@ -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", Loading Loading @@ -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", Loading Loading @@ -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", Loading
system/bta/include/bta_le_audio_api.h +4 −1 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); };
system/bta/le_audio/client.cc +5 −3 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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; Loading @@ -3369,7 +3371,7 @@ void LeAudioClient::Cleanup(void) { LeAudioClientImpl* ptr = instance; instance = nullptr; ptr->Cleanup(); ptr->Cleanup(cleanupCb); delete ptr; CodecManager::GetInstance()->Stop(); Loading
system/bta/le_audio/client_linux.cc +2 −0 Original line number Diff line number Diff line Loading @@ -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) {}
system/bta/le_audio/codec_manager.cc +8 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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; Loading Loading @@ -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); Loading @@ -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