/* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ANDROID_SERVERS_CAMERA_HAL_CONVERSION_TEMPLATED_H #define ANDROID_SERVERS_CAMERA_HAL_CONVERSION_TEMPLATED_H #include "common/CameraProviderManager.h" #include namespace android { template HalCameraDeviceStatus mapFrameworkToHalCameraDeviceStatus( const CameraDeviceStatus& s) { switch(s) { case CameraDeviceStatus::PRESENT: return HalCameraDeviceStatus::PRESENT; case CameraDeviceStatus::NOT_PRESENT: return HalCameraDeviceStatus::NOT_PRESENT; case CameraDeviceStatus::ENUMERATING: return HalCameraDeviceStatus::ENUMERATING; } ALOGW("Unexpectedcamera device status code %d", s); return HalCameraDeviceStatus::NOT_PRESENT; } template CameraDeviceStatus HalToFrameworkCameraDeviceStatus( const HalCameraDeviceStatus& s) { switch(s) { case HalCameraDeviceStatus::PRESENT: return CameraDeviceStatus::PRESENT; case HalCameraDeviceStatus::NOT_PRESENT: return CameraDeviceStatus::NOT_PRESENT; case HalCameraDeviceStatus::ENUMERATING: return CameraDeviceStatus::ENUMERATING; } ALOGW("Unexpectedcamera device status code %d", s); return CameraDeviceStatus::NOT_PRESENT; } template CameraResourceCost HalToFrameworkResourceCost( const HalCameraResourceCost& s) { CameraResourceCost internalResourceCost; internalResourceCost.resourceCost = (uint32_t)s.resourceCost; for (const auto device : s.conflictingDevices) { internalResourceCost.conflictingDevices.emplace_back(device.c_str()); } return internalResourceCost; } template TorchModeStatus HalToFrameworkTorchModeStatus( const HalTorchModeStatus& s) { switch(s) { case HalTorchModeStatus::NOT_AVAILABLE: return TorchModeStatus::NOT_AVAILABLE; case HalTorchModeStatus::AVAILABLE_OFF: return TorchModeStatus::AVAILABLE_OFF; case HalTorchModeStatus::AVAILABLE_ON: return TorchModeStatus::AVAILABLE_ON; } ALOGW("Unexpectedcamera torch mode status code %d", s); return TorchModeStatus::NOT_AVAILABLE; } template const char* HalDeviceStatusToString(const HalCameraDeviceStatus& s) { switch(s) { case HalCameraDeviceStatus::NOT_PRESENT: return "NOT_PRESENT"; case HalCameraDeviceStatus::PRESENT: return "PRESENT"; case HalCameraDeviceStatus::ENUMERATING: return "ENUMERATING"; } ALOGW("Unexpected HAL device status code %d", s); return "UNKNOWN_STATUS"; } } #endif