blob: 571f653277e2896fbfea47008b4d80d0cda79c82 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_COMMON_MEDIA_MEDIA_SESSION_STRUCT_TRAITS_H_
#define CONTENT_COMMON_MEDIA_MEDIA_SESSION_STRUCT_TRAITS_H_
#include "third_party/WebKit/public/platform/modules/mediasession/media_session.mojom.h"
namespace mojo {
template <>
struct StructTraits<blink::mojom::MediaImageDataView,
content::MediaMetadata::MediaImage> {
static const GURL& src(const content::MediaMetadata::MediaImage& image) {
return image.src;
}
static const base::string16& type(
const content::MediaMetadata::MediaImage& image) {
return image.type;
}
static const std::vector<gfx::Size>& sizes(
const content::MediaMetadata::MediaImage& image) {
return image.sizes;
}
static bool Read(blink::mojom::MediaImageDataView data,
content::MediaMetadata::MediaImage* out) {
if (!data.ReadSrc(&out->src))
return false;
if (!data.ReadType(&out->type))
return false;
if (!data.ReadSizes(&out->sizes))
return false;
return true;
}
};
template <>
struct StructTraits<blink::mojom::MediaMetadataDataView,
content::MediaMetadata> {
static const base::string16& title(const content::MediaMetadata& metadata) {
return metadata.title;
}
static const base::string16& artist(const content::MediaMetadata& metadata) {
return metadata.artist;
}
static const base::string16& album(const content::MediaMetadata& metadata) {
return metadata.album;
}
static const std::vector<content::MediaMetadata::MediaImage>& artwork(
const content::MediaMetadata& metadata) {
return metadata.artwork;
}
static bool Read(blink::mojom::MediaMetadataDataView data,
content::MediaMetadata* out) {
if (!data.ReadTitle(&out->title))
return false;
if (!data.ReadArtist(&out->artist))
return false;
if (!data.ReadAlbum(&out->album))
return false;
if (!data.ReadArtwork(&out->artwork))
return false;
return true;
}
};
} // namespace mojo
#endif // CONTENT_COMMON_MEDIA_MEDIA_SESSION_STRUCT_TRAITS_H_