diff options
author | Josh Wu <joshwu@google.com> | 2022-01-21 21:51:21 -0800 |
---|---|---|
committer | Josh Wu <joshwu@google.com> | 2022-01-23 08:30:13 -0800 |
commit | 75462aafb547968431e2413dd74aacfb079c0e6c (patch) | |
tree | b749a4c1aaa4e3409e43caff9343169fccb985dc /bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp | |
parent | b1ab40b8d66844f067ad45340a0fa666df031334 (diff) |
BtAudio: Improve LE offload compatability
Bug: 203490261
Test: m android.hardware.bluetooth.audio-V1-impl
Change-Id: I7dd37cb697b03bb5fe0bdc467f8e190575e0e2e1
Diffstat (limited to 'bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp')
-rw-r--r-- | bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp index 8052b01a40..f626db83bd 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp @@ -35,22 +35,8 @@ static constexpr int kFmqReceiveTimeoutMs = static constexpr int kWritePollMs = 1; // polled non-blocking interval static constexpr int kReadPollMs = 1; // polled non-blocking interval -const CodecConfiguration BluetoothAudioSession::kInvalidCodecConfiguration = {}; -const LeAudioConfiguration kInvalidLeAudioConfiguration = {}; -AudioConfiguration BluetoothAudioSession::invalidSoftwareAudioConfiguration = - {}; -AudioConfiguration BluetoothAudioSession::invalidOffloadAudioConfiguration = {}; -AudioConfiguration BluetoothAudioSession::invalidLeOffloadAudioConfig = {}; - BluetoothAudioSession::BluetoothAudioSession(const SessionType& session_type) - : session_type_(session_type), stack_iface_(nullptr), data_mq_(nullptr) { - invalidSoftwareAudioConfiguration.set<AudioConfiguration::pcmConfig>( - kInvalidPcmConfiguration); - invalidOffloadAudioConfiguration.set<AudioConfiguration::a2dpConfig>( - kInvalidCodecConfiguration); - invalidLeOffloadAudioConfig.set<AudioConfiguration::leAudioConfig>( - kInvalidLeAudioConfiguration); -} + : session_type_(session_type), stack_iface_(nullptr), data_mq_(nullptr) {} /*** * @@ -72,13 +58,7 @@ void BluetoothAudioSession::OnSessionStarted( } else if (!UpdateDataPath(mq_desc)) { LOG(ERROR) << __func__ << " - SessionType=" << toString(session_type_) << " MqDescriptor Invalid"; - if (session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH) { - audio_config_ = std::make_unique<AudioConfiguration>( - invalidOffloadAudioConfiguration); - } else { - audio_config_ = std::make_unique<AudioConfiguration>( - invalidSoftwareAudioConfiguration); - } + audio_config_ = nullptr; } else { stack_iface_ = stack_iface; LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) @@ -91,13 +71,7 @@ void BluetoothAudioSession::OnSessionEnded() { std::lock_guard<std::recursive_mutex> guard(mutex_); bool toggled = IsSessionReady(); LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_); - if (session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH) { - audio_config_ = - std::make_unique<AudioConfiguration>(invalidOffloadAudioConfiguration); - } else { - audio_config_ = - std::make_unique<AudioConfiguration>(invalidSoftwareAudioConfiguration); - } + audio_config_ = nullptr; stack_iface_ = nullptr; UpdateDataPath(nullptr); if (toggled) { @@ -111,17 +85,17 @@ void BluetoothAudioSession::OnSessionEnded() { * ***/ -const AudioConfiguration& BluetoothAudioSession::GetAudioConfig() { +const AudioConfiguration BluetoothAudioSession::GetAudioConfig() { std::lock_guard<std::recursive_mutex> guard(mutex_); if (!IsSessionReady()) { switch (session_type_) { case SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH: - return invalidOffloadAudioConfiguration; + return AudioConfiguration(CodecConfiguration{}); case SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH: case SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH: - return invalidLeOffloadAudioConfig; + return AudioConfiguration(LeAudioConfiguration{}); default: - return invalidSoftwareAudioConfiguration; + return AudioConfiguration(PcmConfiguration{}); } } return *audio_config_; @@ -164,7 +138,7 @@ bool BluetoothAudioSession::IsSessionReady() { session_type_ == SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH || (data_mq_ != nullptr && data_mq_->isValid())); - return stack_iface_ != nullptr && is_mq_valid; + return stack_iface_ != nullptr && is_mq_valid && audio_config_ != nullptr; } /*** |