• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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     OHOS_ABILITY_CAMERA_POSITION = OHOS_CAMERA_PROPERTIES_START,
93     OHOS_ABILITY_CAMERA_TYPE,
94     OHOS_ABILITY_CAMERA_CONNECTION_TYPE,
95     OHOS_ABILITY_MEMORY_TYPE,
96     OHOS_ABILITY_FPS_RANGES,
97     OHOS_ABILITY_FLASH_AVAILABLE,
98     OHOS_CAMERA_STREAM_ID,
99     OHOS_ABILITY_PRELAUNCH_AVAILABLE,
100     OHOS_ABILITY_CUSTOM_VIDEO_FPS,
101     OHOS_ABILITY_CAMERA_MODES,
102     OHOS_ABILITY_SKETCH_ENABLE_RATIO,
103     OHOS_ABILITY_SKETCH_REFERENCE_FOV_RATIO,
104     OHOS_ABILITY_CAMERA_FOLDSCREEN_TYPE,
105     OHOS_ABILITY_AVAILABLE_COLOR_SPACES,
106     OHOS_ABILITY_NIGHT_MODE_SUPPORTED_EXPOSURE_TIME,
107     OHOS_CAMERA_MESURE_EXPOSURE_TIME,
108     OHOS_CAMERA_EXPOSURE_MODE_PREVIEW_STATE,
109     OHOS_CAMERA_USER_ID,
110     OHOS_CAMERA_PROPERTIES_END,
111 
112     OHOS_SENSOR_EXPOSURE_TIME = OHOS_CAMERA_SENSOR_START,
113     OHOS_SENSOR_COLOR_CORRECTION_GAINS,
114     OHOS_SENSOR_ORIENTATION,
115     OHOS_ABILITY_MUTE_MODES,
116     OHOS_CONTROL_MUTE_MODE,
117     OHOS_CAMERA_SENSOR_END,
118 
119     OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE = OHOS_CAMERA_SENSOR_INFO_START,
120     OHOS_SENSOR_INFO_SENSITIVITY_RANGE,
121     OHOS_SENSOR_INFO_MAX_FRAME_DURATION,
122     OHOS_SENSOR_INFO_PHYSICAL_SIZE,
123     OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE,
124     OHOS_SENSOR_INFO_TIMESTAMP,
125     OHOS_CAMERA_SENSOR_INFO_END,
126 
127     OHOS_STATISTICS_FACE_DETECT_MODE = OHOS_CAMERA_STATISTICS_START,
128     OHOS_STATISTICS_FACE_DETECT_SWITCH,
129     OHOS_STATISTICS_FACE_DETECT_MAX_NUM,
130     OHOS_STATISTICS_HISTOGRAM_MODE,
131     OHOS_STATISTICS_FACE_IDS,
132     OHOS_STATISTICS_FACE_LANDMARKS,
133     OHOS_STATISTICS_FACE_RECTANGLES,
134     OHOS_STATISTICS_FACE_SCORES,
135     OHOS_CAMERA_STATISTICS_END,
136 
137     OHOS_CONTROL_AE_ANTIBANDING_MODE = OHOS_DEVICE_CONTROL_START,
138     OHOS_CONTROL_AE_EXPOSURE_COMPENSATION,
139     OHOS_CONTROL_AE_LOCK,
140     OHOS_CONTROL_AE_MODE,
141     OHOS_CONTROL_AE_REGIONS,
142     OHOS_CONTROL_AE_TARGET_FPS_RANGE,
143     OHOS_CONTROL_FPS_RANGES,
144     OHOS_CONTROL_AF_MODE,
145     OHOS_CONTROL_AF_REGIONS,
146     OHOS_CONTROL_AF_TRIGGER,
147     OHOS_CONTROL_AF_TRIGGER_ID,
148     OHOS_CONTROL_AF_STATE,
149     OHOS_CONTROL_AWB_LOCK,
150     OHOS_CONTROL_AWB_MODE,
151     OHOS_CONTROL_AWB_REGIONS,
152     OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
153     OHOS_CONTROL_AE_AVAILABLE_MODES,
154     OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
155     OHOS_CONTROL_AE_COMPENSATION_RANGE,
156     OHOS_CONTROL_AE_COMPENSATION_STEP,
157     OHOS_CONTROL_AF_AVAILABLE_MODES,
158     OHOS_CONTROL_AWB_AVAILABLE_MODES,
159     OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED,
160     OHOS_CONTROL_CAPTURE_MIRROR,
161     OHOS_CONTROL_FOCUS_STATE,
162     OHOS_CONTROL_METER_POINT,
163     OHOS_CONTROL_METER_MODE,
164     OHOS_CONTROL_EXPOSURE_STATE,
165     OHOS_CONTROL_FOCUSED_POINT,
166     OHOS_CONTROL_NIGHT_MODE_TRY_AE,
167     OHOS_CONTROL_MANUAL_EXPOSURE_TIME,
168     OHOS_STATUS_CAMERA_CURRENT_FPS,
169     OHOS_DEVICE_CONTROL_END,
170 
171     // Camera device image acquisition related
172     OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES = OHOS_DEVICE_EXPOSURE_START,
173     OHOS_CONTROL_EXPOSUREMODE,
174     OHOS_ABILITY_EXPOSURE_MODES,
175     OHOS_CONTROL_EXPOSURE_MODE,
176     OHOS_ABILITY_METER_MODES,
177     OHOS_ABILITY_SCENE_EXPOSURE_MODES,
178     OHOS_ABILITY_EXPOSURE_TIME,
179     OHOS_ABILITY_AE_LOCK,
180     OHOS_DEVICE_EXPOSURE_END,
181 
182     OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES = OHOS_DEVICE_FOCUS_START,
183     OHOS_CONTROL_FOCUSMODE,
184     OHOS_ABILITY_FOCUS_MODES,
185     OHOS_CONTROL_FOCUS_MODE,
186     OHOS_ABILITY_FOCAL_LENGTH,
187     OHOS_ABILITY_SCENE_FOCUS_MODES,
188     OHOS_DEVICE_FOCUS_END,
189 
190     OHOS_ABILITY_DEVICE_AVAILABLE_AWBMODES = OHOS_DEVICE_WHITE_BLANCE_START,
191     OHOS_ABILITY_AWB_MODES,
192     OHOS_ABILITY_AWB_LOCK,
193     OHOS_DEVICE_WHITE_BLANCE_END,
194 
195     OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES = OHOS_DEVICE_FLASH_START,
196     OHOS_CONTROL_FLASHMODE,
197     OHOS_ABILITY_FLASH_MODES,
198     OHOS_CONTROL_FLASH_MODE,
199     OHOS_CONTROL_FLASH_STATE,
200     OHOS_ABILITY_SCENE_FLASH_MODES,
201     OHOS_DEVICE_FLASH_END,
202 
203     OHOS_ABILITY_ZOOM_RATIO_RANGE = OHOS_DEVICE_ZOOM_START,
204     OHOS_CONTROL_ZOOM_RATIO,
205     OHOS_CONTROL_ZOOM_CROP_REGION,
206     OHOS_ABILITY_ZOOM_CAP,
207     OHOS_ABILITY_SCENE_ZOOM_CAP,
208     OHOS_STATUS_CAMERA_CURRENT_ZOOM_RATIO,
209     OHOS_CONTROL_SMOOTH_ZOOM_RATIOS,
210     OHOS_CONTROL_PREPARE_ZOOM,
211     OHOS_ABILITY_CAMERA_ZOOM_PERFORMANCE,
212     OHOS_DEVICE_ZOOM_END,
213 
214     // Camera flow control related
215     OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS = OHOS_STREAM_ABILITY_START,
216     OHOS_STREAM_AVAILABLE_FORMATS,
217     OHOS_ABILITY_STREAM_AVAILABLE_EXTEND_CONFIGURATIONS,
218     OHOS_ABILITY_STREAM_QUICK_THUMBNAIL_AVAILABLE,
219     OHOS_ABILITY_PORTRAIT_RESOLUSION,
220     OHOS_ABILITY_SCENE_STREAM_QUICK_THUMBNAIL_AVAILABLE,
221     OHOS_ABILITY_DEFERRED_IMAGE_DELIVERY,
222     OHOS_CONTROL_DEFERRED_IMAGE_DELIVERY,
223     OHOS_STREAM_ABILITY_END,
224 
225     OHOS_JPEG_GPS_COORDINATES = OHOS_STREAM_JPEG_START,
226     OHOS_JPEG_GPS_PROCESSING_METHOD,
227     OHOS_JPEG_GPS_TIMESTAMP,
228     OHOS_JPEG_ORIENTATION,
229     OHOS_JPEG_QUALITY,
230     OHOS_JPEG_THUMBNAIL_QUALITY,
231     OHOS_JPEG_THUMBNAIL_SIZE,
232     OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES,
233     OHOS_JPEG_MAX_SIZE,
234     OHOS_JPEG_SIZE,
235     OHOS_STREAM_JPEG_END,
236 
237     OHOS_ABILITY_VIDEO_STABILIZATION_MODES = OHOS_STREAM_VIDEO_START,
238     OHOS_CONTROL_VIDEO_STABILIZATION_MODE,
239     OHOS_STREAM_VIDEO_END,
240 
241     // camera effects & algorithms
242     OHOS_ABILITY_SCENE_FILTER_TYPES = OHOS_CAMERA_EFFECT_START,
243     OHOS_CONTROL_FILTER_TYPE,
244     OHOS_ABILITY_SCENE_PORTRAIT_EFFECT_TYPES,
245     OHOS_CONTROL_PORTRAIT_EFFECT_TYPE,
246     OHOS_ABILITY_SCENE_BEAUTY_TYPES,
247     OHOS_CONTROL_BEAUTY_TYPE,
248     OHOS_ABILITY_BEAUTY_AUTO_VALUES,
249     OHOS_CONTROL_BEAUTY_AUTO_VALUE,
250     OHOS_ABILITY_BEAUTY_FACE_SLENDER_VALUES,
251     OHOS_CONTROL_BEAUTY_FACE_SLENDER_VALUE,
252     OHOS_ABILITY_BEAUTY_SKIN_TONE_VALUES,
253     OHOS_CONTROL_BEAUTY_SKIN_TONE_VALUE,
254     OHOS_ABILITY_BEAUTY_SKIN_SMOOTH_VALUES,
255     OHOS_CONTROL_BEAUTY_SKIN_SMOOTH_VALUE,
256     OHOS_ABILITY_CAMERA_MACRO_SUPPORTED,
257     OHOS_CAMERA_MACRO_STATUS,
258     OHOS_CONTROL_CAMERA_MACRO,
259     OHOS_ABILITY_CAMERA_VIRTUAL_APERTURE_RANGE,
260     OHOS_CONTROL_CAMERA_VIRTUAL_APERTURE_VALUE,
261     OHOS_ABILITY_CAMERA_PHYSICAL_APERTURE_RANGE,
262     OHOS_CONTROL_CAMERA_PHYSICAL_APERTURE_VALUE,
263     OHOS_DEVICE_EXITCAMERA_EVENT,
264     OHOS_CAMERA_EFFECT_END,
265 
266     // camera secure related
267     OHOS_CONTROL_SECURE_FACE_MODE = OHOS_CAMERA_SECURE_START,
268     OHOS_CONTROL_SECURE_FACE_INFO,
269     OHOS_CONTROL_SECURE_FACE_AUTH_RESULT,
270     OHOS_CONTROL_SECURE_FLASH_SEQ,
271     OHOS_CONTROL_SECURE_IR_LED_SWITCH,
272     OHOS_CONTROL_SECURE_IR_LOCKAE_SWITCH,
273     OHOS_CAMERA_SECURE_END,
274 
275     //XMAGE MODE
276     OHOS_ABILITY_SUPPORTED_COLOR_MODES = OHOS_XMAGE_COLOR_MODES_START,
277     OHOS_CONTROL_SUPPORTED_COLOR_MODES,
278     OHOS_XMAGE_COLOR_MODES_END,
279 } camera_device_metadata_tag_t;
280 
281 // OHOS_ABILITY_CAMERA_POSITION enumeration values
282 typedef enum camera_position_enum {
283     OHOS_CAMERA_POSITION_FRONT = 0,
284     OHOS_CAMERA_POSITION_BACK,
285     OHOS_CAMERA_POSITION_OTHER
286 } camera_position_enum_t;
287 
288 // OHOS_ABILITY_CAMERA_TYPE enumeration values
289 typedef enum camera_type_enum {
290     OHOS_CAMERA_TYPE_WIDE_ANGLE = 0,
291     OHOS_CAMERA_TYPE_ULTRA_WIDE,
292     OHOS_CAMERA_TYPE_TELTPHOTO,
293     OHOS_CAMERA_TYPE_TRUE_DEAPTH,
294     OHOS_CAMERA_TYPE_LOGICAL,
295     OHOS_CAMERA_TYPE_UNSPECIFIED,
296 } camera_type_enum_t;
297 
298 // OHOS_ABILITY_CAMERA_CONNECTION_TYPE enumeration values
299 typedef enum camera_connection_type {
300     OHOS_CAMERA_CONNECTION_TYPE_BUILTIN = 0,
301     OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN,
302     OHOS_CAMERA_CONNECTION_TYPE_REMOTE,
303 } camera_connection_type_t;
304 
305 // OHOS_CONTROL_EXPOSUREMODE
306 // and OHOS_ABILITY_EXPOSURE_MODES enumeration values
307 typedef enum camera_exposure_mode_enum {
308     OHOS_CAMERA_EXPOSURE_MODE_MANUAL = 0,
309     OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO,
310     OHOS_CAMERA_EXPOSURE_MODE_LOCKED,
311     OHOS_CAMERA_EXPOSURE_MODE_AUTO
312 } camera_exposure_mode_enum_t;
313 
314 // OHOS_CONTROL_FOCUS_MODE and OHOS_ABILITY_FOCUS_MODES enumeration values
315 typedef enum camera_focus_mode_enum {
316     OHOS_CAMERA_FOCUS_MODE_MANUAL = 0,
317     OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO,
318     OHOS_CAMERA_FOCUS_MODE_AUTO,
319     OHOS_CAMERA_FOCUS_MODE_LOCKED
320 } camera_focus_mode_enum_t;
321 
322 // OHOS_CONTROL_FLASHMODE and OHOS_ABILITY_FLASH_MODES enumeration values
323 typedef enum camera_flash_mode_enum {
324     OHOS_CAMERA_FLASH_MODE_CLOSE = 0,
325     OHOS_CAMERA_FLASH_MODE_OPEN,
326     OHOS_CAMERA_FLASH_MODE_AUTO,
327     OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN
328 } camera_flash_mode_enum_t;
329 
330 // OHOS_CONTROL_FLASH_STATE enumeration values
331 typedef enum camera_flash_state_enum {
332     OHOS_CAMERA_FLASH_STATE_UNAVAILABLE = 0,
333     OHOS_CAMERA_FLASH_STATE_CHARGING,
334     OHOS_CAMERA_FLASH_STATE_READY,
335     OHOS_CAMERA_FLASH_STATE_FLASHING,
336     OHOS_CAMERA_FLASH_STATE_UNKNOWN
337 } camera_flash_state_enum_t;
338 
339 // OHOS_CONTROL_AE_ANTIBANDING_MODE enumeration values
340 typedef enum camera_ae_antibanding_mode {
341     OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF,
342     OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ,
343     OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ,
344     OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO,
345 } camera_ae_antibanding_mode_t;
346 
347 // OHOS_ABILITY_AE_LOCK
348 // OHOS_CONTROL_AE_LOCK enumeration values
349 typedef enum camera_ae_lock {
350     OHOS_CAMERA_AE_LOCK_OFF,
351     OHOS_CAMERA_AE_LOCK_ON,
352 } camera_ae_lock_t;
353 
354 // OHOS_CONTROL_AE_MODE enumeration values
355 typedef enum camera_ae_mode {
356     OHOS_CAMERA_AE_MODE_OFF,
357     OHOS_CAMERA_AE_MODE_ON,
358     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH,
359     OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH,
360     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE,
361     OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH,
362 } camera_ae_mode_t;
363 
364 // OHOS_CONTROL_AF_MODE
365 // and OHOS_CONTROL_AF_AVAILABLE_MODES enumeration values
366 typedef enum camera_af_mode {
367     OHOS_CAMERA_AF_MODE_OFF,
368     OHOS_CAMERA_AF_MODE_AUTO,
369     OHOS_CAMERA_AF_MODE_MACRO,
370     OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO,
371     OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE,
372     OHOS_CAMERA_AF_MODE_EDOF,
373 } camera_af_mode_t;
374 
375 // OHOS_CONTROL_AF_TRIGGER enumeration values
376 typedef enum camera_af_trigger {
377     OHOS_CAMERA_AF_TRIGGER_IDLE,
378     OHOS_CAMERA_AF_TRIGGER_START,
379     OHOS_CAMERA_AF_TRIGGER_CANCEL,
380 } camera_af_trigger_t;
381 
382 // OHOS_CONTROL_AF_STATE enumeration values
383 typedef enum camera_af_state {
384     OHOS_CAMERA_AF_STATE_INACTIVE,
385     OHOS_CAMERA_AF_STATE_PASSIVE_SCAN,
386     OHOS_CAMERA_AF_STATE_PASSIVE_FOCUSED,
387     OHOS_CAMERA_AF_STATE_ACTIVE_SCAN,
388     OHOS_CAMERA_AF_STATE_FOCUSED_LOCKED,
389     OHOS_CAMERA_AF_STATE_NOT_FOCUSED_LOCKED,
390     OHOS_CAMERA_AF_STATE_PASSIVE_UNFOCUSED,
391 } camera_af_state_t;
392 
393 // OHOS_CONTROL_AWB_LOCK enumeration values
394 typedef enum camera_awb_lock {
395     OHOS_CAMERA_AWB_LOCK_OFF,
396     OHOS_CAMERA_AWB_LOCK_ON,
397 } camera_awb_lock_t;
398 
399 // OHOS_ABILITY_AWB_MODES and OHOS_CONTROL_AWB_MODE enumeration values
400 typedef enum camera_awb_mode {
401     OHOS_CAMERA_AWB_MODE_OFF,
402     OHOS_CAMERA_AWB_MODE_AUTO,
403     OHOS_CAMERA_AWB_MODE_INCANDESCENT,
404     OHOS_CAMERA_AWB_MODE_FLUORESCENT,
405     OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT,
406     OHOS_CAMERA_AWB_MODE_DAYLIGHT,
407     OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT,
408     OHOS_CAMERA_AWB_MODE_TWILIGHT,
409     OHOS_CAMERA_AWB_MODE_SHADE,
410 } camera_awb_mode_t;
411 
412 // OHOS_STATISTICS_FACE_DETECT_MODE
413 // and OHOS_STATISTICS_FACE_DETECT_SWITCH enumeration values
414 typedef enum camera_face_detect_mode {
415     OHOS_CAMERA_FACE_DETECT_MODE_OFF,
416     OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE
417 } camera_face_detect_mode_t;
418 
419 // OHOS_STATISTICS_HISTOGRAM_MODE enumeration values
420 typedef enum camera_histogram_mode {
421     OHOS_CAMERA_HISTOGRAM_MODE_OFF,
422     OHOS_CAMERA_HISTOGRAM_MODE_ON,
423 } camera_histogram_mode_t;
424 
425 // OHOS_STREAM_AVAILABLE_FORMATS
426 // and OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS enumeration values
427 typedef enum camera_format {
428     OHOS_CAMERA_FORMAT_RGBA_8888 = 1,
429     OHOS_CAMERA_FORMAT_YCBCR_420_888,
430     OHOS_CAMERA_FORMAT_YCRCB_420_SP,
431     OHOS_CAMERA_FORMAT_JPEG,
432     OHOS_CAMERA_FORMAT_YCBCR_P010,
433     OHOS_CAMERA_FORMAT_YCRCB_P010,
434     OHOS_CAMERA_FORMAT_IMPLEMENTATION_DEFINED,
435 } camera_format_t;
436 
437 // OHOS_ABILITY_STREAM_QUICK_THUMBNAIL_AVAILABLE enumeration values
438 typedef enum camera_quick_thumbnail_available {
439     OHOS_CAMERA_QUICK_THUMBNAIL_FALSE = 0,
440     OHOS_CAMERA_QUICK_THUMBNAIL_TRUE,
441 } camera_quick_thumbnail_available_t;
442 
443 // OHOS_CONTROL_FOCUS_STATE enumeration values
444 typedef enum camera_focus_state {
445     OHOS_CAMERA_FOCUS_STATE_SCAN,
446     OHOS_CAMERA_FOCUS_STATE_FOCUSED,
447     OHOS_CAMERA_FOCUS_STATE_UNFOCUSED,
448 } camera_focus_state_t;
449 
450 // OHOS_CONTROL_METER_MODE and OHOS_ABILITY_METER_MODES enumeration values
451 typedef enum camera_meter_mode {
452     OHOS_CAMERA_SPOT_METERING = 0,
453     OHOS_CAMERA_REGION_METERING,
454     OHOS_CAMERA_OVERALL_METERING,
455 } camera_meter_mode_t;
456 
457 typedef enum camera_exposure_state {
458     OHOS_CAMERA_EXPOSURE_STATE_SCAN,
459     OHOS_CAMERA_EXPOSURE_STATE_CONVERGED,
460 } camera_exposure_state_t;
461 
462 // OHOS_CONTROL_CAPTURE_MIRROR
463 // and OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED enumeration values
464 typedef enum camera_mirror {
465     OHOS_CAMERA_MIRROR_OFF = 0,
466     OHOS_CAMERA_MIRROR_ON,
467 } camera_mirror_t;
468 
469 // OHOS_JPEG_ORIENTATION enumeration values
470 typedef enum camera_jpeg_orientation {
471     OHOS_CAMERA_JPEG_ROTATION_0 = 0,
472     OHOS_CAMERA_JPEG_ROTATION_90 = 90,
473     OHOS_CAMERA_JPEG_ROTATION_180 = 180,
474     OHOS_CAMERA_JPEG_ROTATION_270 = 270,
475 } camera_jpeg_orientation_t;
476 
477 // OHOS_JPEG_QUALITY enumeration values
478 typedef enum camera_jpeg_quality {
479     OHOS_CAMERA_JPEG_LEVEL_LOW = 0,
480     OHOS_CAMERA_JPEG_LEVEL_MIDDLE,
481     OHOS_CAMERA_JPEG_LEVEL_HIGH,
482 } camera_jpeg_quality_t;
483 
484 // OHOS_ABILITY_VIDEO_STABILIZATION_MODES
485 // and OHOS_CONTROL_VIDEO_STABILIZATION_MODE enumeration values
486 typedef enum camera_video_stabilization_mode {
487     OHOS_CAMERA_VIDEO_STABILIZATION_OFF = 0,
488     OHOS_CAMERA_VIDEO_STABILIZATION_LOW,
489     OHOS_CAMERA_VIDEO_STABILIZATION_MIDDLE,
490     OHOS_CAMERA_VIDEO_STABILIZATION_HIGH,
491     OHOS_CAMERA_VIDEO_STABILIZATION_AUTO,
492 } CameraVideoStabilizationMode;
493 
494 // OHOS_ABILITY_FLASH_AVAILABLE enumeration values
495 typedef enum camera_flash_available {
496     OHOS_CAMERA_FLASH_FALSE = 0,
497     OHOS_CAMERA_FLASH_TRUE,
498 } CameraFlashAvailable;
499 
500 // OHOS_ABILITY_MEMORY_TYPE enumeration values
501 typedef enum camera_memory_type_enum {
502     OHOS_CAMERA_MEMORY_MMAP = 1,
503     OHOS_CAMERA_MEMORY_USERPTR,
504     OHOS_CAMERA_MEMORY_OVERLAY,
505     OHOS_CAMERA_MEMORY_DMABUF,
506 } camera_memory_type_enum_t;
507 
508 // OHOS_ABILITY_MUTE_MODES and OHOS_CONTROL_MUTE_MODE enumeration values
509 typedef enum camera_mute_mode {
510     OHOS_CAMERA_MUTE_MODE_OFF,
511     OHOS_CAMERA_MUTE_MODE_SOLID_COLOR_BLACK,
512 } camera_mute_mode_t;
513 
514 // OHOS_ABILITY_SCENE_FILTER_TYPES enumeration values
515 typedef enum camera_filter_type {
516     OHOS_CAMERA_FILTER_TYPE_OFF = 0,
517     OHOS_CAMERA_FILTER_TYPE_NONE,
518     OHOS_CAMERA_FILTER_TYPE_CLASSIC,
519     OHOS_CAMERA_FILTER_TYPE_DAWN,
520     OHOS_CAMERA_FILTER_TYPE_PURE,
521     OHOS_CAMERA_FILTER_TYPE_GREY,
522     OHOS_CAMERA_FILTER_TYPE_NATURAL,
523     OHOS_CAMERA_FILTER_TYPE_MORI,
524     OHOS_CAMERA_FILTER_TYPE_FAIR,
525     OHOS_CAMERA_FILTER_TYPE_PINK,
526 } camera_filter_type_t;
527 
528 // OHOS_ABILITY_SCENE_PORTRAIT_EFFECT_TYPES enumeration values
529 typedef enum camera_portrait_effect_type {
530     OHOS_CAMERA_PORTRAIT_EFFECT_OFF = 0,
531     OHOS_CAMERA_PORTRAIT_CIRCLES,
532     OHOS_CAMERA_PORTRAIT_HEART,
533     OHOS_CAMERA_PORTRAIT_ROTATED,
534     OHOS_CAMERA_PORTRAIT_STUDIO,
535     OHOS_CAMERA_PORTRAIT_THEATER,
536 } camera_portrait_effect_type_t;
537 
538 // OHOS_ABILITY_SCENE_BEAUTY_TYPES enumeration values
539 typedef enum camera_beauty_type {
540     OHOS_CAMERA_BEAUTY_TYPE_OFF = 0,
541     OHOS_CAMERA_BEAUTY_TYPE_AUTO,
542     OHOS_CAMERA_BEAUTY_TYPE_SKIN_SMOOTH,
543     OHOS_CAMERA_BEAUTY_TYPE_FACE_SLENDER,
544     OHOS_CAMERA_BEAUTY_TYPE_SKIN_TONE,
545 } camera_beauty_type_t;
546 
547 //OHOS_ABILITY_SUPPORTED_COLOR_MODES and OHOS_CONTROL_SUPPORTED_COLOR_MODES enumeration
548 typedef enum camera_xmage_color_type {
549     CAMERA_CUSTOM_COLOR_NORMAL = 0,
550     CAMERA_CUSTOM_COLOR_BRIGHT,
551     CAMERA_CUSTOM_COLOR_SOFT,
552 } camera_xmage_color_type_t;
553 
554 // OHOS_ABILITY_CAMERA_FOLDSCREEN_TYPE enumeration values
555 typedef enum camera_fold_screen_enum {
556     OHOS_CAMERA_FOLDSCREEN_OTHER = 0,
557     OHOS_CAMERA_FOLDSCREEN_INNER,
558     OHOS_CAMERA_FOLDSCREEN_OUTER,
559 } camera_foldscreen_enum_t;
560 
561 // OHOS_ABILITY_CAMERA_MACRO_SUPPORTED enumeration values
562 typedef enum camera_macro_supported_type {
563     OHOS_CAMERA_MACRO_NOT_SUPPORTED = 0,
564     OHOS_CAMERA_MACRO_SUPPORTED,
565 } camera_macro_supported_type_t;
566 
567 // OHOS_CAMERA_MACRO_STATUS and OHOS_CONTROL_CAMERA_MACRO enumeration values
568 typedef enum camera_macro_status_control_type {
569     OHOS_CAMERA_MACRO_DISABLE = 0,
570     OHOS_CAMERA_MACRO_ENABLE,
571 } camera_macro_status_control_type_t;
572 
573 // OHOS_CONTROL_PREPARE_ZOOM enumeration values
574 typedef enum camera_zoomsmooth_control_type {
575     OHOS_CAMERA_ZOOMSMOOTH_PREPARE_DISABLE = 0,
576     OHOS_CAMERA_ZOOMSMOOTH_PREPARE_ENABLE,
577 } camera_zoomsmooth_control_type_t;
578 
579 #endif
580