Commit bbce7a14 authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert MultiroomManager of chromecast to new Mojo types

This CL converts MultiroomManagerPtr to new Mojo types.

It uses Remote and Receiver instead of MultiroomManagerPtr
and Binding.

Bug: 955171
Change-Id: I6615aff8b7ca9c58748bbd08ee08f38b57b4c202
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1804947Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarKenneth MacKay <kmackay@chromium.org>
Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#697500}
parent 0bcb839d
...@@ -12,7 +12,7 @@ include_rules = [ ...@@ -12,7 +12,7 @@ include_rules = [
"+media/cdm", "+media/cdm",
"+media/filters", "+media/filters",
"+mojo/core/embedder/embedder.h", "+mojo/core/embedder/embedder.h",
"+mojo/public/cpp/bindings/binding.h", "+mojo/public/cpp/bindings",
"+ui/gfx/geometry", "+ui/gfx/geometry",
"+ui/gfx/overlay_transform.h", "+ui/gfx/overlay_transform.h",
"+services/service_manager/public", "+services/service_manager/public",
......
...@@ -703,9 +703,9 @@ bool CastAudioOutputStream::Open() { ...@@ -703,9 +703,9 @@ bool CastAudioOutputStream::Open() {
<< ", session_id=" << application_session_id; << ", session_id=" << application_session_id;
// Connect to the Multiroom interface and fetch the current info. // Connect to the Multiroom interface and fetch the current info.
connector_->BindInterface(chromecast::mojom::kChromecastServiceName, connector_->Connect(chromecast::mojom::kChromecastServiceName,
&multiroom_manager_); multiroom_manager_.BindNewPipeAndPassReceiver());
multiroom_manager_.set_connection_error_handler( multiroom_manager_.set_disconnect_handler(
base::BindOnce(&CastAudioOutputStream::OnGetMultiroomInfo, base::BindOnce(&CastAudioOutputStream::OnGetMultiroomInfo,
audio_weak_factory_.GetWeakPtr(), "error", audio_weak_factory_.GetWeakPtr(), "error",
chromecast::mojom::MultiroomInfo::New())); chromecast::mojom::MultiroomInfo::New()));
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "media/audio/audio_io.h" #include "media/audio/audio_io.h"
#include "media/base/audio_parameters.h" #include "media/base/audio_parameters.h"
#include "media/base/audio_timestamp_helper.h" #include "media/base/audio_timestamp_helper.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/connector.h"
namespace chromecast { namespace chromecast {
...@@ -148,7 +149,7 @@ class CastAudioOutputStream : public ::media::AudioOutputStream { ...@@ -148,7 +149,7 @@ class CastAudioOutputStream : public ::media::AudioOutputStream {
// empty string if group_id is unused. // empty string if group_id is unused.
const std::string group_id_; const std::string group_id_;
MixerServiceConnectionFactory* mixer_service_connection_factory_; MixerServiceConnectionFactory* mixer_service_connection_factory_;
chromecast::mojom::MultiroomManagerPtr multiroom_manager_; mojo::Remote<chromecast::mojom::MultiroomManager> multiroom_manager_;
std::unique_ptr<CmaWrapper> cma_wrapper_; std::unique_ptr<CmaWrapper> cma_wrapper_;
std::unique_ptr<MixerServiceWrapper> mixer_service_wrapper_; std::unique_ptr<MixerServiceWrapper> mixer_service_wrapper_;
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
#include "base/bind.h" #include "base/bind.h"
#include "chromecast/common/mojom/multiroom.mojom.h" #include "chromecast/common/mojom/multiroom.mojom.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
namespace chromecast { namespace chromecast {
namespace media { namespace media {
...@@ -20,8 +21,9 @@ class MockMultiroomManager : public mojom::MultiroomManager { ...@@ -20,8 +21,9 @@ class MockMultiroomManager : public mojom::MultiroomManager {
~MockMultiroomManager() override; ~MockMultiroomManager() override;
void Bind(mojo::ScopedMessagePipeHandle handle) { void Bind(mojo::ScopedMessagePipeHandle handle) {
binding_.Close(); receiver_.reset();
binding_.Bind(mojom::MultiroomManagerRequest(std::move(handle))); receiver_.Bind(
mojo::PendingReceiver<mojom::MultiroomManager>(std::move(handle)));
} }
void GetMultiroomInfo(const std::string& session_id, void GetMultiroomInfo(const std::string& session_id,
...@@ -31,13 +33,13 @@ class MockMultiroomManager : public mojom::MultiroomManager { ...@@ -31,13 +33,13 @@ class MockMultiroomManager : public mojom::MultiroomManager {
const std::string GetLastSessionId() { return last_session_id_; } const std::string GetLastSessionId() { return last_session_id_; }
private: private:
mojo::Binding<mojom::MultiroomManager> binding_; mojo::Receiver<mojom::MultiroomManager> receiver_{this};
chromecast::mojom::MultiroomInfo info_; chromecast::mojom::MultiroomInfo info_;
std::string last_session_id_; std::string last_session_id_;
}; };
inline MockMultiroomManager::MockMultiroomManager() inline MockMultiroomManager::MockMultiroomManager()
: binding_(this), last_session_id_("default_session_id") {} : last_session_id_("default_session_id") {}
inline MockMultiroomManager::~MockMultiroomManager() = default; inline MockMultiroomManager::~MockMultiroomManager() = default;
......
...@@ -133,9 +133,9 @@ void CastRenderer::OnApplicationMediaInfoReceived( ...@@ -133,9 +133,9 @@ void CastRenderer::OnApplicationMediaInfoReceived(
chromecast::mojom::MultiroomInfo::New()); chromecast::mojom::MultiroomInfo::New());
return; return;
} }
connector_->BindInterface(chromecast::mojom::kChromecastServiceName, connector_->Connect(chromecast::mojom::kChromecastServiceName,
&multiroom_manager_); multiroom_manager_.BindNewPipeAndPassReceiver());
multiroom_manager_.set_connection_error_handler(base::BindOnce( multiroom_manager_.set_disconnect_handler(base::BindOnce(
&CastRenderer::OnGetMultiroomInfo, base::Unretained(this), media_resource, &CastRenderer::OnGetMultiroomInfo, base::Unretained(this), media_resource,
client, init_cb, application_media_info.Clone(), client, init_cb, application_media_info.Clone(),
chromecast::mojom::MultiroomInfo::New())); chromecast::mojom::MultiroomInfo::New()));
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "media/base/renderer.h" #include "media/base/renderer.h"
#include "media/base/waiting.h" #include "media/base/waiting.h"
#include "media/mojo/mojom/cast_application_media_info_manager.mojom.h" #include "media/mojo/mojom/cast_application_media_info_manager.mojom.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size.h"
namespace base { namespace base {
...@@ -113,7 +114,7 @@ class CastRenderer : public ::media::Renderer, ...@@ -113,7 +114,7 @@ class CastRenderer : public ::media::Renderer,
::media::mojom::CastApplicationMediaInfoManagerPtr ::media::mojom::CastApplicationMediaInfoManagerPtr
application_media_info_manager_ptr_; application_media_info_manager_ptr_;
chromecast::mojom::MultiroomManagerPtr multiroom_manager_; mojo::Remote<chromecast::mojom::MultiroomManager> multiroom_manager_;
base::WeakPtrFactory<CastRenderer> weak_factory_; base::WeakPtrFactory<CastRenderer> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(CastRenderer); DISALLOW_COPY_AND_ASSIGN(CastRenderer);
......
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