• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 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 image post-processing related
36     OHOS_POST_PROCESS_CONTROL  = 0x2000,
37     OHOS_POST_PROCESS_COLOR,
38     OHOS_POST_PROCESS_HDR,
39     OHOS_POST_PROCESS_PORTRAIT,
40     OHOS_POST_PROCESS_NIGHT,
41 
42     // Camera flow control related
43     OHOS_STREAM_ABILITY  = 0x3000,
44     OHOS_STREAM_CONTROL,   // General control: frame rate, resolution, mirroring
45     OHOS_STREAM_JPEG,
46     OHOS_STREAM_VIDEO,     // Video encoding related
47     OHOS_STREAM_DEPTH,
48     OHOS_STREAM_METADATA,
49     OHOS_STREAM_METADATA_FACE,
50     OHOS_STREAM_METADATA_BODY,
51 
52     OHOS_ABILITY_SECTION_END
53 } camera_ability_section_t;
54 
55 typedef enum camera_device_metadata_section_start {
56     OHOS_CAMERA_PROPERTIES_START = OHOS_CAMERA_PROPERTIES << 16,
57     OHOS_CAMERA_LENS_START = OHOS_CAMERA_LENS << 16,
58     OHOS_CAMERA_SENSOR_START = OHOS_CAMERA_SENSOR << 16,
59     OHOS_CAMERA_SENSOR_INFO_START = OHOS_CAMERA_SENSOR_INFO << 16,
60     OHOS_CAMERA_STATISTICS_START = OHOS_CAMERA_STATISTICS <<16,
61 
62     OHOS_DEVICE_CONTROL_START = OHOS_DEVICE_CONTROL << 16,
63     OHOS_DEVICE_EXPOSURE_START = OHOS_DEVICE_EXPOSURE << 16,
64     OHOS_DEVICE_FOCUS_START = OHOS_DEVICE_FOCUS << 16,
65     OHOS_DEVICE_WHITE_BLANCE_START = OHOS_DEVICE_WHITE_BLANCE << 16,
66     OHOS_DEVICE_FLASH_START = OHOS_DEVICE_FLASH << 16,
67     OHOS_DEVICE_ZOOM_START = OHOS_DEVICE_ZOOM << 16,
68 
69     OHOS_POST_PROCESS_CONTROL_START = OHOS_POST_PROCESS_CONTROL << 16,
70     OHOS_POST_PROCESS_COLOR_START = OHOS_POST_PROCESS_COLOR << 16,
71     OHOS_POST_PROCESS_HDR_START = OHOS_POST_PROCESS_HDR << 16,
72     OHOS_POST_PROCESS_PORTRAIT_START = OHOS_POST_PROCESS_PORTRAIT << 16,
73     OHOS_POST_PROCESS_NIGHT_START = OHOS_POST_PROCESS_NIGHT << 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 } camera_device_info_section_start_t;
84 
85 typedef enum camera_device_metadata_tag {
86     // Camera attribute related item
87     OHOS_ABILITY_CAMERA_POSITION = OHOS_CAMERA_PROPERTIES_START,
88     OHOS_ABILITY_CAMERA_TYPE,
89     OHOS_ABILITY_CAMERA_CONNECTION_TYPE,
90     OHOS_CAMERA_PROPERTIES_END,
91 
92     OHOS_SENSOR_EXPOSURE_TIME = OHOS_CAMERA_SENSOR_START,
93     OHOS_SENSOR_COLOR_CORRECTION_GAINS,
94     OHOS_SENSOR_ORIENTATION,
95     OHOS_CAMERA_SENSOR_END,
96 
97     OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE = OHOS_CAMERA_SENSOR_INFO_START,
98     OHOS_SENSOR_INFO_SENSITIVITY_RANGE,
99     OHOS_SENSOR_INFO_MAX_FRAME_DURATION,
100     OHOS_SENSOR_INFO_PHYSICAL_SIZE,
101     OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE,
102     OHOS_CAMERA_SENSOR_INFO_END,
103 
104     OHOS_STATISTICS_FACE_DETECT_MODE = OHOS_CAMERA_STATISTICS_START,
105     OHOS_STATISTICS_HISTOGRAM_MODE,
106     OHOS_STATISTICS_FACE_IDS,
107     OHOS_STATISTICS_FACE_LANDMARKS,
108     OHOS_STATISTICS_FACE_RECTANGLES,
109     OHOS_STATISTICS_FACE_SCORES,
110     OHOS_CAMERA_STATISTICS_END,
111 
112     OHOS_CONTROL_AE_ANTIBANDING_MODE = OHOS_DEVICE_CONTROL_START,
113     OHOS_CONTROL_AE_EXPOSURE_COMPENSATION,
114     OHOS_CONTROL_AE_LOCK,
115     OHOS_CONTROL_AE_MODE,
116     OHOS_CONTROL_AE_REGIONS,
117     OHOS_CONTROL_AE_TARGET_FPS_RANGE,
118     OHOS_CONTROL_AF_MODE,
119     OHOS_CONTROL_AF_REGIONS,
120     OHOS_CONTROL_AF_TRIGGER,
121     OHOS_CONTROL_AF_TRIGGER_ID,
122     OHOS_CONTROL_AF_STATE,
123     OHOS_CONTROL_AWB_LOCK,
124     OHOS_CONTROL_AWB_MODE,
125     OHOS_CONTROL_AWB_REGIONS,
126     OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
127     OHOS_CONTROL_AE_AVAILABLE_MODES,
128     OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
129     OHOS_CONTROL_AE_COMPENSATION_RANGE,
130     OHOS_CONTROL_AE_COMPENSATION_STEP,
131     OHOS_CONTROL_AF_AVAILABLE_MODES,
132     OHOS_CONTROL_AWB_AVAILABLE_MODES,
133     OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED,
134     OHOS_CONTROL_CAPTURE_MIRROR,
135     OHOS_DEVICE_CONTROL_END,
136 
137     // Camera device image acquisition related
138     OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES = OHOS_DEVICE_EXPOSURE_START,
139     OHOS_CONTROL_EXPOSUREMODE,
140     OHOS_DEVICE_EXPOSURE_END,
141 
142     OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES = OHOS_DEVICE_FOCUS_START,
143     OHOS_CONTROL_FOCUSMODE,
144     OHOS_DEVICE_FOCUS_END,
145 
146     OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES = OHOS_DEVICE_FLASH_START,
147     OHOS_CONTROL_FLASHMODE,
148     OHOS_CONTROL_FLASH_STATE,
149     OHOS_DEVICE_FLASH_END,
150 
151     OHOS_ABILITY_ZOOM_RATIO_RANGE = OHOS_DEVICE_ZOOM_START,
152     OHOS_CONTROL_ZOOM_RATIO,
153     OHOS_CONTROL_ZOOM_CROP_REGION,
154     OHOS_ABILITY_ZOOM_CAP,
155     OHOS_ABILITY_SCENE_ZOOM_CAP,
156     OHOS_DEVICE_ZOOM_END,
157 
158     // Camera flow control related
159     OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS = OHOS_STREAM_ABILITY_START,
160     OHOS_STREAM_AVAILABLE_FORMATS,
161     OHOS_STREAM_ABILITY_END,
162 
163     OHOS_JPEG_GPS_COORDINATES = OHOS_STREAM_JPEG_START,
164     OHOS_JPEG_GPS_PROCESSING_METHOD,
165     OHOS_JPEG_GPS_TIMESTAMP,
166     OHOS_JPEG_ORIENTATION,
167     OHOS_JPEG_QUALITY,
168     OHOS_JPEG_THUMBNAIL_QUALITY,
169     OHOS_JPEG_THUMBNAIL_SIZE,
170     OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES,
171     OHOS_JPEG_MAX_SIZE,
172     OHOS_JPEG_SIZE,
173     OHOS_STREAM_JPEG_END,
174 } camera_device_metadata_tag_t;
175 
176 // OHOS_CAMERA_POSITION
177 typedef enum camera_position_enum {
178     OHOS_CAMERA_POSITION_FRONT = 0,
179     OHOS_CAMERA_POSITION_BACK,
180     OHOS_CAMERA_POSITION_OTHER
181 } camera_position_enum_t;
182 
183 // OHOS_CAMERA_TYPE
184 typedef enum camera_type_enum {
185     OHOS_CAMERA_TYPE_WIDE_ANGLE = 0,
186     OHOS_CAMERA_TYPE_ULTRA_WIDE,
187     OHOS_CAMERA_TYPE_TELTPHOTO,
188     OHOS_CAMERA_TYPE_TRUE_DEAPTH,
189     OHOS_CAMERA_TYPE_LOGICAL,
190     OHOS_CAMERA_TYPE_UNSPECIFIED,
191 } camera_type_enum_t;
192 
193 // OHOS_CAMERA_CONNECTION_TYPE
194 typedef enum camera_connection_type {
195     OHOS_CAMERA_CONNECTION_TYPE_BUILTIN = 0,
196     OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN,
197     OHOS_CAMERA_CONNECTION_TYPE_REMOTE,
198 } camera_connection_type_t;
199 
200 // OHOS_EXPOSURE_MODE
201 typedef enum camera_exposure_mode_enum {
202     OHOS_CAMERA_EXPOSURE_MODE_MANUAL = 0,
203     OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO
204 } camera_exposure_mode_enum_t;
205 
206 // OHOS_FOCUS_MODE
207 typedef enum camera_focus_mode_enum {
208     OHOS_CAMERA_FOCUS_MODE_MANUAL = 0,
209     OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO,
210     OHOS_CAMERA_FOCUS_MODE_AUTO,
211     OHOS_CAMERA_FOCUS_MODE_LOCKED
212 } camera_focus_mode_enum_t;
213 
214 // OHOS_FLASH_MODE
215 typedef enum camera_flash_mode_enum {
216     OHOS_CAMERA_FLASH_MODE_CLOSE = 0,
217     OHOS_CAMERA_FLASH_MODE_OPEN,
218     OHOS_CAMERA_FLASH_MODE_AUTO,
219     OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN
220 } camera_flash_mode_enum_t;
221 
222 // OHOS_CONTROL_FLASH_STATE
223 typedef enum camera_flash_state_enum {
224     OHOS_CAMERA_FLASH_STATE_UNAVAILABLE = 0,
225     OHOS_CAMERA_FLASH_STATE_CHARGING,
226     OHOS_CAMERA_FLASH_STATE_READY,
227     OHOS_CAMERA_FLASH_STATE_FLASHING,
228     OHOS_CAMERA_FLASH_STATE_UNKNOWN
229 } camera_flash_state_enum_t;
230 
231 // OHOS_CONTROL_AE_ANTIBANDING_MODE
232 typedef enum camera_ae_antibanding_mode {
233     OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF,
234     OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ,
235     OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ,
236     OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO,
237 } camera_ae_antibanding_mode_t;
238 
239 // OHOS_CONTROL_AE_LOCK
240 typedef enum camera_ae_lock {
241     OHOS_CAMERA_AE_LOCK_OFF,
242     OHOS_CAMERA_AE_LOCK_ON,
243 } camera_ae_lock_t;
244 
245 // OHOS_CONTROL_AE_MODE
246 typedef enum camera_ae_mode {
247     OHOS_CAMERA_AE_MODE_OFF,
248     OHOS_CAMERA_AE_MODE_ON,
249     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH,
250     OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH,
251     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE,
252     OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH,
253 } camera_ae_mode_t;
254 
255 // OHOS_CONTROL_AF_MODE
256 typedef enum camera_af_mode {
257     OHOS_CAMERA_AF_MODE_OFF,
258     OHOS_CAMERA_AF_MODE_AUTO,
259     OHOS_CAMERA_AF_MODE_MACRO,
260     OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO,
261     OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE,
262     OHOS_CAMERA_AF_MODE_EDOF,
263 } camera_af_mode_t;
264 
265 // OHOS_CONTROL_AF_TRIGGER
266 typedef enum camera_af_trigger {
267     OHOS_CAMERA_AF_TRIGGER_IDLE,
268     OHOS_CAMERA_AF_TRIGGER_START,
269     OHOS_CAMERA_AF_TRIGGER_CANCEL,
270 } camera_af_trigger_t;
271 
272 // OHOS_CONTROL_AF_STATE
273 typedef enum camera_af_state {
274     OHOS_CAMERA_AF_STATE_INACTIVE,
275     OHOS_CAMERA_AF_STATE_PASSIVE_SCAN,
276     OHOS_CAMERA_AF_STATE_PASSIVE_FOCUSED,
277     OHOS_CAMERA_AF_STATE_ACTIVE_SCAN,
278     OHOS_CAMERA_AF_STATE_FOCUSED_LOCKED,
279     OHOS_CAMERA_AF_STATE_NOT_FOCUSED_LOCKED,
280     OHOS_CAMERA_AF_STATE_PASSIVE_UNFOCUSED,
281 } camera_af_state_t;
282 
283 // OHOS_CONTROL_AWB_LOCK
284 typedef enum camera_awb_lock {
285     OHOS_CAMERA_AWB_LOCK_OFF,
286     OHOS_CAMERA_AWB_LOCK_ON,
287 } camera_awb_lock_t;
288 
289 // OHOS_CONTROL_AWB_MODE
290 typedef enum camera_awb_mode {
291     OHOS_CAMERA_AWB_MODE_OFF,
292     OHOS_CAMERA_AWB_MODE_AUTO,
293     OHOS_CAMERA_AWB_MODE_INCANDESCENT,
294     OHOS_CAMERA_AWB_MODE_FLUORESCENT,
295     OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT,
296     OHOS_CAMERA_AWB_MODE_DAYLIGHT,
297     OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT,
298     OHOS_CAMERA_AWB_MODE_TWILIGHT,
299     OHOS_CAMERA_AWB_MODE_SHADE,
300 } camera_awb_mode_t;
301 
302 // OHOS_STATISTICS_FACE_DETECT_MODE
303 typedef enum camera_face_detect_mode {
304     OHOS_CAMERA_FACE_DETECT_MODE_OFF,
305     OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE,
306     OHOS_CAMERA_FACE_DETECT_MODE_FULL,
307 } camera_face_detect_mode_t;
308 
309 // OHOS_STATISTICS_HISTOGRAM_MODE
310 typedef enum camera_histogram_mode {
311     OHOS_CAMERA_HISTOGRAM_MODE_OFF,
312     OHOS_CAMERA_HISTOGRAM_MODE_ON,
313 } camera_histogram_mode_t;
314 
315 // OHOS_STREAM_AVAILABLE_FORMATS
316 typedef enum camera_format {
317     OHOS_CAMERA_FORMAT_RGBA_8888 = 1,
318     OHOS_CAMERA_FORMAT_YCBCR_420_888,
319     OHOS_CAMERA_FORMAT_YCRCB_420_SP,
320     OHOS_CAMERA_FORMAT_JPEG,
321 } camera_format_t;
322 
323 #endif
324