diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp index b4cba49502..6e15b3b93c 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp @@ -41,7 +41,7 @@ namespace bluetooth { namespace audio { static const PcmCapabilities kDefaultSoftwarePcmCapabilities = { - .sampleRateHz = {16000, 24000, 32000, 44100, 48000, 88200, 96000}, + .sampleRateHz = {8000, 16000, 24000, 32000, 44100, 48000, 88200, 96000}, .channelMode = {ChannelMode::MONO, ChannelMode::STEREO}, .bitsPerSample = {16, 24, 32}, .dataIntervalUs = {}, diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp index c283148a38..9dcfc13893 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp @@ -95,6 +95,8 @@ const AudioConfiguration BluetoothAudioSession::GetAudioConfig() { case SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH: case SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH: return AudioConfiguration(CodecConfiguration{}); + case SessionType::HFP_HARDWARE_OFFLOAD_DATAPATH: + return AudioConfiguration(HfpConfiguration{}); case SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH: case SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH: return AudioConfiguration(LeAudioConfiguration{}); @@ -154,6 +156,7 @@ bool BluetoothAudioSession::IsSessionReady() { session_type_ == SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH || session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH || + session_type_ == SessionType::HFP_HARDWARE_OFFLOAD_DATAPATH || (data_mq_ != nullptr && data_mq_->isValid())); return stack_iface_ != nullptr && is_mq_valid && audio_config_ != nullptr; } @@ -275,6 +278,8 @@ bool BluetoothAudioSession::UpdateAudioConfig( bool is_software_session = (session_type_ == SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH || session_type_ == SessionType::HEARING_AID_SOFTWARE_ENCODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_ENCODING_DATAPATH || + session_type_ == SessionType::HFP_SOFTWARE_DECODING_DATAPATH || session_type_ == SessionType::LE_AUDIO_SOFTWARE_DECODING_DATAPATH || session_type_ == SessionType::LE_AUDIO_SOFTWARE_ENCODING_DATAPATH || session_type_ == @@ -283,6 +288,8 @@ 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_hfp_session = + session_type_ == SessionType::HFP_HARDWARE_OFFLOAD_DATAPATH; bool is_offload_le_audio_unicast_session = (session_type_ == SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH || @@ -298,6 +305,9 @@ bool BluetoothAudioSession::UpdateAudioConfig( bool is_a2dp_offload_audio_config = (is_offload_a2dp_session && audio_config_tag == AudioConfiguration::a2dpConfig); + bool is_hfp_offload_audio_config = + (is_offload_hfp_session && + audio_config_tag == AudioConfiguration::hfpConfig); bool is_le_audio_offload_unicast_audio_config = (is_offload_le_audio_unicast_session && audio_config_tag == AudioConfiguration::leAudioConfig); @@ -305,6 +315,7 @@ bool BluetoothAudioSession::UpdateAudioConfig( (is_offload_le_audio_broadcast_session && audio_config_tag == AudioConfiguration::leAudioBroadcastConfig); if (!is_software_audio_config && !is_a2dp_offload_audio_config && + !is_hfp_offload_audio_config && !is_le_audio_offload_unicast_audio_config && !is_le_audio_offload_broadcast_audio_config) { return false; diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioSessionControl.h b/bluetooth/audio/utils/aidl_session/BluetoothAudioSessionControl.h index 7ae0353641..5263222084 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioSessionControl.h +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioSessionControl.h @@ -84,6 +84,8 @@ class BluetoothAudioSessionControl { case SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH: case SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH: return AudioConfiguration(CodecConfiguration{}); + case SessionType::HFP_HARDWARE_OFFLOAD_DATAPATH: + return AudioConfiguration(HfpConfiguration{}); case SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH: case SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH: return AudioConfiguration(LeAudioConfiguration{}); diff --git a/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp b/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp index 3d92ee7b1f..a2a5bcb51e 100644 --- a/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp +++ b/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp @@ -475,6 +475,8 @@ inline AudioConfig_2_1 to_hidl_audio_config_2_1( hidl_audio_config.leAudioCodecConfig(to_hidl_leaudio_broadcast_config_2_1( audio_config.get())); break; + default: + LOG(FATAL) << __func__ << ": unexpected AudioConfiguration"; } return hidl_audio_config; }