Commit 78abc7fa authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Migrate AssistantAudioDecoderFactory to new Mojo types

This CL applies the new Mojo types to CreateAssistantAudioDecoder
in AssistantAudioDecoderFactory interface.

  - Convert FooRequest to mojo::PendingReceiver.
  - Convert FooPtr to mojo::PendingRemote or mojo::Remote.

Bug: 955171
Change-Id: I2de4cb0561c69201335817ec6a873258a30d9a00
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1871503
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarTao Wu <wutao@chromium.org>
Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#709059}
parent 41f6ef7e
......@@ -30,15 +30,15 @@ void OnError(bool* succeeded) {
} // namespace
AssistantAudioDecoder::AssistantAudioDecoder(
mojom::AssistantAudioDecoderClientPtr client,
mojom::AssistantMediaDataSourcePtr data_source)
mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source)
: client_(std::move(client)),
task_runner_(base::SequencedTaskRunnerHandle::Get()),
data_source_(std::make_unique<IPCDataSource>(std::move(data_source))),
media_thread_(std::make_unique<base::Thread>("media_thread")),
weak_factory_(this) {
CHECK(media_thread_->Start());
client_.set_connection_error_handler(base::BindOnce(
client_.set_disconnect_handler(base::BindOnce(
&AssistantAudioDecoder::OnConnectionError, base::Unretained(this)));
}
......
......@@ -10,6 +10,8 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "chromeos/services/assistant/public/mojom/assistant_audio_decoder.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace media {
class AudioFileReader;
......@@ -23,8 +25,8 @@ namespace assistant {
class AssistantAudioDecoder : public mojom::AssistantAudioDecoder {
public:
AssistantAudioDecoder(
mojom::AssistantAudioDecoderClientPtr client,
mojom::AssistantMediaDataSourcePtr data_source);
mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source);
~AssistantAudioDecoder() override;
// Called by |client_| on main thread.
......@@ -47,7 +49,7 @@ class AssistantAudioDecoder : public mojom::AssistantAudioDecoder {
void OnConnectionError();
void RunCallbacksAsClosed();
mojom::AssistantAudioDecoderClientPtr client_;
mojo::Remote<mojom::AssistantAudioDecoderClient> client_;
scoped_refptr<base::SequencedTaskRunner> task_runner_;
OpenDecoderCallback open_callback_;
......
......@@ -17,13 +17,12 @@ AssistantAudioDecoderFactory::AssistantAudioDecoderFactory(
AssistantAudioDecoderFactory::~AssistantAudioDecoderFactory() = default;
void AssistantAudioDecoderFactory::CreateAssistantAudioDecoder(
mojom::AssistantAudioDecoderRequest request,
mojom::AssistantAudioDecoderClientPtr client,
mojom::AssistantMediaDataSourcePtr data_source) {
mojo::MakeSelfOwnedReceiver(
std::make_unique<AssistantAudioDecoder>(std::move(client),
std::move(data_source)),
mojo::PendingReceiver<mojom::AssistantAudioDecoder>(std::move(request)));
mojo::PendingReceiver<mojom::AssistantAudioDecoder> receiver,
mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source) {
mojo::MakeSelfOwnedReceiver(std::make_unique<AssistantAudioDecoder>(
std::move(client), std::move(data_source)),
std::move(receiver));
}
} // namespace assistant
......
......@@ -8,6 +8,8 @@
#include <memory>
#include "chromeos/services/assistant/public/mojom/assistant_audio_decoder.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
namespace chromeos {
......@@ -23,9 +25,10 @@ class AssistantAudioDecoderFactory
private:
// mojom::AssistantAudioDecoderFactory:
void CreateAssistantAudioDecoder(
mojom::AssistantAudioDecoderRequest request,
mojom::AssistantAudioDecoderClientPtr client,
mojom::AssistantMediaDataSourcePtr data_source) override;
mojo::PendingReceiver<mojom::AssistantAudioDecoder> receiver,
mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source)
override;
mojo::Receiver<mojom::AssistantAudioDecoderFactory> receiver_;
......
......@@ -16,7 +16,7 @@ namespace chromeos {
namespace assistant {
IPCDataSource::IPCDataSource(
mojom::AssistantMediaDataSourcePtr media_data_source)
mojo::PendingRemote<mojom::AssistantMediaDataSource> media_data_source)
: media_data_source_(std::move(media_data_source)),
utility_task_runner_(base::SequencedTaskRunnerHandle::Get()) {
DETACH_FROM_THREAD(data_source_thread_checker_);
......
......@@ -11,6 +11,8 @@
#include "base/threading/thread_checker.h"
#include "chromeos/services/assistant/public/mojom/assistant_audio_decoder.mojom.h"
#include "media/base/data_source.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace chromeos {
namespace assistant {
......@@ -21,7 +23,8 @@ namespace assistant {
class IPCDataSource : public media::DataSource {
public:
// May only be called on the utility thread.
explicit IPCDataSource(mojom::AssistantMediaDataSourcePtr media_data_source);
explicit IPCDataSource(
mojo::PendingRemote<mojom::AssistantMediaDataSource> media_data_source);
~IPCDataSource() override;
// media::DataSource implementation. The methods may be called on any single
......@@ -44,7 +47,7 @@ class IPCDataSource : public media::DataSource {
uint32_t requested_size,
const std::vector<uint8_t>& data);
mojom::AssistantMediaDataSourcePtr media_data_source_;
mojo::Remote<mojom::AssistantMediaDataSource> media_data_source_;
scoped_refptr<base::SequencedTaskRunner> utility_task_runner_;
......
......@@ -9,9 +9,10 @@ interface AssistantAudioDecoderFactory {
// Creates an AssistantAudioDecoder to decode audio stream data from
// |data_source|.
// |client|'s methods will be called when certain events happen.
CreateAssistantAudioDecoder(AssistantAudioDecoder& audio_decoder,
AssistantAudioDecoderClient client,
AssistantMediaDataSource data_source);
CreateAssistantAudioDecoder(
pending_receiver<AssistantAudioDecoder> audio_decoder,
pending_remote<AssistantAudioDecoderClient> client,
pending_remote<AssistantMediaDataSource> data_source);
};
// Interface to communicate with assistant audio decoder service.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment