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

Commit 73c7867b authored by Alice Kuo's avatar Alice Kuo
Browse files

Start session and update audio configuration for LE audio offload

Bug: 150670922
Bug: 197296692
Test: build pass
Change-Id: I161c3962eaec671e76fd7bb59a39888aa538ad0d
parent 6180b2b1
Loading
Loading
Loading
Loading
+24 −8
Original line number Diff line number Diff line
@@ -685,18 +685,29 @@ bool BluetoothAudioClientInterface::UpdateAudioConfig_2_2(
           SessionType_2_1::LE_AUDIO_SOFTWARE_ENCODING_DATAPATH ||
       transport_->GetSessionType_2_1() ==
           SessionType_2_1::LE_AUDIO_SOFTWARE_DECODED_DATAPATH);
  bool is_offload_session = (transport_->GetSessionType_2_1() ==
  bool is_a2dp_offload_session =
      (transport_->GetSessionType_2_1() ==
       SessionType_2_1::A2DP_HARDWARE_OFFLOAD_DATAPATH);
  bool is_leaudio_offload_session =
      (transport_->GetSessionType_2_1() ==
           SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
       transport_->GetSessionType_2_1() ==
           SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH);
  auto audio_config_discriminator = audio_config_2_2.getDiscriminator();
  bool is_software_audio_config =
      (is_software_session &&
       audio_config_discriminator ==
           AudioConfiguration_2_2::hidl_discriminator::pcmConfig);
  bool is_offload_audio_config =
      (is_offload_session &&
  bool is_a2dp_offload_audio_config =
      (is_a2dp_offload_session &&
       audio_config_discriminator ==
           AudioConfiguration_2_2::hidl_discriminator::codecConfig);
  if (!is_software_audio_config && !is_offload_audio_config) {
  bool is_leaudio_offload_audio_config =
      (is_leaudio_offload_session &&
       audio_config_discriminator ==
           AudioConfiguration_2_2::hidl_discriminator::leAudioConfig);
  if (!is_software_audio_config && !is_a2dp_offload_audio_config &&
      !is_leaudio_offload_audio_config) {
    return false;
  }

@@ -865,8 +876,13 @@ int BluetoothAudioClientInterface::StartSession_2_2() {

  if (tempDataMQ && tempDataMQ->isValid()) {
    mDataMQ = std::move(tempDataMQ);
  } else if (transport_->GetSessionType_2_1() ==
                 SessionType_2_1::A2DP_HARDWARE_OFFLOAD_DATAPATH &&
  } else if (
      (transport_->GetSessionType_2_1() ==
           SessionType_2_1::A2DP_HARDWARE_OFFLOAD_DATAPATH ||
       transport_->GetSessionType_2_1() ==
           SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
       transport_->GetSessionType_2_1() ==
           SessionType_2_1::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH) &&
      session_status == BluetoothAudioStatus::SUCCESS) {
    transport_->ResetPresentationPosition();
    session_started_ = true;