mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Bluetooth audio hal check broadcast configuraiton for the broadcast offload am: ee398a93f5 am: fb6b495535
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2147741 Change-Id: I11ccc699886d36091e343ed7f54841da09a8cc8a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -55,21 +55,20 @@ ndk::ScopedAStatus LeAudioOffloadAudioProvider::startSession(
|
||||
const std::shared_ptr<IBluetoothAudioPort>& host_if,
|
||||
const AudioConfiguration& audio_config,
|
||||
const std::vector<LatencyMode>& latency_modes, DataMQDesc* _aidl_return) {
|
||||
if (audio_config.getTag() != AudioConfiguration::leAudioConfig) {
|
||||
if (session_type_ ==
|
||||
SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH) {
|
||||
if (audio_config.getTag() != AudioConfiguration::leAudioBroadcastConfig) {
|
||||
LOG(WARNING) << __func__ << " - Invalid Audio Configuration="
|
||||
<< audio_config.toString();
|
||||
*_aidl_return = DataMQDesc();
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
|
||||
}
|
||||
} else if (audio_config.getTag() != AudioConfiguration::leAudioConfig) {
|
||||
LOG(WARNING) << __func__ << " - Invalid Audio Configuration="
|
||||
<< audio_config.toString();
|
||||
*_aidl_return = DataMQDesc();
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
|
||||
}
|
||||
const auto& le_audio_config =
|
||||
audio_config.get<AudioConfiguration::leAudioConfig>();
|
||||
if (!BluetoothAudioCodecs::IsOffloadLeAudioConfigurationValid(
|
||||
session_type_, le_audio_config)) {
|
||||
LOG(WARNING) << __func__ << " - Unsupported LC3 Offloaded Configuration="
|
||||
<< le_audio_config.toString();
|
||||
*_aidl_return = DataMQDesc();
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
|
||||
}
|
||||
|
||||
return BluetoothAudioProvider::startSession(
|
||||
host_if, audio_config, latency_modes, _aidl_return);
|
||||
|
||||
@@ -321,19 +321,6 @@ bool BluetoothAudioCodecs::IsOffloadOpusConfigurationValid(
|
||||
return false;
|
||||
}
|
||||
|
||||
bool BluetoothAudioCodecs::IsOffloadLeAudioConfigurationValid(
|
||||
const SessionType& session_type, const LeAudioConfiguration&) {
|
||||
if (session_type !=
|
||||
SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH &&
|
||||
session_type !=
|
||||
SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH &&
|
||||
session_type !=
|
||||
SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<PcmCapabilities>
|
||||
BluetoothAudioCodecs::GetSoftwarePcmCapabilities() {
|
||||
return {kDefaultSoftwarePcmCapabilities};
|
||||
|
||||
@@ -44,9 +44,6 @@ class BluetoothAudioCodecs {
|
||||
static bool IsOffloadCodecConfigurationValid(
|
||||
const SessionType& session_type, const CodecConfiguration& codec_config);
|
||||
|
||||
static bool IsOffloadLeAudioConfigurationValid(
|
||||
const SessionType& session_type, const LeAudioConfiguration&);
|
||||
|
||||
static std::vector<LeAudioCodecCapabilitiesSetting>
|
||||
GetLeAudioOffloadCodecCapabilities(const SessionType& session_type);
|
||||
|
||||
|
||||
@@ -276,11 +276,14 @@ bool BluetoothAudioSession::UpdateAudioConfig(
|
||||
bool is_offload_a2dp_session =
|
||||
(session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
|
||||
session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH);
|
||||
bool is_offload_le_audio_session =
|
||||
bool is_offload_le_audio_unicast_session =
|
||||
(session_type_ ==
|
||||
SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
|
||||
session_type_ ==
|
||||
SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH);
|
||||
bool is_offload_le_audio_broadcast_session =
|
||||
(session_type_ ==
|
||||
SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH);
|
||||
auto audio_config_tag = audio_config.getTag();
|
||||
bool is_software_audio_config =
|
||||
(is_software_session &&
|
||||
@@ -288,11 +291,15 @@ bool BluetoothAudioSession::UpdateAudioConfig(
|
||||
bool is_a2dp_offload_audio_config =
|
||||
(is_offload_a2dp_session &&
|
||||
audio_config_tag == AudioConfiguration::a2dpConfig);
|
||||
bool is_le_audio_offload_audio_config =
|
||||
(is_offload_le_audio_session &&
|
||||
bool is_le_audio_offload_unicast_audio_config =
|
||||
(is_offload_le_audio_unicast_session &&
|
||||
audio_config_tag == AudioConfiguration::leAudioConfig);
|
||||
bool is_le_audio_offload_broadcast_audio_config =
|
||||
(is_offload_le_audio_broadcast_session &&
|
||||
audio_config_tag == AudioConfiguration::leAudioBroadcastConfig);
|
||||
if (!is_software_audio_config && !is_a2dp_offload_audio_config &&
|
||||
!is_le_audio_offload_audio_config) {
|
||||
!is_le_audio_offload_unicast_audio_config &&
|
||||
!is_le_audio_offload_broadcast_audio_config) {
|
||||
return false;
|
||||
}
|
||||
audio_config_ = std::make_unique<AudioConfiguration>(audio_config);
|
||||
|
||||
Reference in New Issue
Block a user