1 /*
2  * Copyright (c) 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 /**
17  * @addtogroup OH_Camera
18  * @{
19  *
20  * @brief Provide the definition of the C interface for the camera module.
21  *
22  * @syscap SystemCapability.Multimedia.Camera.Core
23  *
24  * @since 11
25  * @version 1.0
26  */
27 
28 /**
29  * @file camera.h
30  *
31  * @brief Declare the camera base concepts.
32  *
33  * @library libohcamera.so
34  * @kit CameraKit
35  * @syscap SystemCapability.Multimedia.Camera.Core
36  * @since 11
37  * @version 1.0
38  */
39 
40 #ifndef NATIVE_INCLUDE_CAMERA_CAMERA_H
41 #define NATIVE_INCLUDE_CAMERA_CAMERA_H
42 
43 #include <stdint.h>
44 #include <stdio.h>
45 #include <stdbool.h>
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51 /**
52  * @brief camera manager object.
53  *
54  * A pointer can be created using {@link OH_Camera_GetCameraManager} method.
55  *
56  * @since 11
57  * @version 1.0
58  */
59 typedef struct Camera_Manager Camera_Manager;
60 
61 /**
62  * @brief Enum for camera error code.
63  *
64  * @since 11
65  * @version 1.0
66  */
67 typedef enum Camera_ErrorCode {
68     /**
69      * Camera result is ok.
70      */
71     CAMERA_OK = 0,
72 
73     /**
74      * Parameter missing or parameter type incorrect.
75      */
76     CAMERA_INVALID_ARGUMENT = 7400101,
77 
78     /**
79      * Operation not allowed.
80      */
81     CAMERA_OPERATION_NOT_ALLOWED = 7400102,
82 
83     /**
84      * Session not config.
85      */
86     CAMERA_SESSION_NOT_CONFIG = 7400103,
87 
88     /**
89      * Session not running.
90      */
91     CAMERA_SESSION_NOT_RUNNING = 7400104,
92 
93     /**
94      * Session config locked.
95      */
96     CAMERA_SESSION_CONFIG_LOCKED = 7400105,
97 
98     /**
99      * Device setting locked.
100      */
101     CAMERA_DEVICE_SETTING_LOCKED = 7400106,
102 
103     /**
104      * Can not use camera cause of conflict.
105      */
106     CAMERA_CONFLICT_CAMERA = 7400107,
107 
108     /**
109      * Camera disabled cause of security reason.
110      */
111     CAMERA_DEVICE_DISABLED = 7400108,
112 
113     /**
114      * Can not use camera cause of preempted.
115      */
116     CAMERA_DEVICE_PREEMPTED = 7400109,
117 
118     /**
119      * Unresolved conflicts with current configurations.
120      * @since 12
121      */
122     CAMERA_UNRESOLVED_CONFLICTS_WITH_CURRENT_CONFIGURATIONS = 7400110,
123 
124     /**
125      * Camera service fatal error.
126      */
127     CAMERA_SERVICE_FATAL_ERROR = 7400201
128 } Camera_ErrorCode;
129 
130 /**
131  * @brief Enum for camera status.
132  *
133  * @since 11
134  * @version 1.0
135  */
136 typedef enum Camera_Status {
137     /**
138      * Appear status.
139      */
140     CAMERA_STATUS_APPEAR = 0,
141 
142     /**
143      * Disappear status.
144      */
145     CAMERA_STATUS_DISAPPEAR = 1,
146 
147     /**
148      * Available status.
149      */
150     CAMERA_STATUS_AVAILABLE = 2,
151 
152     /**
153      * Unavailable status.
154      */
155     CAMERA_STATUS_UNAVAILABLE = 3
156 } Camera_Status;
157 
158 /**
159  * @brief Enum for scence mode.
160  *
161  * @since 12
162  * @version 1.0
163  */
164 typedef enum Camera_SceneMode {
165     /**
166      * Normal photo mode.
167      */
168     NORMAL_PHOTO = 1,
169 
170     /**
171      * Normal video mode.
172      */
173     NORMAL_VIDEO = 2,
174 
175     /**
176      * Secure camera mode.
177      */
178     SECURE_PHOTO = 12
179 } Camera_SceneMode;
180 
181 /**
182  * @brief Enum for camera position.
183  *
184  * @since 11
185  * @version 1.0
186  */
187 typedef enum Camera_Position {
188     /**
189      * Unspecified position.
190      */
191     CAMERA_POSITION_UNSPECIFIED = 0,
192 
193     /**
194      * Back position.
195      */
196     CAMERA_POSITION_BACK = 1,
197 
198     /**
199      * Front position.
200      */
201     CAMERA_POSITION_FRONT = 2
202 } Camera_Position;
203 
204 /**
205  * @brief Enum for camera type.
206  *
207  * @since 11
208  * @version 1.0
209  */
210 typedef enum Camera_Type {
211     /**
212      * Default camera type.
213      */
214     CAMERA_TYPE_DEFAULT = 0,
215 
216     /**
217      * Wide camera.
218      */
219     CAMERA_TYPE_WIDE_ANGLE = 1,
220 
221     /**
222      * Ultra wide camera.
223      */
224     CAMERA_TYPE_ULTRA_WIDE = 2,
225 
226     /**
227      * Telephoto camera.
228      */
229     CAMERA_TYPE_TELEPHOTO = 3,
230 
231     /**
232      * True depth camera.
233      */
234     CAMERA_TYPE_TRUE_DEPTH = 4
235 } Camera_Type;
236 
237 /**
238  * @brief Enum for camera connection type.
239  *
240  * @since 11
241  * @version 1.0
242  */
243 typedef enum Camera_Connection {
244     /**
245      * Built-in camera.
246      */
247     CAMERA_CONNECTION_BUILT_IN = 0,
248 
249     /**
250      * Camera connected using USB.
251      */
252     CAMERA_CONNECTION_USB_PLUGIN = 1,
253 
254     /**
255      * Remote camera.
256      */
257     CAMERA_CONNECTION_REMOTE = 2
258 } Camera_Connection;
259 
260 /**
261  * @brief Enum for camera format type.
262  *
263  * @since 11
264  * @version 1.0
265  */
266 typedef enum Camera_Format {
267     /**
268      * RGBA 8888 Format.
269      */
270     CAMERA_FORMAT_RGBA_8888 = 3,
271 
272     /**
273      * YUV 420 Format.
274      */
275     CAMERA_FORMAT_YUV_420_SP = 1003,
276 
277     /**
278      * JPEG Format.
279      */
280     CAMERA_FORMAT_JPEG = 2000,
281 
282     /**
283      * YCBCR P010 Format.
284      * @since 12
285      */
286     CAMERA_FORMAT_YCBCR_P010 = 2001,
287 
288     /**
289      * YCRCB P010 Format.
290      * @since 12
291      */
292     CAMERA_FORMAT_YCRCB_P010 = 2002
293 } Camera_Format;
294 
295 /**
296  * @brief Enum for flash mode.
297  *
298  * @since 11
299  * @version 1.0
300  */
301 typedef enum Camera_FlashMode {
302     /**
303      * Close mode.
304      */
305     FLASH_MODE_CLOSE = 0,
306 
307     /**
308      * Open mode.
309      */
310     FLASH_MODE_OPEN = 1,
311 
312     /**
313      * Auto mode.
314      */
315     FLASH_MODE_AUTO = 2,
316 
317     /**
318      * Always open mode.
319      */
320     FLASH_MODE_ALWAYS_OPEN = 3
321 } Camera_FlashMode;
322 
323 /**
324  * @brief Enum for exposure mode.
325  *
326  * @since 11
327  * @version 1.0
328  */
329 typedef enum Camera_ExposureMode {
330     /**
331      * Lock exposure mode.
332      */
333     EXPOSURE_MODE_LOCKED = 0,
334 
335     /**
336      * Auto exposure mode.
337      */
338     EXPOSURE_MODE_AUTO = 1,
339 
340     /**
341      * Continuous automatic exposure.
342      */
343     EXPOSURE_MODE_CONTINUOUS_AUTO = 2
344 } Camera_ExposureMode;
345 
346 /**
347  * @brief Enum for focus mode.
348  *
349  * @since 11
350  * @version 1.0
351  */
352 typedef enum Camera_FocusMode {
353     /**
354      * Manual mode.
355      */
356     FOCUS_MODE_MANUAL = 0,
357 
358     /**
359      * Continuous auto mode.
360      */
361     FOCUS_MODE_CONTINUOUS_AUTO = 1,
362 
363     /**
364      * Auto mode.
365      */
366     FOCUS_MODE_AUTO = 2,
367 
368     /**
369      * Locked mode.
370      */
371     FOCUS_MODE_LOCKED = 3
372 } Camera_FocusMode;
373 
374 /**
375  * @brief Enum for focus state.
376  *
377  * @since 11
378  * @version 1.0
379  */
380 typedef enum Camera_FocusState {
381     /**
382      * Scan state.
383      */
384     FOCUS_STATE_SCAN = 0,
385 
386     /**
387      * Focused state.
388      */
389     FOCUS_STATE_FOCUSED = 1,
390 
391     /**
392      * Unfocused state.
393      */
394     FOCUS_STATE_UNFOCUSED = 2
395 } Camera_FocusState;
396 
397 /**
398  * @brief Enum for video stabilization mode.
399  *
400  * @since 11
401  * @version 1.0
402  */
403 typedef enum Camera_VideoStabilizationMode {
404     /**
405      * Turn off video stablization.
406      */
407     STABILIZATION_MODE_OFF = 0,
408 
409     /**
410      * LOW mode provides basic stabilization effect.
411      */
412     STABILIZATION_MODE_LOW = 1,
413 
414     /**
415      * MIDDLE mode means algorithms can achieve better effects than LOW mode.
416      */
417     STABILIZATION_MODE_MIDDLE = 2,
418 
419     /**
420      * HIGH mode means algorithms can achieve better effects than MIDDLE mode.
421      */
422     STABILIZATION_MODE_HIGH = 3,
423 
424     /**
425      * Camera HDF can select mode automatically.
426      */
427     STABILIZATION_MODE_AUTO = 4
428 } Camera_VideoStabilizationMode;
429 
430 /**
431  * @brief Enum for the image rotation angles.
432  *
433  * @since 11
434  * @version 1.0
435  */
436 typedef enum Camera_ImageRotation {
437     /**
438      * The capture image rotates 0 degrees.
439      */
440     IAMGE_ROTATION_0 = 0,
441 
442     /**
443      * The capture image rotates 90 degrees.
444      */
445     IAMGE_ROTATION_90 = 90,
446 
447     /**
448      * The capture image rotates 180 degrees.
449      */
450     IAMGE_ROTATION_180 = 180,
451 
452     /**
453      * The capture image rotates 270 degrees.
454      */
455     IAMGE_ROTATION_270 = 270
456 } Camera_ImageRotation;
457 
458 /**
459  * @brief Enum for the image quality levels.
460  *
461  * @since 11
462  * @version 1.0
463  */
464 typedef enum Camera_QualityLevel {
465     /**
466      * High image quality.
467      */
468     QUALITY_LEVEL_HIGH = 0,
469 
470     /**
471      * Medium image quality.
472      */
473     QUALITY_LEVEL_MEDIUM = 1,
474 
475     /**
476      * Low image quality.
477      */
478     QUALITY_LEVEL_LOW = 2
479 } Camera_QualityLevel;
480 
481 /**
482  * @brief Enum for metadata object type.
483  *
484  * @since 11
485  * @version 1.0
486  */
487 typedef enum Camera_MetadataObjectType {
488     /**
489      * Face detection.
490      */
491     FACE_DETECTION = 0
492 } Camera_MetadataObjectType;
493 
494 /**
495  * @brief Enum for torch mode.
496  *
497  * @since 12
498  * @version 1.0
499  */
500 typedef enum Camera_TorchMode {
501     /**
502      * The device torch is always off.
503      */
504     OFF = 0,
505 
506     /**
507      * The device torch is always on.
508      */
509     ON = 1,
510 
511     /**
512      * The device continuously monitors light levels and
513      * uses the torch when necessary.
514      */
515     AUTO = 2
516 } Camera_TorchMode;
517 
518 /**
519  * @brief Enum for smooth zoom mode.
520  *
521  * @since 12
522  * @version 1.0
523  */
524 typedef enum Camera_SmoothZoomMode {
525     /**
526      * Normal zoom mode.
527      */
528     NORMAL = 0
529 } Camera_SmoothZoomMode;
530 
531 /**
532  * @brief Enum for preconfig type.
533  *
534  * @since 12
535  * @version 1.0
536  */
537 typedef enum Camera_PreconfigType {
538     /**
539      * The preconfig type is 720P.
540      */
541     PRECONFIG_720P = 0,
542 
543     /**
544      * The preconfig type is 1080P.
545      */
546     PRECONFIG_1080P = 1,
547 
548     /**
549      * The preconfig type is 4K.
550      */
551     PRECONFIG_4K = 2,
552 
553     /**
554      * The preconfig type is high quality.
555      */
556     PRECONFIG_HIGH_QUALITY = 3
557 } Camera_PreconfigType;
558 
559 /**
560  * @brief Enum for preconfig ratio.
561  *
562  * @since 12
563  * @version 1.0
564  */
565 typedef enum Camera_PreconfigRatio {
566     /**
567      * The preconfig ratio is 1:1.
568      */
569     PRECONFIG_RATIO_1_1 = 0,
570 
571     /**
572      * The preconfig ratio 4:3.
573      */
574     PRECONFIG_RATIO_4_3 = 1,
575 
576     /**
577      * The preconfig ratio 16:9.
578      */
579     PRECONFIG_RATIO_16_9 = 2
580 } Camera_PreconfigRatio;
581 
582 /**
583  * @brief Size parameter.
584  *
585  * @since 11
586  * @version 1.0
587  */
588 typedef struct Camera_Size {
589     /**
590      * Width.
591      */
592     uint32_t width;
593 
594     /**
595      * Height.
596      */
597     uint32_t height;
598 } Camera_Size;
599 
600 /**
601  * @brief Profile for camera streams.
602  *
603  * @since 11
604  * @version 1.0
605  */
606 typedef struct Camera_Profile {
607     /**
608      * Camera format.
609      */
610     Camera_Format format;
611 
612     /**
613      * Picture size.
614      */
615     Camera_Size size;
616 } Camera_Profile;
617 
618 /**
619  * @brief Frame rate range.
620  *
621  * @since 11
622  * @version 1.0
623  */
624 typedef struct Camera_FrameRateRange {
625     /**
626      * Min frame rate.
627      */
628     uint32_t min;
629 
630     /**
631      * Max frame rate.
632      */
633     uint32_t max;
634 } Camera_FrameRateRange;
635 
636 /**
637  * @brief Video profile.
638  *
639  * @since 11
640  * @version 1.0
641  */
642 typedef struct Camera_VideoProfile {
643     /**
644      * Camera format.
645      */
646     Camera_Format format;
647 
648     /**
649      * Picture size.
650      */
651     Camera_Size size;
652 
653     /**
654      * Frame rate in unit fps (frames per second).
655      */
656     Camera_FrameRateRange range;
657 } Camera_VideoProfile;
658 
659 /**
660  * @brief Camera output capability.
661  *
662  * @since 11
663  * @version 1.0
664  */
665 typedef struct Camera_OutputCapability {
666     /**
667      * Preview profiles list.
668      */
669     Camera_Profile** previewProfiles;
670 
671     /**
672      * Size of preview profiles list.
673      */
674     uint32_t previewProfilesSize;
675 
676     /**
677      * Photo profiles list.
678      */
679     Camera_Profile** photoProfiles;
680 
681     /**
682      * Size of photo profiles list.
683      */
684     uint32_t photoProfilesSize;
685 
686     /**
687      * Video profiles list.
688      */
689     Camera_VideoProfile** videoProfiles;
690 
691     /**
692      * Size of video profiles list.
693      */
694     uint32_t videoProfilesSize;
695 
696     /**
697      * Metadata object types list.
698      */
699     Camera_MetadataObjectType** supportedMetadataObjectTypes;
700 
701     /**
702      * Size of metadata object types list.
703      */
704     uint32_t metadataProfilesSize;
705 } Camera_OutputCapability;
706 
707 /**
708  * @brief Camera device object.
709  *
710  * @since 11
711  * @version 1.0
712  */
713 typedef struct Camera_Device {
714     /**
715      * Camera id attribute.
716      */
717     char* cameraId;
718 
719     /**
720      * Camera position attribute.
721      */
722     Camera_Position cameraPosition;
723 
724     /**
725      * Camera type attribute.
726      */
727     Camera_Type cameraType;
728 
729     /**
730      * Camera connection type attribute.
731      */
732     Camera_Connection connectionType;
733 } Camera_Device;
734 
735 /**
736  * @brief Camera status info.
737  *
738  * @since 11
739  * @version 1.0
740  */
741 typedef struct Camera_StatusInfo {
742     /**
743      * Camera instance.
744      */
745     Camera_Device* camera;
746 
747     /**
748      * Current camera status.
749      */
750     Camera_Status status;
751 } Camera_StatusInfo;
752 
753 /**
754  * @brief Point parameter.
755  *
756  * @since 11
757  * @version 1.0
758  */
759 typedef struct Camera_Point {
760     /**
761      * X co-ordinate.
762      */
763     double x;
764 
765     /**
766      * Y co-ordinate.
767      */
768     double y;
769 } Camera_Point;
770 
771 /**
772  * @brief Photo capture location.
773  *
774  * @since 11
775  * @version 1.0
776  */
777 typedef struct Camera_Location {
778     /**
779      * Latitude.
780      */
781     double latitude;
782 
783     /**
784      * Longitude.
785      */
786     double longitude;
787 
788     /**
789      * Altitude.
790      */
791     double altitude;
792 } Camera_Location;
793 
794 /**
795  * @brief Photo capture options to set.
796  *
797  * @since 11
798  * @version 1.0
799  */
800 typedef struct Camera_PhotoCaptureSetting {
801     /**
802      * Photo image quality.
803      */
804     Camera_QualityLevel quality;
805 
806     /**
807      * Photo rotation.
808      */
809     Camera_ImageRotation rotation;
810 
811     /**
812      * Photo location.
813      */
814     Camera_Location* location;
815 
816     /**
817      * Set the mirror photo function switch, default to false.
818      */
819     bool mirror;
820 } Camera_PhotoCaptureSetting;
821 
822 /**
823  * @brief Frame shutter callback info.
824  *
825  * @since 11
826  * @version 1.0
827  */
828 typedef struct Camera_FrameShutterInfo {
829     /**
830      * Capture id.
831      */
832     int32_t captureId;
833 
834     /**
835      * Timestamp for frame.
836      */
837     uint64_t timestamp;
838 } Camera_FrameShutterInfo;
839 
840 /**
841  * @brief Capture end info.
842  *
843  * @since 11
844  * @version 1.0
845  */
846 typedef struct Camera_CaptureEndInfo {
847     /**
848      * Capture id.
849      */
850     int32_t captureId;
851 
852     /**
853      * Frame count.
854      */
855     int64_t frameCount;
856 } Camera_CaptureEndInfo;
857 
858 /**
859  * @brief Rectangle definition.
860  *
861  * @since 11
862  * @version 1.0
863  */
864 typedef struct Camera_Rect {
865     /**
866      * X coordinator of top left point.
867      */
868     int32_t topLeftX;
869 
870     /**
871      * Y coordinator of top left point.
872      */
873     int32_t topLeftY;
874 
875     /**
876      * Width of this rectangle.
877      */
878     int32_t width;
879 
880     /**
881      * Height of this rectangle.
882      */
883     int32_t height;
884 } Camera_Rect;
885 
886 /**
887  * @brief Metadata object basis.
888  *
889  * @since 11
890  * @version 1.0
891  */
892 typedef struct Camera_MetadataObject {
893     /**
894      * Metadata object type.
895      */
896     Camera_MetadataObjectType type;
897 
898     /**
899      * Metadata object timestamp in milliseconds.
900      */
901     int64_t timestamp;
902 
903     /**
904      * The axis-aligned bounding box of detected metadata object.
905      */
906     Camera_Rect* boundingBox;
907 } Camera_MetadataObject;
908 
909 /**
910  * @brief Torch Status Info.
911  *
912  * @since 12
913  * @version 1.0
914  */
915 typedef struct Camera_TorchStatusInfo {
916     /**
917      * is torch available.
918      */
919     bool isTorchAvailable;
920 
921     /**
922      * is torch active.
923      */
924     bool isTorchActive;
925 
926     /**
927      * the current torch brightness level.
928      */
929     float torchLevel;
930 } Camera_TorchStatusInfo;
931 
932 /**
933  * @brief SmoothZoomInfo object.
934  *
935  * @since 12
936  * @version 1.0
937  */
938 typedef struct Camera_SmoothZoomInfo {
939     /**
940      * The duration of smooth zoom.
941      */
942     int32_t duration;
943 } Camera_SmoothZoomInfo;
944 
945 /**
946  * @brief Capture start info.
947  *
948  * @since 12
949  * @version 1.0
950  */
951 typedef struct Camera_CaptureStartInfo {
952     /**
953      * Capture id.
954      */
955     int32_t captureId;
956 
957     /**
958      * Time(in milliseconds) is the shutter time for the photo.
959      */
960     int64_t time;
961 } Camera_CaptureStartInfo;
962 
963 /**
964  * @brief Frame shutter end callback info.
965  *
966  * @since 12
967  * @version 1.0
968  */
969 typedef struct Camera_FrameShutterEndInfo {
970     /**
971      * Capture id.
972      */
973     int32_t captureId;
974 } Camera_FrameShutterEndInfo;
975 
976 /**
977 * @brief Enum for fold status.
978 *
979 * @since 13
980 * @version 1.0
981 */
982 typedef enum Camera_FoldStatus {
983     /**
984      * Non_foldable status.
985      */
986     NON_FOLDABLE = 0,
987 
988     /**
989      * Expanded status.
990      */
991     EXPANDED = 1,
992 
993     /**
994      * Folded status.
995      */
996     FOLDED = 2
997 } Camera_FoldStatus;
998 
999 /**
1000  * @brief Fold status info.
1001  *
1002  * @since 13
1003  * @version 1.0
1004  */
1005 typedef struct Camera_FoldStatusInfo {
1006     /**
1007      * Camera instance list.
1008      */
1009     Camera_Device** supportedCameras;
1010 
1011     /**
1012      * Size of camera list.
1013      */
1014     uint32_t cameraSize;
1015 
1016     /**
1017      * Current fold status.
1018      */
1019     Camera_FoldStatus foldStatus;
1020 } Camera_FoldStatusInfo;
1021 
1022 /**
1023  * @brief Auto device switch status info.
1024  *
1025  * @since 13
1026  * @version 1.0
1027  */
1028 typedef struct Camera_AutoDeviceSwitchStatusInfo {
1029     /**
1030      * is device switched.
1031      */
1032     bool isDeviceSwitched;
1033 
1034     /**
1035      * is device capability changed.
1036      */
1037     bool isDeviceCapabilityChanged;
1038 } Camera_AutoDeviceSwitchStatusInfo;
1039 
1040 /**
1041  * @brief Creates a CameraManager instance.
1042  *
1043  * @param cameraManager the output {@link Camera_Manager} cameraManager will be created
1044  *        if the method call succeeds.
1045  * @return {@link #CAMERA_OK} if the method call succeeds.
1046  *         {@link #INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
1047  *         {@link #CAMERA_SERVICE_FATAL_ERROR} if camera service fatal error.
1048  * @since 11
1049  */
1050 Camera_ErrorCode OH_Camera_GetCameraManager(Camera_Manager** cameraManager);
1051 
1052 /**
1053  * @brief Delete the CameraManager instance.
1054  *
1055  * @param cameraManager the {@link Camera_Manager} cameraManager instance to be deleted.
1056  * @return {@link #CAMERA_OK} if the method call succeeds.
1057  *         {@link #INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
1058  *         {@link #CAMERA_SERVICE_FATAL_ERROR} if camera service fatal error.
1059  * @since 11
1060  */
1061 Camera_ErrorCode OH_Camera_DeleteCameraManager(Camera_Manager* cameraManager);
1062 
1063 /**
1064  * @brief Enum for quality prioritization.
1065  *
1066  * @since 14
1067  * @version 1.0
1068  */
1069 typedef enum Camera_QualityPrioritization {
1070     /**
1071      * Hight quality priority.
1072      */
1073     HIGH_QUALITY = 0,
1074 
1075     /**
1076      * Power balance priority.
1077      */
1078     POWER_BALANCE = 1
1079 } Camera_QualityPrioritization;
1080 
1081 #ifdef __cplusplus
1082 }
1083 #endif
1084 
1085 #endif // NATIVE_INCLUDE_CAMERA_CAMERA_H
1086 /** @} */