Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Side by Side Diff: chrome/browser/media/router/mojo/media_route_controller.cc

Issue 2727123002: [Media Router] Custom Controls 1 - Add MediaStatus, MediaRouteController, and mojo interfaces (Closed)
Patch Set: Address Mark, Devlin, Derek, and Daniel's comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/media/router/mojo/media_route_controller.h"
6
7 #include <utility>
8
9 #include "base/time/time.h"
10 #include "chrome/browser/media/router/media_route_status_observer.h"
11 #include "chrome/browser/media/router/media_router.h"
12 #include "chrome/browser/media/router/media_status.h"
13 #include "chrome/browser/media/router/mojo/media_router.mojom.h"
14 #include "mojo/public/cpp/bindings/interface_request.h"
15
16 namespace media_router {
17
18 MediaRouteController::MediaRouteController(
19 mojom::MediaControllerPtr media_controller,
20 base::Closure destroyer_callback)
21 : destroyer_callback_(destroyer_callback),
22 media_controller_(std::move(media_controller)),
23 binding_(this) {}
24 MediaRouteController::~MediaRouteController() {}
25
26 void MediaRouteController::Play() {
27 media_controller_->Play();
28 }
29
30 void MediaRouteController::Pause() {
31 media_controller_->Pause();
32 }
33
34 void MediaRouteController::Seek(base::TimeDelta time) {
35 media_controller_->Seek(time);
36 }
37
38 void MediaRouteController::SetMute(bool mute) {
39 media_controller_->SetMute(mute);
40 }
41
42 void MediaRouteController::SetVolume(float volume) {
43 media_controller_->SetVolume(volume);
44 }
45
46 void MediaRouteController::AddObserver(MediaRouteStatusObserver* observer) {
47 observers_.AddObserver(observer);
48 }
49
50 void MediaRouteController::RemoveObserver(MediaRouteStatusObserver* observer) {
51 observers_.RemoveObserver(observer);
52 if (!observers_.might_have_observers()) {
53 destroyer_callback_.Run();
54 // |this| gets destroyed here!
55 }
imcheng 2017/03/11 03:07:52 1) If the associated MediaRoute is terminated, how
56 }
57
58 void MediaRouteController::OnMediaStatusUpdated(const MediaStatus& status) {
59 for (MediaRouteStatusObserver& observer : observers_)
60 observer.OnMediaStatusUpdated(status);
61 }
62
63 mojom::MediaStatusObserverPtr MediaRouteController::GetObserverPtr() {
64 return binding_.CreateInterfacePtrAndBind();
65 }
66
67 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698