Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f765ce3 authored by Alice Kuo's avatar Alice Kuo
Browse files

Clean up: remove LE audio hardware offload in Bluetooth audio HAL 2.1

LE audio offload plan to fully support on aidl or temporal HAL 2.2. Remove it in HAL 2.1 to make the compatible work easier

Bug: 197296692
Bug: 150670922
Test: HAL 2.1/2.2 work for A2DP software/hardware media, and LE audio
software media/voip call

Change-Id: Icc68bea357d2ee0427826e0c20888399662e9bcb
parent cd9bb98d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ class BluetoothAudioSessionControl_2_1 {
    std::shared_ptr<BluetoothAudioSession_2_1> session_ptr =
        BluetoothAudioSessionInstance_2_1::GetSessionInstance(session_type);
    if (session_ptr != nullptr) {
      return session_ptr->IsSessionReady();
      return session_ptr->GetAudioSession()->IsSessionReady();
    }
    return false;
  }
+2 −21
Original line number Diff line number Diff line
@@ -60,16 +60,6 @@ BluetoothAudioSession_2_1::BluetoothAudioSession_2_1(
  }
}

bool BluetoothAudioSession_2_1::IsSessionReady() {
  if (session_type_2_1_ !=
      SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH) {
    return audio_session->IsSessionReady();
  }

  std::lock_guard<std::recursive_mutex> guard(audio_session->mutex_);
  return audio_session->stack_iface_ != nullptr;
}

std::shared_ptr<BluetoothAudioSession>
BluetoothAudioSession_2_1::GetAudioSession() {
  return audio_session;
@@ -80,7 +70,7 @@ BluetoothAudioSession_2_1::GetAudioSession() {
const ::android::hardware::bluetooth::audio::V2_1::AudioConfiguration
BluetoothAudioSession_2_1::GetAudioConfig() {
  std::lock_guard<std::recursive_mutex> guard(audio_session->mutex_);
  if (IsSessionReady()) {
  if (audio_session->IsSessionReady()) {
    // If session is unknown it means it should be 2.0 type
    if (session_type_2_1_ != SessionType_2_1::UNKNOWN)
      return audio_config_2_1_;
@@ -122,9 +112,6 @@ bool BluetoothAudioSession_2_1::UpdateAudioConfig(
           SessionType_2_1::LE_AUDIO_SOFTWARE_DECODED_DATAPATH);
  bool is_offload_a2dp_session =
      (session_type_2_1_ == SessionType_2_1::A2DP_HARDWARE_OFFLOAD_DATAPATH);
  bool is_offload_le_audio_session =
      (session_type_2_1_ == SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
       session_type_2_1_ == SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH);
  auto audio_config_discriminator = audio_config.getDiscriminator();
  bool is_software_audio_config =
      (is_software_session &&
@@ -136,13 +123,7 @@ bool BluetoothAudioSession_2_1::UpdateAudioConfig(
       audio_config_discriminator ==
           ::android::hardware::bluetooth::audio::V2_1::AudioConfiguration::
               hidl_discriminator::codecConfig);
  bool is_le_audio_offload_audio_config =
      (is_offload_le_audio_session &&
       audio_config_discriminator ==
           ::android::hardware::bluetooth::audio::V2_1::AudioConfiguration::
               hidl_discriminator::leAudioCodecConfig);
  if (!is_software_audio_config && !is_a2dp_offload_audio_config &&
      !is_le_audio_offload_audio_config) {
  if (!is_software_audio_config && !is_a2dp_offload_audio_config) {
    return false;
  }
  audio_config_2_1_ = audio_config;
+0 −4
Original line number Diff line number Diff line
@@ -50,10 +50,6 @@ class BluetoothAudioSession_2_1 {
      const ::android::hardware::bluetooth::audio::V2_1::SessionType&
          session_type);

  // The function helps to check if this session is ready or not
  // @return: true if the Bluetooth stack has started the specified session
  bool IsSessionReady();

  std::shared_ptr<BluetoothAudioSession> GetAudioSession();

  // The report function is used to report that the Bluetooth stack has started