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 = [
"+media/cdm",
"+media/filters",
"+mojo/core/embedder/embedder.h",
"+mojo/public/cpp/bindings/binding.h",
"+mojo/public/cpp/bindings",
"+ui/gfx/geometry",
"+ui/gfx/overlay_transform.h",
"+services/service_manager/public",
......
......@@ -703,9 +703,9 @@ bool CastAudioOutputStream::Open() {
<< ", session_id=" << application_session_id;
// Connect to the Multiroom interface and fetch the current info.
connector_->BindInterface(chromecast::mojom::kChromecastServiceName,
&multiroom_manager_);
multiroom_manager_.set_connection_error_handler(
connector_->Connect(chromecast::mojom::kChromecastServiceName,
multiroom_manager_.BindNewPipeAndPassReceiver());
multiroom_manager_.set_disconnect_handler(
base::BindOnce(&CastAudioOutputStream::OnGetMultiroomInfo,
audio_weak_factory_.GetWeakPtr(), "error",
chromecast::mojom::MultiroomInfo::New()));
......
......@@ -20,6 +20,7 @@
#include "media/audio/audio_io.h"
#include "media/base/audio_parameters.h"
#include "media/base/audio_timestamp_helper.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/service_manager/public/cpp/connector.h"
namespace chromecast {
......@@ -148,7 +149,7 @@ class CastAudioOutputStream : public ::media::AudioOutputStream {
// empty string if group_id is unused.
const std::string group_id_;
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<MixerServiceWrapper> mixer_service_wrapper_;
......
......@@ -10,7 +10,8 @@
#include "base/bind.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 media {
......@@ -20,8 +21,9 @@ class MockMultiroomManager : public mojom::MultiroomManager {
~MockMultiroomManager() override;
void Bind(mojo::ScopedMessagePipeHandle handle) {
binding_.Close();
binding_.Bind(mojom::MultiroomManagerRequest(std::move(handle)));
receiver_.reset();
receiver_.Bind(
mojo::PendingReceiver<mojom::MultiroomManager>(std::move(handle)));
}
void GetMultiroomInfo(const std::string& session_id,
......@@ -31,13 +33,13 @@ class MockMultiroomManager : public mojom::MultiroomManager {
const std::string GetLastSessionId() { return last_session_id_; }
private:
mojo::Binding<mojom::MultiroomManager> binding_;
mojo::Receiver<mojom::MultiroomManager> receiver_{this};
chromecast::mojom::MultiroomInfo info_;
std::string last_session_id_;
};
inline MockMultiroomManager::MockMultiroomManager()
: binding_(this), last_session_id_("default_session_id") {}
: last_session_id_("default_session_id") {}
inline MockMultiroomManager::~MockMultiroomManager() = default;
......
......@@ -133,9 +133,9 @@ void CastRenderer::OnApplicationMediaInfoReceived(
chromecast::mojom::MultiroomInfo::New());
return;
}
connector_->BindInterface(chromecast::mojom::kChromecastServiceName,
&multiroom_manager_);
multiroom_manager_.set_connection_error_handler(base::BindOnce(
connector_->Connect(chromecast::mojom::kChromecastServiceName,
multiroom_manager_.BindNewPipeAndPassReceiver());
multiroom_manager_.set_disconnect_handler(base::BindOnce(
&CastRenderer::OnGetMultiroomInfo, base::Unretained(this), media_resource,
client, init_cb, application_media_info.Clone(),
chromecast::mojom::MultiroomInfo::New()));
......
......@@ -16,6 +16,7 @@
#include "media/base/renderer.h"
#include "media/base/waiting.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"
namespace base {
......@@ -113,7 +114,7 @@ class CastRenderer : public ::media::Renderer,
::media::mojom::CastApplicationMediaInfoManagerPtr
application_media_info_manager_ptr_;
chromecast::mojom::MultiroomManagerPtr multiroom_manager_;
mojo::Remote<chromecast::mojom::MultiroomManager> multiroom_manager_;
base::WeakPtrFactory<CastRenderer> weak_factory_;
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