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

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 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 #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);
88
89 static bool IsNull(const media_router::MediaSinkInternal& sink) {
90 return !sink.is_cast_sink() && !sink.is_dial_sink();
91 }
92
93 static void SetToNull(media_router::MediaSinkInternal* out) {}
94
95 static const media_router::DialSinkExtraData& dial_media_sink(
96 const media_router::MediaSinkInternal& sink) {
97 return sink.dial_data();
98 }
99
100 static const media_router::CastSinkExtraData& cast_media_sink(
101 const media_router::MediaSinkInternal& sink) {
102 return sink.cast_data();
103 }
104
105 static bool Read(media_router::mojom::MediaSinkExtraDataDataView data,
106 media_router::MediaSinkInternal* out);
107 };
108
109 template <>
110 struct StructTraits<media_router::mojom::IPAddressDataView, net::IPAddress> {
111 static const std::vector<uint8_t>& address(const net::IPAddress& ip_address) {
112 return ip_address.bytes();
113 }
114
115 static bool Read(media_router::mojom::IPAddressDataView data,
116 net::IPAddress* out);
117 };
118
119 template <>
120 struct StructTraits<media_router::mojom::DialMediaSinkDataView,
121 media_router::DialSinkExtraData> {
122 static const std::string& model_name(
123 const media_router::DialSinkExtraData& extra_data) {
124 return extra_data.model_name;
125 }
126
127 static const net::IPAddress& ip_address(
128 const media_router::DialSinkExtraData& extra_data) {
129 return extra_data.ip_address;
130 }
131
132 static const GURL& app_url(
133 const media_router::DialSinkExtraData& extra_data) {
134 return extra_data.app_url;
135 }
136
137 static bool Read(media_router::mojom::DialMediaSinkDataView data,
138 media_router::DialSinkExtraData* out);
139 };
140
141 template <>
142 struct StructTraits<media_router::mojom::CastMediaSinkDataView,
143 media_router::CastSinkExtraData> {
144 static const std::string& model_name(
145 const media_router::CastSinkExtraData& extra_data) {
146 return extra_data.model_name;
147 }
148
149 static const net::IPAddress& ip_address(
150 const media_router::CastSinkExtraData& extra_data) {
151 return extra_data.ip_address;
152 }
153
154 static uint8_t capabilities(
155 const media_router::CastSinkExtraData& extra_data) {
156 return extra_data.capabilities;
157 }
158
159 static int32_t cast_channel_id(
160 const media_router::CastSinkExtraData& extra_data) {
161 return extra_data.cast_channel_id;
162 }
163
164 static bool Read(media_router::mojom::CastMediaSinkDataView data,
165 media_router::CastSinkExtraData* out);
166 };
167
168 template <>
84 struct StructTraits<media_router::mojom::RouteMessageDataView, 169 struct StructTraits<media_router::mojom::RouteMessageDataView,
85 media_router::RouteMessage> { 170 media_router::RouteMessage> {
86 static media_router::mojom::RouteMessage::Type type( 171 static media_router::mojom::RouteMessage::Type type(
87 const media_router::RouteMessage& msg) { 172 const media_router::RouteMessage& msg) {
88 switch (msg.type) { 173 switch (msg.type) {
89 case media_router::RouteMessage::TEXT: 174 case media_router::RouteMessage::TEXT:
90 return media_router::mojom::RouteMessage::Type::TEXT; 175 return media_router::mojom::RouteMessage::Type::TEXT;
91 case media_router::RouteMessage::BINARY: 176 case media_router::RouteMessage::BINARY:
92 return media_router::mojom::RouteMessage::Type::BINARY; 177 return media_router::mojom::RouteMessage::Type::BINARY;
93 } 178 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 case media_router::mojom::MediaSink::IconType::GENERIC: 306 case media_router::mojom::MediaSink::IconType::GENERIC:
222 *output = media_router::MediaSink::GENERIC; 307 *output = media_router::MediaSink::GENERIC;
223 return true; 308 return true;
224 } 309 }
225 return false; 310 return false;
226 } 311 }
227 }; 312 };
228 313
229 template <> 314 template <>
230 struct StructTraits<media_router::mojom::MediaSinkDataView, 315 struct StructTraits<media_router::mojom::MediaSinkDataView,
231 media_router::MediaSink> { 316 media_router::MediaSinkInternal> {
232 static bool Read(media_router::mojom::MediaSinkDataView data, 317 static bool Read(media_router::mojom::MediaSinkDataView data,
233 media_router::MediaSink* out); 318 media_router::MediaSinkInternal* out);
234 319
235 static std::string sink_id(const media_router::MediaSink& sink) { 320 static std::string sink_id(
236 return sink.id(); 321 const media_router::MediaSinkInternal& sink_internal) {
322 return sink_internal.sink().id();
237 } 323 }
238 324
239 static std::string name(const media_router::MediaSink& sink) { 325 static std::string name(
240 return sink.name(); 326 const media_router::MediaSinkInternal& sink_internal) {
327 return sink_internal.sink().name();
241 } 328 }
242 329
243 static base::Optional<std::string> description( 330 static base::Optional<std::string> description(
244 const media_router::MediaSink& sink) { 331 const media_router::MediaSinkInternal& sink_internal) {
245 return sink.description(); 332 return sink_internal.sink().description();
246 } 333 }
247 334
248 static base::Optional<std::string> domain( 335 static base::Optional<std::string> domain(
249 const media_router::MediaSink& sink) { 336 const media_router::MediaSinkInternal& sink_internal) {
250 return sink.domain(); 337 return sink_internal.sink().domain();
251 } 338 }
252 339
253 static media_router::MediaSink::IconType icon_type( 340 static media_router::MediaSink::IconType icon_type(
254 const media_router::MediaSink& sink) { 341 const media_router::MediaSinkInternal& sink_internal) {
255 return sink.icon_type(); 342 return sink_internal.sink().icon_type();
343 }
344
345 static const media_router::MediaSinkInternal& extra_data(
346 const media_router::MediaSinkInternal& sink_internal) {
347 return sink_internal;
256 } 348 }
257 }; 349 };
258 350
259 // MediaRoute 351 // MediaRoute
260 352
261 template <> 353 template <>
262 struct StructTraits<media_router::mojom::MediaRouteDataView, 354 struct StructTraits<media_router::mojom::MediaRouteDataView,
263 media_router::MediaRoute> { 355 media_router::MediaRoute> {
264 static bool Read(media_router::mojom::MediaRouteDataView data, 356 static bool Read(media_router::mojom::MediaRouteDataView data,
265 media_router::MediaRoute* out); 357 media_router::MediaRoute* out);
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 *output = media_router::RouteRequestResult::CANCELLED; 566 *output = media_router::RouteRequestResult::CANCELLED;
475 return true; 567 return true;
476 } 568 }
477 return false; 569 return false;
478 } 570 }
479 }; 571 };
480 572
481 } // namespace mojo 573 } // namespace mojo
482 574
483 #endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ 575 #endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698