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) { ...@@ -30,15 +30,15 @@ void OnError(bool* succeeded) {
} // namespace } // namespace
AssistantAudioDecoder::AssistantAudioDecoder( AssistantAudioDecoder::AssistantAudioDecoder(
mojom::AssistantAudioDecoderClientPtr client, mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojom::AssistantMediaDataSourcePtr data_source) mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source)
: client_(std::move(client)), : client_(std::move(client)),
task_runner_(base::SequencedTaskRunnerHandle::Get()), task_runner_(base::SequencedTaskRunnerHandle::Get()),
data_source_(std::make_unique<IPCDataSource>(std::move(data_source))), data_source_(std::make_unique<IPCDataSource>(std::move(data_source))),
media_thread_(std::make_unique<base::Thread>("media_thread")), media_thread_(std::make_unique<base::Thread>("media_thread")),
weak_factory_(this) { weak_factory_(this) {
CHECK(media_thread_->Start()); CHECK(media_thread_->Start());
client_.set_connection_error_handler(base::BindOnce( client_.set_disconnect_handler(base::BindOnce(
&AssistantAudioDecoder::OnConnectionError, base::Unretained(this))); &AssistantAudioDecoder::OnConnectionError, base::Unretained(this)));
} }
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "chromeos/services/assistant/public/mojom/assistant_audio_decoder.mojom.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 { namespace media {
class AudioFileReader; class AudioFileReader;
...@@ -23,8 +25,8 @@ namespace assistant { ...@@ -23,8 +25,8 @@ namespace assistant {
class AssistantAudioDecoder : public mojom::AssistantAudioDecoder { class AssistantAudioDecoder : public mojom::AssistantAudioDecoder {
public: public:
AssistantAudioDecoder( AssistantAudioDecoder(
mojom::AssistantAudioDecoderClientPtr client, mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojom::AssistantMediaDataSourcePtr data_source); mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source);
~AssistantAudioDecoder() override; ~AssistantAudioDecoder() override;
// Called by |client_| on main thread. // Called by |client_| on main thread.
...@@ -47,7 +49,7 @@ class AssistantAudioDecoder : public mojom::AssistantAudioDecoder { ...@@ -47,7 +49,7 @@ class AssistantAudioDecoder : public mojom::AssistantAudioDecoder {
void OnConnectionError(); void OnConnectionError();
void RunCallbacksAsClosed(); void RunCallbacksAsClosed();
mojom::AssistantAudioDecoderClientPtr client_; mojo::Remote<mojom::AssistantAudioDecoderClient> client_;
scoped_refptr<base::SequencedTaskRunner> task_runner_; scoped_refptr<base::SequencedTaskRunner> task_runner_;
OpenDecoderCallback open_callback_; OpenDecoderCallback open_callback_;
......
...@@ -17,13 +17,12 @@ AssistantAudioDecoderFactory::AssistantAudioDecoderFactory( ...@@ -17,13 +17,12 @@ AssistantAudioDecoderFactory::AssistantAudioDecoderFactory(
AssistantAudioDecoderFactory::~AssistantAudioDecoderFactory() = default; AssistantAudioDecoderFactory::~AssistantAudioDecoderFactory() = default;
void AssistantAudioDecoderFactory::CreateAssistantAudioDecoder( void AssistantAudioDecoderFactory::CreateAssistantAudioDecoder(
mojom::AssistantAudioDecoderRequest request, mojo::PendingReceiver<mojom::AssistantAudioDecoder> receiver,
mojom::AssistantAudioDecoderClientPtr client, mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojom::AssistantMediaDataSourcePtr data_source) { mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source) {
mojo::MakeSelfOwnedReceiver( mojo::MakeSelfOwnedReceiver(std::make_unique<AssistantAudioDecoder>(
std::make_unique<AssistantAudioDecoder>(std::move(client), std::move(client), std::move(data_source)),
std::move(data_source)), std::move(receiver));
mojo::PendingReceiver<mojom::AssistantAudioDecoder>(std::move(request)));
} }
} // namespace assistant } // namespace assistant
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
#include <memory> #include <memory>
#include "chromeos/services/assistant/public/mojom/assistant_audio_decoder.mojom.h" #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" #include "mojo/public/cpp/bindings/receiver.h"
namespace chromeos { namespace chromeos {
...@@ -23,9 +25,10 @@ class AssistantAudioDecoderFactory ...@@ -23,9 +25,10 @@ class AssistantAudioDecoderFactory
private: private:
// mojom::AssistantAudioDecoderFactory: // mojom::AssistantAudioDecoderFactory:
void CreateAssistantAudioDecoder( void CreateAssistantAudioDecoder(
mojom::AssistantAudioDecoderRequest request, mojo::PendingReceiver<mojom::AssistantAudioDecoder> receiver,
mojom::AssistantAudioDecoderClientPtr client, mojo::PendingRemote<mojom::AssistantAudioDecoderClient> client,
mojom::AssistantMediaDataSourcePtr data_source) override; mojo::PendingRemote<mojom::AssistantMediaDataSource> data_source)
override;
mojo::Receiver<mojom::AssistantAudioDecoderFactory> receiver_; mojo::Receiver<mojom::AssistantAudioDecoderFactory> receiver_;
......
...@@ -16,7 +16,7 @@ namespace chromeos { ...@@ -16,7 +16,7 @@ namespace chromeos {
namespace assistant { namespace assistant {
IPCDataSource::IPCDataSource( IPCDataSource::IPCDataSource(
mojom::AssistantMediaDataSourcePtr media_data_source) mojo::PendingRemote<mojom::AssistantMediaDataSource> media_data_source)
: media_data_source_(std::move(media_data_source)), : media_data_source_(std::move(media_data_source)),
utility_task_runner_(base::SequencedTaskRunnerHandle::Get()) { utility_task_runner_(base::SequencedTaskRunnerHandle::Get()) {
DETACH_FROM_THREAD(data_source_thread_checker_); DETACH_FROM_THREAD(data_source_thread_checker_);
......
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
#include "base/threading/thread_checker.h" #include "base/threading/thread_checker.h"
#include "chromeos/services/assistant/public/mojom/assistant_audio_decoder.mojom.h" #include "chromeos/services/assistant/public/mojom/assistant_audio_decoder.mojom.h"
#include "media/base/data_source.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 chromeos {
namespace assistant { namespace assistant {
...@@ -21,7 +23,8 @@ namespace assistant { ...@@ -21,7 +23,8 @@ namespace assistant {
class IPCDataSource : public media::DataSource { class IPCDataSource : public media::DataSource {
public: public:
// May only be called on the utility thread. // 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; ~IPCDataSource() override;
// media::DataSource implementation. The methods may be called on any single // media::DataSource implementation. The methods may be called on any single
...@@ -44,7 +47,7 @@ class IPCDataSource : public media::DataSource { ...@@ -44,7 +47,7 @@ class IPCDataSource : public media::DataSource {
uint32_t requested_size, uint32_t requested_size,
const std::vector<uint8_t>& data); 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_; scoped_refptr<base::SequencedTaskRunner> utility_task_runner_;
......
...@@ -9,9 +9,10 @@ interface AssistantAudioDecoderFactory { ...@@ -9,9 +9,10 @@ interface AssistantAudioDecoderFactory {
// Creates an AssistantAudioDecoder to decode audio stream data from // Creates an AssistantAudioDecoder to decode audio stream data from
// |data_source|. // |data_source|.
// |client|'s methods will be called when certain events happen. // |client|'s methods will be called when certain events happen.
CreateAssistantAudioDecoder(AssistantAudioDecoder& audio_decoder, CreateAssistantAudioDecoder(
AssistantAudioDecoderClient client, pending_receiver<AssistantAudioDecoder> audio_decoder,
AssistantMediaDataSource data_source); pending_remote<AssistantAudioDecoderClient> client,
pending_remote<AssistantMediaDataSource> data_source);
}; };
// Interface to communicate with assistant audio decoder service. // 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