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

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 url.mojom to media_router.mojoms JsResources 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<media_router::mojom::MediaSinkDataView,
46 std::unique_ptr<media_router::MediaSink>>::
47 Read(media_router::mojom::MediaSinkDataView data,
48 std::unique_ptr<media_router::MediaSink>* out) {
49 media_router::MediaSink::Id id;
50 if (!data.ReadSinkId(&id))
51 return false;
52
53 std::string name;
54 if (!data.ReadName(&name))
55 return false;
56
57 media_router::MediaSink::IconType icon_type;
58 if (!data.ReadIconType(&icon_type))
59 return false;
60
61 std::unique_ptr<media_router::MediaSink> sink;
62 media_router::mojom::MediaSinkExtraDataDataView extra_data_data_view;
63 data.GetExtraDataDataView(&extra_data_data_view);
64
65 if (extra_data_data_view.is_null()) {
imcheng 2017/02/09 02:19:57 We shouldn't be returning non-generic MediaSinks f
66 sink = base::MakeUnique<media_router::MediaSink>(id, name, icon_type);
67 } else if (extra_data_data_view.is_dial_media_sink()) {
68 sink = base::MakeUnique<media_router::DialMediaSink>(id, name, icon_type);
69 if (!extra_data_data_view.ReadDialMediaSink(sink.get()))
70 return false;
71 } else if (extra_data_data_view.is_cast_media_sink()) {
72 sink = base::MakeUnique<media_router::CastMediaSink>(id, name, icon_type);
73 if (!extra_data_data_view.ReadCastMediaSink(sink.get()))
74 return false;
75 }
76
77 base::Optional<std::string> description;
78 if (!data.ReadDescription(&description))
79 return false;
80
81 if (description)
82 sink->set_description(*description);
83
84 base::Optional<std::string> domain;
85 if (!data.ReadDomain(&domain))
86 return false;
87
88 if (domain)
89 sink->set_domain(*domain);
90
91 base::Optional<std::string> model_name;
92 if (!data.ReadModelName(&model_name))
93 return false;
94
95 if (model_name)
96 sink->set_model_name(*model_name);
97
98 *out = std::move(sink);
99 return true;
100 }
101
102 // static
103 bool StructTraits<media_router::mojom::DialMediaSinkDataView,
104 media_router::MediaSink>::
105 Read(media_router::mojom::DialMediaSinkDataView data,
106 media_router::MediaSink* out) {
107 auto* dial_sink = media_router::DialMediaSink::Cast(out);
108
109 std::string ip_address;
110 if (!data.ReadIpAddress(&ip_address))
111 return false;
112 dial_sink->set_ip_address(ip_address);
113
114 GURL url;
115 if (!data.ReadAppUrl(&url))
116 return false;
117 dial_sink->set_app_url(url);
118
119 return true;
120 }
121
122 // static
123 bool StructTraits<media_router::mojom::CastMediaSinkDataView,
124 media_router::MediaSink>::
125 Read(media_router::mojom::CastMediaSinkDataView data,
126 media_router::MediaSink* out) {
127 auto* cast_sink = media_router::CastMediaSink::Cast(out);
128
129 cast_sink->set_capabilities(data.capabilities());
130
131 std::string ip_address;
132 if (!data.ReadIpAddress(&ip_address))
133 return false;
134 cast_sink->set_ip_address(ip_address);
135
136 cast_sink->set_cast_channel_id(data.cast_channel_id());
137
138 return true;
139 }
140
43 } // namespace mojo 141 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698