chromium/media/capture/mojom/video_capture_types_mojom_traits.h

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_CAPTURE_MOJOM_VIDEO_CAPTURE_TYPES_MOJOM_TRAITS_H_
#define MEDIA_CAPTURE_MOJOM_VIDEO_CAPTURE_TYPES_MOJOM_TRAITS_H_

#include "media/base/video_facing.h"
#include "media/capture/mojom/video_capture_types.mojom-shared.h"
#include "media/capture/video/video_capture_device_descriptor.h"
#include "media/capture/video/video_capture_device_info.h"
#include "media/capture/video/video_capture_feedback.h"
#include "media/capture/video_capture_types.h"

namespace mojo {

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::ResolutionChangePolicy,
               media::ResolutionChangePolicy> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::PowerLineFrequency, media::PowerLineFrequency> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::VideoCapturePixelFormat, media::VideoPixelFormat> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::VideoCaptureBufferType,
               media::VideoCaptureBufferType> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::VideoCaptureError, media::VideoCaptureError> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::VideoCaptureFrameDropReason,
               media::VideoCaptureFrameDropReason> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::VideoFacingMode, media::VideoFacingMode> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::VideoCaptureApi, media::VideoCaptureApi> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::CameraAvailability, media::CameraAvailability> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    EnumTraits<media::mojom::VideoCaptureTransportType,
               media::VideoCaptureTransportType> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    StructTraits<media::mojom::VideoCaptureControlSupportDataView,
                 media::VideoCaptureControlSupport> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    StructTraits<media::mojom::VideoCaptureFormatDataView,
                 media::VideoCaptureFormat> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    StructTraits<media::mojom::VideoCaptureParamsDataView,
                 media::VideoCaptureParams> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    StructTraits<media::mojom::VideoCaptureDeviceDescriptorDataView,
                 media::VideoCaptureDeviceDescriptor> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    StructTraits<media::mojom::VideoCaptureDeviceInfoDataView,
                 media::VideoCaptureDeviceInfo> {};

template <>
struct COMPONENT_EXPORT(MEDIA_CAPTURE_MOJOM_TRAITS)
    StructTraits<media::mojom::VideoCaptureFeedbackDataView,
                 media::VideoCaptureFeedback> {};
}  // namespace mojo

#endif  // MEDIA_CAPTURE_MOJOM_VIDEO_CAPTURE_TYPES_MOJOM_TRAITS_H_