From 9880f6bb3cf86f6399476dcd5c85d8913302287d Mon Sep 17 00:00:00 2001 From: Josh Wu Date: Fri, 21 Jan 2022 20:49:49 -0800 Subject: [PATCH] BtAudio: Add InReadPcmData to middleware Bug: 203490261 Test: m android.hardware.bluetooth.audio-V1-impl Change-Id: I330226ecc38368b3838c01a191b66b700a2338a7 --- bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp | 6 ++++++ .../audio/utils/aidl_session/HidlToAidlMiddleware_2_0.h | 3 +++ bluetooth/audio/utils/session/BluetoothAudioSession.cpp | 3 +++ 3 files changed, 12 insertions(+) diff --git a/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp b/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp index 284d0bb14a..8485da0831 100644 --- a/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp +++ b/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware.cpp @@ -641,6 +641,12 @@ size_t HidlToAidlMiddleware_2_0::OutWritePcmData( from_session_type_2_0(session_type), buffer, bytes); } +size_t HidlToAidlMiddleware_2_0::InReadPcmData( + const SessionType_2_0& session_type, void* buffer, size_t bytes) { + return BluetoothAudioSessionControl::InReadPcmData( + from_session_type_2_0(session_type), buffer, bytes); +} + bool HidlToAidlMiddleware_2_0::IsAidlAvailable() { return BluetoothAudioSession::IsAidlAvailable(); } diff --git a/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware_2_0.h b/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware_2_0.h index d10ee3759a..b124d8ff0b 100644 --- a/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware_2_0.h +++ b/bluetooth/audio/utils/aidl_session/HidlToAidlMiddleware_2_0.h @@ -64,6 +64,9 @@ class HidlToAidlMiddleware_2_0 { static size_t OutWritePcmData(const SessionType_2_0& session_type, const void* buffer, size_t bytes); + + static size_t InReadPcmData(const SessionType_2_0& session_type, void* buffer, + size_t bytes); }; } // namespace audio diff --git a/bluetooth/audio/utils/session/BluetoothAudioSession.cpp b/bluetooth/audio/utils/session/BluetoothAudioSession.cpp index 6d5608b0a4..283952e52c 100644 --- a/bluetooth/audio/utils/session/BluetoothAudioSession.cpp +++ b/bluetooth/audio/utils/session/BluetoothAudioSession.cpp @@ -437,6 +437,9 @@ size_t BluetoothAudioSession::OutWritePcmData(const void* buffer, // The control function reads stream from FMQ size_t BluetoothAudioSession::InReadPcmData(void* buffer, size_t bytes) { + if (HidlToAidlMiddleware_2_0::IsAidlAvailable()) + return HidlToAidlMiddleware_2_0::InReadPcmData(session_type_, buffer, + bytes); if (buffer == nullptr || !bytes) return 0; size_t totalRead = 0; int ms_timeout = kFmqReceiveTimeoutMs;