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

Commit a27b1a3b authored by Himanshu Rawat's avatar Himanshu Rawat Committed by Automerger Merge Worker
Browse files

Merge changes from topic "bt-le-audio-dsa" into main am: 6b26bb37

parents 42cee897 6b26bb37
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -66,7 +66,8 @@ LeAudioTransport::LeAudioTransport(void (*flush)(void),
      total_bytes_processed_(0),
      data_position_({}),
      pcm_config_(std::move(pcm_config)),
      start_request_state_(StartRequestState::IDLE){};
      start_request_state_(StartRequestState::IDLE),
      dsa_mode_(DsaMode::DISABLED){};

BluetoothAudioCtrlAck LeAudioTransport::StartRequest(bool is_low_latency) {
  // Check if operation is pending already
+14 −6
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@

#include "le_audio_software.h"

#include <android_bluetooth_flags.h>

#include <unordered_map>
#include <vector>

@@ -868,8 +870,18 @@ bool LeAudioClientInterface::ReleaseSource(
}

void LeAudioClientInterface::SetAllowedDsaModes(DsaModes dsa_modes) {
  if (!IS_FLAG_ENABLED(leaudio_dynamic_spatial_audio)) {
    return;
  }

  if (HalVersionManager::GetHalTransport() ==
      BluetoothAudioHalTransport::AIDL) {
    if (aidl::le_audio::LeAudioSinkTransport::interface_unicast_ == nullptr ||
        aidl::le_audio::LeAudioSinkTransport::instance_unicast_ == nullptr) {
      LOG(WARNING) << __func__ << ": LeAudioSourceTransport::interface is null";
      return;
    }

    std::vector<LatencyMode> latency_modes = {LatencyMode::FREE};
    for (auto dsa_mode : dsa_modes) {
      switch (dsa_mode) {
@@ -890,12 +902,8 @@ void LeAudioClientInterface::SetAllowedDsaModes(DsaModes dsa_modes) {
          break;
      }
    }
    if (aidl::le_audio::LeAudioSourceTransport::interface) {
      aidl::le_audio::LeAudioSourceTransport::interface->SetAllowedLatencyModes(
          latency_modes);
    } else {
      LOG(WARNING) << "LeAudioSourceTransport::interface is null";
    }
    aidl::le_audio::LeAudioSinkTransport::interface_unicast_
        ->SetAllowedLatencyModes(latency_modes);
  }
}

+13 −4
Original line number Diff line number Diff line
@@ -327,14 +327,23 @@ class LeAudioDeviceGroup {
      int direction = types::kLeAudioDirectionBoth) const;

  DsaModes GetAllowedDsaModes() {
    DsaModes dsa_modes = {};
    if (!IS_FLAG_ENABLED(leaudio_dynamic_spatial_audio)) {
      return {DsaMode::DISABLED};
    }

    DsaModes dsa_modes{};
    std::set<DsaMode> dsa_mode_set{};

    for (auto leAudioDevice : leAudioDevices_) {
      if (leAudioDevice.expired()) continue;

      dsa_modes.insert(dsa_modes.end(),
                       leAudioDevice.lock()->GetDsaModes().begin(),
                       leAudioDevice.lock()->GetDsaModes().end());
      auto device_dsa_modes = leAudioDevice.lock()->GetDsaModes();

      dsa_mode_set.insert(device_dsa_modes.begin(), device_dsa_modes.end());
    }

    dsa_modes.assign(dsa_mode_set.begin(), dsa_mode_set.end());

    return dsa_modes;
  }