| // 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 "components/arc/volume_mounter/volume_mounter_struct_traits.h" |
| |
| #include "base/logging.h" |
| |
| namespace mojo { |
| |
| arc::mojom::DeviceType |
| EnumTraits<arc::mojom::DeviceType, chromeos::DeviceType>::ToMojom( |
| chromeos::DeviceType device_type) { |
| switch (device_type) { |
| case chromeos::DeviceType::DEVICE_TYPE_USB: |
| return arc::mojom::DeviceType::DEVICE_TYPE_USB; |
| case chromeos::DeviceType::DEVICE_TYPE_SD: |
| return arc::mojom::DeviceType::DEVICE_TYPE_SD; |
| case chromeos::DeviceType::DEVICE_TYPE_UNKNOWN: |
| case chromeos::DeviceType::DEVICE_TYPE_OPTICAL_DISC: |
| case chromeos::DeviceType::DEVICE_TYPE_MOBILE: |
| case chromeos::DeviceType::DEVICE_TYPE_DVD: |
| // Android doesn't recognize this device natively. So, propagating |
| // UNKNOWN and let Android decides how to handle this. |
| return arc::mojom::DeviceType::DEVICE_TYPE_UNKNOWN; |
| } |
| NOTREACHED(); |
| return arc::mojom::DeviceType::DEVICE_TYPE_UNKNOWN; |
| } |
| |
| bool EnumTraits<arc::mojom::DeviceType, chromeos::DeviceType>::FromMojom( |
| arc::mojom::DeviceType input, |
| chromeos::DeviceType* out) { |
| switch (input) { |
| case arc::mojom::DeviceType::DEVICE_TYPE_USB: |
| *out = chromeos::DeviceType::DEVICE_TYPE_USB; |
| return true; |
| case arc::mojom::DeviceType::DEVICE_TYPE_SD: |
| *out = chromeos::DeviceType::DEVICE_TYPE_SD; |
| return true; |
| case arc::mojom::DeviceType::DEVICE_TYPE_UNKNOWN: |
| *out = chromeos::DeviceType::DEVICE_TYPE_UNKNOWN; |
| return true; |
| } |
| NOTREACHED(); |
| return false; |
| } |
| |
| arc::mojom::MountEvent |
| EnumTraits<arc::mojom::MountEvent, |
| chromeos::disks::DiskMountManager::MountEvent>:: |
| ToMojom(chromeos::disks::DiskMountManager::MountEvent mount_event) { |
| switch (mount_event) { |
| case chromeos::disks::DiskMountManager::MountEvent::MOUNTING: |
| return arc::mojom::MountEvent::MOUNTING; |
| case chromeos::disks::DiskMountManager::MountEvent::UNMOUNTING: |
| return arc::mojom::MountEvent::UNMOUNTING; |
| } |
| NOTREACHED(); |
| return arc::mojom::MountEvent::MOUNTING; |
| } |
| |
| bool EnumTraits<arc::mojom::MountEvent, |
| chromeos::disks::DiskMountManager::MountEvent>:: |
| FromMojom(arc::mojom::MountEvent input, |
| chromeos::disks::DiskMountManager::MountEvent* out) { |
| switch (input) { |
| case arc::mojom::MountEvent::MOUNTING: |
| *out = chromeos::disks::DiskMountManager::MountEvent::MOUNTING; |
| return true; |
| case arc::mojom::MountEvent::UNMOUNTING: |
| *out = chromeos::disks::DiskMountManager::MountEvent::UNMOUNTING; |
| return true; |
| } |
| NOTREACHED(); |
| return false; |
| } |
| |
| } // namespace mojo |