summaryrefslogtreecommitdiff
path: root/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-02-22 18:36:54 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-02-22 18:36:54 +0000
commitc79e56f9faf756d4b0b034df7d2bf83897c4b715 (patch)
tree1d89d996f386a5e538d216b355210d13c36cf886 /bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp
parent6a9c2aa7032c75a47258e0f6bd2b9be57e91991c (diff)
parent9f3a2e40bf3ca1e866f5c6ec774620b05a06439b (diff)
Snap for 9635940 from 9f3a2e40bf3ca1e866f5c6ec774620b05a06439b to tm-platform-release
Change-Id: I20e9bb36636437507a79f7b3dcc4bd00d8337f32
Diffstat (limited to 'bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp')
-rw-r--r--bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp39
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) {