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

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

Issue 2675033002: [Media Router] Add MediaSink subtypes (Closed)
Patch Set: merge with master 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 #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/issue.h" 10 #include "chrome/browser/media/router/issue.h"
11 #include "chrome/browser/media/router/media_sink.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 "chrome/browser/media/router/typed_media_sink.h"
14 #include "mojo/common/common_custom_types_struct_traits.h" 15 #include "mojo/common/common_custom_types_struct_traits.h"
15 16
16 namespace mojo { 17 namespace mojo {
17 18
18 // Issue 19 // Issue
19 20
20 template <> 21 template <>
21 struct EnumTraits<media_router::mojom::Issue::ActionType, 22 struct EnumTraits<media_router::mojom::Issue::ActionType,
22 media_router::IssueInfo::Action> { 23 media_router::IssueInfo::Action> {
23 static media_router::mojom::Issue::ActionType ToMojom( 24 static media_router::mojom::Issue::ActionType ToMojom(
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 return true; 75 return true;
75 case media_router::mojom::Issue::Severity::NOTIFICATION: 76 case media_router::mojom::Issue::Severity::NOTIFICATION:
76 *output = media_router::IssueInfo::Severity::NOTIFICATION; 77 *output = media_router::IssueInfo::Severity::NOTIFICATION;
77 return true; 78 return true;
78 } 79 }
79 return false; 80 return false;
80 } 81 }
81 }; 82 };
82 83
83 template <> 84 template <>
85 struct StructTraits<media_router::mojom::TypedMediaSinkDataView,
86 media_router::TypedMediaSink> {
87 static const media_router::MediaSink& sink(
88 const media_router::TypedMediaSink& sink) {
89 return sink.sink();
90 }
91
92 static base::Optional<std::string> model_name(
93 const media_router::TypedMediaSink& sink) {
94 return sink.model_name();
95 }
96
97 static const std::string& ip_address(
98 const media_router::TypedMediaSink& sink) {
99 return sink.ip_address();
100 }
101
102 static const media_router::TypedMediaSink& extra_data(
103 const media_router::TypedMediaSink& sink) {
104 return sink;
105 }
106
107 static bool Read(media_router::mojom::TypedMediaSinkDataView data,
108 media_router::TypedMediaSink* out);
109 };
110
111 template <>
112 struct UnionTraits<media_router::mojom::MediaSinkExtraDataDataView,
113 media_router::TypedMediaSink> {
114 static media_router::mojom::MediaSinkExtraDataDataView::Tag GetTag(
115 const media_router::TypedMediaSink& sink) {
116 if (sink.is_dial_sink()) {
117 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
118 DIAL_MEDIA_SINK;
119 } else if (sink.is_cast_sink()) {
120 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
121 CAST_MEDIA_SINK;
122 }
123 DCHECK(false);
mark a. foltz 2017/02/17 02:22:31 NOTREACHED()
zhaobin 2017/02/22 00:42:08 Done.
124 return media_router::mojom::MediaSinkExtraDataDataView::Tag::
125 CAST_MEDIA_SINK;
126 }
127
128 static const media_router::DialSinkExtraData& dial_media_sink(
129 const media_router::TypedMediaSink& sink) {
130 return sink.dial_data();
131 }
132
133 static const media_router::CastSinkExtraData& cast_media_sink(
134 const media_router::TypedMediaSink& sink) {
135 return sink.cast_data();
136 }
137 };
138
139 template <>
140 struct StructTraits<media_router::mojom::DialMediaSinkDataView,
141 media_router::DialSinkExtraData> {
142 static const GURL& app_url(
143 const media_router::DialSinkExtraData& extra_data) {
144 return extra_data.app_url;
145 }
146
147 static bool Read(media_router::mojom::DialMediaSinkDataView data,
148 media_router::DialSinkExtraData* out);
149 };
150
151 template <>
152 struct StructTraits<media_router::mojom::CastMediaSinkDataView,
153 media_router::CastSinkExtraData> {
154 static int32_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 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 *output = media_router::RouteRequestResult::CANCELLED; 559 *output = media_router::RouteRequestResult::CANCELLED;
475 return true; 560 return true;
476 } 561 }
477 return false; 562 return false;
478 } 563 }
479 }; 564 };
480 565
481 } // namespace mojo 566 } // namespace mojo
482 567
483 #endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ 568 #endif // CHROME_BROWSER_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698