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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/mojo/media_router_struct_traits.h
diff --git a/chrome/browser/media/router/mojo/media_router_struct_traits.h b/chrome/browser/media/router/mojo/media_router_struct_traits.h
index 1c6623fcc5d53abde23fd1c4e9efd919a663be25..32be627ebbe1f54cc98593859cd3d82d6b410403 100644
--- a/chrome/browser/media/router/mojo/media_router_struct_traits.h
+++ b/chrome/browser/media/router/mojo/media_router_struct_traits.h
@@ -11,6 +11,7 @@
#include "chrome/browser/media/router/media_sink.h"
#include "chrome/browser/media/router/mojo/media_router.mojom.h"
#include "chrome/browser/media/router/route_request_result.h"
+#include "chrome/browser/media/router/typed_media_sink.h"
#include "mojo/common/common_custom_types_struct_traits.h"
namespace mojo {
@@ -81,6 +82,90 @@ struct EnumTraits<media_router::mojom::Issue::Severity,
};
template <>
+struct StructTraits<media_router::mojom::TypedMediaSinkDataView,
+ media_router::TypedMediaSink> {
+ static const media_router::MediaSink& sink(
+ const media_router::TypedMediaSink& sink) {
+ return sink.sink();
+ }
+
+ static base::Optional<std::string> model_name(
+ const media_router::TypedMediaSink& sink) {
+ return sink.model_name();
+ }
+
+ static const std::string& ip_address(
+ const media_router::TypedMediaSink& sink) {
+ return sink.ip_address();
+ }
+
+ static const media_router::TypedMediaSink& extra_data(
+ const media_router::TypedMediaSink& sink) {
+ return sink;
+ }
+
+ static bool Read(media_router::mojom::TypedMediaSinkDataView data,
+ media_router::TypedMediaSink* out);
+};
+
+template <>
+struct UnionTraits<media_router::mojom::MediaSinkExtraDataDataView,
+ media_router::TypedMediaSink> {
+ static media_router::mojom::MediaSinkExtraDataDataView::Tag GetTag(
+ const media_router::TypedMediaSink& sink) {
+ if (sink.is_dial_sink()) {
+ return media_router::mojom::MediaSinkExtraDataDataView::Tag::
+ DIAL_MEDIA_SINK;
+ } else if (sink.is_cast_sink()) {
+ return media_router::mojom::MediaSinkExtraDataDataView::Tag::
+ CAST_MEDIA_SINK;
+ }
+ DCHECK(false);
mark a. foltz 2017/02/17 02:22:31 NOTREACHED()
zhaobin 2017/02/22 00:42:08 Done.
+ return media_router::mojom::MediaSinkExtraDataDataView::Tag::
+ CAST_MEDIA_SINK;
+ }
+
+ static const media_router::DialSinkExtraData& dial_media_sink(
+ const media_router::TypedMediaSink& sink) {
+ return sink.dial_data();
+ }
+
+ static const media_router::CastSinkExtraData& cast_media_sink(
+ const media_router::TypedMediaSink& sink) {
+ return sink.cast_data();
+ }
+};
+
+template <>
+struct StructTraits<media_router::mojom::DialMediaSinkDataView,
+ media_router::DialSinkExtraData> {
+ static const GURL& app_url(
+ const media_router::DialSinkExtraData& extra_data) {
+ return extra_data.app_url;
+ }
+
+ static bool Read(media_router::mojom::DialMediaSinkDataView data,
+ media_router::DialSinkExtraData* out);
+};
+
+template <>
+struct StructTraits<media_router::mojom::CastMediaSinkDataView,
+ media_router::CastSinkExtraData> {
+ static int32_t capabilities(
+ const media_router::CastSinkExtraData& extra_data) {
+ return extra_data.capabilities;
+ }
+
+ static int32_t cast_channel_id(
+ const media_router::CastSinkExtraData& extra_data) {
+ return extra_data.cast_channel_id;
+ }
+
+ static bool Read(media_router::mojom::CastMediaSinkDataView data,
+ media_router::CastSinkExtraData* out);
+};
+
+template <>
struct StructTraits<media_router::mojom::RouteMessageDataView,
media_router::RouteMessage> {
static media_router::mojom::RouteMessage::Type type(

Powered by Google App Engine
This is Rietveld 408576698