1 /*
2  * Copyright (c) 2021 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  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef CAMERA_HOST_METADATA_ENUM_MAP_H
18 #define CAMERA_HOST_METADATA_ENUM_MAP_H
19 
20 #include <map>
21 #include <string>
22 #include "camera_device_ability_items.h"
23 
24 std::map<std::string, camera_device_metadata_tag_t> MetadataTagMap = {
25     {"OHOS_ABILITY_CAMERA_POSITION",                       OHOS_ABILITY_CAMERA_POSITION                      },
26     {"OHOS_ABILITY_CAMERA_TYPE",                           OHOS_ABILITY_CAMERA_TYPE                          },
27     {"OHOS_ABILITY_CAMERA_CONNECTION_TYPE",                OHOS_ABILITY_CAMERA_CONNECTION_TYPE               },
28     {"OHOS_ABILITY_MEMORY_TYPE",                           OHOS_ABILITY_MEMORY_TYPE                          },
29     {"OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE",                 OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE                },
30     {"OHOS_SENSOR_INFO_SENSITIVITY_RANGE",                 OHOS_SENSOR_INFO_SENSITIVITY_RANGE                },
31     {"OHOS_SENSOR_INFO_MAX_FRAME_DURATION",                OHOS_SENSOR_INFO_MAX_FRAME_DURATION               },
32     {"OHOS_SENSOR_INFO_PHYSICAL_SIZE",                     OHOS_SENSOR_INFO_PHYSICAL_SIZE                    },
33     {"OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE",                  OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE                 },
34     {"OHOS_STATISTICS_FACE_DETECT_MODE",                   OHOS_STATISTICS_FACE_DETECT_MODE                  },
35     {"OHOS_STATISTICS_HISTOGRAM_MODE",                     OHOS_STATISTICS_HISTOGRAM_MODE                    },
36     {"OHOS_STATISTICS_FACE_IDS",                           OHOS_STATISTICS_FACE_IDS                          },
37     {"OHOS_STATISTICS_FACE_LANDMARKS",                     OHOS_STATISTICS_FACE_LANDMARKS                    },
38     {"OHOS_STATISTICS_FACE_RECTANGLES",                    OHOS_STATISTICS_FACE_RECTANGLES                   },
39     {"OHOS_STATISTICS_FACE_SCORES",                        OHOS_STATISTICS_FACE_SCORES                       },
40     {"OHOS_CONTROL_AE_ANTIBANDING_MODE",                   OHOS_CONTROL_AE_ANTIBANDING_MODE                  },
41     {"OHOS_CONTROL_AE_EXPOSURE_COMPENSATION",              OHOS_CONTROL_AE_EXPOSURE_COMPENSATION             },
42     {"OHOS_CONTROL_AE_LOCK",                               OHOS_CONTROL_AE_LOCK                              },
43     {"OHOS_CONTROL_AE_MODE",                               OHOS_CONTROL_AE_MODE                              },
44     {"OHOS_CONTROL_AE_REGIONS",                            OHOS_CONTROL_AE_REGIONS                           },
45     {"OHOS_CONTROL_AE_TARGET_FPS_RANGE",                   OHOS_CONTROL_AE_TARGET_FPS_RANGE                  },
46     {"OHOS_CONTROL_AF_MODE",                               OHOS_CONTROL_AF_MODE                              },
47     {"OHOS_CONTROL_AF_REGIONS",                            OHOS_CONTROL_AF_REGIONS                           },
48     {"OHOS_CONTROL_AWB_LOCK",                              OHOS_CONTROL_AWB_LOCK                             },
49     {"OHOS_CONTROL_AWB_MODE",                              OHOS_CONTROL_AWB_MODE                             },
50     {"OHOS_CONTROL_AWB_REGIONS",                           OHOS_CONTROL_AWB_REGIONS                          },
51     {"OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES",        OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES       },
52     {"OHOS_CONTROL_AE_AVAILABLE_MODES",                    OHOS_CONTROL_AE_AVAILABLE_MODES                   },
53     {"OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES",        OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES       },
54     {"OHOS_CONTROL_AE_COMPENSATION_RANGE",                 OHOS_ABILITY_AE_COMPENSATION_RANGE                },
55     {"OHOS_CONTROL_AE_COMPENSATION_STEP",                  OHOS_ABILITY_AE_COMPENSATION_STEP                 },
56     {"OHOS_CONTROL_AF_AVAILABLE_MODES",                    OHOS_CONTROL_AF_AVAILABLE_MODES                   },
57     {"OHOS_CONTROL_AWB_AVAILABLE_MODES",                   OHOS_CONTROL_AWB_AVAILABLE_MODES                  },
58     {"OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES",        OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES       },
59     {"OHOS_CONTROL_EXPOSUREMODE",                          OHOS_CONTROL_EXPOSUREMODE                         },
60     {"OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES",           OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES          },
61     {"OHOS_CONTROL_FOCUSMODE",                             OHOS_CONTROL_FOCUSMODE                            },
62     {"OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES",           OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES          },
63     {"OHOS_CONTROL_FLASHMODE",                             OHOS_CONTROL_FLASHMODE                            },
64     {"OHOS_ABILITY_ZOOM_RATIO_RANGE",                      OHOS_ABILITY_ZOOM_RATIO_RANGE                     },
65     {"OHOS_CONTROL_ZOOM_RATIO",                            OHOS_CONTROL_ZOOM_RATIO                           },
66     {"OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS", OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS},
67     {"OHOS_JPEG_GPS_COORDINATES",                          OHOS_JPEG_GPS_COORDINATES                         },
68     {"OHOS_JPEG_GPS_PROCESSING_METHOD",                    OHOS_JPEG_GPS_PROCESSING_METHOD                   },
69     {"OHOS_JPEG_GPS_TIMESTAMP",                            OHOS_JPEG_GPS_TIMESTAMP                           },
70     {"OHOS_JPEG_ORIENTATION",                              OHOS_JPEG_ORIENTATION                             },
71     {"OHOS_JPEG_QUALITY",                                  OHOS_JPEG_QUALITY                                 },
72     {"OHOS_JPEG_THUMBNAIL_QUALITY",                        OHOS_JPEG_THUMBNAIL_QUALITY                       },
73     {"OHOS_JPEG_THUMBNAIL_SIZE",                           OHOS_JPEG_THUMBNAIL_SIZE                          },
74     {"OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES",                OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES               },
75     {"OHOS_JPEG_MAX_SIZE",                                 OHOS_JPEG_MAX_SIZE                                },
76     {"OHOS_JPEG_SIZE",                                     OHOS_JPEG_SIZE                                    },
77 };
78 
79 std::map<std::string, camera_position_enum_t> CameraPositionMap = {
80     {"OHOS_CAMERA_POSITION_FRONT", OHOS_CAMERA_POSITION_FRONT},
81     {"OHOS_CAMERA_POSITION_BACK",  OHOS_CAMERA_POSITION_BACK },
82     {"OHOS_CAMERA_POSITION_OTHER", OHOS_CAMERA_POSITION_OTHER},
83 };
84 
85 std::map<std::string, camera_type_enum_t> CameraTypeMap = {
86     {"OHOS_CAMERA_TYPE_WIDE_ANGLE",  OHOS_CAMERA_TYPE_WIDE_ANGLE },
87     {"OHOS_CAMERA_TYPE_ULTRA_WIDE",  OHOS_CAMERA_TYPE_ULTRA_WIDE },
88     {"OHOS_CAMERA_TYPE_TELTPHOTO",   OHOS_CAMERA_TYPE_TELTPHOTO  },
89     {"OHOS_CAMERA_TYPE_TRUE_DEAPTH", OHOS_CAMERA_TYPE_TRUE_DEAPTH},
90     {"OHOS_CAMERA_TYPE_LOGICAL",     OHOS_CAMERA_TYPE_LOGICAL    },
91     {"OHOS_CAMERA_TYPE_UNSPECIFIED", OHOS_CAMERA_TYPE_UNSPECIFIED},
92 };
93 
94 std::map<std::string, camera_connection_type_t> cameraConnectionTypeMap = {
95     {"OHOS_CAMERA_CONNECTION_TYPE_BUILTIN",    OHOS_CAMERA_CONNECTION_TYPE_BUILTIN   },
96     {"OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN", OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN},
97     {"OHOS_CAMERA_CONNECTION_TYPE_REMOTE",     OHOS_CAMERA_CONNECTION_TYPE_REMOTE    },
98 };
99 
100 std::map<std::string, camera_exposure_mode_enum_t> ExposureModeMap = {
101     {"OHOS_CAMERA_EXPOSURE_MODE_MANUAL",          OHOS_CAMERA_EXPOSURE_MODE_MANUAL         },
102     {"OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO", OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO},
103     {"OHOS_CAMERA_EXPOSURE_MODE_LOCKED",          OHOS_CAMERA_EXPOSURE_MODE_LOCKED         },
104     {"OHOS_CAMERA_EXPOSURE_MODE_AUTO",            OHOS_CAMERA_EXPOSURE_MODE_AUTO           },
105 };
106 
107 std::map<std::string, camera_focus_mode_enum_t> FocusModeMap = {
108     {"OHOS_CAMERA_FOCUS_MODE_MANUAL",          OHOS_CAMERA_FOCUS_MODE_MANUAL         },
109     {"OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO", OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO},
110     {"OHOS_CAMERA_FOCUS_MODE_AUTO",            OHOS_CAMERA_FOCUS_MODE_AUTO           },
111     {"OHOS_CAMERA_FOCUS_MODE_LOCKED",          OHOS_CAMERA_FOCUS_MODE_LOCKED         },
112 };
113 
114 std::map<std::string, camera_flash_mode_enum_t> FlashModeMap = {
115     {"OHOS_CAMERA_FLASH_MODE_CLOSE",       OHOS_CAMERA_FLASH_MODE_CLOSE      },
116     {"OHOS_CAMERA_FLASH_MODE_OPEN",        OHOS_CAMERA_FLASH_MODE_OPEN       },
117     {"OHOS_CAMERA_FLASH_MODE_AUTO",        OHOS_CAMERA_FLASH_MODE_AUTO       },
118     {"OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN", OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN},
119 };
120 
121 std::map<std::string, camera_meter_mode_t> meterModeMap = {
122     {"OHOS_CAMERA_SPOT_METERING",    OHOS_CAMERA_SPOT_METERING   },
123     {"OHOS_CAMERA_REGION_METERING",  OHOS_CAMERA_REGION_METERING },
124     {"OHOS_CAMERA_OVERALL_METERING", OHOS_CAMERA_OVERALL_METERING},
125 };
126 
127 std::map<std::string, camera_mirror_t> mirrorMap = {
128     {"OHOS_CAMERA_MIRROR_OFF", OHOS_CAMERA_MIRROR_OFF},
129     {"OHOS_CAMERA_MIRROR_ON",  OHOS_CAMERA_MIRROR_ON }
130 };
131 
132 std::map<std::string, CameraVideoStabilizationMode> videoStabilizationMap = {
133     {"OHOS_CAMERA_VIDEO_STABILIZATION_OFF",    OHOS_CAMERA_VIDEO_STABILIZATION_OFF   },
134     {"OHOS_CAMERA_VIDEO_STABILIZATION_LOW",    OHOS_CAMERA_VIDEO_STABILIZATION_LOW   },
135     {"OHOS_CAMERA_VIDEO_STABILIZATION_MIDDLE", OHOS_CAMERA_VIDEO_STABILIZATION_MIDDLE},
136     {"OHOS_CAMERA_VIDEO_STABILIZATION_HIGH",   OHOS_CAMERA_VIDEO_STABILIZATION_HIGH  },
137     {"OHOS_CAMERA_VIDEO_STABILIZATION_AUTO",   OHOS_CAMERA_VIDEO_STABILIZATION_AUTO  },
138 };
139 
140 std::map<std::string, CameraFlashAvailable> flashAvailableMap = {
141     {"OHOS_CAMERA_FLASH_FALSE", OHOS_CAMERA_FLASH_FALSE},
142     {"OHOS_CAMERA_FLASH_TRUE",  OHOS_CAMERA_FLASH_TRUE }
143 };
144 
145 std::vector<camera_format_t> formatArray = {
146     OHOS_CAMERA_FORMAT_RGBA_8888, OHOS_CAMERA_FORMAT_YCBCR_420_888,
147     OHOS_CAMERA_FORMAT_YCRCB_420_SP, OHOS_CAMERA_FORMAT_JPEG
148 };
149 
150 std::map<std::string, camera_ae_antibanding_mode_t> AeAntibandingModeMap = {
151     {"OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF",  OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF },
152     {"OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ", OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ},
153     {"OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ", OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ},
154     {"OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO", OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO},
155 };
156 
157 std::map<std::string, camera_ae_lock_t> AeLockMap = {
158     {"OHOS_CAMERA_AE_LOCK_OFF", OHOS_CAMERA_AE_LOCK_OFF},
159     {"OHOS_CAMERA_AE_LOCK_ON",  OHOS_CAMERA_AE_LOCK_ON },
160 };
161 
162 std::map<std::string, camera_ae_mode_t> AeModeMap = {
163     {"OHOS_CAMERA_AE_MODE_OFF",                  OHOS_CAMERA_AE_MODE_OFF                 },
164     {"OHOS_CAMERA_AE_MODE_ON",                   OHOS_CAMERA_AE_MODE_ON                  },
165     {"OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH",        OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH       },
166     {"OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH",      OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH     },
167     {"OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE", OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE},
168     {"OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH",    OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH   },
169 };
170 
171 std::map<std::string, camera_af_mode_t> AfModeMap = {
172     {"OHOS_CAMERA_AF_MODE_OFF",                OHOS_CAMERA_AF_MODE_OFF               },
173     {"OHOS_CAMERA_AF_MODE_AUTO",               OHOS_CAMERA_AF_MODE_AUTO              },
174     {"OHOS_CAMERA_AF_MODE_MACRO",              OHOS_CAMERA_AF_MODE_MACRO             },
175     {"OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO",   OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO  },
176     {"OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE", OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE},
177     {"OHOS_CAMERA_AF_MODE_EDOF",               OHOS_CAMERA_AF_MODE_EDOF              },
178 };
179 
180 std::map<std::string, camera_awb_lock_t> AwbLockMap = {
181     {"OHOS_CAMERA_AWB_LOCK_OFF", OHOS_CAMERA_AWB_LOCK_OFF},
182     {"OHOS_CAMERA_AWB_LOCK_ON",  OHOS_CAMERA_AWB_LOCK_ON },
183 };
184 
185 std::map<std::string, camera_awb_mode_t> AwbModeMap = {
186     {"OHOS_CAMERA_AWB_MODE_OFF",              OHOS_CAMERA_AWB_MODE_OFF             },
187     {"OHOS_CAMERA_AWB_MODE_AUTO",             OHOS_CAMERA_AWB_MODE_AUTO            },
188     {"OHOS_CAMERA_AWB_MODE_INCANDESCENT",     OHOS_CAMERA_AWB_MODE_INCANDESCENT    },
189     {"OHOS_CAMERA_AWB_MODE_FLUORESCENT",      OHOS_CAMERA_AWB_MODE_FLUORESCENT     },
190     {"OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT", OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT},
191     {"OHOS_CAMERA_AWB_MODE_DAYLIGHT",         OHOS_CAMERA_AWB_MODE_DAYLIGHT        },
192     {"OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT",  OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT },
193     {"OHOS_CAMERA_AWB_MODE_TWILIGHT",         OHOS_CAMERA_AWB_MODE_TWILIGHT        },
194     {"OHOS_CAMERA_AWB_MODE_SHADE",            OHOS_CAMERA_AWB_MODE_SHADE           },
195 };
196 
197 std::map<std::string, camera_face_detect_mode_t> FaceDetectModeMap = {
198     {"OHOS_CAMERA_FACE_DETECT_MODE_OFF",    OHOS_CAMERA_FACE_DETECT_MODE_OFF   },
199     {"OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE", OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE},
200 };
201 
202 std::map<std::string, camera_histogram_mode_t> HistogramModeMap = {
203     {"OHOS_CAMERA_HISTOGRAM_MODE_OFF", OHOS_CAMERA_HISTOGRAM_MODE_OFF},
204     {"OHOS_CAMERA_HISTOGRAM_MODE_ON",  OHOS_CAMERA_HISTOGRAM_MODE_ON },
205 };
206 
207 std::map<std::string, camera_memory_type_enum_t> CameraMemoryTypeMap = {
208     {"OHOS_CAMERA_MEMORY_MMAP", OHOS_CAMERA_MEMORY_MMAP},
209     {"OHOS_CAMERA_MEMORY_USERPTR", OHOS_CAMERA_MEMORY_USERPTR},
210     {"OHOS_CAMERA_MEMORY_OVERLAY", OHOS_CAMERA_MEMORY_OVERLAY},
211     {"OHOS_CAMERA_MEMORY_DMABUF", OHOS_CAMERA_MEMORY_DMABUF},
212 };
213 
214 #endif /* CAMERA_HOST_METADATA_ENUM_MAP_H */
215