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

Commit e131563d authored by Chen Chen's avatar Chen Chen
Browse files

SpatialAudio: Add is_low_latency to startRequest and only handle it in a2dp

Bug: 223162395
Bug: 214615268
Test: build
Change-Id: I31d386c59e7cad6b7a62ad506555e98de3c9d6b7
parent a7925e53
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@

#include "a2dp_transport.h"
#include "audio_aidl_interfaces.h"
#include "btif/include/btif_common.h"
#include "codec_status_aidl.h"
#include "transport_instance.h"

@@ -62,7 +63,7 @@ A2dpTransport::A2dpTransport(SessionType sessionType)
  remote_delay_report_ = 0;
}

BluetoothAudioCtrlAck A2dpTransport::StartRequest() {
BluetoothAudioCtrlAck A2dpTransport::StartRequest(bool is_low_latency) {
  // Check if a previous request is not finished
  if (a2dp_pending_cmd_ == A2DP_CTRL_CMD_START) {
    LOG(INFO) << __func__ << ": A2DP_CTRL_CMD_START in progress";
@@ -95,6 +96,7 @@ BluetoothAudioCtrlAck A2dpTransport::StartRequest() {
      return a2dp_ack_to_bt_audio_ctrl_ack(A2DP_CTRL_ACK_PENDING);
    }
    a2dp_pending_cmd_ = A2DP_CTRL_CMD_NONE;
    invoke_switch_codec_cb(is_low_latency);
    return a2dp_ack_to_bt_audio_ctrl_ack(A2DP_CTRL_ACK_SUCCESS);
  }
  LOG(ERROR) << __func__ << ": AV stream is not ready to start";
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ class A2dpTransport
 public:
  A2dpTransport(SessionType sessionType);

  BluetoothAudioCtrlAck StartRequest() override;
  BluetoothAudioCtrlAck StartRequest(bool is_low_latency) override;

  BluetoothAudioCtrlAck SuspendRequest() override;

+1 −2
Original line number Diff line number Diff line
@@ -34,8 +34,7 @@ BluetoothAudioPortImpl::~BluetoothAudioPortImpl() {}

ndk::ScopedAStatus BluetoothAudioPortImpl::startStream(bool is_low_latency) {
  StopWatchLegacy stop_watch(__func__);
  BluetoothAudioCtrlAck ack = transport_instance_->StartRequest();
  invoke_switch_codec_cb(is_low_latency);
  BluetoothAudioCtrlAck ack = transport_instance_->StartRequest(is_low_latency);
  if (ack != BluetoothAudioCtrlAck::PENDING) {
    auto aidl_retval =
        provider_->streamStarted(BluetoothAudioCtrlAckToHalStatus(ack));
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ class HearingAidTransport
        total_bytes_read_(0),
        data_position_({}){};

  BluetoothAudioCtrlAck StartRequest() override {
  BluetoothAudioCtrlAck StartRequest(bool is_low_latency) override {
    LOG(INFO) << __func__;
    if (stream_cb_.on_resume_(true)) {
      return BluetoothAudioCtrlAck::SUCCESS_FINISHED;
+6 −5
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ LeAudioTransport::LeAudioTransport(void (*flush)(void),
      pcm_config_(std::move(pcm_config)),
      is_pending_start_request_(false){};

BluetoothAudioCtrlAck LeAudioTransport::StartRequest() {
BluetoothAudioCtrlAck LeAudioTransport::StartRequest(bool is_low_latency) {
  LOG(INFO) << __func__;

  if (stream_cb_.on_resume_(true)) {
@@ -198,8 +198,8 @@ LeAudioSinkTransport::LeAudioSinkTransport(SessionType session_type,

LeAudioSinkTransport::~LeAudioSinkTransport() { delete transport_; }

BluetoothAudioCtrlAck LeAudioSinkTransport::StartRequest() {
  return transport_->StartRequest();
BluetoothAudioCtrlAck LeAudioSinkTransport::StartRequest(bool is_low_latency) {
  return transport_->StartRequest(is_low_latency);
}

BluetoothAudioCtrlAck LeAudioSinkTransport::SuspendRequest() {
@@ -270,8 +270,9 @@ LeAudioSourceTransport::LeAudioSourceTransport(SessionType session_type,

LeAudioSourceTransport::~LeAudioSourceTransport() { delete transport_; }

BluetoothAudioCtrlAck LeAudioSourceTransport::StartRequest() {
  return transport_->StartRequest();
BluetoothAudioCtrlAck LeAudioSourceTransport::StartRequest(
    bool is_low_latency) {
  return transport_->StartRequest(is_low_latency);
}

BluetoothAudioCtrlAck LeAudioSourceTransport::SuspendRequest() {
Loading