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

Side by Side Diff: chromecast/renderer/media/media_channel_proxy.cc

Issue 2300993003: CmaRenderer is dead. Long live MojoRenderer. (Closed)
Patch Set: update OWNERS file Created 4 years, 3 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 2014 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 "chromecast/renderer/media/media_channel_proxy.h"
6
7 #include <utility>
8
9 #include "base/logging.h"
10 #include "chromecast/common/media/cma_messages.h"
11
12 namespace chromecast {
13 namespace media {
14
15 MediaChannelProxy::MediaChannelProxy()
16 : is_open_(false),
17 id_(0) {
18 filter_ = CmaMessageFilterProxy::Get();
19 DCHECK(filter_.get());
20 }
21
22 MediaChannelProxy::~MediaChannelProxy() {
23 }
24
25 void MediaChannelProxy::Open(LoadType load_type) {
26 CHECK(!is_open_);
27 // Renderer side.
28 id_ = filter_->CreateChannel();
29 is_open_ = true;
30
31 // Browser side.
32 bool success = Send(std::unique_ptr<IPC::Message>(
33 new CmaHostMsg_CreateMedia(id_, load_type)));
34 if (!success) {
35 is_open_ = false;
36 id_ = 0;
37 }
38 }
39
40 void MediaChannelProxy::Close() {
41 if (!is_open_)
42 return;
43
44 // Browser side.
45 Send(std::unique_ptr<IPC::Message>(new CmaHostMsg_DestroyMedia(id_)));
46
47 // Renderer side.
48 is_open_ = false;
49 filter_->DestroyChannel(id_);
50 id_ = 0;
51 }
52
53 bool MediaChannelProxy::SetMediaDelegate(
54 const CmaMessageFilterProxy::MediaDelegate& media_delegate) {
55 if (!is_open_)
56 return false;
57 return filter_->SetMediaDelegate(id_, media_delegate);
58 }
59
60 bool MediaChannelProxy::SetAudioDelegate(
61 const CmaMessageFilterProxy::AudioDelegate& audio_delegate) {
62 if (!is_open_)
63 return false;
64 return filter_->SetAudioDelegate(id_, audio_delegate);
65 }
66
67 bool MediaChannelProxy::SetVideoDelegate(
68 const CmaMessageFilterProxy::VideoDelegate& video_delegate) {
69 if (!is_open_)
70 return false;
71 return filter_->SetVideoDelegate(id_, video_delegate);
72 }
73
74 bool MediaChannelProxy::Send(std::unique_ptr<IPC::Message> message) {
75 if (!is_open_)
76 return false;
77 return filter_->Send(std::move(message));
78 }
79
80 } // namespace media
81 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/renderer/media/media_channel_proxy.h ('k') | chromecast/renderer/media/media_pipeline_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698