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

Commit 7a11e5ea authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8912782 from 0d976c76 to tm-qpr1-release

Change-Id: Ideb09ef299ff51920fa2193e1248557d23804e46
parents 0a169437 0d976c76
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -168,6 +168,31 @@ void LeAudioTransport::LeAudioSetSelectedHalPcmConfig(uint32_t sample_rate_hz,
  pcm_config_.dataIntervalUs = data_interval;
}

void LeAudioTransport::LeAudioSetBroadcastConfig(
    const ::le_audio::broadcast_offload_config& offload_config) {
  broadcast_config_.streamMap.resize(0);
  for (auto& [handle, location] : offload_config.stream_map) {
    Lc3Configuration lc3_config{
        .pcmBitDepth = static_cast<int8_t>(offload_config.bits_per_sample),
        .samplingFrequencyHz =
            static_cast<int32_t>(offload_config.sampling_rate),
        .frameDurationUs = static_cast<int32_t>(offload_config.frame_duration),
        .octetsPerFrame = static_cast<int32_t>(offload_config.octets_per_frame),
        .blocksPerSdu = static_cast<int8_t>(offload_config.blocks_per_sdu),
    };
    broadcast_config_.streamMap.push_back({
        .streamHandle = handle,
        .audioChannelAllocation = static_cast<int32_t>(location),
        .leAudioCodecConfig = std::move(lc3_config),
    });
  }
}

const LeAudioBroadcastConfiguration&
LeAudioTransport::LeAudioGetBroadcastConfig() {
  return broadcast_config_;
}

bool LeAudioTransport::IsPendingStartStream(void) {
  return is_pending_start_request_;
}
@@ -259,6 +284,16 @@ void LeAudioSinkTransport::LeAudioSetSelectedHalPcmConfig(
                                             channels_count, data_interval);
}

void LeAudioSinkTransport::LeAudioSetBroadcastConfig(
    const ::le_audio::broadcast_offload_config& offload_config) {
  transport_->LeAudioSetBroadcastConfig(offload_config);
}

const LeAudioBroadcastConfiguration&
LeAudioSinkTransport::LeAudioGetBroadcastConfig() {
  return transport_->LeAudioGetBroadcastConfig();
}

bool LeAudioSinkTransport::IsPendingStartStream(void) {
  return transport_->IsPendingStartStream();
}
+11 −0
Original line number Diff line number Diff line
@@ -96,6 +96,11 @@ class LeAudioTransport {
                                      uint8_t channels_count,
                                      uint32_t data_interval);

  void LeAudioSetBroadcastConfig(
      const ::le_audio::broadcast_offload_config& offload_config);

  const LeAudioBroadcastConfiguration& LeAudioGetBroadcastConfig();

  bool IsPendingStartStream(void);
  void ClearPendingStartStream(void);

@@ -106,6 +111,7 @@ class LeAudioTransport {
  uint64_t total_bytes_processed_;
  timespec data_position_;
  PcmConfiguration pcm_config_;
  LeAudioBroadcastConfiguration broadcast_config_;
  bool is_pending_start_request_;
};

@@ -143,6 +149,11 @@ class LeAudioSinkTransport
                                      uint8_t channels_count,
                                      uint32_t data_interval);

  void LeAudioSetBroadcastConfig(
      const ::le_audio::broadcast_offload_config& offload_config);

  const LeAudioBroadcastConfiguration& LeAudioGetBroadcastConfig();

  bool IsPendingStartStream(void);
  void ClearPendingStartStream(void);

+19 −7
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ using AudioConfiguration_2_1 =
    ::android::hardware::bluetooth::audio::V2_1::AudioConfiguration;
using AudioConfigurationAIDL =
    ::aidl::android::hardware::bluetooth::audio::AudioConfiguration;
using ::aidl::android::hardware::bluetooth::audio::LeAudioCodecConfiguration;

using ::le_audio::CodecManager;
using ::le_audio::set_configurations::AudioSetConfiguration;
@@ -170,9 +171,9 @@ void LeAudioClientInterface::Sink::StartSession() {
    AudioConfigurationAIDL audio_config;
    if (is_aidl_offload_encoding_session(is_broadcaster_)) {
      if (is_broadcaster_) {
        aidl::le_audio::LeAudioBroadcastConfiguration le_audio_config = {};
        audio_config.set<AudioConfigurationAIDL::leAudioBroadcastConfig>(
            le_audio_config);
            get_aidl_transport_instance(is_broadcaster_)
                ->LeAudioGetBroadcastConfig());
      } else {
        aidl::le_audio::LeAudioConfiguration le_audio_config = {};
        audio_config.set<AudioConfigurationAIDL::leAudioConfig>(
@@ -257,12 +258,8 @@ void LeAudioClientInterface::Sink::UpdateAudioConfigToHal(
      BluetoothAudioHalTransport::HIDL) {
    return;
  }
  if (!is_aidl_offload_encoding_session(is_broadcaster_)) {
    return;
  }

  if (is_broadcaster_) {
    LOG(WARNING) << __func__ << ", broadcasting not supported";
  if (is_broadcaster_ || !is_aidl_offload_encoding_session(is_broadcaster_)) {
    return;
  }

@@ -271,6 +268,21 @@ void LeAudioClientInterface::Sink::UpdateAudioConfigToHal(
          aidl::le_audio::offload_config_to_hal_audio_config(offload_config));
}

void LeAudioClientInterface::Sink::UpdateBroadcastAudioConfigToHal(
    const ::le_audio::broadcast_offload_config& offload_config) {
  if (HalVersionManager::GetHalTransport() ==
      BluetoothAudioHalTransport::HIDL) {
    return;
  }

  if (!is_broadcaster_ || !is_aidl_offload_encoding_session(is_broadcaster_)) {
    return;
  }

  get_aidl_transport_instance(is_broadcaster_)
      ->LeAudioSetBroadcastConfig(offload_config);
}

void LeAudioClientInterface::Sink::SuspendedForReconfiguration() {
  if (HalVersionManager::GetHalTransport() ==
      BluetoothAudioHalTransport::HIDL) {
+2 −0
Original line number Diff line number Diff line
@@ -92,6 +92,8 @@ class LeAudioClientInterface {
    void CancelStreamingRequest() override;
    void UpdateAudioConfigToHal(
        const ::le_audio::offload_config& config) override;
    void UpdateBroadcastAudioConfigToHal(
        const ::le_audio::broadcast_offload_config& config);
    void SuspendedForReconfiguration() override;
    // Read the stream of bytes sinked to us by the upper layers
    size_t Read(uint8_t* p_buf, uint32_t len);
+6 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@

#include "audio_hal_interface/hal_version_manager.h"
#include "audio_hal_interface/le_audio_software.h"
#include "bta/le_audio/codec_manager.h"

namespace bluetooth {
namespace audio {
@@ -44,6 +45,11 @@ LeAudioClientInterface::Sink* LeAudioClientInterface::GetSink(
  return nullptr;
}

void LeAudioClientInterface::Sink::UpdateBroadcastAudioConfigToHal(
    ::le_audio::broadcast_offload_config const& config) {
  return;
}

size_t LeAudioClientInterface::Sink::Read(uint8_t* p_buf, uint32_t len) {
  return 0;
}
Loading