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

Commit 484a8ec0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "le_audio: Add safe binds for LE Audio HAL clients" into main am: 2f4a9664

parents 073e7895 2f4a9664
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -101,11 +101,14 @@ class LeAudioSinkAudioHalClient {
 public:
  class Callbacks {
   public:
    Callbacks() = default;
    virtual ~Callbacks() = default;
    virtual void OnAudioSuspend(void) = 0;
    virtual void OnAudioResume(void) = 0;
    virtual void OnAudioMetadataUpdate(
        std::vector<struct record_track_metadata> sink_metadata) = 0;

    base::WeakPtrFactory<Callbacks> weak_factory_{this};
  };

  virtual ~LeAudioSinkAudioHalClient() = default;
@@ -137,12 +140,15 @@ class LeAudioSourceAudioHalClient {
 public:
  class Callbacks {
   public:
    Callbacks() = default;
    virtual ~Callbacks() = default;
    virtual void OnAudioDataReady(const std::vector<uint8_t>& data) = 0;
    virtual void OnAudioSuspend(void) = 0;
    virtual void OnAudioResume(void) = 0;
    virtual void OnAudioMetadataUpdate(
        std::vector<struct playback_track_metadata> source_metadata) = 0;

    base::WeakPtrFactory<Callbacks> weak_factory_{this};
  };

  virtual ~LeAudioSourceAudioHalClient() = default;
+3 −3
Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ bool SinkImpl::OnResumeReq(bool start_media_task) {
  bt_status_t status = do_in_main_thread(
      FROM_HERE,
      base::BindOnce(&LeAudioSinkAudioHalClient::Callbacks::OnAudioResume,
                     base::Unretained(audioSinkCallbacks_)));
                     audioSinkCallbacks_->weak_factory_.GetWeakPtr()));
  if (status == BT_STATUS_SUCCESS) {
    return true;
  }
@@ -146,7 +146,7 @@ bool SinkImpl::OnSuspendReq() {
  bt_status_t status = do_in_main_thread(
      FROM_HERE,
      base::BindOnce(&LeAudioSinkAudioHalClient::Callbacks::OnAudioSuspend,
                     base::Unretained(audioSinkCallbacks_)));
                     audioSinkCallbacks_->weak_factory_.GetWeakPtr()));
  if (status == BT_STATUS_SUCCESS) {
    return true;
  }
@@ -170,7 +170,7 @@ bool SinkImpl::OnMetadataUpdateReq(const sink_metadata_t& sink_metadata) {
      FROM_HERE,
      base::BindOnce(
          &LeAudioSinkAudioHalClient::Callbacks::OnAudioMetadataUpdate,
          base::Unretained(audioSinkCallbacks_), metadata));
          audioSinkCallbacks_->weak_factory_.GetWeakPtr(), metadata));
  if (status == BT_STATUS_SUCCESS) {
    return true;
  }
+3 −3
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ bool SourceImpl::OnResumeReq(bool start_media_task) {
  bt_status_t status = do_in_main_thread(
      FROM_HERE,
      base::BindOnce(&LeAudioSourceAudioHalClient::Callbacks::OnAudioResume,
                     base::Unretained(audioSourceCallbacks_)));
                     audioSourceCallbacks_->weak_factory_.GetWeakPtr()));
  if (status == BT_STATUS_SUCCESS) {
    return true;
  }
@@ -257,7 +257,7 @@ bool SourceImpl::OnSuspendReq() {
  bt_status_t status = do_in_main_thread(
      FROM_HERE,
      base::BindOnce(&LeAudioSourceAudioHalClient::Callbacks::OnAudioSuspend,
                     base::Unretained(audioSourceCallbacks_)));
                     audioSourceCallbacks_->weak_factory_.GetWeakPtr()));
  if (status == BT_STATUS_SUCCESS) {
    return true;
  }
@@ -282,7 +282,7 @@ bool SourceImpl::OnMetadataUpdateReq(const source_metadata_t& source_metadata) {
      FROM_HERE,
      base::BindOnce(
          &LeAudioSourceAudioHalClient::Callbacks::OnAudioMetadataUpdate,
          base::Unretained(audioSourceCallbacks_), metadata));
          audioSourceCallbacks_->weak_factory_.GetWeakPtr(), metadata));
  if (status == BT_STATUS_SUCCESS) {
    return true;
  }