summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/common/mediastream/media_stream_mojom_traits.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/common/mediastream/media_stream_mojom_traits.cc')
-rw-r--r--chromium/third_party/blink/common/mediastream/media_stream_mojom_traits.cc247
1 files changed, 247 insertions, 0 deletions
diff --git a/chromium/third_party/blink/common/mediastream/media_stream_mojom_traits.cc b/chromium/third_party/blink/common/mediastream/media_stream_mojom_traits.cc
new file mode 100644
index 00000000000..3dd5f448434
--- /dev/null
+++ b/chromium/third_party/blink/common/mediastream/media_stream_mojom_traits.cc
@@ -0,0 +1,247 @@
+// 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_stream_mojom_traits.h"
+
+#include "base/logging.h"
+#include "media/base/ipc/media_param_traits.h"
+#include "media/capture/mojom/video_capture_types_mojom_traits.h"
+#include "media/mojo/interfaces/display_media_information.mojom.h"
+
+namespace mojo {
+
+// static
+blink::mojom::MediaStreamType
+EnumTraits<blink::mojom::MediaStreamType, blink::MediaStreamType>::ToMojom(
+ blink::MediaStreamType type) {
+ switch (type) {
+ case blink::MediaStreamType::MEDIA_NO_SERVICE:
+ return blink::mojom::MediaStreamType::MEDIA_NO_SERVICE;
+ case blink::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE:
+ return blink::mojom::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE;
+ case blink::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE:
+ return blink::mojom::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE;
+ case blink::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE:
+ return blink::mojom::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE;
+ case blink::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE:
+ return blink::mojom::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE;
+ case blink::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE:
+ return blink::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE;
+ case blink::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE:
+ return blink::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE;
+ case blink::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE:
+ return blink::mojom::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE;
+ case blink::MediaStreamType::NUM_MEDIA_TYPES:
+ return blink::mojom::MediaStreamType::NUM_MEDIA_TYPES;
+ }
+ NOTREACHED();
+ return blink::mojom::MediaStreamType::MEDIA_NO_SERVICE;
+}
+
+// static
+bool EnumTraits<blink::mojom::MediaStreamType, blink::MediaStreamType>::
+ FromMojom(blink::mojom::MediaStreamType input,
+ blink::MediaStreamType* out) {
+ switch (input) {
+ case blink::mojom::MediaStreamType::MEDIA_NO_SERVICE:
+ *out = blink::MediaStreamType::MEDIA_NO_SERVICE;
+ return true;
+ case blink::mojom::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE:
+ *out = blink::MediaStreamType::MEDIA_DEVICE_AUDIO_CAPTURE;
+ return true;
+ case blink::mojom::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE:
+ *out = blink::MediaStreamType::MEDIA_DEVICE_VIDEO_CAPTURE;
+ return true;
+ case blink::mojom::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE:
+ *out = blink::MediaStreamType::MEDIA_GUM_TAB_AUDIO_CAPTURE;
+ return true;
+ case blink::mojom::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE:
+ *out = blink::MediaStreamType::MEDIA_GUM_TAB_VIDEO_CAPTURE;
+ return true;
+ case blink::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE:
+ *out = blink::MediaStreamType::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE;
+ return true;
+ case blink::mojom::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE:
+ *out = blink::MediaStreamType::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE;
+ return true;
+ case blink::mojom::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE:
+ *out = blink::MediaStreamType::MEDIA_DISPLAY_VIDEO_CAPTURE;
+ return true;
+ case blink::mojom::MediaStreamType::NUM_MEDIA_TYPES:
+ *out = blink::MediaStreamType::NUM_MEDIA_TYPES;
+ return true;
+ }
+ NOTREACHED();
+ return false;
+}
+
+// static
+blink::mojom::MediaStreamRequestResult EnumTraits<
+ blink::mojom::MediaStreamRequestResult,
+ blink::MediaStreamRequestResult>::ToMojom(blink::MediaStreamRequestResult
+ result) {
+ switch (result) {
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_OK:
+ return blink::mojom::MediaStreamRequestResult::OK;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DENIED:
+ return blink::mojom::MediaStreamRequestResult::PERMISSION_DENIED;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DISMISSED:
+ return blink::mojom::MediaStreamRequestResult::PERMISSION_DISMISSED;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_INVALID_STATE:
+ return blink::mojom::MediaStreamRequestResult::INVALID_STATE;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_NO_HARDWARE:
+ return blink::mojom::MediaStreamRequestResult::NO_HARDWARE;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_INVALID_SECURITY_ORIGIN:
+ return blink::mojom::MediaStreamRequestResult::INVALID_SECURITY_ORIGIN;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_TAB_CAPTURE_FAILURE:
+ return blink::mojom::MediaStreamRequestResult::TAB_CAPTURE_FAILURE;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_SCREEN_CAPTURE_FAILURE:
+ return blink::mojom::MediaStreamRequestResult::SCREEN_CAPTURE_FAILURE;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_CAPTURE_FAILURE:
+ return blink::mojom::MediaStreamRequestResult::CAPTURE_FAILURE;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_CONSTRAINT_NOT_SATISFIED:
+ return blink::mojom::MediaStreamRequestResult::CONSTRAINT_NOT_SATISFIED;
+ case blink::MediaStreamRequestResult::
+ MEDIA_DEVICE_TRACK_START_FAILURE_AUDIO:
+ return blink::mojom::MediaStreamRequestResult::TRACK_START_FAILURE_AUDIO;
+ case blink::MediaStreamRequestResult::
+ MEDIA_DEVICE_TRACK_START_FAILURE_VIDEO:
+ return blink::mojom::MediaStreamRequestResult::TRACK_START_FAILURE_VIDEO;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_NOT_SUPPORTED:
+ return blink::mojom::MediaStreamRequestResult::NOT_SUPPORTED;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_FAILED_DUE_TO_SHUTDOWN:
+ return blink::mojom::MediaStreamRequestResult::FAILED_DUE_TO_SHUTDOWN;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_KILL_SWITCH_ON:
+ return blink::mojom::MediaStreamRequestResult::KILL_SWITCH_ON;
+ case blink::MediaStreamRequestResult::MEDIA_DEVICE_SYSTEM_PERMISSION_DENIED:
+ return blink::mojom::MediaStreamRequestResult::SYSTEM_PERMISSION_DENIED;
+ default:
+ break;
+ }
+ NOTREACHED();
+ return blink::mojom::MediaStreamRequestResult::OK;
+}
+
+// static
+bool EnumTraits<blink::mojom::MediaStreamRequestResult,
+ blink::MediaStreamRequestResult>::
+ FromMojom(blink::mojom::MediaStreamRequestResult input,
+ blink::MediaStreamRequestResult* out) {
+ switch (input) {
+ case blink::mojom::MediaStreamRequestResult::OK:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_OK;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::PERMISSION_DENIED:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DENIED;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::PERMISSION_DISMISSED:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_PERMISSION_DISMISSED;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::INVALID_STATE:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_INVALID_STATE;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::NO_HARDWARE:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_NO_HARDWARE;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::INVALID_SECURITY_ORIGIN:
+ *out =
+ blink::MediaStreamRequestResult::MEDIA_DEVICE_INVALID_SECURITY_ORIGIN;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::TAB_CAPTURE_FAILURE:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_TAB_CAPTURE_FAILURE;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::SCREEN_CAPTURE_FAILURE:
+ *out =
+ blink::MediaStreamRequestResult::MEDIA_DEVICE_SCREEN_CAPTURE_FAILURE;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::CAPTURE_FAILURE:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_CAPTURE_FAILURE;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::CONSTRAINT_NOT_SATISFIED:
+ *out = blink::MediaStreamRequestResult::
+ MEDIA_DEVICE_CONSTRAINT_NOT_SATISFIED;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::TRACK_START_FAILURE_AUDIO:
+ *out = blink::MediaStreamRequestResult::
+ MEDIA_DEVICE_TRACK_START_FAILURE_AUDIO;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::TRACK_START_FAILURE_VIDEO:
+ *out = blink::MediaStreamRequestResult::
+ MEDIA_DEVICE_TRACK_START_FAILURE_VIDEO;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::NOT_SUPPORTED:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_NOT_SUPPORTED;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::FAILED_DUE_TO_SHUTDOWN:
+ *out =
+ blink::MediaStreamRequestResult::MEDIA_DEVICE_FAILED_DUE_TO_SHUTDOWN;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::KILL_SWITCH_ON:
+ *out = blink::MediaStreamRequestResult::MEDIA_DEVICE_KILL_SWITCH_ON;
+ return true;
+ case blink::mojom::MediaStreamRequestResult::SYSTEM_PERMISSION_DENIED:
+ *out = blink::MediaStreamRequestResult::
+ MEDIA_DEVICE_SYSTEM_PERMISSION_DENIED;
+ return true;
+ }
+ NOTREACHED();
+ return false;
+}
+
+// static
+bool StructTraits<blink::mojom::MediaStreamDeviceDataView,
+ blink::MediaStreamDevice>::
+ Read(blink::mojom::MediaStreamDeviceDataView input,
+ blink::MediaStreamDevice* out) {
+ if (!input.ReadType(&out->type))
+ return false;
+ if (!input.ReadId(&out->id))
+ return false;
+ if (!input.ReadVideoFacing(&out->video_facing))
+ return false;
+ if (!input.ReadGroupId(&out->group_id))
+ return false;
+ if (!input.ReadMatchedOutputDeviceId(&out->matched_output_device_id))
+ return false;
+ if (!input.ReadName(&out->name))
+ return false;
+ if (!input.ReadInput(&out->input))
+ return false;
+ out->session_id = input.session_id();
+ if (!input.ReadCameraCalibration(&out->camera_calibration))
+ return false;
+ if (!input.ReadDisplayMediaInfo(&out->display_media_info))
+ return false;
+ return true;
+}
+
+// static
+bool StructTraits<blink::mojom::TrackControlsDataView, blink::TrackControls>::
+ Read(blink::mojom::TrackControlsDataView input, blink::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<blink::mojom::StreamControlsDataView, blink::StreamControls>::
+ Read(blink::mojom::StreamControlsDataView input,
+ blink::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