diff options
Diffstat (limited to 'chromium/third_party/blink/common/mediastream/media_devices_mojom_traits.cc')
-rw-r--r-- | chromium/third_party/blink/common/mediastream/media_devices_mojom_traits.cc | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/chromium/third_party/blink/common/mediastream/media_devices_mojom_traits.cc b/chromium/third_party/blink/common/mediastream/media_devices_mojom_traits.cc new file mode 100644 index 00000000000..494c0307813 --- /dev/null +++ b/chromium/third_party/blink/common/mediastream/media_devices_mojom_traits.cc @@ -0,0 +1,103 @@ +// Copyright 2017 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. + +#include "third_party/blink/public/common/mediastream/media_devices_mojom_traits.h" + +#include "base/logging.h" + +namespace mojo { + +// static +blink::mojom::MediaDeviceType +EnumTraits<blink::mojom::MediaDeviceType, blink::MediaDeviceType>::ToMojom( + blink::MediaDeviceType type) { + switch (type) { + case blink::MediaDeviceType::MEDIA_DEVICE_TYPE_AUDIO_INPUT: + return blink::mojom::MediaDeviceType::MEDIA_AUDIO_INPUT; + case blink::MediaDeviceType::MEDIA_DEVICE_TYPE_VIDEO_INPUT: + return blink::mojom::MediaDeviceType::MEDIA_VIDEO_INPUT; + case blink::MediaDeviceType::MEDIA_DEVICE_TYPE_AUDIO_OUTPUT: + return blink::mojom::MediaDeviceType::MEDIA_AUDIO_OUTPUT; + default: + break; + } + NOTREACHED(); + return blink::mojom::MediaDeviceType::NUM_MEDIA_DEVICE_TYPES; +} + +// static +bool EnumTraits<blink::mojom::MediaDeviceType, blink::MediaDeviceType>:: + FromMojom(blink::mojom::MediaDeviceType input, + blink::MediaDeviceType* out) { + switch (input) { + case blink::mojom::MediaDeviceType::MEDIA_AUDIO_INPUT: + *out = blink::MediaDeviceType::MEDIA_DEVICE_TYPE_AUDIO_INPUT; + return true; + case blink::mojom::MediaDeviceType::MEDIA_VIDEO_INPUT: + *out = blink::MediaDeviceType::MEDIA_DEVICE_TYPE_VIDEO_INPUT; + return true; + case blink::mojom::MediaDeviceType::MEDIA_AUDIO_OUTPUT: + *out = blink::MediaDeviceType::MEDIA_DEVICE_TYPE_AUDIO_OUTPUT; + return true; + default: + break; + } + NOTREACHED(); + return false; +} + +// static +blink::mojom::FacingMode +EnumTraits<blink::mojom::FacingMode, media::VideoFacingMode>::ToMojom( + media::VideoFacingMode facing_mode) { + switch (facing_mode) { + case media::MEDIA_VIDEO_FACING_NONE: + return blink::mojom::FacingMode::NONE; + case media::MEDIA_VIDEO_FACING_USER: + return blink::mojom::FacingMode::USER; + case media::MEDIA_VIDEO_FACING_ENVIRONMENT: + return blink::mojom::FacingMode::ENVIRONMENT; + default: + break; + } + NOTREACHED(); + return blink::mojom::FacingMode::NONE; +} + +// static +bool EnumTraits<blink::mojom::FacingMode, media::VideoFacingMode>::FromMojom( + blink::mojom::FacingMode input, + media::VideoFacingMode* out) { + switch (input) { + case blink::mojom::FacingMode::NONE: + *out = media::MEDIA_VIDEO_FACING_NONE; + return true; + case blink::mojom::FacingMode::USER: + *out = media::MEDIA_VIDEO_FACING_USER; + return true; + case blink::mojom::FacingMode::ENVIRONMENT: + *out = media::MEDIA_VIDEO_FACING_ENVIRONMENT; + return true; + default: + break; + } + NOTREACHED(); + return false; +} + +// static +bool StructTraits<blink::mojom::MediaDeviceInfoDataView, + blink::WebMediaDeviceInfo>:: + Read(blink::mojom::MediaDeviceInfoDataView input, + blink::WebMediaDeviceInfo* out) { + if (!input.ReadDeviceId(&out->device_id)) + return false; + if (!input.ReadLabel(&out->label)) + return false; + if (!input.ReadGroupId(&out->group_id)) + return false; + return true; +} + +} // namespace mojo |