blob: e96b27608d5df19b18308db61809ba9f170be4f1 [file] [log] [blame]
// Copyright 2018 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 SERVICES_MEDIA_SESSION_PUBLIC_CPP_MEDIA_SESSION_MOJOM_TRAITS_H_
#define SERVICES_MEDIA_SESSION_PUBLIC_CPP_MEDIA_SESSION_MOJOM_TRAITS_H_
#include "services/media_session/public/mojom/media_session.mojom.h"
namespace mojo {
template <>
struct StructTraits<media_session::mojom::MediaImageDataView,
media_session::MediaMetadata::MediaImage> {
static const GURL& src(
const media_session::MediaMetadata::MediaImage& image) {
return image.src;
}
static const base::string16& type(
const media_session::MediaMetadata::MediaImage& image) {
return image.type;
}
static const std::vector<gfx::Size>& sizes(
const media_session::MediaMetadata::MediaImage& image) {
return image.sizes;
}
static bool Read(media_session::mojom::MediaImageDataView data,
media_session::MediaMetadata::MediaImage* out);
};
template <>
struct StructTraits<media_session::mojom::MediaMetadataDataView,
media_session::MediaMetadata> {
static const base::string16& title(
const media_session::MediaMetadata& metadata) {
return metadata.title;
}
static const base::string16& artist(
const media_session::MediaMetadata& metadata) {
return metadata.artist;
}
static const base::string16& album(
const media_session::MediaMetadata& metadata) {
return metadata.album;
}
static const std::vector<media_session::MediaMetadata::MediaImage>& artwork(
const media_session::MediaMetadata& metadata) {
return metadata.artwork;
}
static const base::string16& source_title(
const media_session::MediaMetadata& metadata) {
return metadata.source_title;
}
static bool Read(media_session::mojom::MediaMetadataDataView data,
media_session::MediaMetadata* out);
};
} // namespace mojo
#endif // SERVICES_MEDIA_SESSION_PUBLIC_CPP_MEDIA_SESSION_MOJOM_TRAITS_H_