| /* |
| * Copyright (C) 2019 MediaTek Inc. |
| * |
| * 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 CAMERA_HAL_MEDIATEK_MTKCAM_CUSTOM_COMMON_HAL_INC_CAMERA_FEATURE_CAMERA_FEATURE_ID_H_ |
| #define CAMERA_HAL_MEDIATEK_MTKCAM_CUSTOM_COMMON_HAL_INC_CAMERA_FEATURE_CAMERA_FEATURE_ID_H_ |
| |
| namespace NSFeature { |
| |
| #include <kd_camera_feature_id.h> |
| typedef FEATURE_ID FEATURE_ID_T; |
| |
| enum { |
| FID_BEGIN = FID_PRE_BEGIN + 1, |
| FID_NUM = FID_OVER_LAST - FID_BEGIN, |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // Scene-Independent (SI) feature id. |
| FID_BEGIN_SI = FID_PRE_BEGIN_SI + 1, |
| FID_END_SI = FID_OVER_LAST_SI, |
| |
| // Misc. feature id. |
| FID_BEGIN_MISC_SI = FID_PRE_BEGIN_MISC_SI + 1, |
| FID_END_MISC_SI = FID_OVER_LAST_MISC_SI, |
| FID_NUM_MISC_SI = FID_END_MISC_SI - FID_BEGIN_MISC_SI, |
| |
| // RAW-only feature id. |
| FID_BEGIN_RAW_ONLY_SI = FID_PRE_BEGIN_RAW_ONLY_SI + 1, |
| FID_END_RAW_ONLY_SI = FID_OVER_LAST_RAW_ONLY_SI, |
| FID_NUM_RAW_ONLY_SI = FID_END_RAW_ONLY_SI - FID_BEGIN_RAW_ONLY_SI, |
| // RAW-YUV-shared feature id. |
| FID_BEGIN_RAW_YUV_SI = FID_PRE_BEGIN_RAW_YUV_SI + 1, |
| FID_END_RAW_YUV_SI = FID_OVER_LAST_RAW_YUV_SI, |
| FID_NUM_RAW_YUV_SI = FID_END_RAW_YUV_SI - FID_BEGIN_RAW_YUV_SI, |
| // YUV-only feature id. |
| FID_BEGIN_YUV_ONLY_SI = FID_PRE_BEGIN_YUV_ONLY_SI + 1, |
| FID_END_YUV_ONLY_SI = FID_OVER_LAST_YUV_ONLY_SI, |
| FID_NUM_YUV_ONLY_SI = FID_END_YUV_ONLY_SI - FID_BEGIN_YUV_ONLY_SI, |
| |
| // RAW feature id. |
| FID_BEGIN_RAW_SI = FID_BEGIN_RAW_ONLY_SI, |
| FID_END_RAW_SI = FID_OVER_LAST_RAW_YUV_SI, |
| FID_NUM_RAW_SI = FID_END_RAW_SI - FID_BEGIN_RAW_SI, |
| // YUV feature id. |
| FID_BEGIN_YUV_SI = FID_BEGIN_RAW_YUV_SI, |
| FID_END_YUV_SI = FID_END_YUV_ONLY_SI, |
| FID_NUM_YUV_SI = FID_END_YUV_SI - FID_BEGIN_YUV_SI, |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // Scene-Dependent (SD) feature id. |
| FID_BEGIN_SD = FID_PRE_BEGIN_SD + 1, |
| FID_END_SD = FID_OVER_LAST_SD, |
| |
| // Misc. feature id. |
| FID_BEGIN_MISC_SD = FID_PRE_BEGIN_MISC_SD + 1, |
| FID_END_MISC_SD = FID_OVER_LAST_MISC_SD, |
| FID_NUM_MISC_SD = FID_END_MISC_SD - FID_BEGIN_MISC_SD, |
| |
| // RAW-only feature id. |
| FID_BEGIN_RAW_ONLY_SD = FID_PRE_BEGIN_RAW_ONLY_SD + 1, |
| FID_END_RAW_ONLY_SD = FID_OVER_LAST_RAW_ONLY_SD, |
| FID_NUM_RAW_ONLY_SD = FID_END_RAW_ONLY_SD - FID_BEGIN_RAW_ONLY_SD, |
| // RAW-YUV-shared feature id. |
| FID_BEGIN_RAW_YUV_SD = FID_PRE_BEGIN_RAW_YUV_SD + 1, |
| FID_END_RAW_YUV_SD = FID_OVER_LAST_RAW_YUV_SD, |
| FID_NUM_RAW_YUV_SD = FID_END_RAW_YUV_SD - FID_BEGIN_RAW_YUV_SD, |
| // YUV-only feature id. |
| FID_BEGIN_YUV_ONLY_SD = FID_PRE_BEGIN_YUV_ONLY_SD + 1, |
| FID_END_YUV_ONLY_SD = FID_OVER_LAST_YUV_ONLY_SD, |
| FID_NUM_YUV_ONLY_SD = FID_END_YUV_ONLY_SD - FID_BEGIN_YUV_ONLY_SD, |
| |
| // RAW feature id. |
| FID_BEGIN_RAW_SD = FID_BEGIN_RAW_ONLY_SD, |
| FID_END_RAW_SD = FID_OVER_LAST_RAW_YUV_SD, |
| FID_NUM_RAW_SD = FID_END_RAW_SD - FID_BEGIN_RAW_SD, |
| // YUV feature id. |
| FID_BEGIN_YUV_SD = FID_BEGIN_RAW_YUV_SD, |
| FID_END_YUV_SD = FID_END_YUV_ONLY_SD, |
| FID_NUM_YUV_SD = FID_END_YUV_SD - FID_BEGIN_YUV_SD, |
| }; |
| |
| //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| // Generic Feature ID Info |
| //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| template <MUINT32 _fid> |
| struct FidInfo { |
| template <MUINT32 _val, MUINT32 _beg, MUINT32 _end> |
| struct IsWithin { |
| enum { Result = (_beg <= _val && _val < _end) }; |
| }; |
| |
| enum { |
| isSceneIndep = IsWithin<_fid, FID_BEGIN_SI, FID_END_SI>::Result, |
| isMiscSceneIndep = |
| IsWithin<_fid, FID_BEGIN_MISC_SI, FID_END_MISC_SI>::Result, |
| isRAWSceneIndep = IsWithin<_fid, FID_BEGIN_RAW_SI, FID_END_RAW_SI>::Result, |
| isYUVSceneIndep = IsWithin<_fid, FID_BEGIN_YUV_SI, FID_END_YUV_SI>::Result, |
| |
| isSceneDep = IsWithin<_fid, FID_BEGIN_SD, FID_END_SD>::Result, |
| isMiscSceneDep = IsWithin<_fid, FID_BEGIN_MISC_SD, FID_END_MISC_SD>::Result, |
| isRAWSceneDep = IsWithin<_fid, FID_BEGIN_RAW_SD, FID_END_RAW_SD>::Result, |
| isYUVSceneDep = IsWithin<_fid, FID_BEGIN_YUV_SD, FID_END_YUV_SD>::Result, |
| |
| isRAW = (isRAWSceneIndep || isRAWSceneDep), |
| isYUV = (isYUVSceneIndep || isYUVSceneDep), |
| }; |
| }; |
| |
| }; // namespace NSFeature |
| |
| #endif // CAMERA_HAL_MEDIATEK_MTKCAM_CUSTOM_COMMON_HAL_INC_CAMERA_FEATURE_CAMERA_FEATURE_ID_H_ |