1 /* 2 * Copyright (c) 2024-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "ability/camera_ability_const.h" 17 #include "camera_util.h" 18 #include "display/graphic/common/v1_0/cm_color_space.h" 19 20 namespace OHOS { 21 namespace CameraStandard { 22 23 const std::unordered_map<camera_flash_mode_enum_t, FlashMode> g_metaFlashModeMap_ = { 24 {OHOS_CAMERA_FLASH_MODE_CLOSE, FLASH_MODE_CLOSE}, 25 {OHOS_CAMERA_FLASH_MODE_OPEN, FLASH_MODE_OPEN}, 26 {OHOS_CAMERA_FLASH_MODE_AUTO, FLASH_MODE_AUTO}, 27 {OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN, FLASH_MODE_ALWAYS_OPEN} 28 }; 29 30 const std::unordered_map<camera_exposure_mode_enum_t, ExposureMode> g_metaExposureModeMap_ = { 31 {OHOS_CAMERA_EXPOSURE_MODE_LOCKED, EXPOSURE_MODE_LOCKED}, 32 {OHOS_CAMERA_EXPOSURE_MODE_AUTO, EXPOSURE_MODE_AUTO}, 33 {OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO, EXPOSURE_MODE_CONTINUOUS_AUTO} 34 }; 35 36 const std::unordered_map<camera_focus_mode_enum_t, FocusMode> g_metaFocusModeMap_ = { 37 {OHOS_CAMERA_FOCUS_MODE_MANUAL, FOCUS_MODE_MANUAL}, 38 {OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO, FOCUS_MODE_CONTINUOUS_AUTO}, 39 {OHOS_CAMERA_FOCUS_MODE_AUTO, FOCUS_MODE_AUTO}, 40 {OHOS_CAMERA_FOCUS_MODE_LOCKED, FOCUS_MODE_LOCKED} 41 }; 42 43 const std::unordered_map<CameraQualityPrioritization, QualityPrioritization> g_metaQualityPrioritizationMap_ = { 44 { OHOS_CAMERA_QUALITY_PRIORITIZATION_HIGH_QUALITY, HIGH_QUALITY }, 45 { OHOS_CAMERA_QUALITY_PRIORITIZATION_POWER_BALANCE, POWER_BALANCE } 46 }; 47 48 const std::unordered_map<camera_beauty_type_t, BeautyType> g_metaBeautyTypeMap_ = { 49 {OHOS_CAMERA_BEAUTY_TYPE_AUTO, AUTO_TYPE}, 50 {OHOS_CAMERA_BEAUTY_TYPE_SKIN_SMOOTH, SKIN_SMOOTH}, 51 {OHOS_CAMERA_BEAUTY_TYPE_FACE_SLENDER, FACE_SLENDER}, 52 {OHOS_CAMERA_BEAUTY_TYPE_SKIN_TONE, SKIN_TONE} 53 }; 54 55 const std::unordered_map<camera_device_metadata_tag_t, BeautyType> g_metaBeautyAbilityMap_ = { 56 {OHOS_ABILITY_BEAUTY_AUTO_VALUES, AUTO_TYPE}, 57 {OHOS_ABILITY_BEAUTY_SKIN_SMOOTH_VALUES, SKIN_SMOOTH}, 58 {OHOS_ABILITY_BEAUTY_FACE_SLENDER_VALUES, FACE_SLENDER}, 59 {OHOS_ABILITY_BEAUTY_SKIN_TONE_VALUES, SKIN_TONE} 60 }; 61 62 const std::unordered_map<camera_xmage_color_type_t, ColorEffect> g_metaColorEffectMap_ = { 63 {CAMERA_CUSTOM_COLOR_NORMAL, COLOR_EFFECT_NORMAL}, 64 {CAMERA_CUSTOM_COLOR_BRIGHT, COLOR_EFFECT_BRIGHT}, 65 {CAMERA_CUSTOM_COLOR_SOFT, COLOR_EFFECT_SOFT}, 66 {CAMERA_CUSTOM_COLOR_MONO, COLOR_EFFECT_BLACK_WHITE} 67 }; 68 69 const std::unordered_map<CameraVideoStabilizationMode, VideoStabilizationMode> g_metaVideoStabModesMap_ = { 70 {OHOS_CAMERA_VIDEO_STABILIZATION_OFF, OFF}, 71 {OHOS_CAMERA_VIDEO_STABILIZATION_LOW, LOW}, 72 {OHOS_CAMERA_VIDEO_STABILIZATION_MIDDLE, MIDDLE}, 73 {OHOS_CAMERA_VIDEO_STABILIZATION_HIGH, HIGH}, 74 {OHOS_CAMERA_VIDEO_STABILIZATION_AUTO, AUTO} 75 }; 76 77 const std::unordered_map<camera_portrait_effect_type_t, PortraitEffect> g_metaToFwPortraitEffect_ = { 78 {OHOS_CAMERA_PORTRAIT_EFFECT_OFF, OFF_EFFECT}, 79 {OHOS_CAMERA_PORTRAIT_CIRCLES, CIRCLES}, 80 {OHOS_CAMERA_PORTRAIT_HEART, HEART}, 81 {OHOS_CAMERA_PORTRAIT_ROTATED, ROTATED}, 82 {OHOS_CAMERA_PORTRAIT_STUDIO, STUDIO}, 83 {OHOS_CAMERA_PORTRAIT_THEATER, THEATER}, 84 }; 85 86 const std::unordered_map<VideoStabilizationMode, CameraVideoStabilizationMode> g_fwkVideoStabModesMap_ = { 87 {OFF, OHOS_CAMERA_VIDEO_STABILIZATION_OFF}, 88 {LOW, OHOS_CAMERA_VIDEO_STABILIZATION_LOW}, 89 {MIDDLE, OHOS_CAMERA_VIDEO_STABILIZATION_MIDDLE}, 90 {HIGH, OHOS_CAMERA_VIDEO_STABILIZATION_HIGH}, 91 {AUTO, OHOS_CAMERA_VIDEO_STABILIZATION_AUTO} 92 }; 93 94 const std::unordered_map<ExposureMode, camera_exposure_mode_enum_t> g_fwkExposureModeMap_ = { 95 {EXPOSURE_MODE_LOCKED, OHOS_CAMERA_EXPOSURE_MODE_LOCKED}, 96 {EXPOSURE_MODE_AUTO, OHOS_CAMERA_EXPOSURE_MODE_AUTO}, 97 {EXPOSURE_MODE_CONTINUOUS_AUTO, OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO} 98 }; 99 100 101 const std::map<CM_ColorSpaceType, ColorSpace> g_metaColorSpaceMap_ = { 102 {CM_COLORSPACE_NONE, COLOR_SPACE_UNKNOWN}, 103 {CM_P3_FULL, DISPLAY_P3}, 104 {CM_SRGB_FULL, SRGB}, 105 {CM_BT709_FULL, BT709}, 106 {CM_BT2020_HLG_FULL, BT2020_HLG}, 107 {CM_BT2020_PQ_FULL, BT2020_PQ}, 108 {CM_P3_HLG_FULL, P3_HLG}, 109 {CM_P3_PQ_FULL, P3_PQ}, 110 {CM_P3_LIMIT, DISPLAY_P3_LIMIT}, 111 {CM_SRGB_LIMIT, SRGB_LIMIT}, 112 {CM_BT709_LIMIT, BT709_LIMIT}, 113 {CM_BT2020_HLG_LIMIT, BT2020_HLG_LIMIT}, 114 {CM_BT2020_PQ_LIMIT, BT2020_PQ_LIMIT}, 115 {CM_P3_HLG_LIMIT, P3_HLG_LIMIT}, 116 {CM_P3_PQ_LIMIT, P3_PQ_LIMIT} 117 }; 118 119 const std::unordered_map<FocusMode, camera_focus_mode_enum_t> g_fwkFocusModeMap_ = { 120 {FOCUS_MODE_MANUAL, OHOS_CAMERA_FOCUS_MODE_MANUAL}, 121 {FOCUS_MODE_CONTINUOUS_AUTO, OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO}, 122 {FOCUS_MODE_AUTO, OHOS_CAMERA_FOCUS_MODE_AUTO}, 123 {FOCUS_MODE_LOCKED, OHOS_CAMERA_FOCUS_MODE_LOCKED} 124 }; 125 126 const std::unordered_map<QualityPrioritization, CameraQualityPrioritization> g_fwkQualityPrioritizationMap_ = { 127 { HIGH_QUALITY, OHOS_CAMERA_QUALITY_PRIORITIZATION_HIGH_QUALITY }, 128 { POWER_BALANCE, OHOS_CAMERA_QUALITY_PRIORITIZATION_POWER_BALANCE } 129 }; 130 131 const std::unordered_map<ColorEffect, camera_xmage_color_type_t> g_fwkColorEffectMap_ = { 132 {COLOR_EFFECT_NORMAL, CAMERA_CUSTOM_COLOR_NORMAL}, 133 {COLOR_EFFECT_BRIGHT, CAMERA_CUSTOM_COLOR_BRIGHT}, 134 {COLOR_EFFECT_SOFT, CAMERA_CUSTOM_COLOR_SOFT}, 135 {COLOR_EFFECT_BLACK_WHITE, CAMERA_CUSTOM_COLOR_MONO} 136 }; 137 138 const std::unordered_map<FlashMode, camera_flash_mode_enum_t> g_fwkFlashModeMap_ = { 139 {FLASH_MODE_CLOSE, OHOS_CAMERA_FLASH_MODE_CLOSE}, 140 {FLASH_MODE_OPEN, OHOS_CAMERA_FLASH_MODE_OPEN}, 141 {FLASH_MODE_AUTO, OHOS_CAMERA_FLASH_MODE_AUTO}, 142 {FLASH_MODE_ALWAYS_OPEN, OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN} 143 }; 144 145 const std::unordered_map<BeautyType, camera_beauty_type_t> g_fwkBeautyTypeMap_ = { 146 {AUTO_TYPE, OHOS_CAMERA_BEAUTY_TYPE_AUTO}, 147 {SKIN_SMOOTH, OHOS_CAMERA_BEAUTY_TYPE_SKIN_SMOOTH}, 148 {FACE_SLENDER, OHOS_CAMERA_BEAUTY_TYPE_FACE_SLENDER}, 149 {SKIN_TONE, OHOS_CAMERA_BEAUTY_TYPE_SKIN_TONE} 150 }; 151 152 const std::unordered_map<BeautyType, camera_device_metadata_tag_t> g_fwkBeautyAbilityMap_ = { 153 {AUTO_TYPE, OHOS_ABILITY_BEAUTY_AUTO_VALUES}, 154 {SKIN_SMOOTH, OHOS_ABILITY_BEAUTY_SKIN_SMOOTH_VALUES}, 155 {FACE_SLENDER, OHOS_ABILITY_BEAUTY_FACE_SLENDER_VALUES}, 156 {SKIN_TONE, OHOS_ABILITY_BEAUTY_SKIN_TONE_VALUES} 157 }; 158 159 const std::unordered_map<PortraitThemeType, CameraPortraitThemeTypes> g_fwkPortraitThemeTypeMap_ = { 160 {PortraitThemeType::NATURAL, OHOS_CAMERA_PORTRAIT_THEME_TYPE_NATURAL}, 161 {PortraitThemeType::DELICATE, OHOS_CAMERA_PORTRAIT_THEME_TYPE_DELICATE}, 162 {PortraitThemeType::STYLISH, OHOS_CAMERA_PORTRAIT_THEME_TYPE_STYLISH}, 163 }; 164 165 const std::unordered_map<CameraPortraitThemeTypes, PortraitThemeType> g_metaPortraitThemeTypeMap_ = { 166 {OHOS_CAMERA_PORTRAIT_THEME_TYPE_NATURAL, PortraitThemeType::NATURAL}, 167 {OHOS_CAMERA_PORTRAIT_THEME_TYPE_DELICATE, PortraitThemeType::DELICATE}, 168 {OHOS_CAMERA_PORTRAIT_THEME_TYPE_STYLISH, PortraitThemeType::STYLISH}, 169 }; 170 171 const std::vector<VideoRotation> g_fwkVideoRotationVector_ = { 172 VideoRotation::ROTATION_0, 173 VideoRotation::ROTATION_90, 174 VideoRotation::ROTATION_180, 175 VideoRotation::ROTATION_270 176 }; 177 } // namespace CameraStandard 178 } // namespace OHOS 179