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

Commit 3d210c73 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 am: d1624b77 am: 4afff852

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



Change-Id: I1b0cf8bb7be84199b4986b299a25248948e4e0ca
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 75ba18c8 4afff852
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);