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

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

Issue 2675033002: [Media Router] Add MediaSink subtypes (Closed)
Patch Set: resolve code review comments from Derek 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 #ifndef CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ 5 #ifndef CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_
6 #define CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ 6 #define CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "chrome/browser/media/router/discovery/media_sink_internal.h"
10 #include "chrome/browser/media/router/issue.h" 11 #include "chrome/browser/media/router/issue.h"
11 #include "chrome/browser/media/router/media_sink.h"
12 #include "chrome/browser/media/router/mojo/media_router.mojom.h" 12 #include "chrome/browser/media/router/mojo/media_router.mojom.h"
13 #include "chrome/browser/media/router/route_request_result.h" 13 #include "chrome/browser/media/router/route_request_result.h"
14 #include "mojo/common/common_custom_types_struct_traits.h" 14 #include "mojo/common/common_custom_types_struct_traits.h"
15 15
16 namespace mojo { 16 namespace mojo {
17 17
18 // Issue 18 // Issue
19 19
20 template <> 20 template <>
21 struct EnumTraits<media_router::mojom::Issue::ActionType, 21 struct EnumTraits<media_router::mojom::Issue::ActionType,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 return true; 74 return true;
75 case media_router::mojom::Issue::Severity::NOTIFICATION: 75 case media_router::mojom::Issue::Severity::NOTIFICATION:
76 *output = media_router::IssueInfo::Severity::NOTIFICATION; 76 *output = media_router::IssueInfo::Severity::NOTIFICATION;
77 return true; 77 return true;
78 } 78 }
79 return false; 79 return false;
80 } 80 }
81 }; 81 };
82 82
83 template <> 83 template <>
84 struct UnionTraits<media_router::mojom::MediaSinkExtraDataDataView,
85 media_router::MediaSinkInternal> {
86 static media_router::mojom::MediaSinkExtraDataDataView::Tag GetTag(
87 const media_router::MediaSinkInternal& sink) {
dcheng 2017/03/03 10:37:10 This is probably large enough that I would conside
zhaobin 2017/03/03 23:56:42 Done.
88 if (sink.is_dial_sink()) {
89 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
90 DIAL_MEDIA_SINK;
91 } else if (sink.is_cast_sink()) {
92 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
93 CAST_MEDIA_SINK;
94 }
95 NOTREACHED();
96 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
97 CAST_MEDIA_SINK;
98 }
99
100 static bool IsNull(const media_router::MediaSinkInternal& sink) {
101 return !sink.is_cast_sink() && !sink.is_dial_sink();
102 }
103
104 static const media_router::DialSinkExtraData& dial_media_sink(
105 const media_router::MediaSinkInternal& sink) {
106 return sink.dial_data();
107 }
108
109 static const media_router::CastSinkExtraData& cast_media_sink(
110 const media_router::MediaSinkInternal& sink) {
111 return sink.cast_data();
112 }
113 };
114
115 template <>
116 struct StructTraits<media_router::mojom::DialMediaSinkDataView,
117 media_router::DialSinkExtraData> {
118 static const std::string& model_name(
119 const media_router::DialSinkExtraData& extra_data) {
120 return extra_data.model_name;
121 }
122
123 static std::string ip_address(
124 const media_router::DialSinkExtraData& extra_data) {
125 return extra_data.ip_address.ToString();
126 }
127
128 static const GURL& app_url(
129 const media_router::DialSinkExtraData& extra_data) {
130 return extra_data.app_url;
131 }
132
133 static bool Read(media_router::mojom::DialMediaSinkDataView data,
134 media_router::DialSinkExtraData* out);
135 };
136
137 template <>
138 struct StructTraits<media_router::mojom::CastMediaSinkDataView,
139 media_router::CastSinkExtraData> {
140 static const std::string& model_name(
141 const media_router::CastSinkExtraData& extra_data) {
142 return extra_data.model_name;
143 }
144
145 static std::string ip_address(
146 const media_router::CastSinkExtraData& extra_data) {
147 return extra_data.ip_address.ToString();
148 }
149
150 static int32_t capabilities(
151 const media_router::CastSinkExtraData& extra_data) {
152 return extra_data.capabilities;
153 }
154
155 static int32_t cast_channel_id(
156 const media_router::CastSinkExtraData& extra_data) {
157 return extra_data.cast_channel_id;
158 }
159
160 static bool Read(media_router::mojom::CastMediaSinkDataView data,
161 media_router::CastSinkExtraData* out);
162 };
163
164 template <>
84 struct StructTraits<media_router::mojom::RouteMessageDataView, 165 struct StructTraits<media_router::mojom::RouteMessageDataView,
85 media_router::RouteMessage> { 166 media_router::RouteMessage> {
86 static media_router::mojom::RouteMessage::Type type( 167 static media_router::mojom::RouteMessage::Type type(
87 const media_router::RouteMessage& msg) { 168 const media_router::RouteMessage& msg) {
88 switch (msg.type) { 169 switch (msg.type) {
89 case media_router::RouteMessage::TEXT: 170 case media_router::RouteMessage::TEXT:
90 return media_router::mojom::RouteMessage::Type::TEXT; 171 return media_router::mojom::RouteMessage::Type::TEXT;
91 case media_router::RouteMessage::BINARY: 172 case media_router::RouteMessage::BINARY:
92 return media_router::mojom::RouteMessage::Type::BINARY; 173 return media_router::mojom::RouteMessage::Type::BINARY;
93 } 174 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 case media_router::mojom::MediaSink::IconType::GENERIC: 302 case media_router::mojom::MediaSink::IconType::GENERIC:
222 *output = media_router::MediaSink::GENERIC; 303 *output = media_router::MediaSink::GENERIC;
223 return true; 304 return true;
224 } 305 }
225 return false; 306 return false;
226 } 307 }
227 }; 308 };
228 309
229 template <> 310 template <>
230 struct StructTraits<media_router::mojom::MediaSinkDataView, 311 struct StructTraits<media_router::mojom::MediaSinkDataView,
231 media_router::MediaSink> { 312 media_router::MediaSinkInternal> {
232 static bool Read(media_router::mojom::MediaSinkDataView data, 313 static bool Read(media_router::mojom::MediaSinkDataView data,
233 media_router::MediaSink* out); 314 media_router::MediaSinkInternal* out);
234 315
235 static std::string sink_id(const media_router::MediaSink& sink) { 316 static std::string sink_id(
236 return sink.id(); 317 const media_router::MediaSinkInternal& sink_internal) {
318 return sink_internal.sink().id();
237 } 319 }
238 320
239 static std::string name(const media_router::MediaSink& sink) { 321 static std::string name(
240 return sink.name(); 322 const media_router::MediaSinkInternal& sink_internal) {
323 return sink_internal.sink().name();
241 } 324 }
242 325
243 static base::Optional<std::string> description( 326 static base::Optional<std::string> description(
244 const media_router::MediaSink& sink) { 327 const media_router::MediaSinkInternal& sink_internal) {
245 return sink.description(); 328 return sink_internal.sink().description();
246 } 329 }
247 330
248 static base::Optional<std::string> domain( 331 static base::Optional<std::string> domain(
249 const media_router::MediaSink& sink) { 332 const media_router::MediaSinkInternal& sink_internal) {
250 return sink.domain(); 333 return sink_internal.sink().domain();
251 } 334 }
252 335
253 static media_router::MediaSink::IconType icon_type( 336 static media_router::MediaSink::IconType icon_type(
254 const media_router::MediaSink& sink) { 337 const media_router::MediaSinkInternal& sink_internal) {
255 return sink.icon_type(); 338 return sink_internal.sink().icon_type();
339 }
340
341 static const media_router::MediaSinkInternal& extra_data(
342 const media_router::MediaSinkInternal& sink_internal) {
343 return sink_internal;
256 } 344 }
257 }; 345 };
258 346
259 // MediaRoute 347 // MediaRoute
260 348
261 template <> 349 template <>
262 struct StructTraits<media_router::mojom::MediaRouteDataView, 350 struct StructTraits<media_router::mojom::MediaRouteDataView,
263 media_router::MediaRoute> { 351 media_router::MediaRoute> {
264 static bool Read(media_router::mojom::MediaRouteDataView data, 352 static bool Read(media_router::mojom::MediaRouteDataView data,
265 media_router::MediaRoute* out); 353 media_router::MediaRoute* out);
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 *output = media_router::RouteRequestResult::CANCELLED; 562 *output = media_router::RouteRequestResult::CANCELLED;
475 return true; 563 return true;
476 } 564 }
477 return false; 565 return false;
478 } 566 }
479 }; 567 };
480 568
481 } // namespace mojo 569 } // namespace mojo
482 570
483 #endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ 571 #endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698