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

Commit 1f0a6a2d authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8176975 from ebe7ed39 to tm-d1-release

Change-Id: Ic4003002b80e4d506226e15ee17456a081f73bb2
parents c0199978 ebe7ed39
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ parcelable Stream {
  android.hardware.automotive.evs.StreamType streamType;
  int width;
  int height;
  int framerate;
  android.hardware.graphics.common.PixelFormat format;
  android.hardware.graphics.common.BufferUsage usage;
  android.hardware.automotive.evs.Rotation rotation;
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ parcelable Stream {
    int height;
    /**
     * The frame rate of this stream in frames-per-second
     /
     */
    int framerate;
    /**
     * The pixel format form the buffers in this stream.
+2 −0
Original line number Diff line number Diff line
@@ -131,6 +131,8 @@ ndk::ScopedAStatus BluetoothAudioProvider::setLowLatencyModeAllowed(
    return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
  }
  LOG(INFO) << __func__ << " - allowed " << allowed;
  BluetoothAudioSessionReport::ReportLowLatencyModeAllowedChanged(
    session_type_, allowed);
  return ndk::ScopedAStatus::ok();
}

+16 −0
Original line number Diff line number Diff line
@@ -416,6 +416,22 @@ void BluetoothAudioSession::ReportControlStatus(bool start_resp,
  }
}

void BluetoothAudioSession::ReportLowLatencyModeAllowedChanged(bool allowed) {
  std::lock_guard<std::recursive_mutex> guard(mutex_);
  if (observers_.empty()) {
    LOG(WARNING) << __func__ << " - SessionType=" << toString(session_type_)
                 << " has NO port state observer";
    return;
  }
  for (auto& observer : observers_) {
    uint16_t cookie = observer.first;
    std::shared_ptr<PortStatusCallbacks> callback = observer.second;
    LOG(INFO) << __func__ << " - allowed="
              << allowed ? " allowed" : " disallowed";
    callback->low_latency_mode_allowed_cb_(cookie, allowed);
  }
}

bool BluetoothAudioSession::GetPresentationPosition(
    PresentationPosition& presentation_position) {
  std::lock_guard<std::recursive_mutex> guard(mutex_);
+16 −0
Original line number Diff line number Diff line
@@ -92,6 +92,15 @@ struct PortStatusCallbacks {
   * @param: cookie - indicates which bluetooth_audio output should handle
   ***/
  std::function<void(uint16_t cookie)> audio_configuration_changed_cb_;
  /***
   * low_latency_mode_allowed_cb_ - when the Bluetooth stack low latency mode
   * allowed or disallowed, the BluetoothAudioProvider will invoke
   * this callback to report to the bluetooth_audio module.
   * @param: cookie - indicates which bluetooth_audio output should handle
   * @param: allowed - indicates if low latency mode is allowed
   ***/
  std::function<void(uint16_t cookie, bool allowed)>
      low_latency_mode_allowed_cb_;
};

class BluetoothAudioSession {
@@ -155,6 +164,13 @@ class BluetoothAudioSession {
   ***/
  void ReportAudioConfigChanged(const AudioConfiguration& audio_config);

  /***
   * The report function is used to report that the Bluetooth stack has notified
   * the low latency mode allowed changed, and will invoke
   * low_latency_mode_allowed_changed_cb to notify registered bluetooth_audio
   * outputs
   ***/
  void ReportLowLatencyModeAllowedChanged(bool allowed);
  /***
   * Those control functions are for the bluetooth_audio module to start,
   * suspend, stop stream, to check position, and to update metadata.
Loading