diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-03-23 10:24:02 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-03-23 10:24:02 +0000 |
commit | 6b0915e761b0a360c1853f585df6b441cecaf527 (patch) | |
tree | a3a392a1a443d592d7ec7115168943bce27d2e2e /bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp | |
parent | 1e28f6e696943d2967f7a1960151446eb3d48dc9 (diff) | |
parent | 0b9798cf11d9eddcde7fae9cf1b4e071664d82b2 (diff) |
Snap for 9798568 from 0b9798cf11d9eddcde7fae9cf1b4e071664d82b2 to t-keystone-qcom-release
Change-Id: Ia54f3d6af82485690772ecdd05457df18f2de708
Diffstat (limited to 'bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp')
-rw-r--r-- | bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp index bf492706c8..1dec900aed 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp @@ -34,20 +34,40 @@ static const AudioLocation kMonoAudio = AudioLocation::UNKNOWN; static std::vector<LeAudioCodecCapabilitiesSetting> leAudioCodecCapabilities; +static bool isInvalidFileContent = false; + +std::optional<setting::LeAudioOffloadSetting> +BluetoothLeAudioCodecsProvider::ParseFromLeAudioOffloadSettingFile() { + if (!leAudioCodecCapabilities.empty() || isInvalidFileContent) { + return std::nullopt; + } + auto le_audio_offload_setting = + setting::readLeAudioOffloadSetting(kLeAudioCodecCapabilitiesFile); + if (!le_audio_offload_setting.has_value()) { + LOG(ERROR) << __func__ << ": Failed to read " + << kLeAudioCodecCapabilitiesFile; + } + return le_audio_offload_setting; +} + std::vector<LeAudioCodecCapabilitiesSetting> -BluetoothLeAudioCodecsProvider::GetLeAudioCodecCapabilities() { +BluetoothLeAudioCodecsProvider::GetLeAudioCodecCapabilities( + const std::optional<setting::LeAudioOffloadSetting>& + le_audio_offload_setting) { if (!leAudioCodecCapabilities.empty()) { return leAudioCodecCapabilities; } - const auto le_audio_offload_setting = - setting::readLeAudioOffloadSetting(kLeAudioCodecCapabilitiesFile); if (!le_audio_offload_setting.has_value()) { - LOG(ERROR) << __func__ << ": Failed to read " - << kLeAudioCodecCapabilitiesFile; + LOG(ERROR) + << __func__ + << ": input le_audio_offload_setting content need to be non empty"; return {}; } + ClearLeAudioCodecCapabilities(); + isInvalidFileContent = true; + std::vector<setting::Scenario> supported_scenarios = GetScenarios(le_audio_offload_setting); if (supported_scenarios.empty()) { @@ -79,9 +99,18 @@ BluetoothLeAudioCodecsProvider::GetLeAudioCodecCapabilities() { leAudioCodecCapabilities = ComposeLeAudioCodecCapabilities(supported_scenarios); + isInvalidFileContent = leAudioCodecCapabilities.empty(); + return leAudioCodecCapabilities; } +void BluetoothLeAudioCodecsProvider::ClearLeAudioCodecCapabilities() { + leAudioCodecCapabilities.clear(); + configuration_map_.clear(); + codec_configuration_map_.clear(); + strategy_configuration_map_.clear(); +} + std::vector<setting::Scenario> BluetoothLeAudioCodecsProvider::GetScenarios( const std::optional<setting::LeAudioOffloadSetting>& le_audio_offload_setting) { |