LeAudio: Minor argument passing improvement
Pass a single direction data to SetMetadataToAse() instead of the
bidirectional container, since just a single direction is needed.
Also pass by reference if possible.
Bug: 308428860
Bug: 295972694
Test: atest bluetooth_le_audio_test bluetooth_le_audio_client_test bluetooth_test_broadcaster bluetooth_test_broadcaster_state_machine bluetooth_le_audio_codec_manager_test
Flag: EXEMPT; mechanical refactor - verified by the unit tests
Change-Id: I20d44988628882caf507e72d47fb40e65125ca92
diff --git a/system/bta/le_audio/device_groups.cc b/system/bta/le_audio/device_groups.cc
index 2967cff..8d63971 100644
--- a/system/bta/le_audio/device_groups.cc
+++ b/system/bta/le_audio/device_groups.cc
@@ -1499,9 +1499,10 @@
}
if (!dev->ConfigureAses(audio_set_conf, direction, context_type,
- &active_ase_cnt, group_audio_locations_memo,
- metadata_context_types, ccid_lists,
- reuse_cis_id)) {
+ &active_ase_cnt,
+ group_audio_locations_memo.get(direction),
+ metadata_context_types.get(direction),
+ ccid_lists.get(direction), reuse_cis_id)) {
return;
}
diff --git a/system/bta/le_audio/devices.cc b/system/bta/le_audio/devices.cc
index cddb4c8..2b09afe 100644
--- a/system/bta/le_audio/devices.cc
+++ b/system/bta/le_audio/devices.cc
@@ -244,10 +244,9 @@
const set_configurations::AudioSetConfiguration* audio_set_conf,
uint8_t direction, LeAudioContextType context_type,
uint8_t* number_of_already_active_group_ase,
- BidirectionalPair<AudioLocations>& group_audio_locations_memo,
- const BidirectionalPair<AudioContexts>& metadata_context_types,
- const BidirectionalPair<std::vector<uint8_t>>& ccid_lists,
- bool reuse_cis_id) {
+ AudioLocations& group_audio_locations_memo,
+ const AudioContexts& metadata_context_types,
+ const std::vector<uint8_t>& ccid_lists, bool reuse_cis_id) {
/* First try to use the already configured ASE */
auto ase = GetFirstActiveAseByDirection(direction);
if (ase) {
@@ -324,7 +323,7 @@
ase->codec_config.Add(
codec_spec_conf::kLeAudioLtvTypeAudioChannelAllocation,
PickAudioLocation(strategy, audio_locations,
- group_audio_locations_memo.get(direction)));
+ group_audio_locations_memo));
/* Get default value if no requirement for specific frame blocks per sdu
*/
@@ -975,15 +974,13 @@
}
void LeAudioDevice::SetMetadataToAse(
- struct types::ase* ase,
- const BidirectionalPair<AudioContexts>& metadata_context_types,
- BidirectionalPair<std::vector<uint8_t>> ccid_lists) {
+ struct types::ase* ase, const AudioContexts& metadata_context_types,
+ const std::vector<uint8_t>& ccid_lists) {
/* Filter multidirectional audio context for each ase direction */
- auto directional_audio_context = metadata_context_types.get(ase->direction) &
- GetAvailableContexts(ase->direction);
+ auto directional_audio_context =
+ metadata_context_types & GetAvailableContexts(ase->direction);
if (directional_audio_context.any()) {
- ase->metadata =
- GetMetadata(directional_audio_context, ccid_lists.get(ase->direction));
+ ase->metadata = GetMetadata(directional_audio_context, ccid_lists);
} else {
ase->metadata = GetMetadata(AudioContexts(LeAudioContextType::UNSPECIFIED),
std::vector<uint8_t>());
@@ -1012,7 +1009,8 @@
ase.active = true;
ret = true;
/* update metadata */
- SetMetadataToAse(&ase, metadata_context_types, ccid_lists);
+ SetMetadataToAse(&ase, metadata_context_types.get(ase.direction),
+ ccid_lists.get(ase.direction));
}
}
diff --git a/system/bta/le_audio/devices.h b/system/bta/le_audio/devices.h
index 7d40c78..756bd27 100644
--- a/system/bta/le_audio/devices.h
+++ b/system/bta/le_audio/devices.h
@@ -182,12 +182,9 @@
const set_configurations::AudioSetConfiguration* audio_set_conf,
uint8_t direction, types::LeAudioContextType context_type,
uint8_t* number_of_already_active_group_ase,
- types::BidirectionalPair<types::AudioLocations>&
- group_audio_locations_out,
- const types::BidirectionalPair<types::AudioContexts>&
- metadata_context_types,
- const types::BidirectionalPair<std::vector<uint8_t>>& ccid_lists,
- bool reuse_cis_id);
+ types::AudioLocations& group_audio_locations_out,
+ const types::AudioContexts& metadata_context_types,
+ const std::vector<uint8_t>& ccid_lists, bool reuse_cis_id);
inline types::AudioContexts GetSupportedContexts(
int direction = types::kLeAudioDirectionBoth) const {
@@ -223,11 +220,9 @@
const types::BidirectionalPair<types::AudioContexts>&
metadata_context_types,
types::BidirectionalPair<std::vector<uint8_t>> ccid_lists);
- void SetMetadataToAse(
- struct types::ase* ase,
- const types::BidirectionalPair<types::AudioContexts>&
- metadata_context_types,
- types::BidirectionalPair<std::vector<uint8_t>> ccid_lists);
+ void SetMetadataToAse(struct types::ase* ase,
+ const types::AudioContexts& metadata_context_types,
+ const std::vector<uint8_t>& ccid_lists);
void PrintDebugState(void);
void DumpPacsDebugState(std::stringstream& stream);
diff --git a/system/bta/le_audio/devices_test.cc b/system/bta/le_audio/devices_test.cc
index c827386..465e405 100644
--- a/system/bta/le_audio/devices_test.cc
+++ b/system/bta/le_audio/devices_test.cc
@@ -1570,14 +1570,18 @@
if (!configuration->confs.sink.empty()) {
left->ConfigureAses(configuration, kLeAudioDirectionSink,
group_->GetConfigurationContextType(),
- &number_of_active_ases, group_audio_locations,
- audio_contexts, ccid_lists, false);
+ &number_of_active_ases,
+ group_audio_locations.get(kLeAudioDirectionSink),
+ audio_contexts.get(kLeAudioDirectionSink),
+ ccid_lists.get(kLeAudioDirectionSink), false);
}
if (!configuration->confs.source.empty()) {
left->ConfigureAses(configuration, kLeAudioDirectionSource,
group_->GetConfigurationContextType(),
- &number_of_active_ases, group_audio_locations,
- audio_contexts, ccid_lists, false);
+ &number_of_active_ases,
+ group_audio_locations.get(kLeAudioDirectionSource),
+ audio_contexts.get(kLeAudioDirectionSource),
+ ccid_lists.get(kLeAudioDirectionSource), false);
}
ASSERT_TRUE(number_of_active_ases == 2);
@@ -1650,7 +1654,7 @@
::bluetooth::le_audio::types::AudioLocations group_snk_audio_locations = 0;
::bluetooth::le_audio::types::AudioLocations group_src_audio_locations = 0;
- uint8_t number_of_already_active_ases = 0;
+ BidirectionalPair<uint8_t> number_of_already_active_ases = {0, 0};
BidirectionalPair<AudioLocations> group_audio_locations = {
.sink = group_snk_audio_locations, .source = group_src_audio_locations};
@@ -1664,14 +1668,20 @@
if (!conversational_configuration->confs.sink.empty()) {
tws_headset->ConfigureAses(
conversational_configuration, kLeAudioDirectionSink,
- group_->GetConfigurationContextType(), &number_of_already_active_ases,
- group_audio_locations, audio_contexts, ccid_lists, false);
+ group_->GetConfigurationContextType(),
+ &number_of_already_active_ases.get(kLeAudioDirectionSink),
+ group_audio_locations.get(kLeAudioDirectionSink),
+ audio_contexts.get(kLeAudioDirectionSink),
+ ccid_lists.get(kLeAudioDirectionSink), false);
}
if (!conversational_configuration->confs.source.empty()) {
tws_headset->ConfigureAses(
conversational_configuration, kLeAudioDirectionSource,
- group_->GetConfigurationContextType(), &number_of_already_active_ases,
- group_audio_locations, audio_contexts, ccid_lists, false);
+ group_->GetConfigurationContextType(),
+ &number_of_already_active_ases.get(kLeAudioDirectionSource),
+ group_audio_locations.get(kLeAudioDirectionSource),
+ audio_contexts.get(kLeAudioDirectionSource),
+ ccid_lists.get(kLeAudioDirectionSource), false);
}
/* Generate CISes, simulate CIG creation and assign cis handles to ASEs.*/
@@ -1776,8 +1786,10 @@
if (!media_configuration->confs.sink.empty()) {
left->ConfigureAses(media_configuration, kLeAudioDirectionSink,
group_->GetConfigurationContextType(),
- &number_of_already_active_ases, group_audio_locations,
- audio_contexts, ccid_lists, false);
+ &number_of_already_active_ases,
+ group_audio_locations.get(kLeAudioDirectionSink),
+ audio_contexts.get(kLeAudioDirectionSink),
+ ccid_lists.get(kLeAudioDirectionSink), false);
}
/* Generate CIS, simulate CIG creation and assign cis handles to ASEs.*/