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

Commit 4afff852 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

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



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