| // 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 "content/common/media/media_stream_typemap_traits.h" |
| |
| #include "base/logging.h" |
| |
| namespace mojo { |
| |
| // static |
| content::mojom::MediaStreamType |
| EnumTraits<content::mojom::MediaStreamType, content::MediaStreamType>::ToMojom( |
| content::MediaStreamType type) { |
| switch (type) { |
| case content::MediaStreamType::MEDIA_NO_SERVICE: |
| return content::mojom::MediaStreamType::MEDIA_NO_SERVICE; |
| case content::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE: |
| return content::mojom::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE; |
| case content::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE: |
| return content::mojom::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE; |
| case content::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE: |
| return content::mojom::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE; |
| case content::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE: |
| return content::mojom::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE; |
| case content::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE: |
| return content::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE; |
| case content::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE: |
| return content::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE; |
| case content::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE: |
| return content::mojom::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE; |
| case content::MediaStreamType::NUM_MEDIA_TYPES: |
| return content::mojom::MediaStreamType::NUM_MEDIA_TYPES; |
| } |
| NOTREACHED(); |
| return content::mojom::MediaStreamType::MEDIA_NO_SERVICE; |
| } |
| |
| // static |
| bool EnumTraits<content::mojom::MediaStreamType, content::MediaStreamType>:: |
| FromMojom(content::mojom::MediaStreamType input, |
| content::MediaStreamType* out) { |
| switch (input) { |
| case content::mojom::MediaStreamType::MEDIA_NO_SERVICE: |
| *out = content::MediaStreamType::MEDIA_NO_SERVICE; |
| return true; |
| case content::mojom::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE: |
| *out = content::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE; |
| return true; |
| case content::mojom::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE: |
| *out = content::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE; |
| return true; |
| case content::mojom::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE: |
| *out = content::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE; |
| return true; |
| case content::mojom::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE: |
| *out = content::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE; |
| return true; |
| case content::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE: |
| *out = content::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE; |
| return true; |
| case content::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE: |
| *out = content::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE; |
| return true; |
| case content::mojom::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE: |
| *out = content::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE; |
| return true; |
| case content::mojom::MediaStreamType::NUM_MEDIA_TYPES: |
| *out = content::MediaStreamType::NUM_MEDIA_TYPES; |
| return true; |
| } |
| NOTREACHED(); |
| return false; |
| } |
| |
| // static |
| content::mojom::MediaStreamRequestResult |
| EnumTraits<content::mojom::MediaStreamRequestResult, |
| content::MediaStreamRequestResult>:: |
| ToMojom(content::MediaStreamRequestResult result) { |
| switch (result) { |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_OK: |
| return content::mojom::MediaStreamRequestResult::OK; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DENIED: |
| return content::mojom::MediaStreamRequestResult::PERMISSION_DENIED; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DISMISSED: |
| return content::mojom::MediaStreamRequestResult::PERMISSION_DISMISSED; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_INVALID_STATE: |
| return content::mojom::MediaStreamRequestResult::INVALID_STATE; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_NO_HARDWARE: |
| return content::mojom::MediaStreamRequestResult::NO_HARDWARE; |
| case content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_INVALID_SECURITY_ORIGIN: |
| return content::mojom::MediaStreamRequestResult::INVALID_SECURITY_ORIGIN; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_TAB_CAPTURE_FAILURE: |
| return content::mojom::MediaStreamRequestResult::TAB_CAPTURE_FAILURE; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_SCREEN_CAPTURE_FAILURE: |
| return content::mojom::MediaStreamRequestResult::SCREEN_CAPTURE_FAILURE; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_CAPTURE_FAILURE: |
| return content::mojom::MediaStreamRequestResult::CAPTURE_FAILURE; |
| case content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_CONSTRAINT_NOT_SATISFIED: |
| return content::mojom::MediaStreamRequestResult::CONSTRAINT_NOT_SATISFIED; |
| case content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_TRACK_START_FAILURE_AUDIO: |
| return content::mojom::MediaStreamRequestResult:: |
| TRACK_START_FAILURE_AUDIO; |
| case content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_TRACK_START_FAILURE_VIDEO: |
| return content::mojom::MediaStreamRequestResult:: |
| TRACK_START_FAILURE_VIDEO; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_NOT_SUPPORTED: |
| return content::mojom::MediaStreamRequestResult::NOT_SUPPORTED; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_FAILED_DUE_TO_SHUTDOWN: |
| return content::mojom::MediaStreamRequestResult::FAILED_DUE_TO_SHUTDOWN; |
| case content::MediaStreamRequestResult::MEDIA_DEVICE_KILL_SWITCH_ON: |
| return content::mojom::MediaStreamRequestResult::KILL_SWITCH_ON; |
| default: |
| break; |
| } |
| NOTREACHED(); |
| return content::mojom::MediaStreamRequestResult::OK; |
| } |
| |
| // static |
| bool EnumTraits<content::mojom::MediaStreamRequestResult, |
| content::MediaStreamRequestResult>:: |
| FromMojom(content::mojom::MediaStreamRequestResult input, |
| content::MediaStreamRequestResult* out) { |
| switch (input) { |
| case content::mojom::MediaStreamRequestResult::OK: |
| *out = content::MediaStreamRequestResult::MEDIA_DEVICE_OK; |
| return true; |
| case content::mojom::MediaStreamRequestResult::PERMISSION_DENIED: |
| *out = content::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DENIED; |
| return true; |
| case content::mojom::MediaStreamRequestResult::PERMISSION_DISMISSED: |
| *out = |
| content::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DISMISSED; |
| return true; |
| case content::mojom::MediaStreamRequestResult::INVALID_STATE: |
| *out = content::MediaStreamRequestResult::MEDIA_DEVICE_INVALID_STATE; |
| return true; |
| case content::mojom::MediaStreamRequestResult::NO_HARDWARE: |
| *out = content::MediaStreamRequestResult::MEDIA_DEVICE_NO_HARDWARE; |
| return true; |
| case content::mojom::MediaStreamRequestResult::INVALID_SECURITY_ORIGIN: |
| *out = content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_INVALID_SECURITY_ORIGIN; |
| return true; |
| case content::mojom::MediaStreamRequestResult::TAB_CAPTURE_FAILURE: |
| *out = |
| content::MediaStreamRequestResult::MEDIA_DEVICE_TAB_CAPTURE_FAILURE; |
| return true; |
| case content::mojom::MediaStreamRequestResult::SCREEN_CAPTURE_FAILURE: |
| *out = content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_SCREEN_CAPTURE_FAILURE; |
| return true; |
| case content::mojom::MediaStreamRequestResult::CAPTURE_FAILURE: |
| *out = content::MediaStreamRequestResult::MEDIA_DEVICE_CAPTURE_FAILURE; |
| return true; |
| case content::mojom::MediaStreamRequestResult::CONSTRAINT_NOT_SATISFIED: |
| *out = content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_CONSTRAINT_NOT_SATISFIED; |
| return true; |
| case content::mojom::MediaStreamRequestResult::TRACK_START_FAILURE_AUDIO: |
| *out = content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_TRACK_START_FAILURE_AUDIO; |
| return true; |
| case content::mojom::MediaStreamRequestResult::TRACK_START_FAILURE_VIDEO: |
| *out = content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_TRACK_START_FAILURE_VIDEO; |
| return true; |
| case content::mojom::MediaStreamRequestResult::NOT_SUPPORTED: |
| *out = content::MediaStreamRequestResult::MEDIA_DEVICE_NOT_SUPPORTED; |
| return true; |
| case content::mojom::MediaStreamRequestResult::FAILED_DUE_TO_SHUTDOWN: |
| *out = content::MediaStreamRequestResult:: |
| MEDIA_DEVICE_FAILED_DUE_TO_SHUTDOWN; |
| return true; |
| case content::mojom::MediaStreamRequestResult::KILL_SWITCH_ON: |
| *out = content::MediaStreamRequestResult::MEDIA_DEVICE_KILL_SWITCH_ON; |
| return true; |
| } |
| NOTREACHED(); |
| return false; |
| } |
| |
| // static |
| bool StructTraits< |
| content::mojom::TrackControlsDataView, |
| content::TrackControls>::Read(content::mojom::TrackControlsDataView input, |
| content::TrackControls* out) { |
| out->requested = input.requested(); |
| if (!input.ReadStreamType(&out->stream_type)) |
| return false; |
| if (!input.ReadDeviceId(&out->device_id)) |
| return false; |
| return true; |
| } |
| |
| // static |
| bool StructTraits< |
| content::mojom::StreamControlsDataView, |
| content::StreamControls>::Read(content::mojom::StreamControlsDataView input, |
| content::StreamControls* out) { |
| if (!input.ReadAudio(&out->audio)) |
| return false; |
| if (!input.ReadVideo(&out->video)) |
| return false; |
| #if DCHECK_IS_ON() |
| if (input.hotword_enabled() || input.disable_local_echo()) |
| DCHECK(out->audio.requested); |
| #endif |
| out->hotword_enabled = input.hotword_enabled(); |
| out->disable_local_echo = input.disable_local_echo(); |
| return true; |
| } |
| |
| } // namespace mojo |