1 /*
2  * Copyright (c) 2021-2023 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 #ifndef CAMERA_DEVICE_ABILITY_ITEMS_H
17 #define CAMERA_DEVICE_ABILITY_ITEMS_H
18 
19 typedef enum camera_ability_section {
20     // Camera attribute information: position(facing), type, connection, description, sensor, lens description
21     OHOS_CAMERA_PROPERTIES = 0,
22     OHOS_CAMERA_LENS,
23     OHOS_CAMERA_SENSOR,
24     OHOS_CAMERA_SENSOR_INFO,
25     OHOS_CAMERA_STATISTICS,
26 
27     // Camera device image acquisition
28     OHOS_DEVICE_CONTROL = 0x1000, // Overall control, such as turning off automatic 3A, operating mode
29     OHOS_DEVICE_EXPOSURE,
30     OHOS_DEVICE_FOCUS,
31     OHOS_DEVICE_WHITE_BLANCE,
32     OHOS_DEVICE_FLASH,
33     OHOS_DEVICE_ZOOM,
34 
35     // Camera effects & algorithms
36     OHOS_CAMERA_EFFECT = 0x2000,
37 
38     // Camera flow control related
39     OHOS_STREAM_ABILITY = 0x3000,
40     OHOS_STREAM_CONTROL, // General control: frame rate, resolution, mirroring
41     OHOS_STREAM_JPEG,
42     OHOS_STREAM_VIDEO, // Video encoding related
43     OHOS_STREAM_DEPTH,
44     OHOS_STREAM_METADATA,
45     OHOS_STREAM_METADATA_FACE,
46     OHOS_STREAM_METADATA_BODY,
47 
48     // Secure camera control related
49     OHOS_CAMERA_SECURE = 0x4000,
50     // Xmage camera ability
51     OHOS_XMAGE_COLOR_ABILITY = 0x5000,
52 
53     OHOS_ABILITY_SECTION_END = 0x6000,
54 
55     // Start vendor tag section
56     OHOS_VENDOR_SECTION = 0X8000
57 } camera_ability_section_t;
58 
59 typedef enum camera_device_metadata_section_start {
60     OHOS_CAMERA_PROPERTIES_START = OHOS_CAMERA_PROPERTIES << 16,
61     OHOS_CAMERA_LENS_START = OHOS_CAMERA_LENS << 16,
62     OHOS_CAMERA_SENSOR_START = OHOS_CAMERA_SENSOR << 16,
63     OHOS_CAMERA_SENSOR_INFO_START = OHOS_CAMERA_SENSOR_INFO << 16,
64     OHOS_CAMERA_STATISTICS_START = OHOS_CAMERA_STATISTICS << 16,
65 
66     OHOS_DEVICE_CONTROL_START = OHOS_DEVICE_CONTROL << 16,
67     OHOS_DEVICE_EXPOSURE_START = OHOS_DEVICE_EXPOSURE << 16,
68     OHOS_DEVICE_FOCUS_START = OHOS_DEVICE_FOCUS << 16,
69     OHOS_DEVICE_WHITE_BLANCE_START = OHOS_DEVICE_WHITE_BLANCE << 16,
70     OHOS_DEVICE_FLASH_START = OHOS_DEVICE_FLASH << 16,
71     OHOS_DEVICE_ZOOM_START = OHOS_DEVICE_ZOOM << 16,
72 
73     OHOS_CAMERA_EFFECT_START = OHOS_CAMERA_EFFECT << 16,
74 
75     OHOS_STREAM_ABILITY_START = OHOS_STREAM_ABILITY << 16,
76     OHOS_STREAM_CONTROL_START = OHOS_STREAM_CONTROL << 16,
77     OHOS_STREAM_JPEG_START = OHOS_STREAM_JPEG << 16,
78     OHOS_STREAM_VIDEO_START = OHOS_STREAM_VIDEO << 16,
79     OHOS_STREAM_DEPTH_START = OHOS_STREAM_DEPTH << 16,
80     OHOS_STREAM_METADATA_START = OHOS_STREAM_METADATA << 16,
81     OHOS_STREAM_METADATA_FACE_START = OHOS_STREAM_METADATA_FACE << 16,
82     OHOS_STREAM_METADATA_BODY_START = OHOS_STREAM_METADATA_BODY << 16,
83 
84     OHOS_CAMERA_SECURE_START = OHOS_CAMERA_SECURE << 16,
85 
86     OHOS_XMAGE_COLOR_MODES_START = OHOS_XMAGE_COLOR_ABILITY << 16,
87     OHOS_VENDOR_SECTION_START = OHOS_VENDOR_SECTION << 16,
88 } camera_device_info_section_start_t;
89 
90 typedef enum camera_device_metadata_tag {
91     // Camera attribute related item
92     /**
93      * ohos.ability.cameraPositon [static, enum, public]
94      *
95      * camera device property, report current camera position
96      * (i.e. enum: FRONT/BACK/OTHER ...)
97      */
98     OHOS_ABILITY_CAMERA_POSITION = OHOS_CAMERA_PROPERTIES_START,
99     /**
100      * ohos.ability.cameraType [static, enum, public]
101      *
102      * camera device property, report current camera type
103      * (i.e. enum: WIDE_ANGLE/ULTRA_WIDE/TELTPHOTO/TRUE_DEAPTH/LOGICAL/UNSPECIFIED ...)
104      */
105     OHOS_ABILITY_CAMERA_TYPE,
106     /**
107      * ohos.ability.cameraConnectionType [static, enum, public]
108      *
109      * camera device property, report current camera connection type
110      * (i.e. enum: BUILTIN/USB_PLUGIN/REMOTE ...)
111      */
112     OHOS_ABILITY_CAMERA_CONNECTION_TYPE,
113     /**
114      * ohos.ability.memoryType [static, enum, public]
115      *
116      * camera device property, report current camera memory type
117      * (i.e. enum: mmap/userptr/overlay/dmabuf ...)
118      */
119     OHOS_ABILITY_MEMORY_TYPE,
120     /**
121      * ohos.ability.fpsRanges [static, int32[], public]
122      *
123      * camera device property, report current camera support frame/second range
124      * (i.e. int32[]: rangeMin1, rangeMax1, rangeMin2, rangeMax2, ...)
125      */
126     OHOS_ABILITY_FPS_RANGES,
127     /**
128      * ohos.ability.flashAvailable [static, enum, public]
129      *
130      * camera device property, report current camera flash on/off available
131      * (i.e. enum: false/true)
132      */
133     OHOS_ABILITY_FLASH_AVAILABLE,
134     /**
135      * ohos.camera.streamId [static, int32[], public]
136      *
137      * camera device property, set current camera stream id
138      * (i.e. int32[]: streamId, streamId, ...)
139      */
140     OHOS_CAMERA_STREAM_ID,
141     /**
142      * ohos.ability.prelaunchAvailable [static, enum, public]
143      *
144      * camera device property, report current camera device prelaunch supported
145      * (i.e. enum: enable/disable..)
146      */
147     OHOS_ABILITY_PRELAUNCH_AVAILABLE,
148     /**
149      * ohos.ability.customVideoFps [static, int32[], public]
150      *
151      * camera device property, report current camera support custom opreationMode video fps range
152      * (i.e. int32[] ... )
153      */
154     OHOS_ABILITY_CUSTOM_VIDEO_FPS,
155     /**
156      * ohos.ability.cameraModes [static, enum[], public]
157      *
158      * camera device property, report current camera support camera mode
159      * (i.e. enum[]: capture, video ...)
160      */
161     OHOS_ABILITY_CAMERA_MODES,
162     /**
163      * ohos.ability.sketchEnableRatio [static, float[], public]
164      *
165      * camera device property, report current camera device sketch camera mode support ratio
166      * (i.e. float[]: mode, ratio, mode, ratio, ...)
167      */
168     OHOS_ABILITY_SKETCH_ENABLE_RATIO,
169     /**
170      * ohos.ability.sketchReferenceFovRatio [static, float[], public]
171      *
172      * camera device property, report current camera device sketch camera mode enable ratio
173      * (i.e. float[]: mode, ratio, mode, ratio, ...)
174      */
175     OHOS_ABILITY_SKETCH_REFERENCE_FOV_RATIO,
176     /**
177      * ohos.ability.cameraFoldScreen [static, enum, public]
178      *
179      * camera device property, report current camera device fold screen
180      * (i.e. enum: other/inner/outer ...)
181      */
182     OHOS_ABILITY_CAMERA_FOLDSCREEN_TYPE,
183     /**
184      * ohos.ability.availableColorSpaces [static, int32[], public]
185      *
186      * camera device property, report current camera device support color spaces
187      * (i.e. int32[]: mode, colorSpaces[], -1, mode, colorSpaces[], -1, ...)
188      */
189     OHOS_ABILITY_AVAILABLE_COLOR_SPACES,
190     /**
191      * ohos.ability.nightModeSupportedExposureTime [static, int32[], public]
192      *
193      * camera device property, report current camera device the shutter duration supported by the night mode
194      * (i.e. int32[]: time (millisecond), time, ...)
195      */
196     OHOS_ABILITY_NIGHT_MODE_SUPPORTED_EXPOSURE_TIME,
197     /**
198      * ohos.camera.mesureExposureTime [static, uint32, public]
199      *
200      * camera device property, report current camera device long exposure time by the night mode
201      * (i.e. uint32: time(millisecond) ...)
202      */
203     OHOS_CAMERA_MESURE_EXPOSURE_TIME,
204     /**
205      * ohos.camera.exposureModePreviewState [static, uint32, public]
206      *
207      * camera device property, report current camera device exposure mode perview state by the night mode
208      * (i.e. uint32 ...)
209      */
210     OHOS_CAMERA_EXPOSURE_MODE_PREVIEW_STATE,
211     /**
212      * ohos.camera.userId [static, int32[], public]
213      *
214      * camera device property, set userIds can be delivered during stream creation
215      * to identify the user whose images are stored
216      * (User IDs are bound when original images are flushed to disks.)
217      * (i.e. int32[] ...)
218      */
219     OHOS_CAMERA_USER_ID,
220     /**
221      * ohos.ability.moonCaptureBoost [static, uint32[], public]
222      *
223      * camera device property, report current camera device moon-gazing mode
224      * (i.e. uint32[] ...)
225      */
226     OHOS_ABILITY_MOON_CAPTURE_BOOST,
227     /**
228      * ohos.control.moonCaptureBoost [static, enum, public]
229      *
230      * camera device property, set current camera device moon-gazing mode
231      * (i.e. enum: disable/enable ...)
232      */
233     OHOS_CONTROL_MOON_CAPTURE_BOOST,
234     /**
235      * ohos.status.moonCaptureDetection [static, uint32, public]
236      *
237      * camera device property, query current camera device detection moon-gazing mode status
238      * (i.e. uint32 ...)
239      */
240     OHOS_STATUS_MOON_CAPTURE_DETECTION,
241     /**
242      * ohos.ability.captureDurationSupported [static, enum, public]
243      *
244      * camera device property, report current camera device
245      * (i.e. enum: support/unsupport ...)
246      */
247     OHOS_ABILITY_CAPTURE_DURATION_SUPPORTED,
248     /**
249      * ohos.camera.customSnapshotDuration [static, uint32, public]
250      *
251      * camera device property, query current camera device
252      * (i.e. uint32 ...)
253      */
254     OHOS_CAMERA_CUSTOM_SNAPSHOT_DURATION,
255     /**
256      * ohos.ability.movingPhoto [static, int32[], public]
257      *
258      * camera device property, report  current camera device different mode whether support living photo
259      * (i.e. int32[]: mode, value, -1, ...)
260      */
261     OHOS_ABILITY_MOVING_PHOTO,
262     /**
263      * ohos.ability.flashSuggestionSupported [static, uint32[], public]
264      *
265      * camera device property, report current camera whether support flash suggestion
266      * (i.e. uint32[]: open/close ...)
267      */
268     OHOS_ABILITY_FLASH_SUGGESTION_SUPPORTED,
269     /**
270      * ohos.control.flashSuggestionSwitch [static, enum, public]
271      *
272      * camera device property, set current camera whether support flash suggestion
273      * (i.e. enum: support/notSupport ...)
274      */
275     OHOS_CONTROL_FLASH_SUGGESTION_SWITCH,
276     /**
277      * ohos.status.flashSuggestion [static, enum, public]
278      *
279      * camera device property, query current camera whether support flash suggestion
280      * (i.e. enum: support/notSupport ...)
281      */
282     OHOS_STATUS_FLASH_SUGGESTION,
283     /**
284      * ohos.ability.highQualitySupport [static, byte, public]
285      *
286      * camera device property, report current camera whether support high quality
287      * (i.e. byte: support/notSupport ...)
288      */
289     OHOS_ABILITY_HIGH_QUALITY_SUPPORT,
290     /**
291      * ohos.ability.cameraFoldStatus [static, enum, public]
292      *
293      * camera device property, report current camera fold status
294      * (i.e. enum: nonFoldable/expanded/folded ...)
295      */
296     OHOS_ABILITY_CAMERA_FOLD_STATUS,
297     /**
298      * ohos.status.cameraFoldStatus [static, byte, public]
299      *
300      * camera device property, query current camera occlusion detection
301      * (i.e. byte: ...)
302      */
303     OHOS_STATUS_CAMERA_OCCLUSION_DETECTION,
304     /**
305      * ohos.ability.statisticsDetectType [static, enum[], public]
306      *
307      * camera device property, report current camera support statistice detect type
308      * (i.e. enum[]: [humanFace/human/catFace/cat/dogFace/dog/salient/barCode] ...)
309      */
310     OHOS_ABILITY_STATISTICS_DETECT_TYPE,
311     /**
312      * ohos.control.statisticsDetectSetting [static, enum[], public]
313      *
314      * camera device property, set current camera what statistice detect type ware supported
315      * (i.e. enum[]: [humanFace/human/catFace/cat/dogFace/dog/salient/barCode] ...)
316      */
317     OHOS_CONTROL_STATISTICS_DETECT_SETTING,
318     /**
319      * ohos.ability.availableExtendedStreamInfoTypes [static, int32[], public]
320      *
321      * camera device property, report current camera extended streams supported by different streams in the mode
322      * (i.e. int32[] ...)
323      */
324     OHOS_ABILITY_AVAILABLE_EXTENDED_STREAM_INFO_TYPES,
325     /**
326      * ohos.ability.autoDeferredVideoEnhance [static, enum, public]
327      *
328      * camera device property, report current camera whether support auto deferred video enhance
329      * (i.e. enum: OHOS_CAMERA_NOT_SUPPORTED/OHOS_CAMERA_SUPPORTED ...)
330      */
331     OHOS_ABILITY_AUTO_DEFERRED_VIDEO_ENHANCE,
332     /**
333      * ohos.control.autoDeferredVideoEnhance [static, enum, public]
334      *
335      * camera device property, set current camera whether support auto deferred video enhance
336      * (i.e. enum: OHOS_CAMERA_NOT_SUPPORTED/OHOS_CAMERA_SUPPORTED ...)
337      */
338     OHOS_CONTROL_AUTO_DEFERRED_VIDEO_ENHANCE,
339     /**
340      * ohos.ability.autoCloudImageEnhance [static, int32[], public]
341      *
342      * camera device property, report current camera whether support auto cloud image enhance by mode
343      * (i.e. int32[]: [mode, OHOS_CAMERA_NOT_SUPPORTED/OHOS_CAMERA_SUPPORTED, mode ...] ...)
344      */
345     OHOS_ABILITY_AUTO_CLOUD_IMAGE_ENHANCE,
346     /**
347      * ohos.control.autoCloudImageEnhance [static, enum, public]
348      *
349      * camera device property, set current camera whether support auto cloud image enhance
350      * (i.e. enum: OHOS_CAMERA_NOT_SUPPORTED/OHOS_CAMERA_SUPPORTED ...)
351      */
352     OHOS_CONTROL_AUTO_CLOUD_IMAGE_ENHANCE,
353     /**
354      * ohos.ability.tripodDetection [static, int32[], public]
355      *
356      * camera device property, report current camera which modes support tripod detection
357      * (i.e. int32[]: [mode, mode ...] ...)
358      */
359     OHOS_ABILITY_TRIPOD_DETECTION,
360     /**
361      * ohos.control.tripodDetection [static, byte, public]
362      *
363      * camera device property, set current camera whether enable tripod detection
364      * (i.e. byte: 0-false/1-true ...)
365      */
366     OHOS_CONTROL_TRIPOD_DETECTION,
367     /**
368      * ohos.control.tripodStablitation [static, byte, public]
369      *
370      * camera device property, set current camera whether enable tripod stablitation algorithm
371      * (i.e. byte: 0-false/1-true ...)
372      */
373     OHOS_CONTROL_TRIPOD_STABLITATION,
374     /**
375      * ohos.status.tripodDetectionStatus [static, enum, public]
376      *
377      * camera device property, query current camera tripod detection status
378      * (i.e. enum: TRIPOD_STATUS_INVALID/TRIPOD_STATUS_ACTIVE/TRIPOD_STATUS_ENTER/TRIPOD_STATUS_EXITING ...)
379      */
380     OHOS_STATUS_TRIPOD_DETECTION_STATUS,
381     /**
382      * ohos.status.sketchPoint [static, float[], public]
383      *
384      * camera device property, query current camera sketch center point position
385      * (i.e. float[]: [px, py] ...)
386      */
387     OHOS_STATUS_SKETCH_POINT,
388     /**
389      * ohos.ability.lowLightBoost [static, int32[], public]
390      *
391      * camera device property, report current camera whether low light boost by mode
392      * (i.e. int32[]: [mode, OHOS_CAMERA_NOT_SUPPORTED/OHOS_CAMERA_SUPPORTED, mode ...] ...)
393      */
394     OHOS_ABILITY_LOW_LIGHT_BOOST,
395     /**
396      * ohos.control.lowLightDetect [static, byte, public]
397      *
398      * camera device property, set current camera whether low light detect
399      * (i.e. byte: 0-false/1-true ...)
400      */
401     OHOS_CONTROL_LOW_LIGHT_DETECT,
402     /**
403      * ohos.control.lowLightBoost [static, byte, public]
404      *
405      * camera device property, set current camera whether low light boost
406      * (i.e. byte: 0-false/1-true ...)
407      */
408     OHOS_CONTROL_LOW_LIGHT_BOOST,
409     /**
410      * ohos.status.lowLightDetection [static, byte, public]
411      *
412      * camera device property, query current camera low light detection status
413      * (i.e. byte: 0-false/1-true ...)
414      */
415     OHOS_STATUS_LOW_LIGHT_DETECTION,
416     /**
417      * ohos.status.cameraLensDirtyDetection [static, byte, public]
418      *
419      * camera device property, query current camera lens dirty detection
420      * (i.e. byte: 0-false/1-true ...)
421      */
422     OHOS_STATUS_CAMERA_LENS_DIRTY_DETECTION,
423     /**
424      * ohos.device.protectionState [static, enum, public]
425      *
426      * camera device property, query current camera device protection state
427      * (i.e. enum: DeviceProtectionStatus ...)
428      */
429     OHOS_DEVICE_PROTECTION_STATE,
430     /**
431      * ohos.camera.propertiesEnd
432      *
433      * camera property end
434      */
435     OHOS_CAMERA_PROPERTIES_END,
436 
437     /**
438      * ohos.sensor.exposureTime [static, int64, public]
439      *
440      * camera device property, query current camera exposure time
441      * (i.e. int64 ...)
442      */
443     OHOS_SENSOR_EXPOSURE_TIME = OHOS_CAMERA_SENSOR_START,
444     /**
445      * ohos.sensor.colorCorrectionGains [static, float, public]
446      *
447      * camera device property, query current camera color correction gains
448      * (i.e. float ...)
449      */
450     OHOS_SENSOR_COLOR_CORRECTION_GAINS,
451     /**
452      * ohos.sensor.orientation [static, int32, public]
453      *
454      * camera device property, query current camera orientation
455      * (i.e. int32 ...)
456      */
457     OHOS_SENSOR_ORIENTATION,
458     /**
459      * ohos.ability.muteModes [static, enum[], public]
460      *
461      * camera device property, report current camera mute modes
462      * (i.e. enum[]: OFF, solidColorBlack ...)
463      */
464     OHOS_ABILITY_MUTE_MODES,
465     /**
466      * ohos.control.muteMode [static, enum, public]
467      *
468      * camera device property, set current camera mute mode
469      * (i.e. enum: OFF/solidColorBlack ...)
470      */
471     OHOS_CONTROL_MUTE_MODE,
472     /**
473      * ohos.camera.sensorEnd
474      *
475      * camera sensor endChar
476      */
477     OHOS_CAMERA_SENSOR_END,
478 
479     /**
480      * ohos.sensorInfo.activeArraySize [static, int32[], public]
481      *
482      * camera device property, report current camera support active array size
483      * (i.e. int32[]: left, top, right, bottom ...)
484      */
485     OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE = OHOS_CAMERA_SENSOR_INFO_START,
486     /**
487      * ohos.sensorInfo.sensitivityRange [static, int32[], public]
488      *
489      * camera device property, report current camera support sensitivity range
490      * (i.e. int32[]: min, max ...)
491      */
492     OHOS_SENSOR_INFO_SENSITIVITY_RANGE,
493     /**
494      * ohos.sensorInfo.maxFrameDuration [static, int64, public]
495      *
496      * camera device property, report current camera support max frame duration
497      * (i.e. int64: maxFrame ...)
498      */
499     OHOS_SENSOR_INFO_MAX_FRAME_DURATION,
500     /**
501      * ohos.sensorInfo.physicalSize [static, float[], public]
502      *
503      * camera device property, report current camera support physical size of sensor
504      * (i.e. float[] ...)
505      */
506     OHOS_SENSOR_INFO_PHYSICAL_SIZE,
507     /**
508      * ohos.sensorInfo.pixelArraySize [static, int32[], public]
509      *
510      * camera device property, report current camera support pixel array size
511      * (i.e. int32[] ...)
512      */
513     OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE,
514     /**
515      * ohos.sensorInfo.timestamp [static, int64, public]
516      *
517      * camera device property, report current camera support timestamp
518      * (i.e. int64 ...)
519      */
520     OHOS_SENSOR_INFO_TIMESTAMP,
521     /**
522      * ohos.camera.sensorInfoEnd
523      *
524      * camera sensorInfoEnd
525      */
526     OHOS_CAMERA_SENSOR_INFO_END,
527 
528     /**
529      * ohos.statistics.faceDetectMode [static, enum, public]
530      *
531      * camera device property, report current camera support face detect support mode
532      * (i.e. enum: OFF/SIMPLE ...)
533      */
534     OHOS_STATISTICS_FACE_DETECT_MODE = OHOS_CAMERA_STATISTICS_START,
535     /**
536      * ohos.statistics.faceDetectSwitch [static, enum, public]
537      *
538      * camera device property, set current camera face detect support switch
539      * (i.e. enum: OFF/SIMPLE ...)
540      */
541     OHOS_STATISTICS_FACE_DETECT_SWITCH,
542     /**
543      * ohos.statistics.faceDetectMaxNum [static, byte, public]
544      *
545      * camera device property, report current camera support face detect max num
546      * (i.e. byte ...)
547      */
548     OHOS_STATISTICS_FACE_DETECT_MAX_NUM,
549     /**
550      * ohos.statistics.histogramMode [static, enum, public]
551      *
552      * camera device property, report current camera support histogram mode
553      * (i.e. enum: OFF/ON ...)
554      */
555     OHOS_STATISTICS_HISTOGRAM_MODE,
556     /**
557      * ohos.statistics.faceIds [static, int32[], public]
558      *
559      * camera device property, set current camera face ids
560      * (i.e. int32[] ...)
561      */
562     OHOS_STATISTICS_FACE_IDS,
563     /**
564      * ohos.statistics.faceLandMarks [static, int32[], public]
565      *
566      * camera device property, report current camera support face land marks
567      * (i.e. int32[] ...)
568      */
569     OHOS_STATISTICS_FACE_LANDMARKS,
570     /**
571      * ohos.statistics.faceLandMarks [static, int32[], public]
572      *
573      * camera device property, report current camera support face land marks
574      * (i.e. int32[] ...)
575      */
576     OHOS_STATISTICS_FACE_RECTANGLES,
577     /**
578      * ohos.statistics.faceScores [static, int32[], public]
579      *
580      * camera device property, query current camera face scores
581      * (i.e. int32[] ...)
582      */
583     OHOS_STATISTICS_FACE_SCORES,
584     /**
585      * ohos.statistics.detectHumanFaceInfos [static, int32[], public]
586      *
587      * camera device property, query current camera detect human face informations
588      * (i.e. int32[] ...)
589      */
590     OHOS_STATISTICS_DETECT_HUMAN_FACE_INFOS,
591     /**
592      * ohos.statistics.detectHumanBodyInfos [static, int32[], public]
593      *
594      * camera device property, query current camera detect human body informations
595      * (i.e. int32[] ...)
596      */
597     OHOS_STATISTICS_DETECT_HUMAN_BODY_INFOS,
598     /**
599      * ohos.statistics.detectCatFaceInfos [static, int32[], public]
600      *
601      * camera device property, query current camera detect cat face informations
602      * (i.e. int32[] ...)
603      */
604     OHOS_STATISTICS_DETECT_CAT_FACE_INFOS,
605     /**
606      * ohos.statistics.detectCatBodyInfos [static, int32[], public]
607      *
608      * camera device property, query current camera detect cat body informations
609      * (i.e. int32[] ...)
610      */
611     OHOS_STATISTICS_DETECT_CAT_BODY_INFOS,
612     /**
613      * ohos.statistics.detectDogFaceInfos [static, int32[], public]
614      *
615      * camera device property, query current camera detect dog face informations
616      * (i.e. int32[] ...)
617      */
618     OHOS_STATISTICS_DETECT_DOG_FACE_INFOS,
619     /**
620      * ohos.statistics.detectDogBodyInfos [static, int32[], public]
621      *
622      * camera device property, query current camera detect dog body informations
623      * (i.e. int32[] ...)
624      */
625     OHOS_STATISTICS_DETECT_DOG_BODY_INFOS,
626     /**
627      * ohos.statistics.detectSalientInfos [static, int32[], public]
628      *
629      * camera device property, query current camera detect salient informations
630      * (i.e. int32[] ...)
631      */
632     OHOS_STATISTICS_DETECT_SALIENT_INFOS,
633     /**
634      * ohos.statistics.detectBarCodeInfos [static, int32[], public]
635      *
636      * camera device property, query current camera detect bar code informations
637      * (i.e. int32[] ...)
638      */
639     OHOS_STATISTICS_DETECT_BAR_CODE_INFOS,
640     /**
641      * ohos.statistics.baseFaceInfo [static, int32[], public]
642      *
643      * camera device property, query current camera detect base face information
644      * (i.e. int32[] ...)
645      */
646     OHOS_STATISTICS_DETECT_BASE_FACE_INFO,
647     /**
648      * ohos.camera.statisticsEnd
649      *
650      * camera statisticsEnd
651      */
652     OHOS_CAMERA_STATISTICS_END,
653 
654     /**
655      * ohos.control.aeAntibandingMode [static, enum, public]
656      *
657      * camera device property, set current camera support ae antibanding mode
658      * (i.e. enum: OFF/50HZ/60HZ/AUTO ...)
659      */
660     OHOS_CONTROL_AE_ANTIBANDING_MODE = OHOS_DEVICE_CONTROL_START,
661     /**
662      * ohos.control.aeExposureCompensation [static, int32, public]
663      *
664      * camera device property, set current camera ae exposure compensation
665      * (i.e. int32 ...)
666      */
667     OHOS_CONTROL_AE_EXPOSURE_COMPENSATION,
668     /**
669      * ohos.control.aeLock [static, enum, public]
670      *
671      * camera device property, set current camera ae lock
672      * (i.e. enum: OFF/ON ...)
673      */
674     OHOS_CONTROL_AE_LOCK,
675     /**
676      * ohos.control.aeMode [static, enum, public]
677      *
678      * camera device property, set current camera ae mode
679      * (i.e. enum: OFF/ON ...)
680      */
681     OHOS_CONTROL_AE_MODE,
682     /**
683      * ohos.control.aeRegions [static, float[], public]
684      *
685      * camera device property, set current camera ae regions
686      * (i.e. float[] ...)
687      */
688     OHOS_CONTROL_AE_REGIONS,
689     /**
690      * ohos.control.aeTargetFpsRange [static, int32[], public]
691      *
692      * camera stream property, set current camera ae target fps range
693      * (i.e. int32[] ...)
694      */
695     OHOS_CONTROL_AE_TARGET_FPS_RANGE,
696     /**
697      * ohos.control.fpsRanges [static, int32[], public]
698      *
699      * camera device property, set current camera fps ranges
700      * (i.e. int32[] ...)
701      */
702     OHOS_CONTROL_FPS_RANGES,
703     /**
704      * ohos.control.afMode [static, enum, public]
705      *
706      * camera device property, set current camera af mode
707      * (i.e. enum: OFF/AUTO ...)
708      */
709     OHOS_CONTROL_AF_MODE,
710     /**
711      * ohos.control.afRegions [static, float[], public]
712      *
713      * camera device property, set current camera af regions
714      * (i.e. float[] ...)
715      */
716     OHOS_CONTROL_AF_REGIONS,
717     /**
718      * ohos.control.afTrigger [static, enum, public]
719      *
720      * camera device property, set current camera af trigger
721      * (i.e. enum: IDLE/START/CANCEL ...)
722      */
723     OHOS_CONTROL_AF_TRIGGER,
724     /**
725      * ohos.control.afTriggerId [static, int32, public]
726      *
727      * camera device property, set current camera af trigger id
728      * (i.e. int32 ...)
729      */
730     OHOS_CONTROL_AF_TRIGGER_ID,
731     /**
732      * ohos.control.afState [static, enum, public]
733      *
734      * camera device property, set current camera af state
735      * (i.e. enum: INACTIVE/PASSIVE_SCAN ...)
736      */
737     OHOS_CONTROL_AF_STATE,
738     /**
739      * ohos.control.awbLock [static, enum, public]
740      *
741      * camera device property, set current camera awb lock
742      * (i.e. enum: OFF/ON ...)
743      */
744     OHOS_CONTROL_AWB_LOCK,
745     /**
746      * ohos.control.awbMode [static, enum, public]
747      *
748      * camera device property, set current camera awb mode
749      * (i.e. enum: OFF/AUTO ...)
750      */
751     OHOS_CONTROL_AWB_MODE,
752     /**
753      * ohos.control.awbRegions [static, int32[], public]
754      *
755      * camera device property, set current camera awb regions
756      * (i.e. int32[] ...)
757      */
758     OHOS_CONTROL_AWB_REGIONS,
759     /**
760      * ohos.control.aeAvailableAntibandingModes [static, byte[], public]
761      *
762      * camera device property, set current camera ae available antibanding modes
763      * (i.e. byte[] ...)
764      */
765     OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
766     /**
767      * ohos.control.aeAvailableModes [static, byte[], public]
768      *
769      * camera device property, set current camera ae available modes
770      * (i.e. byte[] ...)
771      */
772     OHOS_CONTROL_AE_AVAILABLE_MODES,
773     /**
774      * ohos.control.aeAvailableTargetFpsRanges [static, int32[], public]
775      *
776      * camera device property, set current camera ae available target fps ranges
777      * (i.e. int32[] ...)
778      */
779     OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
780     /**
781      * ohos.ability.aeCompensationRange [static, int32[], public]
782      *
783      * camera device property, report current camera support ae compensation range
784      * (i.e. int32[] ...)
785      */
786     OHOS_ABILITY_AE_COMPENSATION_RANGE,
787     /**
788      * ohos.ability.aeCompensationStep [static, rational, public]
789      *
790      * camera device property, set current camera support ae compensation step
791      * (i.e. rational ...)
792      */
793     OHOS_ABILITY_AE_COMPENSATION_STEP,
794     /**
795      * ohos.control.aeCompensationRange [static, int32[], public]
796      *
797      * camera device property, set current camera ae compensation range
798      * (i.e. int32[] ...)
799      */
800     OHOS_CONTROL_AE_COMPENSATION_RANGE,
801     /**
802      * ohos.control.aeCompensationStep [static, rational, public]
803      *
804      * camera device property, set current camera ae compensation step
805      * (i.e. rational ...)
806      */
807     OHOS_CONTROL_AE_COMPENSATION_STEP,
808     /**
809      * ohos.control.afAvailableModes [static, enum[], public]
810      *
811      * camera device property, set current camera af available modes
812      * (i.e. enum[]: OFF, AUTO, ...)
813      */
814     OHOS_CONTROL_AF_AVAILABLE_MODES,
815     /**
816      * ohos.control.awbAvailableModes [static, byte[], public]
817      *
818      * camera device property, set current camera awb available modes
819      * (i.e. byte[] ...)
820      */
821     OHOS_CONTROL_AWB_AVAILABLE_MODES,
822     /**
823      * ohos.control.captureMirrorSupported [static, enum, public]
824      *
825      * camera device property, set current camera capture mirror supported
826      * (i.e. enum: OFF/ON ...)
827      */
828     OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED,
829     /**
830      * ohos.control.captureMirror [static, enum, public]
831      *
832      * camera device property, set current camera capture mirror
833      * (i.e. enum: OFF/ON ...)
834      */
835     OHOS_CONTROL_CAPTURE_MIRROR,
836     /**
837      * ohos.control.focusState [static, enum, public]
838      *
839      * camera device property, set current camera focus state
840      * (i.e. enum: SCAN/FOCUSED/UNFOCUSED ...)
841      */
842     OHOS_CONTROL_FOCUS_STATE,
843     /**
844      * ohos.control.meterPoint [static, int32[], public]
845      *
846      * camera device property, set current camera meter point
847      * (i.e. int32[] ...)
848      */
849     OHOS_CONTROL_METER_POINT,
850     /**
851      * ohos.control.meterMode [static, enum, public]
852      *
853      * camera device property, set current camera meter mode
854      * (i.e. enum: SPOT_METERING/REGION_METERING ...)
855      */
856     OHOS_CONTROL_METER_MODE,
857     /**
858      * ohos.control.exposureState [static, byte, public]
859      *
860      * camera device property, set current camera exposure state
861      * (i.e. byte ...)
862      */
863     OHOS_CONTROL_EXPOSURE_STATE,
864     /**
865      * ohos.control.focusedPoint [static, int32[], public]
866      *
867      * camera device property, set current camera focused point
868      * (i.e. int32[] ...)
869      */
870     OHOS_CONTROL_FOCUSED_POINT,
871     /**
872      * ohos.control.nightModeTpyAe [static, byte, public]
873      *
874      * camera device property, set current camera night mode
875      * (i.e. byte ...)
876      */
877     OHOS_CONTROL_NIGHT_MODE_TRY_AE,
878     /**
879      * ohos.control.maualExposureTime [static, uint32[], public]
880      *
881      * camera device property, set current camera manually set the exposure time
882      * (i.e. uint32[] ...)
883      */
884     OHOS_CONTROL_MANUAL_EXPOSURE_TIME,
885     /**
886      * ohos.status.cameraCurrentFps [static, uint32, public]
887      *
888      * camera device property, set current camera camera current fps
889      * (i.e. uint32 ...)
890      */
891     OHOS_STATUS_CAMERA_CURRENT_FPS,
892     /**
893      * ohos.ability.isoValues [static, int32[], public]
894      *
895      * camera device property, report current camera support iso values
896      * (i.e. int32[] ...)
897      */
898     OHOS_ABILITY_ISO_VALUES,
899     /**
900      * ohos.control.isoValue [static, int32, public]
901      *
902      * camera device property, set current camera iso value
903      * (i.e. int32 ...)
904      */
905     OHOS_CONTROL_ISO_VALUE,
906     /**
907      * ohos.status.isoValue [static, int32, public]
908      *
909      * camera device property, query current camera iso value
910      * (i.e. int32 ...)
911      */
912     OHOS_STATUS_ISO_VALUE,
913     /**
914      * ohos.ability.sensorExposureTimeRange [static, int32, public]
915      *
916      * camera device property, report current camera support sensor exposure time range
917      * (i.e. int32 ...)
918      */
919     OHOS_ABILITY_SENSOR_EXPOSURE_TIME_RANGE,
920     /**
921      * ohos.ability.sensorExposureTime [static, rational, public]
922      *
923      * camera device property, set current camera sensor exposure time
924      * (i.e. rational ...)
925      */
926     OHOS_CONTROL_SENSOR_EXPOSURE_TIME,
927     /**
928      * ohos.status.sensorExposureTime [static, rational, public]
929      *
930      * camera device property, query current camera sensor exposure time
931      * (i.e. rational ...)
932      */
933     OHOS_STATUS_SENSOR_EXPOSURE_TIME,
934     /**
935      * ohos.control.movingPhoto [static, enum, public]
936      *
937      * camera device property, set current camera whether support live photo
938      * (i.e. enum: OFF/ON ...)
939      */
940     OHOS_CONTROL_MOVING_PHOTO,
941     /**
942      * ohos.ability.sensorWbValues [static, int32[], public]
943      *
944      * camera device property, report current camera support sensor wb values
945      * (i.e. int32[] ...)
946      */
947     OHOS_ABILITY_SENSOR_WB_VALUES,
948     /**
949      * ohos.control.sensorWbValues [static, int32, public]
950      *
951      * camera device property, set current camera sensor wb values
952      * (i.e. int32 ...)
953      */
954     OHOS_CONTROL_SENSOR_WB_VALUE,
955     /**
956      * ohos.control.highQualityMode [static, enum, public]
957      *
958      * camera stream property, set current camera high quality mode
959      * (i.e. enum: OFF/ON ...)
960      */
961     OHOS_CONTROL_HIGH_QUALITY_MODE,
962     /**
963      * ohos.control.burstCapture [static, enum, public]
964      *
965      * camera device property, set current camera device burst capture mode
966      * (i.e. enum: begin/end ...)
967      */
968     OHOS_CONTROL_BURST_CAPTURE,
969     /**
970      * ohos.control.cameraUsedAsPosition [static, byte, public]
971      *
972      * camera device property, set current camera used as position
973      * (i.e. byte ...)
974      */
975     OHOS_CONTROL_CAMERA_USED_AS_POSITION,
976     /**
977      * ohos.control.cameraSessionUsage [static, enum[], public]
978      *
979      * camera device property, set current camera session usage type whether enable
980      * (i.e. enum[]: [CameraSessionUsageType, CameraSessionUsageControlType] ...)
981      */
982     OHOS_CONTROL_CAMERA_SESSION_USAGE,
983     /**
984      * ohos.control.ejectRetry [static, byte, public]
985      *
986      * camera device property, set current camera lens retry eject
987      * (i.e. byte: 0-false/1true ...)
988      */
989     OHOS_CONTROL_EJECT_RETRY,
990     /**
991      * ohos.control.fallProtection [static, byte, public]
992      *
993      * camera device property, set current camera lens fall protection
994      * (i.e. byte: 0-false/1true ...)
995      */
996     OHOS_CONTROL_FALL_PROTECTION,
997     /**
998      * ohos.ability.qualityPrioritization [static, byte, public]
999      *
1000      * camera device property, set current camera quality prioritization
1001      * (i.e. byte ...)
1002      */
1003     OHOS_CONTROL_QUALITY_PRIORITIZATION,
1004     /**
1005      * ohos.device.controlEnd
1006      *
1007      * device controlEnd
1008      */
1009     OHOS_DEVICE_CONTROL_END,
1010 
1011     // Camera device image acquisition related
1012     /**
1013      * ohos.ability.deviceAvailableExposureModes [static, byte[], public]
1014      *
1015      * camera device property, report current camera support device available exposure modes
1016      * (i.e. byte[] ...)
1017      */
1018     OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES = OHOS_DEVICE_EXPOSURE_START,
1019     /**
1020      * ohos.control.exposureMode [static, enum, public]
1021      *
1022      * camera device property, set current camera exposure mode
1023      * (i.e. enum: MANUAL/CONTINUOUS_AUTO/LOCKED/AUTO ...)
1024      */
1025     OHOS_CONTROL_EXPOSUREMODE,
1026     /**
1027      * ohos.ability.exposureModes [static, enum[], public]
1028      *
1029      * camera device property, report current camera support exposure modes
1030      * (i.e. enum[]: MANUAL, CONTINUOUS_AUTO, LOCKED, AUTO ...)
1031      */
1032     OHOS_ABILITY_EXPOSURE_MODES,
1033     /**
1034      * ohos.control.exposureMode [static, enum, public]
1035      *
1036      * camera device property, set current camera exposure mode
1037      * (i.e. enum: MANUAL/CONTINUOUS_AUTO/LOCKED/AUTO ...)
1038      */
1039     OHOS_CONTROL_EXPOSURE_MODE,
1040     /**
1041      * ohos.ability.meterModes [static, enum[], public]
1042      *
1043      * camera device property, report current camera support meter modes
1044      * (i.e. enum[]: SPOT_METERING, REGION_METERING, OVERALL_METERING, CENTER_WEIGHTED_METERING ...)
1045      */
1046     OHOS_ABILITY_METER_MODES,
1047     /**
1048      * ohos.ability.sceneExposureModes [static, byte[], public]
1049      *
1050      * camera device property, report current camera support scene exposure time
1051      * (i.e. byte[] ...)
1052      */
1053     OHOS_ABILITY_SCENE_EXPOSURE_MODES,
1054     /**
1055      * ohos.ability.exposureTime [static, byte[], public]
1056      *
1057      * camera device property, report current camera support exposure time
1058      * (i.e. byte[] ...)
1059      */
1060     OHOS_ABILITY_EXPOSURE_TIME,
1061     /**
1062      * ohos.ability.aeLock [static, enum[], public]
1063      *
1064      * camera device property, report current camera support ae lock
1065      * (i.e. enum[]: OFF, ON ...)
1066      */
1067     OHOS_ABILITY_AE_LOCK,
1068     /**
1069      * ohos.device.exposureEnd
1070      *
1071      * camera device exposureEnd
1072      */
1073     OHOS_DEVICE_EXPOSURE_END,
1074 
1075     /**
1076      * ohos.ability.deviceAvailableFocusModes [static, byte[], public]
1077      *
1078      * camera device property, report current camera support device available focus modes
1079      * (i.e. byte[] ...)
1080      */
1081     OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES = OHOS_DEVICE_FOCUS_START,
1082     /**
1083      * ohos.ability.focusMode [static, byte, public]
1084      *
1085      * camera device property, set current camera focus mode
1086      * (i.e. byte ...)
1087      */
1088     OHOS_CONTROL_FOCUSMODE,
1089     /**
1090      * ohos.ability.focusModes [static, enum[], public]
1091      *
1092      * camera device property, report current camera support focus modes
1093      * (i.e. enum[]: MANUAL, CONTINUOUS_AUTO, AUTO, LOCKED ...)
1094      */
1095     OHOS_ABILITY_FOCUS_MODES,
1096     /**
1097      * ohos.ability.focusMode [static, enum, public]
1098      *
1099      * camera device property, set current camera focus mode
1100      * (i.e. enum: MANUAL/CONTINUOUS_AUTO/AUTO/LOCKED ...)
1101      */
1102     OHOS_CONTROL_FOCUS_MODE,
1103     /**
1104      * ohos.ability.focalLength [static, float, public]
1105      *
1106      * camera device property, report current camera support focal length
1107      * (i.e. float ...)
1108      */
1109     OHOS_ABILITY_FOCAL_LENGTH,
1110     /**
1111      * ohos.ability.sceneFocusModes [static, byte[], public]
1112      *
1113      * camera device property, report current camera support secene focus modes
1114      * (i.e. byte[] ...)
1115      */
1116     OHOS_ABILITY_SCENE_FOCUS_MODES,
1117     /**
1118      * ohos.ability.focusAssistFlashSupportedModes [static, enum[], public]
1119      *
1120      * camera device property, report current camera focus assist flash supported modes
1121      * (i.e. enum[]: DEFAULT, AUTO, ON, OFF ...)
1122      */
1123 
1124     OHOS_ABILITY_FOCUS_ASSIST_FLASH_SUPPORTED_MODES,
1125     /**
1126      * ohos.control.focusAssistFlashSupportedMode [static, byte, public]
1127      *
1128      * camera device property, set current camera focus assist flash supported mode
1129      * (i.e. byte ...)
1130      */
1131     OHOS_CONTROL_FOCUS_ASSIST_FLASH_SUPPORTED_MODE,
1132     /**
1133      * ohos.ability.lensInfoMinimumFocusDistance [static, float, public]
1134      *
1135      * camera device property, report current camera support lens info minimum focus distance
1136      * (i.e. float ...)
1137      */
1138     OHOS_ABILITY_LENS_INFO_MINIMUM_FOCUS_DISTANCE,
1139     /**
1140      * ohos.ability.lensFocusDistance [static, float, public]
1141      *
1142      * camera device property, set current camera lens focus distance
1143      * (i.e. float ...)
1144      */
1145     OHOS_CONTROL_LENS_FOCUS_DISTANCE,
1146     /**
1147      * ohos.ability.equivalentFocus [static, int32[], public]
1148      *
1149      * camera device property, report current camera support equivalent focus
1150      * (i.e. int32[] ...)
1151      */
1152     OHOS_ABILITY_EQUIVALENT_FOCUS,
1153     /**
1154      * ohos.ability.focusDistance [static, float, public]
1155      *
1156      * camera device property, set current camera support focus distance
1157      * (i.e. float ...)
1158      */
1159     OHOS_CONTROL_FOCUS_DISTANCE,
1160     /**
1161      * ohos.device.focusEnd
1162      *
1163      * camera device focusEnd
1164      */
1165     OHOS_DEVICE_FOCUS_END,
1166 
1167     /**
1168      * ohos.ability.deviceAvailableAwbModes [static, float, public]
1169      *
1170      * camera device property, report current camera device support available awb modes
1171      * (i.e. float ...)
1172      */
1173     OHOS_ABILITY_DEVICE_AVAILABLE_AWBMODES = OHOS_DEVICE_WHITE_BLANCE_START,
1174     /**
1175      * ohos.ability.awbModes [static, enum[], public]
1176      *
1177      * camera device property, report current camera support awb modes
1178      * (i.e. enum[]: OFF, AUTO, INCANDESCENT, FLUORESCENT, WARM_FLUORESCENT,
1179      *  DAYLIGHT, CLOUDY_DAYLIGHT, TWILIGHT, SHADE ...)
1180      */
1181     OHOS_ABILITY_AWB_MODES,
1182     /**
1183      * ohos.ability.awbLock [static, byte, public]
1184      *
1185      * camera device property, report current camera support awb lock
1186      * (i.e. byte ...)
1187      */
1188     OHOS_ABILITY_AWB_LOCK,
1189     /**
1190      * ohos.device.whiteBlanceEnd
1191      *
1192      * camera device whiteBlanceEnd
1193      */
1194     OHOS_DEVICE_WHITE_BLANCE_END,
1195 
1196     /**
1197      * ohos.ability.deviceAvailableFlashModes [static, byte[], public]
1198      *
1199      * camera device property, report current camera support device available flash modes
1200      * (i.e. byte[] ...)
1201      */
1202     OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES = OHOS_DEVICE_FLASH_START,
1203     /**
1204      * ohos.control.flashMode [static, enum, public]
1205      *
1206      * camera device property, set current camera flash mode
1207      * (i.e. enum: CLOSE/OPEN/AUTO/ALWAYS_OPEN ...)
1208      */
1209     OHOS_CONTROL_FLASHMODE,
1210     /**
1211      * ohos.ability.flashModes [static, enum[], public]
1212      *
1213      * camera device property, report current camera support flash modes
1214      * (i.e. enum[]: CLOSE, OPEN, AUTO, ALWAYS_OPEN ...)
1215      */
1216     OHOS_ABILITY_FLASH_MODES,
1217     /**
1218      * ohos.control.flashMode [static, byte, public]
1219      *
1220      * camera device property, set current camera flash mode
1221      * (i.e. byte ...)
1222      */
1223     OHOS_CONTROL_FLASH_MODE,
1224     /**
1225      * ohos.control.flashState [static, enum, public]
1226      *
1227      * camera device property, set current camera flash state
1228      * (i.e. enum: UNAVAILABLE/CHARGING/READY/FLASHING/UNKNOWN ...)
1229      */
1230     OHOS_CONTROL_FLASH_STATE,
1231     /**
1232      * ohos.ability.sceneFlashModes [static, byte[], public]
1233      *
1234      * camera device property, report current camera support scene flash modes
1235      * (i.e. byte[] ...)
1236      */
1237     OHOS_ABILITY_SCENE_FLASH_MODES,
1238     /**
1239      * ohos.device.flashEnd
1240      *
1241      * camera device flashEnd
1242      */
1243     OHOS_DEVICE_FLASH_END,
1244 
1245     /**
1246      * ohos.ability.zoomRatioRange [static, float[], public]
1247      *
1248      * camera device property, report current camera support zoom ratio range
1249      * (i.e. float[] ...)
1250      */
1251     OHOS_ABILITY_ZOOM_RATIO_RANGE = OHOS_DEVICE_ZOOM_START,
1252     /**
1253      * ohos.control.zoomRatio [static, float, public]
1254      *
1255      * camera device property, set current camera zoom ratio
1256      * (i.e. float ...)
1257      */
1258     OHOS_CONTROL_ZOOM_RATIO,
1259     /**
1260      * ohos.control.zoomCropRegion [static, int32[], public]
1261      *
1262      * camera device property, set current camera zoom crop region
1263      * (i.e. int32[] ...)
1264      */
1265     OHOS_CONTROL_ZOOM_CROP_REGION,
1266     /**
1267      * ohos.ability.zoomCrop [static, int32[], public]
1268      *
1269      * camera device property, report current camera zoom crop
1270      * (i.e. int32[] ...)
1271      */
1272     OHOS_ABILITY_ZOOM_CAP,
1273     /**
1274      * ohos.ability.sceneZoomCap [static, int32[], public]
1275      *
1276      * camera device property, report current camera scene zoom crop
1277      * (i.e. int32[] ...)
1278      */
1279     OHOS_ABILITY_SCENE_ZOOM_CAP,
1280     /**
1281      * ohos.status.cameraCurrentZoomRatio [static, uint32, public]
1282      *
1283      * camera device property, query current camera zoom ratio
1284      * (i.e. uint32 ...)
1285      */
1286     OHOS_STATUS_CAMERA_CURRENT_ZOOM_RATIO,
1287     /**
1288      * ohos.control.smoothZoomRatios [static, uint32[], public]
1289      *
1290      * camera device property, set current camera smooth zoom ratios
1291      * (i.e. uint32[] ...)
1292      */
1293     OHOS_CONTROL_SMOOTH_ZOOM_RATIOS,
1294     /**
1295      * ohos.control.prepareZoom [static, enum, public]
1296      *
1297      * camera device property, set current camera prepare zoom
1298      * (i.e. enum: DISABLE/ENABLE...)
1299      */
1300     OHOS_CONTROL_PREPARE_ZOOM,
1301     /**
1302      * ohos.control.cameraZoomPerformance [static, byte, public]
1303      *
1304      * camera device property, set current camera support camera zoom performance
1305      * (i.e. byte ...)
1306      */
1307     OHOS_ABILITY_CAMERA_ZOOM_PERFORMANCE,
1308     /**
1309      * ohos.device.zoomEnd
1310      *
1311      * camera device zoomEnd
1312      */
1313     OHOS_DEVICE_ZOOM_END,
1314 
1315     // Camera flow control related
1316     /**
1317      * ohos.ability.streamAvailableBasicConfigurations [static, int32[], public]
1318      *
1319      * camera device property, current camera support stream available basic configurations
1320      * (i.e. int32[]: RGBA_8888, YCBCR_420_888, YCRCB_420_SP, YCBCR_420_SP, JPEG, YCBCR_P010,
1321      *  YCRCB_P010, DNG, 422_YUYV, IMPLEMENTATION_DEFINED ...)
1322      */
1323     OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS = OHOS_STREAM_ABILITY_START,
1324     /**
1325      * ohos.ability.availableFormats [static, int32[], public]
1326      *
1327      * camera device property, query camera support available formats
1328      * (i.e. int32[]: RGBA_8888/YCBCR_420_888/YCRCB_420_SP/YCBCR_420_SP/JPEG/YCBCR_P010/
1329      *  YCRCB_P010/DNG/422_YUYV/IMPLEMENTATION_DEFINED ...)
1330      */
1331     OHOS_STREAM_AVAILABLE_FORMATS,
1332     /**
1333      * ohos.ability.streamAvailableExtendConfigurations [static, int32[], public]
1334      *
1335      * camera device property, query camera support stream available extend configurations
1336      * (i.e. int32[] ...)
1337      */
1338     OHOS_ABILITY_STREAM_AVAILABLE_EXTEND_CONFIGURATIONS,
1339     /**
1340      * ohos.ability.streamQuickThumbnailAvailable [static, enum, public]
1341      *
1342      * camera device property, report camera support stream quick thumbnail available
1343      * (i.e. enum: false/true ...)
1344      */
1345     OHOS_ABILITY_STREAM_QUICK_THUMBNAIL_AVAILABLE,
1346     /**
1347      * ohos.ability.portraitResolusion [static, int32[], public]
1348      *
1349      * camera device property, report camera support portrait resolusion
1350      * (i.e. int32[] ...)
1351      */
1352     OHOS_ABILITY_PORTRAIT_RESOLUSION,
1353     /**
1354      * ohos.ability.sceneStreamQuickThumbnailAvailable [static, byte[], public]
1355      *
1356      * camera device property, report camera support scene stream quick thumbnail available
1357      * (i.e. byte[] ...)
1358      */
1359     OHOS_ABILITY_SCENE_STREAM_QUICK_THUMBNAIL_AVAILABLE,
1360     /**
1361      * ohos.ability.deferredImageDelivery [static, byte[], public]
1362      *
1363      * camera device property, report camera support deferred image delivery
1364      * (i.e. byte[] ...)
1365      */
1366     OHOS_ABILITY_DEFERRED_IMAGE_DELIVERY,
1367     /**
1368      * ohos.ability.deferredImageDelivery [static, byte[], public]
1369      *
1370      * camera stream property, set camera support deferred image delivery
1371      * (i.e. byte[] ...)
1372      */
1373     OHOS_CONTROL_DEFERRED_IMAGE_DELIVERY,
1374     /**
1375      * ohos.stream.abilityEnd
1376      *
1377      * camera stream abilityEnd
1378      */
1379     OHOS_STREAM_ABILITY_END,
1380 
1381     /**
1382      * ohos.jpeg.gpsCoordinates [static, double[], public]
1383      *
1384      * camera stream property, report current camera support jpeg gps coordinates
1385      * (i.e. double[] ...)
1386      */
1387     OHOS_JPEG_GPS_COORDINATES = OHOS_STREAM_JPEG_START,
1388     /**
1389      * ohos.jpeg.gpsProcessingMethod [static, byte, public]
1390      *
1391      * camera stream property, report current camera support jpeg gps processing method
1392      * (i.e. byte ...)
1393      */
1394     OHOS_JPEG_GPS_PROCESSING_METHOD,
1395     /**
1396      * ohos.jpeg.gpsTimestamp [static, int64, public]
1397      *
1398      * camera stream property, report current camera support jpeg gps timestamp
1399      * (i.e. int64 ...)
1400      */
1401     OHOS_JPEG_GPS_TIMESTAMP,
1402     /**
1403      * ohos.jpeg.orientation [static, int32, public]
1404      *
1405      * camera stream property, report current camera support jpeg gps orientation
1406      * (i.e. int32: 0/90/180/270 ...)
1407      */
1408     OHOS_JPEG_ORIENTATION,
1409     /**
1410      * ohos.jpeg.quality [static, enum, public]
1411      *
1412      * camera stream property, report current camera support jpeg quality
1413      * (i.e. enum: LOW/MIDDLE/HIGH ...)
1414      */
1415     OHOS_JPEG_QUALITY,
1416     /**
1417      * ohos.jpeg.thumbnailQuality [static, byte, public]
1418      *
1419      * camera stream property, report current camera support jpeg thumbnail quality
1420      * (i.e. byte ...)
1421      */
1422     OHOS_JPEG_THUMBNAIL_QUALITY,
1423     /**
1424      * ohos.jpeg.thumbnailSize [static, int32[], public]
1425      *
1426      * camera stream property, report current camera support jpeg thumbnail size
1427      * (i.e. int32[] ...)
1428      */
1429     OHOS_JPEG_THUMBNAIL_SIZE,
1430     /**
1431      * ohos.jpeg.availableThumbnailSizes [static, int32[], public]
1432      *
1433      * camera stream property, report current camera support available thumbnail sizes
1434      * (i.e. int32[] ...)
1435      */
1436     OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES,
1437     /**
1438      * ohos.jpeg.maxSize [static, int32, public]
1439      *
1440      * camera stream property, report current camera support max size
1441      * (i.e. int32 ...)
1442      */
1443     OHOS_JPEG_MAX_SIZE,
1444     /**
1445      * ohos.jpeg.size [static, int32, public]
1446      *
1447      * camera stream property, report current camera support size
1448      * (i.e. int32 ...)
1449      */
1450     OHOS_JPEG_SIZE,
1451     /**
1452      * ohos.stream.jpegEnd
1453      *
1454      * camera stream jpegEnd
1455      */
1456     OHOS_STREAM_JPEG_END,
1457 
1458     /**
1459      * ohos.ability.videoStabilizationModes [static, enum[], public]
1460      *
1461      * camera device property, report current camera support video stabilization modes
1462      * (i.e. enum[]: OFF, LOW, MIDDLE, HIGH, AUTO ...)
1463      */
1464     OHOS_ABILITY_VIDEO_STABILIZATION_MODES = OHOS_STREAM_VIDEO_START,
1465     /**
1466      * ohos.control.videoStabilizationMode [static, enum, public]
1467      *
1468      * camera stream property, set current camera support video stabilization mode
1469      * (i.e. enum: OFF/LOW/MIDDLE/HIGH/AUTO ...)
1470      */
1471     OHOS_CONTROL_VIDEO_STABILIZATION_MODE,
1472     /**
1473      * ohos.control.videoDebugSwitch [static, byte, public]
1474      *
1475      * camera device property, set current camera video debug switch
1476      * (i.e. byte ...)
1477      */
1478     OHOS_CONTROL_VIDEO_DEBUG_SWITCH,
1479     /**
1480      * ohos.stream.videoEnd
1481      *
1482      * camera stream videoEnd
1483      */
1484     OHOS_STREAM_VIDEO_END,
1485 
1486     // camera effects & algorithms
1487     /**
1488      * ohos.ability.sceneFilterTypes [static, enum[], public]
1489      *
1490      * camera device property, report current camera support scene filter types
1491      * (i.e. enum[]: OFF, NONE, CLASSIC, DAWN, PURE, GREY, NATURAL, MORI, FAIR, PINK ...)
1492      */
1493     OHOS_ABILITY_SCENE_FILTER_TYPES = OHOS_CAMERA_EFFECT_START,
1494     /**
1495      * ohos.control.filterTypes [static, enum, public]
1496      *
1497      * camera device property, set current camera support filter types
1498      * (i.e. enum: OFF/NONE/CLASSIC/DAWN/PURE/GREY/NATURAL/MORI/FAIR/PINK ...)
1499      */
1500     OHOS_CONTROL_FILTER_TYPE,
1501     /**
1502      * ohos.ability.scenePortraitEffectTypes [static, enum[], public]
1503      *
1504      * camera device property, report current camera support scene portrait effect types
1505      * (i.e. enum[]: OFF, CIRCLES, HEART, ROTATED, STUDIO, THEATER ...)
1506      */
1507     OHOS_ABILITY_SCENE_PORTRAIT_EFFECT_TYPES,
1508     /**
1509      * ohos.control.scenePortraitEffectType [static, enum, public]
1510      *
1511      * camera device property, set current camera support scene portrait effect type
1512      * (i.e. enum: OFF/CIRCLES/HEART/ROTATED/STUDIO/THEATER ...)
1513      */
1514     OHOS_CONTROL_PORTRAIT_EFFECT_TYPE,
1515     /**
1516      * ohos.ability.sceneBeautyTypes [static, enum[], public]
1517      *
1518      * camera device property, report current camera support scene beauty types
1519      * (i.e. enum[]: OFF, AUTO, SKIN_SMOOTH, FACE_SLENDER, SKIN_TONE ...)
1520      */
1521     OHOS_ABILITY_SCENE_BEAUTY_TYPES,
1522     /**
1523      * ohos.control.sceneBeautyTypes [static, enum, public]
1524      *
1525      * camera device property, set current camera support scene beauty types
1526      * (i.e. enum: OFF/AUTO/SKIN_SMOOTH/FACE_SLENDER/SKIN_TONE ...)
1527      */
1528     OHOS_CONTROL_BEAUTY_TYPE,
1529     /**
1530      * ohos.ability.beautyAutoValues [static, byte[], public]
1531      *
1532      * camera device property, report current camera support beauty auto values
1533      * (i.e. byte[] ...)
1534      */
1535     OHOS_ABILITY_BEAUTY_AUTO_VALUES,
1536     /**
1537      * ohos.control.beautyAutoValue [static, byte, public]
1538      *
1539      * camera device property, set current camera support beauty auto value
1540      * (i.e. byte ...)
1541      */
1542     OHOS_CONTROL_BEAUTY_AUTO_VALUE,
1543     /**
1544      * ohos.ability.beautyFaceSlenderValues [static, byte[], public]
1545      *
1546      * camera device property, report current camera support beauty face slender values
1547      * (i.e. byte[] ...)
1548      */
1549     OHOS_ABILITY_BEAUTY_FACE_SLENDER_VALUES,
1550     /**
1551      * ohos.control.beautyFaceSlenderValues [static, byte, public]
1552      *
1553      * camera device property, set current camera support beauty face slender value
1554      * (i.e. byte ...)
1555      */
1556     OHOS_CONTROL_BEAUTY_FACE_SLENDER_VALUE,
1557     /**
1558      * ohos.ability.beautySkinToneValues [static, int32[], public]
1559      *
1560      * camera device property, report current camera support beauty skin tone values
1561      * (i.e. int32[] ...)
1562      */
1563     OHOS_ABILITY_BEAUTY_SKIN_TONE_VALUES,
1564     /**
1565      * ohos.ability.beautySkinToneValue [static, int32, public]
1566      *
1567      * camera device property, set current camera support beauty skin tone value
1568      * (i.e. int32 ...)
1569      */
1570     OHOS_CONTROL_BEAUTY_SKIN_TONE_VALUE,
1571     /**
1572      * ohos.ability.beautySkinSmoothValues [static, byte[], public]
1573      *
1574      * camera device property, report current camera support beauty skin smooth values
1575      * (i.e. byte[] ...)
1576      */
1577     OHOS_ABILITY_BEAUTY_SKIN_SMOOTH_VALUES,
1578     /**
1579      * ohos.ability.beautySkinSmoothValue [static, byte, public]
1580      *
1581      * camera device property, set current camera support beauty skin smooth value
1582      * (i.e. byte ...)
1583      */
1584     OHOS_CONTROL_BEAUTY_SKIN_SMOOTH_VALUE,
1585     /**
1586      * ohos.ability.camera [static, enum, public]
1587      *
1588      * camera device property, report current camera macro
1589      * (i.e. enum: supported/nosupported ...)
1590      */
1591     OHOS_ABILITY_CAMERA_MACRO_SUPPORTED,
1592     /**
1593      * ohos.ability.sceneMacroCap [static, int32[], public]
1594      *
1595      * camera device property, report current camera different macro capAbility
1596      * (i.e. int32[] ...)
1597      */
1598     OHOS_ABILITY_SCENE_MACRO_CAP,
1599     /**
1600      * ohos.status.camera [static, enum, public]
1601      *
1602      * camera device property, query current camera macro
1603      * (i.e. enum: disbale/enable ...)
1604      */
1605     OHOS_CAMERA_MACRO_STATUS,
1606     /**
1607      * ohos.control.camera [static, enum, public]
1608      *
1609      * camera device property, set current camera macro
1610      * (i.e. enum: disbale/enable ...)
1611      */
1612     OHOS_CONTROL_CAMERA_MACRO,
1613     /**
1614      * ohos.ability.cameraVirtualApertureRange [static, float[], public]
1615      *
1616      * camera device property, report current camera virtual aperture range
1617      * (i.e. float[] ...)
1618      */
1619     OHOS_ABILITY_CAMERA_VIRTUAL_APERTURE_RANGE,
1620     /**
1621      * ohos.control.cameraVirtualApertureValue [static, float, public]
1622      *
1623      * camera device property, set current camera virtual aperture value
1624      * (i.e. float ...)
1625      */
1626     OHOS_CONTROL_CAMERA_VIRTUAL_APERTURE_VALUE,
1627     /**
1628      * ohos.control.cameraPhysicalAperttureRange [static, float[], public]
1629      *
1630      * camera device property, set current camera physical aperture range
1631      * (i.e. float[] ...)
1632      */
1633     OHOS_ABILITY_CAMERA_PHYSICAL_APERTURE_RANGE,
1634     /**
1635      * ohos.control.cameraPhysicalAperttureValue [static, float, public]
1636      *
1637      * camera device property, set current camera physical aperture value
1638      * (i.e. float ...)
1639      */
1640     OHOS_CONTROL_CAMERA_PHYSICAL_APERTURE_VALUE,
1641     /**
1642      * ohos.status.cameraApertureValue [static, float, public]
1643      *
1644      * camera device property, query current camera aperture value
1645      * (i.e. float ...)
1646      */
1647     OHOS_STATUS_CAMERA_APERTURE_VALUE,
1648     /**
1649      * ohos.device.exitCameraEvent [static, byte, public]
1650      *
1651      * camera device property, set current camera exitCamera event
1652      * (i.e. byte ...)
1653      */
1654     OHOS_DEVICE_EXITCAMERA_EVENT,
1655     /**
1656      * ohos.control.motionDetectionCheckArea [static, float[], public]
1657      *
1658      * camera device property, report current camera motion detection check area
1659      * (i.e. float[] ...)
1660      */
1661     OHOS_CONTROL_MOTION_DETECTION_CHECK_AREA,
1662     /**
1663      * ohos.status.slowMotionDetection [static, enum, public]
1664      *
1665      * camera device property, query current camera slow motion recording status
1666      * (i.e. enum: disable/ready/start/recording/finish ...)
1667      */
1668     OHOS_STATUS_SLOW_MOTION_DETECTION,
1669     /**
1670      * ohos.ability.motionDetectionSupport [static, enum, public]
1671      *
1672      * camera device property, report current camera motion detection
1673      * (i.e. enum: support/nosupport ...)
1674      */
1675     OHOS_ABILITY_MOTION_DETECTION_SUPPORT,
1676     /**
1677      * ohos.control.motionDetection [static, enum, public]
1678      *
1679      * camera device property, set current camera operation status detection switch
1680      * (i.e. enum: disable/enable ...)
1681      */
1682     OHOS_CONTROL_MOTION_DETECTION,
1683     /**
1684      * ohos.ability.exposureHintSupported [static, byte, public]
1685      *
1686      * camera device property, report current camera screen exposure
1687      * (i.e. byte ...)
1688      */
1689     OHOS_ABILITY_EXPOSURE_HINT_SUPPORTED,
1690     /**
1691      * ohos.control.exposureHintMode [static, byte, public]
1692      *
1693      * camera device property, set current camera screen exposure
1694      * (i.e. byte ...)
1695      */
1696     OHOS_CONTROL_EXPOSURE_HINT_MODE,
1697     /**
1698      * ohos.status.algoMeanY [static, uint32, public]
1699      *
1700      * camera device property, query current camera screen exposure
1701      * (i.e. uint32 ...)
1702      */
1703     OHOS_STATUS_ALGO_MEAN_Y,
1704     /**
1705      * ohos.status.previewPhysicalCameraId [static, byte, public]
1706      *
1707      * camera device property, query current camera preview shot id
1708      * (i.e. byte ...)
1709      */
1710     OHOS_STATUS_PREVIEW_PHYSICAL_CAMERA_ID,
1711     /**
1712      * ohos.ability.captureExpectTime [static, uint32[], public]
1713      *
1714      * camera device property, report current camera expect time
1715      * (i.e. uint32[] ...)
1716      */
1717     OHOS_ABILITY_CAPTURE_EXPECT_TIME,
1718     /**
1719      * ohos.ability.effectSuggestionSupported [static, int32[], public]
1720      *
1721      * camera device property, report current camera supported effect suggestion, report by mode
1722      * (i.e. int32[] {mode1, effectNumber, enum, enum2, ..., -1, ...}...)
1723      */
1724     OHOS_ABILITY_EFFECT_SUGGESTION_SUPPORTED,
1725     /**
1726      * ohos.control.effectSuggestion [static, enum, public]
1727      *
1728      * camera device property, set current camera enable or disable effect suggestion, set by mode
1729      * (i.e. enum 0(disable)/1(enable) ...)
1730      */
1731     OHOS_CONTROL_EFFECT_SUGGESTION,
1732     /**
1733      * ohos.control.effectSuggestionDetection [static, byte[], public]
1734      *
1735      * camera device property, init effect suggestion, set current camera enable or disable effect suggestion
1736      * (i.e. byte[] [enum, 0(disable)/1(enable), enum2, 0(disable)/1(enable) ...] ...)
1737      */
1738     OHOS_CONTROL_EFFECT_SUGGESTION_DETECTION,
1739     /**
1740      * ohos.camera.effectSuggestionType [static, enum, public]
1741      *
1742      * camera device property, query current camera effect suggestion type
1743      * (i.e. enum  NONE/PORTRAIT/FOOD/SKY/SUNRISE_SUNSET ...)
1744      */
1745     OHOS_CAMERA_EFFECT_SUGGESTION_TYPE,
1746     /**
1747      * ohos.control.effectSuggestionType [static, byte[], public]
1748      *
1749      * camera device property, set current effect suggestion enable or disable
1750      * (i.e. byte[] [enum, 0(disable)/1(enable)] ...)
1751      */
1752     OHOS_CONTROL_EFFECT_SUGGESTION_TYPE,
1753     /**
1754      * ohos.ability.availableProfileLevel [static, int32[], public]
1755      *
1756      * camera device property, report current camera available profile level
1757      * (i.e. int32[] ...)
1758      */
1759     OHOS_ABILITY_AVAILABLE_PROFILE_LEVEL,
1760     /**
1761      * ohos.ability.availablePreviewProfile [static, int32[], public]
1762      *
1763      * camera device property, report current camera available preview profile
1764      * (i.e. int32[] ...)
1765      */
1766     OHOS_ABILITY_AVAILABLE_PREVIEW_PROFILE,
1767     /**
1768      * ohos.ability.availablePhotoProfile [static, int32[], public]
1769      *
1770      * camera device property, report current camera available photo profile
1771      * (i.e. int32[] ...)
1772      */
1773     OHOS_ABILITY_AVAILABLE_PHOTO_PROFILE,
1774     /**
1775      * ohos.ability.availableVideoProfile [static, int32[], public]
1776      *
1777      * camera device property, report current camera available video profile
1778      * (i.e. int32[] ...)
1779      */
1780     OHOS_ABILITY_AVAILABLE_VIDEO_PROFILE,
1781     /**
1782      * ohos.ability.availableMetadataProfile [static, int32[], public]
1783      *
1784      * camera device property, report current camera available metadata profile
1785      * (i.e. int32[] ...)
1786      */
1787     OHOS_ABILITY_AVAILABLE_METADATA_PROFILE,
1788     /**
1789      * ohos.ability.availableConfigurations [static, int32[], public]
1790      *
1791      * camera device property, report current camera available configurations
1792      * (i.e. int32[] ...)
1793      */
1794     OHOS_ABILITY_AVAILABLE_CONFIGURATIONS,
1795     /**
1796      * ohos.ability.conflictConfigurations [static, int32[], public]
1797      *
1798      * camera device property, report current camera conflict configurations
1799      * (i.e. int32[] ...)
1800      */
1801     OHOS_ABILITY_CONFLICT_CONFIGURATIONS,
1802     /**
1803      * ohos.ability.lightPaintingType [static, byte[], public]
1804      *
1805      * camera device property, report current camera light painting type
1806      * (i.e. byte[] ...)
1807      */
1808     OHOS_ABILITY_LIGHT_PAINTING_TYPE,
1809     /**
1810      * ohos.control.lightPaintingType [static, byte[], public]
1811      *
1812      * camera device property, set current camera light painting type
1813      * (i.e. byte[] [enum, 0(car)/1(star)/2(water)/3(light)])
1814      */
1815     OHOS_CONTROL_LIGHT_PAINTING_TYPE,
1816     /**
1817      * ohos.control.lightPaintingFlash [static, byte[], public]
1818      *
1819      * camera device property, set current camera light painting flash
1820      * (i.e. byte[] ...)
1821      */
1822     OHOS_CONTROL_LIGHT_PAINTING_FLASH,
1823     /**
1824      * ohos.control.timeLapseInterval [static, uint32_t[], public]
1825      *
1826      * camera device property, set current camera time lapse interval
1827      * (i.e. uint32_t[] ...)
1828      */
1829     OHOS_CONTROL_TIME_LAPSE_INTERVAL,
1830     /**
1831      * ohos.control.timeLapseTryaeState [static, byte[], public]
1832      *
1833      * camera device property, set current camera time lapse tryae state
1834      * (i.e. byte[] ...)
1835      */
1836     OHOS_CONTROL_TIME_LAPSE_TRYAE_STATE,
1837     /**
1838      * ohos.status.timeLapsePreviewType [static, byte[], public]
1839      *
1840      * camera device property, query current camera time lapse preview type
1841      * (i.e. byte[] ...)
1842      */
1843     OHOS_STATUS_TIME_LAPSE_PREVIEW_TYPE,
1844     /**
1845      * ohos.status.timeLapseTryaeHint [static, byte[], public]
1846      *
1847      * camera device property, query current camera time lapse tryae hint
1848      * (i.e. byte[] ...)
1849      */
1850     OHOS_STATUS_TIME_LAPSE_TRYAE_HINT,
1851     /**
1852      * ohos.status.timeLapseCaptureInterval [static, uint32_t[], public]
1853      *
1854      * camera device property, query current camera time lapse capture interval
1855      * (i.e. uint32_t[] ...)
1856      */
1857     OHOS_STATUS_TIME_LAPSE_CAPTURE_INTERVAL,
1858     /**
1859      * ohos.status.timeLapseTryaeDone [static, byte[], public]
1860      *
1861      * camera device property, query current camera time lapse tryae done
1862      * (i.e. byte[] ...)
1863      */
1864     OHOS_STATUS_TIME_LAPSE_TRYAE_DONE,
1865     /**
1866      * ohos.control.timeLapseRecordState [static, byte[], public]
1867      *
1868      * camera device property, set current camera time lapse record state
1869      * (i.e. byte[] ...)
1870      */
1871     OHOS_CONTROL_TIME_LAPSE_RECORD_STATE,
1872     /**
1873      * ohos.control.timeLapsePreviewType [static, byte[], public]
1874      *
1875      * camera device property, set current camera time lapse preview type
1876      * (i.e. byte[] ...)
1877      */
1878     OHOS_CONTROL_TIME_LAPSE_PREVIEW_TYPE,
1879     /**
1880      * ohos.ability.timeLapseIntervalRange [static, uint32_t[], public]
1881      *
1882      * camera device property, report current camera time lapse interval range
1883      * (i.e. uint32_t[] ...)
1884      */
1885     OHOS_ABILITY_TIME_LAPSE_INTERVAL_RANGE,
1886     /**
1887      * ohos.ability.lcdFlash [static, int32_t[], public]
1888      *
1889      * camera device property, report current camera lcd flash
1890      * (i.e. int32_t[] ...)
1891      */
1892     OHOS_ABILITY_LCD_FLASH,
1893     /**
1894      * ohos.control.lcdFlashDetection [static, byte[], public]
1895      *
1896      * camera device property, set current camera lcd flash detection
1897      * (i.e. byte[] ...)
1898      */
1899     OHOS_CONTROL_LCD_FLASH_DETECTION,
1900     /**
1901      * ohos.control.lcdFlash [static, byte[], public]
1902      *
1903      * camera device property, set current camera lcd flash
1904      * (i.e. byte[] ...)
1905      */
1906     OHOS_CONTROL_LCD_FLASH,
1907     /**
1908      * ohos.status.lcdFlashStatus [static, int32_t[], public]
1909      *
1910      * camera device property, quiry current camera lcd flash status
1911      * (i.e. int32_t[] ...)
1912      */
1913     OHOS_STATUS_LCD_FLASH_STATUS,
1914     /**
1915      * ohos.ability.depthDataDelivery [static, int32_t[], public]
1916      *
1917      * camera device property, report current camera depth data delivery
1918      * (i.e. int32_t[] ...)
1919      */
1920     OHOS_ABILITY_DEPTH_DATA_DELIVERY,
1921     /**
1922      * ohos.control.depthDataDeliverySwitch [static, byte[], public]
1923      *
1924      * camera device property, set current camera depth data delivery switch
1925      * (i.e. byte[] ...)
1926      */
1927     OHOS_CONTROL_DEPTH_DATA_DELIVERY_SWITCH,
1928     /**
1929      * ohos.ability.depthDataProfiles [static, int32_t[], public]
1930      *
1931      * camera device property, report current camera depth data profiles
1932      * (i.e. int32_t[] ...)
1933      */
1934     OHOS_ABILITY_DEPTH_DATA_PROFILES,
1935     /**
1936      * ohos.control.depthDataAccuracy [static, int32_t[], public]
1937      *
1938      * camera device property, set current camera depth data accuracy
1939      * (i.e. int32_t[] ...)
1940      */
1941     OHOS_CONTROL_DEPTH_DATA_ACCURACY,
1942     /**
1943      * ohos.status.movingPhotoBufferDuration [static, uint32[], public]
1944      *
1945      * camera device property, report current moving photo buffer duration
1946      * (i.e. uint32[] ...)
1947      */
1948     OHOS_MOVING_PHOTO_BUFFER_DURATION,
1949     /**
1950      * ohos.movingPhotoStart [static, uint32[], public]
1951      *
1952      * camera device property, report current moving photo start time
1953      * (i.e. uint32[] ...)
1954      */
1955     OHOS_MOVING_PHOTO_START,
1956     /**
1957      * ohos.movingPhotoEnd [static, int64[], public]
1958      *
1959      * camera device property, report current moving photo end time
1960      * (i.e. int64[] ...)
1961      */
1962     OHOS_MOVING_PHOTO_END,
1963     /**
1964      * ohos.ability.captureMacroDepthFusionSupported [static, byte, public]
1965      *
1966      * camera device property, report current capture macro depth fusion supported
1967      * (i.e. byte ...)
1968      */
1969     OHOS_ABILITY_CAPTURE_MACRO_DEPTH_FUSION_SUPPORTED,
1970     /**
1971      * ohos.ability.captureMacroDepthFusionZoomRange [static, float[], public]
1972      *
1973      * camera device property, report current capture macro depth fusion zoom range
1974      * (i.e. float[] ...)
1975      */
1976     OHOS_ABILITY_CAPTURE_MACRO_DEPTH_FUSION_ZOOM_RANGE,
1977     /**
1978      * ohos.control.captureMacroDepthFusion [static, byte, public]
1979      *
1980      * camera device property, set current capture macro depth fusion
1981      * (i.e. byte ...)
1982      */
1983     OHOS_CONTROL_CAPTURE_MACRO_DEPTH_FUSION,
1984     /**
1985      * ohos.ability.cameraPortraitThemeSupported [static, byte, public]
1986      *
1987      * camera device property, report current camera portrait theme supported
1988      * (i.e. byte ...)
1989      */
1990     OHOS_ABILITY_CAMERA_PORTRAIT_THEME_SUPPORTED,
1991     /**
1992      * ohos.ability.cameraPortraitThemeTypes [static, byte[], public]
1993      *
1994      * camera device property, report current camera supported portrait theme types
1995      * (i.e. byte[] ...)
1996      */
1997     OHOS_ABILITY_CAMERA_PORTRAIT_THEME_TYPES,
1998     /**
1999      * ohos.control.cameraPortraitThemeType [static, byte, public]
2000      *
2001      * camera device property, set current camera portrait theme type
2002      * (i.e. byte ...)
2003      */
2004     OHOS_CONTROL_CAMERA_PORTRAIT_THEME_TYPE,
2005     /**
2006      * ohos.ability.cameraVideoRotationSupported [static, byte, public]
2007      *
2008      * camera device property, report current camera video rotation supported
2009      * (i.e. byte ...)
2010      */
2011     OHOS_ABILITY_CAMERA_VIDEO_ROTATION_SUPPORTED,
2012     /**
2013      * ohos.ability.cameraVideoRotation [static, int32[], public]
2014      *
2015      * camera device property, report current camera supported video rotation
2016      * (i.e. int32[] ...)
2017      */
2018     OHOS_ABILITY_CAMERA_VIDEO_ROTATION,
2019     /**
2020      * ohos.control.cameraVideoRotation [static, int32, public]
2021      *
2022      * camera device property, set current camera video rotation
2023      * (i.e. int32 ...)
2024      */
2025     OHOS_CONTROL_CAMERA_VIDEO_ROTATION,
2026     /**
2027      * ohos.camera.effectEnd
2028      *
2029      * camera effect end
2030      */
2031     OHOS_CAMERA_EFFECT_END,
2032 
2033     // camera secure related
2034     /**
2035      * ohos.control.secureFaceMode [static, uint32, public]
2036      *
2037      * camera device property, set current camera secure face mode
2038      * (i.e. uint32 ...)
2039      */
2040     OHOS_CONTROL_SECURE_FACE_MODE = OHOS_CAMERA_SECURE_START,
2041     /**
2042      * ohos.control.secureFaceInfo [static, uint32[], public]
2043      *
2044      * camera device property, set current camera secure face info
2045      * (i.e. uint32[] ...)
2046      */
2047     OHOS_CONTROL_SECURE_FACE_INFO,
2048     /**
2049      * ohos.control.secureFaceAuthResult [static, uint32, public]
2050      *
2051      * camera device property, set current camera face auth result
2052      * (i.e. uint32 ...)
2053      */
2054     OHOS_CONTROL_SECURE_FACE_AUTH_RESULT,
2055     /**
2056      * ohos.control.secureFlashSeq [static, uint32[], public]
2057      *
2058      * camera device property, set current camera secure flash seq
2059      * (i.e. uint32[] ...)
2060      */
2061     OHOS_CONTROL_SECURE_FLASH_SEQ,
2062     /**
2063      * ohos.control.secureIrLedSwitch [static, byte, public]
2064      *
2065      * camera device property, set current camera IR lens
2066      * (i.e. byte ...)
2067      */
2068     OHOS_CONTROL_SECURE_IR_LED_SWITCH,
2069     /**
2070      * ohos.control.secureIrLockAeSwitch [static, byte, public]
2071      *
2072      * camera device property, set current camera IR lens lockae
2073      * (i.e. byte ...)
2074      */
2075     OHOS_CONTROL_SECURE_IR_LOCKAE_SWITCH,
2076     /**
2077      * ohos.camera.secureEnd
2078      *
2079      * camera secure end
2080      */
2081     OHOS_CAMERA_SECURE_END,
2082 
2083     //XMAGE MODE
2084     /**
2085      * ohos.control.supportedColorModes [static, enum[], public]
2086      *
2087      * camera device property, report current camera color modes
2088      * (i.e. enum[]: normal, bright, soft, mono ...)
2089      */
2090     OHOS_ABILITY_SUPPORTED_COLOR_MODES = OHOS_XMAGE_COLOR_MODES_START,
2091     /**
2092      * ohos.control.supportedColorModes [static, enum, public]
2093      *
2094      * camera device property, set current camera color modes
2095      * (i.e. enum: normal/bright/soft/mono ...)
2096      */
2097     OHOS_CONTROL_SUPPORTED_COLOR_MODES,
2098     /**
2099      * ohos.xmage.colorMoodesEnd
2100      *
2101      * camera xmage end
2102      */
2103     OHOS_XMAGE_COLOR_MODES_END,
2104 } camera_device_metadata_tag_t;
2105 
2106 // switch type tag enumeration values
2107 typedef enum camera_switch_enum {
2108     OHOS_CAMERA_SWTICH_OFF = 0,
2109     OHOS_CAMERA_SWTICH_ON,
2110 } camera_switch_enum_t;
2111 
2112 // OHOS_ABILITY_CAMERA_USED_AS_POSITION enumeration values
2113 // OHOS_ABILITY_CAMERA_POSITION enumeration values
2114 typedef enum camera_position_enum {
2115     OHOS_CAMERA_POSITION_FRONT = 0,
2116     OHOS_CAMERA_POSITION_BACK,
2117     OHOS_CAMERA_POSITION_OTHER
2118 } camera_position_enum_t;
2119 
2120 // OHOS_ABILITY_CAMERA_TYPE enumeration values
2121 typedef enum camera_type_enum {
2122     OHOS_CAMERA_TYPE_WIDE_ANGLE = 0,
2123     OHOS_CAMERA_TYPE_ULTRA_WIDE,
2124     OHOS_CAMERA_TYPE_TELTPHOTO,
2125     OHOS_CAMERA_TYPE_TRUE_DEAPTH,
2126     OHOS_CAMERA_TYPE_LOGICAL,
2127     OHOS_CAMERA_TYPE_UNSPECIFIED,
2128 } camera_type_enum_t;
2129 
2130 // OHOS_ABILITY_CAMERA_CONNECTION_TYPE enumeration values
2131 typedef enum camera_connection_type {
2132     OHOS_CAMERA_CONNECTION_TYPE_BUILTIN = 0,
2133     OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN,
2134     OHOS_CAMERA_CONNECTION_TYPE_REMOTE,
2135 } camera_connection_type_t;
2136 
2137 // OHOS_CONTROL_EXPOSUREMODE
2138 // and OHOS_ABILITY_EXPOSURE_MODES enumeration values
2139 typedef enum camera_exposure_mode_enum {
2140     OHOS_CAMERA_EXPOSURE_MODE_MANUAL = 0,
2141     OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO,
2142     OHOS_CAMERA_EXPOSURE_MODE_LOCKED,
2143     OHOS_CAMERA_EXPOSURE_MODE_AUTO
2144 } camera_exposure_mode_enum_t;
2145 
2146 // OHOS_CONTROL_FOCUS_MODE and OHOS_ABILITY_FOCUS_MODES enumeration values
2147 typedef enum camera_focus_mode_enum {
2148     OHOS_CAMERA_FOCUS_MODE_MANUAL = 0,
2149     OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO,
2150     OHOS_CAMERA_FOCUS_MODE_AUTO,
2151     OHOS_CAMERA_FOCUS_MODE_LOCKED
2152 } camera_focus_mode_enum_t;
2153 
2154 // OHOS_ABILITY_FOCUS_ASSIST_FLASH_SUPPORTED_MODES enumeration values
2155 typedef enum camera_focus_assist_flash_mode_enum {
2156     OHOS_CAMERA_FOCUS_ASSIST_FLASH_MODE_DEFAULT = 0,
2157     OHOS_CAMERA_FOCUS_ASSIST_FLASH_MODE_AUTO,
2158     OHOS_CAMERA_FOCUS_ASSIST_FLASH_MODE_ON,
2159     OHOS_CAMERA_FOCUS_ASSIST_FLASH_MODE_OFF
2160 } camera_focus_assist_flash_mode_enum_t;
2161 
2162 // OHOS_CONTROL_FLASHMODE and OHOS_ABILITY_FLASH_MODES enumeration values
2163 typedef enum camera_flash_mode_enum {
2164     OHOS_CAMERA_FLASH_MODE_CLOSE = 0,
2165     OHOS_CAMERA_FLASH_MODE_OPEN,
2166     OHOS_CAMERA_FLASH_MODE_AUTO,
2167     OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN
2168 } camera_flash_mode_enum_t;
2169 
2170 // OHOS_CONTROL_FLASH_STATE enumeration values
2171 typedef enum camera_flash_state_enum {
2172     OHOS_CAMERA_FLASH_STATE_UNAVAILABLE = 0,
2173     OHOS_CAMERA_FLASH_STATE_CHARGING,
2174     OHOS_CAMERA_FLASH_STATE_READY,
2175     OHOS_CAMERA_FLASH_STATE_FLASHING,
2176     OHOS_CAMERA_FLASH_STATE_UNKNOWN
2177 } camera_flash_state_enum_t;
2178 
2179 // OHOS_CONTROL_AE_ANTIBANDING_MODE enumeration values
2180 typedef enum camera_ae_antibanding_mode {
2181     OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF,
2182     OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ,
2183     OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ,
2184     OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO,
2185 } camera_ae_antibanding_mode_t;
2186 
2187 // OHOS_ABILITY_AE_LOCK
2188 // OHOS_CONTROL_AE_LOCK enumeration values
2189 typedef enum camera_ae_lock {
2190     OHOS_CAMERA_AE_LOCK_OFF,
2191     OHOS_CAMERA_AE_LOCK_ON,
2192 } camera_ae_lock_t;
2193 
2194 // OHOS_CONTROL_AE_MODE enumeration values
2195 typedef enum camera_ae_mode {
2196     OHOS_CAMERA_AE_MODE_OFF,
2197     OHOS_CAMERA_AE_MODE_ON,
2198     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH,
2199     OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH,
2200     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE,
2201     OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH,
2202 } camera_ae_mode_t;
2203 
2204 // OHOS_CONTROL_AF_MODE
2205 // and OHOS_CONTROL_AF_AVAILABLE_MODES enumeration values
2206 typedef enum camera_af_mode {
2207     OHOS_CAMERA_AF_MODE_OFF,
2208     OHOS_CAMERA_AF_MODE_AUTO,
2209     OHOS_CAMERA_AF_MODE_MACRO,
2210     OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO,
2211     OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE,
2212     OHOS_CAMERA_AF_MODE_EDOF,
2213 } camera_af_mode_t;
2214 
2215 // OHOS_CONTROL_AF_TRIGGER enumeration values
2216 typedef enum camera_af_trigger {
2217     OHOS_CAMERA_AF_TRIGGER_IDLE,
2218     OHOS_CAMERA_AF_TRIGGER_START,
2219     OHOS_CAMERA_AF_TRIGGER_CANCEL,
2220 } camera_af_trigger_t;
2221 
2222 // OHOS_CONTROL_AF_STATE enumeration values
2223 typedef enum camera_af_state {
2224     OHOS_CAMERA_AF_STATE_INACTIVE,
2225     OHOS_CAMERA_AF_STATE_PASSIVE_SCAN,
2226     OHOS_CAMERA_AF_STATE_PASSIVE_FOCUSED,
2227     OHOS_CAMERA_AF_STATE_ACTIVE_SCAN,
2228     OHOS_CAMERA_AF_STATE_FOCUSED_LOCKED,
2229     OHOS_CAMERA_AF_STATE_NOT_FOCUSED_LOCKED,
2230     OHOS_CAMERA_AF_STATE_PASSIVE_UNFOCUSED,
2231 } camera_af_state_t;
2232 
2233 // OHOS_CONTROL_AWB_LOCK enumeration values
2234 typedef enum camera_awb_lock {
2235     OHOS_CAMERA_AWB_LOCK_OFF,
2236     OHOS_CAMERA_AWB_LOCK_ON,
2237 } camera_awb_lock_t;
2238 
2239 // OHOS_ABILITY_AWB_MODES and OHOS_CONTROL_AWB_MODE enumeration values
2240 typedef enum camera_awb_mode {
2241     OHOS_CAMERA_AWB_MODE_OFF,
2242     OHOS_CAMERA_AWB_MODE_AUTO,
2243     OHOS_CAMERA_AWB_MODE_INCANDESCENT,
2244     OHOS_CAMERA_AWB_MODE_FLUORESCENT,
2245     OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT,
2246     OHOS_CAMERA_AWB_MODE_DAYLIGHT,
2247     OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT,
2248     OHOS_CAMERA_AWB_MODE_TWILIGHT,
2249     OHOS_CAMERA_AWB_MODE_SHADE,
2250 } camera_awb_mode_t;
2251 
2252 // OHOS_STATISTICS_FACE_DETECT_MODE
2253 // and OHOS_STATISTICS_FACE_DETECT_SWITCH enumeration values
2254 typedef enum camera_face_detect_mode {
2255     OHOS_CAMERA_FACE_DETECT_MODE_OFF,
2256     OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE
2257 } camera_face_detect_mode_t;
2258 
2259 // OHOS_STATISTICS_HISTOGRAM_MODE enumeration values
2260 typedef enum camera_histogram_mode {
2261     OHOS_CAMERA_HISTOGRAM_MODE_OFF,
2262     OHOS_CAMERA_HISTOGRAM_MODE_ON,
2263 } camera_histogram_mode_t;
2264 
2265 // OHOS_STREAM_AVAILABLE_FORMATS
2266 // and OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS enumeration values
2267 typedef enum camera_format {
2268     OHOS_CAMERA_FORMAT_RGBA_8888 = 1,
2269     OHOS_CAMERA_FORMAT_YCBCR_420_888,
2270     OHOS_CAMERA_FORMAT_YCRCB_420_SP,
2271     OHOS_CAMERA_FORMAT_YCBCR_420_SP,
2272     OHOS_CAMERA_FORMAT_JPEG,
2273     OHOS_CAMERA_FORMAT_YCBCR_P010,
2274     OHOS_CAMERA_FORMAT_YCRCB_P010,
2275     OHOS_CAMERA_FORMAT_DNG,
2276     OHOS_CAMERA_FORMAT_422_YUYV,
2277     OHOS_CAMERA_FORMAT_DEPTH_16,
2278     OHOS_CAMERA_FORMAT_DEPTH_32,
2279     OHOS_CAMERA_FORMAT_HEIC,
2280     OHOS_CAMERA_FORMAT_IMPLEMENTATION_DEFINED = 0x1000,
2281 } camera_format_t;
2282 
2283 // OHOS_ABILITY_STREAM_QUICK_THUMBNAIL_AVAILABLE enumeration values
2284 typedef enum camera_quick_thumbnail_available {
2285     OHOS_CAMERA_QUICK_THUMBNAIL_FALSE = 0,
2286     OHOS_CAMERA_QUICK_THUMBNAIL_TRUE,
2287 } camera_quick_thumbnail_available_t;
2288 
2289 // OHOS_CONTROL_FOCUS_STATE enumeration values
2290 typedef enum camera_focus_state {
2291     OHOS_CAMERA_FOCUS_STATE_SCAN,
2292     OHOS_CAMERA_FOCUS_STATE_FOCUSED,
2293     OHOS_CAMERA_FOCUS_STATE_UNFOCUSED,
2294 } camera_focus_state_t;
2295 
2296 // OHOS_CONTROL_METER_MODE and OHOS_ABILITY_METER_MODES enumeration values
2297 typedef enum camera_meter_mode {
2298     OHOS_CAMERA_SPOT_METERING = 0,
2299     OHOS_CAMERA_REGION_METERING,
2300     OHOS_CAMERA_OVERALL_METERING,
2301     OHOS_CAMERA_CENTER_WEIGHTED_METERING,
2302 } camera_meter_mode_t;
2303 
2304 typedef enum camera_exposure_state {
2305     OHOS_CAMERA_EXPOSURE_STATE_SCAN,
2306     OHOS_CAMERA_EXPOSURE_STATE_CONVERGED,
2307 } camera_exposure_state_t;
2308 
2309 // OHOS_CONTROL_CAPTURE_MIRROR enumeration values
2310 typedef enum camera_mirror {
2311     OHOS_CAMERA_MIRROR_OFF = 0,
2312     OHOS_CAMERA_MIRROR_ON,
2313 } camera_mirror_t;
2314 
2315 // OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED
2316 enum CameraMirrorSupport {
2317     OHOS_CAMERA_MIRROR_NOT_SUPPORT = 0,
2318     OHOS_CAMERA_MIRROR_CAPTURE,
2319     OHOS_CAMERA_MIRROR_CAPTURE_VIDEO,
2320 };
2321 
2322 // OHOS_JPEG_ORIENTATION enumeration values
2323 typedef enum camera_jpeg_orientation {
2324     OHOS_CAMERA_JPEG_ROTATION_0 = 0,
2325     OHOS_CAMERA_JPEG_ROTATION_90 = 90,
2326     OHOS_CAMERA_JPEG_ROTATION_180 = 180,
2327     OHOS_CAMERA_JPEG_ROTATION_270 = 270,
2328 } camera_jpeg_orientation_t;
2329 
2330 // OHOS_JPEG_QUALITY enumeration values
2331 typedef enum camera_jpeg_quality {
2332     OHOS_CAMERA_JPEG_LEVEL_LOW = 0,
2333     OHOS_CAMERA_JPEG_LEVEL_MIDDLE,
2334     OHOS_CAMERA_JPEG_LEVEL_HIGH,
2335 } camera_jpeg_quality_t;
2336 
2337 // OHOS_ABILITY_VIDEO_STABILIZATION_MODES
2338 // and OHOS_CONTROL_VIDEO_STABILIZATION_MODE enumeration values
2339 typedef enum camera_video_stabilization_mode {
2340     OHOS_CAMERA_VIDEO_STABILIZATION_OFF = 0,
2341     OHOS_CAMERA_VIDEO_STABILIZATION_LOW,
2342     OHOS_CAMERA_VIDEO_STABILIZATION_MIDDLE,
2343     OHOS_CAMERA_VIDEO_STABILIZATION_HIGH,
2344     OHOS_CAMERA_VIDEO_STABILIZATION_AUTO,
2345 } CameraVideoStabilizationMode;
2346 
2347 // OHOS_ABILITY_FLASH_AVAILABLE enumeration values
2348 typedef enum camera_flash_available {
2349     OHOS_CAMERA_FLASH_FALSE = 0,
2350     OHOS_CAMERA_FLASH_TRUE,
2351 } CameraFlashAvailable;
2352 
2353 // OHOS_ABILITY_MEMORY_TYPE enumeration values
2354 typedef enum camera_memory_type_enum {
2355     OHOS_CAMERA_MEMORY_MMAP = 1,
2356     OHOS_CAMERA_MEMORY_USERPTR,
2357     OHOS_CAMERA_MEMORY_OVERLAY,
2358     OHOS_CAMERA_MEMORY_DMABUF,
2359 } camera_memory_type_enum_t;
2360 
2361 // OHOS_ABILITY_MUTE_MODES and OHOS_CONTROL_MUTE_MODE enumeration values
2362 typedef enum camera_mute_mode {
2363     OHOS_CAMERA_MUTE_MODE_OFF,
2364     OHOS_CAMERA_MUTE_MODE_SOLID_COLOR_BLACK,
2365 } camera_mute_mode_t;
2366 
2367 // OHOS_ABILITY_SCENE_FILTER_TYPES enumeration values
2368 typedef enum camera_filter_type {
2369     OHOS_CAMERA_FILTER_TYPE_OFF = 0,
2370     OHOS_CAMERA_FILTER_TYPE_NONE,
2371     OHOS_CAMERA_FILTER_TYPE_CLASSIC,
2372     OHOS_CAMERA_FILTER_TYPE_DAWN,
2373     OHOS_CAMERA_FILTER_TYPE_PURE,
2374     OHOS_CAMERA_FILTER_TYPE_GREY,
2375     OHOS_CAMERA_FILTER_TYPE_NATURAL,
2376     OHOS_CAMERA_FILTER_TYPE_MORI,
2377     OHOS_CAMERA_FILTER_TYPE_FAIR,
2378     OHOS_CAMERA_FILTER_TYPE_PINK,
2379 } camera_filter_type_t;
2380 
2381 // OHOS_ABILITY_SCENE_PORTRAIT_EFFECT_TYPES enumeration values
2382 typedef enum camera_portrait_effect_type {
2383     OHOS_CAMERA_PORTRAIT_EFFECT_OFF = 0,
2384     OHOS_CAMERA_PORTRAIT_CIRCLES,
2385     OHOS_CAMERA_PORTRAIT_HEART,
2386     OHOS_CAMERA_PORTRAIT_ROTATED,
2387     OHOS_CAMERA_PORTRAIT_STUDIO,
2388     OHOS_CAMERA_PORTRAIT_THEATER,
2389 } camera_portrait_effect_type_t;
2390 
2391 // OHOS_ABILITY_SCENE_BEAUTY_TYPES enumeration values
2392 typedef enum camera_beauty_type {
2393     OHOS_CAMERA_BEAUTY_TYPE_OFF = 0,
2394     OHOS_CAMERA_BEAUTY_TYPE_AUTO,
2395     OHOS_CAMERA_BEAUTY_TYPE_SKIN_SMOOTH,
2396     OHOS_CAMERA_BEAUTY_TYPE_FACE_SLENDER,
2397     OHOS_CAMERA_BEAUTY_TYPE_SKIN_TONE,
2398 } camera_beauty_type_t;
2399 
2400 //OHOS_ABILITY_SUPPORTED_COLOR_MODES and OHOS_CONTROL_SUPPORTED_COLOR_MODES enumeration
2401 typedef enum camera_xmage_color_type {
2402     CAMERA_CUSTOM_COLOR_NORMAL = 0,
2403     CAMERA_CUSTOM_COLOR_BRIGHT,
2404     CAMERA_CUSTOM_COLOR_SOFT,
2405     CAMERA_CUSTOM_COLOR_MONO,
2406 } camera_xmage_color_type_t;
2407 
2408 // OHOS_ABILITY_CAMERA_FOLDSCREEN_TYPE enumeration values
2409 typedef enum camera_fold_screen_enum {
2410     OHOS_CAMERA_FOLDSCREEN_OTHER = 0,
2411     OHOS_CAMERA_FOLDSCREEN_INNER,
2412     OHOS_CAMERA_FOLDSCREEN_OUTER,
2413 } camera_foldscreen_enum_t;
2414 
2415 // OHOS_ABILITY_CAMERA_MACRO_SUPPORTED enumeration values
2416 typedef enum camera_macro_supported_type {
2417     OHOS_CAMERA_MACRO_NOT_SUPPORTED = 0,
2418     OHOS_CAMERA_MACRO_SUPPORTED,
2419 } camera_macro_supported_type_t;
2420 
2421 // OHOS_CAMERA_MACRO_STATUS and OHOS_CONTROL_CAMERA_MACRO enumeration values
2422 typedef enum camera_macro_status_control_type {
2423     OHOS_CAMERA_MACRO_DISABLE = 0,
2424     OHOS_CAMERA_MACRO_ENABLE,
2425 } camera_macro_status_control_type_t;
2426 
2427 // OHOS_CONTROL_MOON_CAPTURE_BOOST enumeration values
2428 typedef enum camera_moon_capture_boost_control_type {
2429     OHOS_CAMERA_MOON_CAPTURE_BOOST_DISABLE = 0,
2430     OHOS_CAMERA_MOON_CAPTURE_BOOST_ENABLE,
2431 } camera_moon_capture_boost_control_type_t;
2432 
2433 // OHOS_CONTROL_PREPARE_ZOOM enumeration values
2434 typedef enum camera_zoomsmooth_control_type {
2435     OHOS_CAMERA_ZOOMSMOOTH_PREPARE_DISABLE = 0,
2436     OHOS_CAMERA_ZOOMSMOOTH_PREPARE_ENABLE,
2437 } camera_zoomsmooth_control_type_t;
2438 
2439 // OHOS_STATUS_SUPER_SLOW_MOTION enumeration values
2440 typedef enum camera_slow_motion_status_type {
2441     OHOS_CONTROL_SLOW_MOTION_STATUS_DISABLE = 0,
2442     OHOS_CONTROL_SLOW_MOTION_STATUS_READY,
2443     OHOS_CONTROL_SLOW_MOTION_STATUS_START,
2444     OHOS_CONTROL_SLOW_MOTION_STATUS_RECORDING,
2445     OHOS_CONTROL_SLOW_MOTION_STATUS_FINISH,
2446 } camera_slow_motion_status_type_t;
2447 
2448 // OHOS_ABILITY_MOTION_DETECTION_SUPPORT enumeration values
2449 typedef enum camera_motion_detection_supported_type {
2450     OHOS_CAMERA_MOTION_DETECTION_NOT_SUPPORTED = 0,
2451     OHOS_CAMERA_MOTION_DETECTION_SUPPORTED,
2452 } camera_motion_detection_supported_type_t;
2453 
2454 //  OHOS_CONTROL_MOTION_DETECTION enumeration values
2455 typedef enum camera_motion_detection_control_type {
2456     OHOS_CAMERA_MOTION_DETECTION_DISABLE = 0,
2457     OHOS_CAMERA_MOTION_DETECTION_ENABLE,
2458 } camera_motion_detection_control_type_t;
2459 
2460 // OHOS_ABILITY_MOVING_PHOTO
2461 typedef enum moving_photo_enum {
2462     OHOS_CAMERA_MOVING_PHOTO_UNSUPPORT = 0,
2463     OHOS_CAMERA_MOVING_PHOTO_SUPPORT,
2464 } moving_photo_enum_t;
2465 
2466 // OHOS_CONTROL_MOVING_PHOTO
2467 typedef enum control_moving_photo_enum {
2468     OHOS_CAMERA_MOVING_PHOTO_OFF = 0,
2469     OHOS_CAMERA_MOVING_PHOTO_ON,
2470 } control_moving_photo_enum_t;
2471 
2472 // OHOS_STATUS_FLASH_SUGGESTION enumeration values
2473 typedef enum camera_flash_suggestion_supported_enum {
2474     OHOS_CAMERA_FLASH_SUGGESTION_SUPPORTED_CLOSE = 0,
2475     OHOS_CAMERA_FLASH_SUGGESTION_SUPPORTED_OPEN,
2476 } camera_flash_suggestion_supported_enum_t;
2477 
2478 // ABILITY_SUPPORTED_TAGS enumeration values
2479 typedef enum camera_supported_enum {
2480     OHOS_CAMERA_NOT_SUPPORTED = 0,
2481     OHOS_CAMERA_SUPPORTED,
2482 } camera_supported_enum_t;
2483 
2484 // OHOS_CONTROL_HIGH_QUALITY_MODE
2485 typedef enum ControlHighQualityModeEnum {
2486     OHOS_CONTROL_HIGH_QUALITY_MODE_OFF = 0,
2487     OHOS_CONTROL_HIGH_QUALITY_MODE_ON,
2488 } ControlHighQualityModeEnumT;
2489 
2490 // OHOS_CAMERA_EFFECT_SUGGESTION_TYPE
2491 enum CameraEffectSuggestionType {
2492     OHOS_CAMERA_EFFECT_SUGGESTION_NONE = 0,
2493     OHOS_CAMERA_EFFECT_SUGGESTION_PORTRAIT,
2494     OHOS_CAMERA_EFFECT_SUGGESTION_FOOD,
2495     OHOS_CAMERA_EFFECT_SUGGESTION_SKY,
2496     OHOS_CAMERA_EFFECT_SUGGESTION_SUNRISE_SUNSET,
2497 };
2498 
2499 // OHOS_ABILITY_CAMERA_FOLD_STATUS
2500 enum CameraFoldStatus {
2501     OHOS_CAMERA_FOLD_STATUS_NONFOLDABLE = 0,
2502     OHOS_CAMERA_FOLD_STATUS_EXPANDED = 1,
2503     OHOS_CAMERA_FOLD_STATUS_FOLDED = 2,
2504 };
2505 
2506 // OHOS_CONTROL_BURST_CAPTURE
2507 enum CameraBurstCaptureEnum {
2508     OHOS_CONTROL_BURST_CAPTURE_END = 0,
2509     OHOS_CONTROL_BURST_CAPTURE_BEGIN = 1,
2510 };
2511 
2512 // OHOS_ABILITY_LIGHT_PAINTING_TYPE
2513 enum CameraLightPaintingType {
2514     OHOS_CAMERA_LIGHT_PAINTING_CAR = 0,
2515     OHOS_CAMERA_LIGHT_PAINTING_STAR,
2516     OHOS_CAMERA_LIGHT_PAINTING_WATER,
2517     OHOS_CAMERA_LIGHT_PAINTING_LIGHT,
2518 };
2519 
2520 //OHOS_CONTROL_TIME_LAPSE_TRYAE_STATE
2521 enum TimeLapseRecordState {
2522     TIME_LAPSE_IDLE = 0,
2523     TIME_LAPSE_RECORDING = 1,
2524 };
2525 
2526 //OHOS_STATUS_TIME_LAPSE_PREVIEW_TYPE
2527 enum TimeLapsePreviewType {
2528     TIME_LAPSE_PREVIEW_DARK = 1,
2529     TIME_LAPSE_PREVIEW_LIGHT = 2,
2530 };
2531 
2532 // OHOS_ABILITY_STATISTICS_DETECT_TYPE
2533 enum StatisticsDetectType {
2534     OHOS_CAMERA_HUMAN_FACE_DETECT = 0,
2535     OHOS_CAMERA_HUMAN_BODY_DETECT = 1,
2536     OHOS_CAMERA_CAT_FACE_DETECT = 2,
2537     OHOS_CAMERA_CAT_BODY_DETECT = 3,
2538     OHOS_CAMERA_DOG_FACE_DETECT = 4,
2539     OHOS_CAMERA_DOG_BODY_DETECT = 5,
2540     OHOS_CAMERA_SALIENT_DETECT = 6,
2541     OHOS_CAMERA_BAR_CODE_DETECT = 7,
2542     OHOS_CAMERA_BASE_FACE_DETECT = 8,
2543 };
2544 
2545 // OHOS_STATUS_TRIPOD_DETECTION_STATUS
2546 enum TripodStatus {
2547     TRIPOD_STATUS_INVALID = 0,
2548     TRIPOD_STATUS_ACTIVE = 1,
2549     TRIPOD_STATUS_ENTER = 2,
2550     TRIPOD_STATUS_EXITING = 3,
2551 };
2552 
2553 // OHOS_CONTROL_DEPTH_DATA_ACCURACY
2554 enum DepthDataAccuracyType {
2555     OHOS_DEPTH_DATA_ACCURACY_RELATIVE = 1,
2556     OHOS_DEPTH_DATA_ACCURACY_ABSOLUTE,
2557 };
2558 
2559 enum StatisticsDetectEmotion {
2560     OHOS_EMOTION_NEUTRAL = 0,
2561     OHOS_EMOTION_SADNESS = 1,
2562     OHOS_EMOTION_SMILE = 2,
2563     OHOS_EMOTION_SURPRISE = 3,
2564 };
2565 
2566 // OHOS_CONTROL_CAMERA_SESSION_USAGE
2567 enum CameraSessionUsageType {
2568     OHOS_CAMERA_SESSION_USAGE_BOKEH = 0,
2569 };
2570 
2571 // OHOS_CONTROL_CAMERA_SESSION_USAGE
2572 enum CameraSessionUsageControlType {
2573     OHOS_CAMERA_SESSION_USAGE_DISABLE = 0,
2574     OHOS_CAMERA_SESSION_USAGE_ENABLE = 1,
2575 };
2576 
2577 // OHOS_DEVICE_PROTECTION_STATE
2578 enum DeviceProtectionStatus {
2579     OHOS_DEVICE_SWITCH_FREQUENT = 0,
2580     OHOS_DEVICE_EXTERNAL_PRESS = 1,
2581     OHOS_DEVICE_EJECT_BLOCK = 2,
2582     OHOS_DEVICE_FALL_PROTECTION = 3,
2583 };
2584 
2585 // OHOS_ABILITY_CAMERA_PORTRAIT_THEME_SUPPORTED
2586 enum CameraPortraitThemeSupportedType {
2587     OHOS_CAMERA_PORTRAIT_THEME_NOT_SUPPORTED = 0,
2588     OHOS_CAMERA_PORTRAIT_THEME_SUPPORTED,
2589 };
2590 
2591 // OHOS_ABILITY_CAMERA_PORTRAIT_THEME_TYPES
2592 enum CameraPortraitThemeTypes {
2593     OHOS_CAMERA_PORTRAIT_THEME_TYPE_NATURAL = 0,
2594     OHOS_CAMERA_PORTRAIT_THEME_TYPE_DELICATE,
2595     OHOS_CAMERA_PORTRAIT_THEME_TYPE_STYLISH,
2596 };
2597 
2598 // OHOS_ABILITY_CAMERA_VIDEO_ROTATION_SUPPORTED
2599 enum CameraVideoRotationSupportedType {
2600     OHOS_CAMERA_VIDEO_ROTATION_NOT_SUPPORTED = 0,
2601     OHOS_CAMERA_VIDEO_ROTATION_SUPPORTED,
2602 };
2603 
2604 // OHOS_ABILITY_CAMERA_QUALITY_PRIORITIZATION
2605 enum CameraQualityPrioritization {
2606     OHOS_CAMERA_QUALITY_PRIORITIZATION_HIGH_QUALITY = 0,
2607     OHOS_CAMERA_QUALITY_PRIORITIZATION_POWER_BALANCE,
2608 };
2609 
2610 #endif
2611