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

Commit 31fcf4ce authored by Jakub Pawłowski's avatar Jakub Pawłowski Committed by Gerrit Code Review
Browse files

Merge "Audio HAL interface: pass sink metadata to LE Audio"

parents 17f7b518 b0d6dc71
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -163,6 +163,8 @@ class A2dpTransport
    }
  }

  void SinkMetadataChanged(const sink_metadata_t&) override {}

  tA2DP_CTRL_CMD GetPendingCmd() const { return a2dp_pending_cmd_; }

  void ResetPendingCmd() { a2dp_pending_cmd_ = A2DP_CTRL_CMD_NONE; }
+12 −1
Original line number Diff line number Diff line
@@ -161,7 +161,18 @@ class BluetoothAudioPortImpl : public IBluetoothAudioPort {
  Return<void> updateSinkMetadata(const SinkMetadata& sinkMetadata) override {
    StopWatchLegacy stop_watch(__func__);
    LOG(INFO) << __func__ << ": " << sinkMetadata.tracks.size() << " track(s)";
    // TODO: pass the metadata up to transport_instance and LE Audio
    // refer to StreamIn.impl.h within Audio HAL (AUDIO_HAL_VERSION_5_0)
    std::vector<record_track_metadata> metadata_vec;
    metadata_vec.reserve(sinkMetadata.tracks.size());
    for (const auto& metadata : sinkMetadata.tracks) {
      metadata_vec.push_back({
          .source = static_cast<audio_source_t>(metadata.source),
          .gain = metadata.gain,
      });
    }
    const sink_metadata_t sink_metadata = {.track_count = metadata_vec.size(),
                                           .tracks = metadata_vec.data()};
    transport_instance_->SinkMetadataChanged(sink_metadata);
    return Void();
  }

+1 −0
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ class IBluetoothTransportInstance {
                                       timespec* data_position) = 0;

  virtual void MetadataChanged(const source_metadata_t& source_metadata) = 0;
  virtual void SinkMetadataChanged(const sink_metadata_t& sink_metadata) = 0;

  // Invoked when the transport is requested to reset presentation position
  virtual void ResetPresentationPosition() = 0;
+4 −0
Original line number Diff line number Diff line
@@ -162,6 +162,8 @@ class TestSinkTransport
  }
  void MetadataChanged(
      const source_metadata_t& source_metadata __unused) override {}
  void SinkMetadataChanged(
      const sink_metadata_t& sink_metadata __unused) override {}
  void ResetPresentationPosition() override{};
  void LogBytesRead(size_t bytes_readed __unused) override{};
};
@@ -200,6 +202,8 @@ class TestSourceTransport
  }
  void MetadataChanged(
      const source_metadata_t& source_metadata __unused) override {}
  void SinkMetadataChanged(
      const sink_metadata_t& sink_metadata __unused) override {}
  void ResetPresentationPosition() override{};
  void LogBytesWritten(size_t bytes_written __unused) override{};
};
+2 −0
Original line number Diff line number Diff line
@@ -106,6 +106,8 @@ class HearingAidTransport
    }
  }

  void SinkMetadataChanged(const sink_metadata_t&) override {}

  void ResetPresentationPosition() override {
    VLOG(2) << __func__ << ": called.";
    remote_delay_report_ms_ = 0;
Loading