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

Commit d1624b77 authored by Alice Kuo's avatar Alice Kuo Committed by Automerger Merge Worker
Browse files

Bluetooth audio hal check broadcast configuraiton for the broadcast offload...

Bluetooth audio hal check broadcast configuraiton for the broadcast offload am: ee398a93 am: fb6b4955 am: 55503bbf

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2147741



Change-Id: I76eaa9399b08ef721d89d2d01e156841b47cb309
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a21a5a69 55503bbf
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -55,18 +55,17 @@ ndk::ScopedAStatus LeAudioOffloadAudioProvider::startSession(
    const std::shared_ptr<IBluetoothAudioPort>& host_if,
    const AudioConfiguration& audio_config,
    const std::vector<LatencyMode>& latency_modes, DataMQDesc* _aidl_return) {
  if (audio_config.getTag() != AudioConfiguration::leAudioConfig) {
  if (session_type_ ==
      SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH) {
    if (audio_config.getTag() != AudioConfiguration::leAudioBroadcastConfig) {
      LOG(WARNING) << __func__ << " - Invalid Audio Configuration="
                   << audio_config.toString();
      *_aidl_return = DataMQDesc();
      return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
    }
  const auto& le_audio_config =
      audio_config.get<AudioConfiguration::leAudioConfig>();
  if (!BluetoothAudioCodecs::IsOffloadLeAudioConfigurationValid(
          session_type_, le_audio_config)) {
    LOG(WARNING) << __func__ << " - Unsupported LC3 Offloaded Configuration="
                 << le_audio_config.toString();
  } else if (audio_config.getTag() != AudioConfiguration::leAudioConfig) {
    LOG(WARNING) << __func__ << " - Invalid Audio Configuration="
                 << audio_config.toString();
    *_aidl_return = DataMQDesc();
    return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
  }
+0 −13
Original line number Diff line number Diff line
@@ -321,19 +321,6 @@ bool BluetoothAudioCodecs::IsOffloadOpusConfigurationValid(
  return false;
}

bool BluetoothAudioCodecs::IsOffloadLeAudioConfigurationValid(
    const SessionType& session_type, const LeAudioConfiguration&) {
  if (session_type !=
          SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH &&
      session_type !=
          SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH &&
      session_type !=
          SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH) {
    return false;
  }
  return true;
}

std::vector<PcmCapabilities>
BluetoothAudioCodecs::GetSoftwarePcmCapabilities() {
  return {kDefaultSoftwarePcmCapabilities};
+0 −3
Original line number Diff line number Diff line
@@ -44,9 +44,6 @@ class BluetoothAudioCodecs {
  static bool IsOffloadCodecConfigurationValid(
      const SessionType& session_type, const CodecConfiguration& codec_config);

  static bool IsOffloadLeAudioConfigurationValid(
      const SessionType& session_type, const LeAudioConfiguration&);

  static std::vector<LeAudioCodecCapabilitiesSetting>
  GetLeAudioOffloadCodecCapabilities(const SessionType& session_type);

+11 −4
Original line number Diff line number Diff line
@@ -276,11 +276,14 @@ 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_le_audio_session =
  bool is_offload_le_audio_unicast_session =
      (session_type_ ==
           SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH ||
       session_type_ ==
           SessionType::LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH);
  bool is_offload_le_audio_broadcast_session =
      (session_type_ ==
       SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH);
  auto audio_config_tag = audio_config.getTag();
  bool is_software_audio_config =
      (is_software_session &&
@@ -288,11 +291,15 @@ bool BluetoothAudioSession::UpdateAudioConfig(
  bool is_a2dp_offload_audio_config =
      (is_offload_a2dp_session &&
       audio_config_tag == AudioConfiguration::a2dpConfig);
  bool is_le_audio_offload_audio_config =
      (is_offload_le_audio_session &&
  bool is_le_audio_offload_unicast_audio_config =
      (is_offload_le_audio_unicast_session &&
       audio_config_tag == AudioConfiguration::leAudioConfig);
  bool is_le_audio_offload_broadcast_audio_config =
      (is_offload_le_audio_broadcast_session &&
       audio_config_tag == AudioConfiguration::leAudioBroadcastConfig);
  if (!is_software_audio_config && !is_a2dp_offload_audio_config &&
      !is_le_audio_offload_audio_config) {
      !is_le_audio_offload_unicast_audio_config &&
      !is_le_audio_offload_broadcast_audio_config) {
    return false;
  }
  audio_config_ = std::make_unique<AudioConfiguration>(audio_config);