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

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

Issue 2675033002: [Media Router] Add MediaSink subtypes (Closed)
Patch Set: resolve code review comments from dcheng 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
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 6
7 #include "chrome/browser/media/router/media_source.h" 7 #include "chrome/browser/media/router/media_source.h"
8 #include "url/mojo/url_gurl_struct_traits.h"
8 9
9 namespace mojo { 10 namespace mojo {
10 11
11 // static 12 // static
12 bool StructTraits<media_router::mojom::IssueDataView, media_router::IssueInfo>:: 13 bool StructTraits<media_router::mojom::IssueDataView, media_router::IssueInfo>::
13 Read(media_router::mojom::IssueDataView data, 14 Read(media_router::mojom::IssueDataView data,
14 media_router::IssueInfo* out) { 15 media_router::IssueInfo* out) {
15 if (!data.ReadTitle(&out->title)) 16 if (!data.ReadTitle(&out->title))
16 return false; 17 return false;
17 18
(...skipping 18 matching lines...) Expand all
36 37
37 out->route_id = route_id.value_or(std::string()); 38 out->route_id = route_id.value_or(std::string());
38 39
39 out->is_blocking = data.is_blocking(); 40 out->is_blocking = data.is_blocking();
40 out->help_page_id = data.help_page_id(); 41 out->help_page_id = data.help_page_id();
41 42
42 return true; 43 return true;
43 } 44 }
44 45
45 // static 46 // static
46 bool StructTraits< 47 bool StructTraits<media_router::mojom::IPAddressDataView, net::IPAddress>::Read(
47 media_router::mojom::MediaSinkDataView, 48 media_router::mojom::IPAddressDataView data,
48 media_router::MediaSink>::Read(media_router::mojom::MediaSinkDataView data, 49 net::IPAddress* out) {
49 media_router::MediaSink* out) { 50 std::vector<uint8_t> bytes;
51 if (!data.ReadAddress(&bytes))
52 return false;
53
54 *out = net::IPAddress(bytes);
55 return true;
56 }
57
58 // static
59 media_router::mojom::MediaSinkExtraDataDataView::Tag
60 UnionTraits<media_router::mojom::MediaSinkExtraDataDataView,
61 media_router::MediaSinkInternal>::
62 GetTag(const media_router::MediaSinkInternal& sink) {
63 if (sink.is_dial_sink()) {
64 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
65 DIAL_MEDIA_SINK;
66 } else if (sink.is_cast_sink()) {
67 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
68 CAST_MEDIA_SINK;
69 }
70 NOTREACHED();
71 return media_router::mojom::MediaSinkExtraDataDataView::Tag::CAST_MEDIA_SINK;
72 }
73
74 // static
75 bool StructTraits<media_router::mojom::MediaSinkDataView,
76 media_router::MediaSinkInternal>::
77 Read(media_router::mojom::MediaSinkDataView data,
78 media_router::MediaSinkInternal* out) {
50 media_router::MediaSink::Id id; 79 media_router::MediaSink::Id id;
51 if (!data.ReadSinkId(&id)) 80 if (!data.ReadSinkId(&id) ||
81 !media_router::MediaSinkInternal::IsValidSinkId(id)) {
52 return false; 82 return false;
83 }
53 84
54 out->set_sink_id(id); 85 out->set_sink_id(id);
55 86
56 std::string name; 87 std::string name;
57 if (!data.ReadName(&name)) 88 if (!data.ReadName(&name))
58 return false; 89 return false;
59 90
60 out->set_name(name); 91 out->set_name(name);
61 92
62 base::Optional<std::string> description; 93 base::Optional<std::string> description;
63 if (!data.ReadDescription(&description)) 94 if (!data.ReadDescription(&description))
64 return false; 95 return false;
65 96
66 if (description) 97 if (description)
67 out->set_description(*description); 98 out->set_description(*description);
68 99
69 base::Optional<std::string> domain; 100 base::Optional<std::string> domain;
70 if (!data.ReadDomain(&domain)) 101 if (!data.ReadDomain(&domain))
71 return false; 102 return false;
72 103
73 if (domain) 104 if (domain)
74 out->set_domain(*domain); 105 out->set_domain(*domain);
75 106
76 media_router::MediaSink::IconType icon_type; 107 media_router::MediaSink::IconType icon_type;
77 if (!data.ReadIconType(&icon_type)) 108 if (!data.ReadIconType(&icon_type))
78 return false; 109 return false;
79 110
80 out->set_icon_type(icon_type); 111 out->set_icon_type(icon_type);
81 112
113 if (!data.ReadExtraData(out))
114 return false;
115
82 return true; 116 return true;
83 } 117 }
84 118
85 // static 119 // static
120 bool UnionTraits<media_router::mojom::MediaSinkExtraDataDataView,
121 media_router::MediaSinkInternal>::
122 Read(media_router::mojom::MediaSinkExtraDataDataView data,
123 media_router::MediaSinkInternal* out) {
124 if (data.is_dial_media_sink()) {
dcheng 2017/03/07 19:54:32 The body of this should look something like https:
zhaobin 2017/03/10 01:42:27 Done.
125 media_router::DialSinkExtraData extra_data;
126 if (!data.ReadDialMediaSink(&extra_data))
127 return false;
128
129 out->set_dial_data(extra_data);
130 } else if (data.is_cast_media_sink()) {
131 media_router::CastSinkExtraData extra_data;
132 if (!data.ReadCastMediaSink(&extra_data))
133 return false;
134
135 out->set_cast_data(extra_data);
136 }
137
138 return true;
139 }
140
141 // static
142 bool StructTraits<media_router::mojom::DialMediaSinkDataView,
143 media_router::DialSinkExtraData>::
144 Read(media_router::mojom::DialMediaSinkDataView data,
145 media_router::DialSinkExtraData* out) {
146 if (!data.ReadIpAddress(&out->ip_address))
147 return false;
148
149 if (!data.ReadModelName(&out->model_name))
150 return false;
151
152 if (!data.ReadAppUrl(&out->app_url))
153 return false;
154
155 return true;
156 }
157
158 // static
159 bool StructTraits<media_router::mojom::CastMediaSinkDataView,
160 media_router::CastSinkExtraData>::
161 Read(media_router::mojom::CastMediaSinkDataView data,
162 media_router::CastSinkExtraData* out) {
163 if (!data.ReadIpAddress(&out->ip_address))
164 return false;
165
166 if (!data.ReadModelName(&out->model_name))
167 return false;
168
169 out->capabilities = data.capabilities();
170 out->cast_channel_id = data.cast_channel_id();
171
172 return true;
173 }
174
86 bool StructTraits<media_router::mojom::MediaRouteDataView, 175 bool StructTraits<media_router::mojom::MediaRouteDataView,
87 media_router::MediaRoute>:: 176 media_router::MediaRoute>::
88 Read(media_router::mojom::MediaRouteDataView data, 177 Read(media_router::mojom::MediaRouteDataView data,
89 media_router::MediaRoute* out) { 178 media_router::MediaRoute* out) {
90 media_router::MediaRoute::Id media_route_id; 179 media_router::MediaRoute::Id media_route_id;
91 if (!data.ReadMediaRouteId(&media_route_id)) 180 if (!data.ReadMediaRouteId(&media_route_id))
92 return false; 181 return false;
93 182
94 out->set_media_route_id(media_route_id); 183 out->set_media_route_id(media_route_id);
95 184
(...skipping 25 matching lines...) Expand all
121 210
122 out->set_local(data.is_local()); 211 out->set_local(data.is_local());
123 out->set_for_display(data.for_display()); 212 out->set_for_display(data.for_display());
124 out->set_incognito(data.is_incognito()); 213 out->set_incognito(data.is_incognito());
125 out->set_offscreen_presentation(data.is_offscreen_presentation()); 214 out->set_offscreen_presentation(data.is_offscreen_presentation());
126 215
127 return true; 216 return true;
128 } 217 }
129 218
130 } // namespace mojo 219 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698