From cd019230f32acfebb7c187fea515faacb9170aa0 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Mon, 16 Sep 2024 07:11:51 +0000 Subject: [PATCH] Add support for HFP_SOFTWARE_DATAPATH session type Bug: 349290628 Bug: 315234036 Test: m packages/modules/Bluetooth Flag: com::android::bluetooth::flags::is_sco_managed_by_audio and HFP session type only enabled when flag is enabled Change-Id: I952f8baf347084d57162fdfd767259157f39962e --- .../aidl_session/BluetoothAudioSession.cpp | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp index a458c5ba63..c62784e47f 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp @@ -145,6 +145,13 @@ void BluetoothAudioSession::ReportAudioConfigChanged( << toString(session_type_); return; } + } else if (session_type_ == SessionType::HFP_SOFTWARE_DECODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_ENCODING_DATAPATH) { + if (audio_config.getTag() != AudioConfiguration::pcmConfig) { + LOG(ERROR) << __func__ << " invalid audio config type for SessionType =" + << toString(session_type_); + return; + } } else { LOG(ERROR) << __func__ << " invalid SessionType =" << toString(session_type_); @@ -166,6 +173,13 @@ void BluetoothAudioSession::ReportAudioConfigChanged( << toString(session_type_); return; } + } else if (session_type_ == SessionType::HFP_SOFTWARE_DECODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_ENCODING_DATAPATH) { + if (audio_config.getTag() != AudioConfiguration::pcmConfig) { + LOG(ERROR) << __func__ << " invalid audio config type for SessionType =" + << toString(session_type_); + return; + } } else { LOG(ERROR) << __func__ << " invalid SessionType =" << toString(session_type_); @@ -604,7 +618,9 @@ bool BluetoothAudioSession::UpdateSourceMetadata( if (session_type_ == SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH || session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH || session_type_ == SessionType::A2DP_SOFTWARE_DECODING_DATAPATH || - session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH) { + session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_ENCODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_DECODING_DATAPATH) { return false; } @@ -629,7 +645,9 @@ bool BluetoothAudioSession::UpdateSinkMetadata( if (session_type_ == SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH || session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH || session_type_ == SessionType::A2DP_SOFTWARE_DECODING_DATAPATH || - session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH) { + session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_ENCODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_DECODING_DATAPATH) { return false; }