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

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

Issue 2675033002: [Media Router] Add MediaSink subtypes (Closed)
Patch Set: add TypedMediaSink class Created 3 years, 10 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media/router/mojo/media_router_struct_traits.h" 5 #include "chrome/browser/media/router/mojo/media_router_struct_traits.h"
6 #include "url/mojo/url_gurl_struct_traits.h"
6 7
7 namespace mojo { 8 namespace mojo {
8 9
9 // static 10 // static
10 bool StructTraits<media_router::mojom::IssueDataView, media_router::IssueInfo>:: 11 bool StructTraits<media_router::mojom::IssueDataView, media_router::IssueInfo>::
11 Read(media_router::mojom::IssueDataView data, 12 Read(media_router::mojom::IssueDataView data,
12 media_router::IssueInfo* out) { 13 media_router::IssueInfo* out) {
13 if (!data.ReadTitle(&out->title)) 14 if (!data.ReadTitle(&out->title))
14 return false; 15 return false;
15 16
(...skipping 17 matching lines...) Expand all
33 return false; 34 return false;
34 35
35 out->route_id = route_id.value_or(std::string()); 36 out->route_id = route_id.value_or(std::string());
36 37
37 out->is_blocking = data.is_blocking(); 38 out->is_blocking = data.is_blocking();
38 out->help_page_id = data.help_page_id(); 39 out->help_page_id = data.help_page_id();
39 40
40 return true; 41 return true;
41 } 42 }
42 43
44 // static
45 bool StructTraits<
46 media_router::mojom::MediaSinkDataView,
47 media_router::MediaSink>::Read(media_router::mojom::MediaSinkDataView data,
48 media_router::MediaSink* out) {
49 media_router::MediaSink::Id id;
50 if (!data.ReadSinkId(&id))
51 return false;
52
53 out->set_sink_id(id);
54
55 std::string name;
56 if (!data.ReadName(&name))
57 return false;
58
59 out->set_name(name);
60
61 base::Optional<std::string> description;
62 if (!data.ReadDescription(&description))
63 return false;
64
65 if (description)
66 out->set_description(*description);
67
68 base::Optional<std::string> domain;
69 if (!data.ReadDomain(&domain))
70 return false;
71
72 if (domain)
73 out->set_domain(*domain);
74
75 media_router::MediaSink::IconType icon_type;
76 if (!data.ReadIconType(&icon_type))
77 return false;
78
79 out->set_icon_type(icon_type);
80
81 return true;
82 }
83
84 // static
85 bool StructTraits<media_router::mojom::TypedMediaSinkDataView,
86 media_router::TypedMediaSink>::
87 Read(media_router::mojom::TypedMediaSinkDataView data,
88 media_router::TypedMediaSink* out) {
89 media_router::MediaSink sink;
90 if (!data.ReadSink(&sink))
91 return false;
92
93 out->set_sink(sink);
94
95 std::string ip_address;
96 if (!data.ReadIpAddress(&ip_address))
97 return false;
98
99 out->set_ip_address(ip_address);
100
101 base::Optional<std::string> model_name;
102 if (!data.ReadModelName(&model_name))
103 return false;
104
105 if (model_name)
106 out->set_model_name(*model_name);
107
108 media_router::mojom::MediaSinkExtraDataDataView extra_data_data_view;
109 data.GetExtraDataDataView(&extra_data_data_view);
110
111 if (extra_data_data_view.is_null()) {
112 NOTREACHED();
imcheng 2017/02/11 01:00:21 NOTREACHED() not needed anymore?
zhaobin 2017/02/14 02:08:49 Done.
113 return false;
114 } else if (extra_data_data_view.is_dial_media_sink()) {
115 media_router::DialSinkExtraData extra_data;
116 if (!extra_data_data_view.ReadDialMediaSink(&extra_data))
117 return false;
118
119 out->set_dial_sink_extra_data(extra_data);
120 } else if (extra_data_data_view.is_cast_media_sink()) {
121 media_router::CastSinkExtraData extra_data;
122 if (!extra_data_data_view.ReadCastMediaSink(&extra_data))
123 return false;
124
125 out->set_cast_sink_extra_data(extra_data);
126 }
127
128 return true;
129 }
130
131 // static
132 bool StructTraits<media_router::mojom::DialMediaSinkDataView,
133 media_router::DialSinkExtraData>::
134 Read(media_router::mojom::DialMediaSinkDataView data,
135 media_router::DialSinkExtraData* out) {
136 if (!data.ReadAppUrl(&out->app_url))
137 return false;
138
139 return true;
140 }
141
142 // static
143 bool StructTraits<media_router::mojom::CastMediaSinkDataView,
144 media_router::CastSinkExtraData>::
145 Read(media_router::mojom::CastMediaSinkDataView data,
146 media_router::CastSinkExtraData* out) {
147 out->capabilities = data.capabilities();
148 out->cast_channel_id = data.cast_channel_id();
149
150 return true;
151 }
152
43 } // namespace mojo 153 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698