2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __MUSE_CAMERA_H__
18 #define __MUSE_CAMERA_H__
26 * @brief This file contains the muse camera API for framework, related structures and enumerations.
32 #include <tbm_bufmgr.h>
36 * @brief Enumeration for the muse camera apis.
39 MUSE_CAMERA_API_CREATE, /* 0 */
40 MUSE_CAMERA_API_DESTROY,
41 MUSE_CAMERA_API_START_PREVIEW,
42 MUSE_CAMERA_API_STOP_PREVIEW,
43 MUSE_CAMERA_API_START_CAPTURE,
44 MUSE_CAMERA_API_SUPPORT_CONTINUOUS_CAPTURE, /* 5 */
45 MUSE_CAMERA_API_START_CONTINUOUS_CAPTURE,
46 MUSE_CAMERA_API_STOP_CONTINUOUS_CAPTURE,
47 MUSE_CAMERA_API_SUPPORT_FACE_DETECTION,
48 MUSE_CAMERA_API_SUPPORT_ZERO_SHUTTER_LAG,
49 MUSE_CAMERA_API_SUPPORT_MEDIA_PACKET_PREVIEW_CB, /* 10 */
50 MUSE_CAMERA_API_GET_DEVICE_COUNT,
51 MUSE_CAMERA_API_START_FACE_DETECTION,
52 MUSE_CAMERA_API_STOP_FACE_DETECTION,
53 MUSE_CAMERA_API_GET_STATE,
54 MUSE_CAMERA_API_START_FOCUSING, /* 15 */
55 MUSE_CAMERA_API_CANCEL_FOCUSING,
56 MUSE_CAMERA_API_SET_DISPLAY,
57 MUSE_CAMERA_API_SET_PREVIEW_RESOLUTION,
58 MUSE_CAMERA_API_SET_CAPTURE_RESOLUTION,
59 MUSE_CAMERA_API_SET_CAPTURE_FORMAT, /* 20 */
60 MUSE_CAMERA_API_SET_PREVIEW_FORMAT,
61 MUSE_CAMERA_API_GET_PREVIEW_RESOLUTION,
62 MUSE_CAMERA_API_SET_DISPLAY_ROTATION,
63 MUSE_CAMERA_API_GET_DISPLAY_ROTATION,
64 MUSE_CAMERA_API_SET_DISPLAY_FLIP, /* 25 */
65 MUSE_CAMERA_API_GET_DISPLAY_FLIP,
66 MUSE_CAMERA_API_SET_DISPLAY_VISIBLE,
67 MUSE_CAMERA_API_IS_DISPLAY_VISIBLE,
68 MUSE_CAMERA_API_SET_DISPLAY_MODE,
69 MUSE_CAMERA_API_GET_DISPLAY_MODE, /* 30 */
70 MUSE_CAMERA_API_GET_CAPTURE_RESOLUTION,
71 MUSE_CAMERA_API_GET_CAPTURE_FORMAT,
72 MUSE_CAMERA_API_GET_PREVIEW_FORMAT,
73 MUSE_CAMERA_API_GET_FACING_DIRECTION,
74 MUSE_CAMERA_API_GET_FLASH_STATE, /* 35 */
75 MUSE_CAMERA_API_SET_PREVIEW_CB,
76 MUSE_CAMERA_API_UNSET_PREVIEW_CB,
77 MUSE_CAMERA_API_SET_MEDIA_PACKET_PREVIEW_CB,
78 MUSE_CAMERA_API_UNSET_MEDIA_PACKET_PREVIEW_CB,
79 MUSE_CAMERA_API_SET_STATE_CHANGED_CB, /* 40 */
80 MUSE_CAMERA_API_UNSET_STATE_CHANGED_CB,
81 MUSE_CAMERA_API_SET_INTERRUPTED_CB,
82 MUSE_CAMERA_API_UNSET_INTERRUPTED_CB,
83 MUSE_CAMERA_API_SET_FOCUS_CHANGED_CB,
84 MUSE_CAMERA_API_UNSET_FOCUS_CHANGED_CB, /* 45 */
85 MUSE_CAMERA_API_SET_ERROR_CB,
86 MUSE_CAMERA_API_UNSET_ERROR_CB,
87 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_RESOLUTION,
88 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_RESOLUTION,
89 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_FORMAT, /* 50 */
90 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_FORMAT,
91 MUSE_CAMERA_API_GET_RECOMMENDED_PREVIEW_RESOLUTION,
92 MUSE_CAMERA_API_ATTR_GET_LENS_ORIENTATION,
93 MUSE_CAMERA_API_ATTR_SET_THEATER_MODE,
94 MUSE_CAMERA_API_ATTR_GET_THEATER_MODE, /* 55 */
95 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_THEATER_MODE,
96 MUSE_CAMERA_API_ATTR_SET_PREVIEW_FPS,
97 MUSE_CAMERA_API_ATTR_SET_IMAGE_QUALITY,
98 MUSE_CAMERA_API_ATTR_GET_PREVIEW_FPS,
99 MUSE_CAMERA_API_ATTR_GET_IMAGE_QUALITY, /* 60 */
100 MUSE_CAMERA_API_ATTR_SET_ZOOM,
101 MUSE_CAMERA_API_ATTR_SET_AF_MODE,
102 MUSE_CAMERA_API_ATTR_SET_AF_AREA,
103 MUSE_CAMERA_API_ATTR_CLEAR_AF_AREA,
104 MUSE_CAMERA_API_ATTR_SET_EXPOSURE_MODE, /* 65 */
105 MUSE_CAMERA_API_ATTR_SET_EXPOSURE,
106 MUSE_CAMERA_API_ATTR_SET_ISO,
107 MUSE_CAMERA_API_ATTR_SET_BRIGHTNESS,
108 MUSE_CAMERA_API_ATTR_SET_CONTRAST,
109 MUSE_CAMERA_API_ATTR_SET_WHITEBALANCE, /* 70 */
110 MUSE_CAMERA_API_ATTR_SET_EFFECT,
111 MUSE_CAMERA_API_ATTR_SET_SCENE_MODE,
112 MUSE_CAMERA_API_ATTR_ENABLE_TAG,
113 MUSE_CAMERA_API_ATTR_SET_TAG_IMAGE_DESCRIPTION,
114 MUSE_CAMERA_API_ATTR_SET_TAG_ORIENTATION, /* 75 */
115 MUSE_CAMERA_API_ATTR_SET_TAG_SOFTWARE,
116 MUSE_CAMERA_API_ATTR_SET_GEOTAG,
117 MUSE_CAMERA_API_ATTR_REMOVE_GEOTAG,
118 MUSE_CAMERA_API_ATTR_SET_FLASH_MODE,
119 MUSE_CAMERA_API_ATTR_GET_ZOOM, /* 80 */
120 MUSE_CAMERA_API_ATTR_GET_ZOOM_RANGE,
121 MUSE_CAMERA_API_ATTR_GET_AF_MODE,
122 MUSE_CAMERA_API_ATTR_GET_EXPOSURE_MODE,
123 MUSE_CAMERA_API_ATTR_GET_EXPOSURE,
124 MUSE_CAMERA_API_ATTR_GET_EXPOSURE_RANGE, /* 85 */
125 MUSE_CAMERA_API_ATTR_GET_ISO,
126 MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS,
127 MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS_RANGE,
128 MUSE_CAMERA_API_ATTR_GET_CONTRAST,
129 MUSE_CAMERA_API_ATTR_GET_CONTRAST_RANGE, /* 90 */
130 MUSE_CAMERA_API_ATTR_GET_WHITEBALANCE,
131 MUSE_CAMERA_API_ATTR_GET_EFFECT,
132 MUSE_CAMERA_API_ATTR_GET_SCENE_MODE,
133 MUSE_CAMERA_API_ATTR_IS_ENABLED_TAG,
134 MUSE_CAMERA_API_ATTR_GET_TAG_IMAGE_DESCRIPTION, /* 95 */
135 MUSE_CAMERA_API_ATTR_GET_TAG_ORIENTATION,
136 MUSE_CAMERA_API_ATTR_GET_TAG_SOFTWARE,
137 MUSE_CAMERA_API_ATTR_GET_GEOTAG,
138 MUSE_CAMERA_API_ATTR_GET_FLASH_MODE,
139 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_AF_MODE, /* 100 */
140 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EXPOSURE_MODE,
141 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_ISO,
142 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_WHITEBALANCE,
143 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EFFECT,
144 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_SCENE_MODE, /* 105 */
145 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FLASH_MODE,
146 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS,
147 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS_BY_RESOLUTION,
148 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_FLIP,
149 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_ROTATION, /* 110 */
150 MUSE_CAMERA_API_ATTR_SET_STREAM_ROTATION,
151 MUSE_CAMERA_API_ATTR_GET_STREAM_ROTATION,
152 MUSE_CAMERA_API_ATTR_SET_STREAM_FLIP,
153 MUSE_CAMERA_API_ATTR_GET_STREAM_FLIP,
154 MUSE_CAMERA_API_ATTR_SET_HDR_MODE, /* 115 */
155 MUSE_CAMERA_API_ATTR_GET_HDR_MODE,
156 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_HDR_CAPTURE,
157 MUSE_CAMERA_API_ATTR_SET_HDR_CAPTURE_PROGRESS_CB,
158 MUSE_CAMERA_API_ATTR_UNSET_HDR_CAPTURE_PROGRESS_CB,
159 MUSE_CAMERA_API_ATTR_ENABLE_ANTI_SHAKE, /* 120 */
160 MUSE_CAMERA_API_ATTR_IS_ENABLED_ANTI_SHAKE,
161 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_ANTI_SHAKE,
162 MUSE_CAMERA_API_ATTR_ENABLE_VIDEO_STABILIZATION,
163 MUSE_CAMERA_API_ATTR_IS_ENABLED_VIDEO_STABILIZATION,
164 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_VIDEO_STABILIZATION, /* 125 */
165 MUSE_CAMERA_API_ATTR_ENABLE_AUTO_CONTRAST,
166 MUSE_CAMERA_API_ATTR_IS_ENABLED_AUTO_CONTRAST,
167 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_AUTO_CONTRAST,
168 MUSE_CAMERA_API_ATTR_DISABLE_SHUTTER_SOUND,
169 MUSE_CAMERA_API_ATTR_GET_ENCODED_PREVIEW_BITRATE, /* 130 */
170 MUSE_CAMERA_API_ATTR_SET_ENCODED_PREVIEW_BITRATE,
171 MUSE_CAMERA_API_ATTR_GET_ENCODED_PREVIEW_GOP_INTERVAL,
172 MUSE_CAMERA_API_ATTR_SET_ENCODED_PREVIEW_GOP_INTERVAL,
173 MUSE_CAMERA_API_ATTR_SET_PAN,
174 MUSE_CAMERA_API_ATTR_GET_PAN, /* 135 */
175 MUSE_CAMERA_API_ATTR_GET_PAN_RANGE,
176 MUSE_CAMERA_API_ATTR_SET_TILT,
177 MUSE_CAMERA_API_ATTR_GET_TILT,
178 MUSE_CAMERA_API_ATTR_GET_TILT_RANGE,
179 MUSE_CAMERA_API_ATTR_SET_PTZ_TYPE, /* 140 */
180 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_PTZ_TYPE,
181 MUSE_CAMERA_API_SET_DISPLAY_ROI_AREA,
182 MUSE_CAMERA_API_GET_DISPLAY_ROI_AREA,
183 MUSE_CAMERA_API_RETURN_BUFFER,
184 MUSE_CAMERA_API_PREVIEW_CB_RETURN, /* 145 */
185 MUSE_CAMERA_API_SET_DISPLAY_REUSE_HINT,
186 MUSE_CAMERA_API_GET_DISPLAY_REUSE_HINT,
187 MUSE_CAMERA_API_CHANGE_DEVICE,
188 MUSE_CAMERA_API_GET_DEVICE_STATE,
194 * @brief Enumeration for the muse camera API class.
197 MUSE_CAMERA_API_CLASS_IMMEDIATE,
198 MUSE_CAMERA_API_CLASS_THREAD_SUB,
199 MUSE_CAMERA_API_CLASS_NUM
200 } muse_camera_api_class_e;
203 * @brief Enumeration for the muse camera events.
206 MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE, /* 0 */
207 MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE,
208 MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE,
209 MUSE_CAMERA_EVENT_TYPE_PREVIEW,
210 MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW,
211 MUSE_CAMERA_EVENT_TYPE_CAPTURE, /* 5 */
212 MUSE_CAMERA_EVENT_TYPE_ERROR,
213 MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS,
214 MUSE_CAMERA_EVENT_TYPE_INTERRUPTED,
215 MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION,
216 MUSE_CAMERA_EVENT_TYPE_VIDEO_FRAME_RENDER_ERROR, /* 10 */
217 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION,
218 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION,
219 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT,
220 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT,
221 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE, /* 15 */
222 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE,
223 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE,
224 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO,
225 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE,
226 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT, /* 20 */
227 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE,
228 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE,
229 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS,
230 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION,
231 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP, /* 25 */
232 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION,
233 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PTZ_TYPE,
234 MUSE_CAMERA_EVENT_TYPE_NUM /* 28 */
235 } muse_camera_event_e;
238 * @brief Enumeration for the muse camera events class.
241 MUSE_CAMERA_EVENT_CLASS_THREAD_MAIN,
242 MUSE_CAMERA_EVENT_CLASS_THREAD_SUB,
243 MUSE_CAMERA_EVENT_CLASS_NUM
244 } muse_camera_event_class_e;
247 * @brief Enumeration for the muse camera get type list.
250 MUSE_CAMERA_GET_TYPE_NONE,
251 MUSE_CAMERA_GET_TYPE_INT,
252 MUSE_CAMERA_GET_TYPE_INT_PAIR,
253 MUSE_CAMERA_GET_TYPE_ARRAY,
254 MUSE_CAMERA_GET_TYPE_STRING,
255 MUSE_CAMERA_GET_TYPE_POINTER,
257 } muse_camera_get_type_e;
260 * @brief Enumeration for the integer type list.
263 MUSE_CAMERA_GET_INT_STATE = 0,
264 MUSE_CAMERA_GET_INT_DEVICE_COUNT,
265 MUSE_CAMERA_GET_INT_FACING_DIRECTION,
266 MUSE_CAMERA_GET_INT_LENS_ORIENTATION,
267 MUSE_CAMERA_GET_INT_PREVIEW_RESOLUTION,
268 MUSE_CAMERA_GET_INT_PREVIEW_FORMAT,
269 MUSE_CAMERA_GET_INT_PREVIEW_FPS,
270 MUSE_CAMERA_GET_INT_RECOMMENDED_PREVIEW_RESOLUTION,
271 MUSE_CAMERA_GET_INT_CAPTURE_RESOLUTION,
272 MUSE_CAMERA_GET_INT_CAPTURE_FORMAT,
273 MUSE_CAMERA_GET_INT_DISPLAY_FLIP,
274 MUSE_CAMERA_GET_INT_DISPLAY_MODE,
275 MUSE_CAMERA_GET_INT_DISPLAY_REUSE_HINT,
276 MUSE_CAMERA_GET_INT_DISPLAY_ROTATION,
277 MUSE_CAMERA_GET_INT_DISPLAY_VISIBLE,
278 MUSE_CAMERA_GET_INT_THEATER_MODE,
279 MUSE_CAMERA_GET_INT_FLASH_MODE,
280 MUSE_CAMERA_GET_INT_AF_MODE,
281 MUSE_CAMERA_GET_INT_ISO,
282 MUSE_CAMERA_GET_INT_BRIGHTNESS,
283 MUSE_CAMERA_GET_INT_CONTRAST,
284 MUSE_CAMERA_GET_INT_EFFECT,
285 MUSE_CAMERA_GET_INT_SCENE_MODE,
286 MUSE_CAMERA_GET_INT_WHITE_BALANCE,
287 MUSE_CAMERA_GET_INT_EXPOSURE,
288 MUSE_CAMERA_GET_INT_EXPOSURE_MODE,
289 MUSE_CAMERA_GET_INT_HDR_MODE,
290 MUSE_CAMERA_GET_INT_IMAGE_QUALITY,
291 MUSE_CAMERA_GET_INT_STREAM_FLIP,
292 MUSE_CAMERA_GET_INT_STREAM_ROTATION,
293 MUSE_CAMERA_GET_INT_TAG_ORIENTATION,
294 MUSE_CAMERA_GET_INT_ZOOM,
295 MUSE_CAMERA_GET_INT_PAN,
296 MUSE_CAMERA_GET_INT_TILT,
297 MUSE_CAMERA_GET_INT_ENABLED_ANTI_SHAKE,
298 MUSE_CAMERA_GET_INT_ENABLED_AUTO_CONTRAST,
299 MUSE_CAMERA_GET_INT_ENABLED_TAG,
300 MUSE_CAMERA_GET_INT_ENABLED_VIDEO_STABILIZATION,
301 MUSE_CAMERA_GET_INT_ENCODED_PREVIEW_BITRATE,
302 MUSE_CAMERA_GET_INT_ENCODED_PREVIEW_GOP_INTERVAL,
303 MUSE_CAMERA_GET_INT_NUM
304 } muse_camera_get_int_e;
307 * @brief Enumeration for the integer pair type list.
310 MUSE_CAMERA_GET_INT_PAIR_ZOOM_RANGE,
311 MUSE_CAMERA_GET_INT_PAIR_BRIGHTNESS_RANGE,
312 MUSE_CAMERA_GET_INT_PAIR_CONTRAST_RANGE,
313 MUSE_CAMERA_GET_INT_PAIR_EXPOSURE_RANGE,
314 MUSE_CAMERA_GET_INT_PAIR_PAN_RANGE,
315 MUSE_CAMERA_GET_INT_PAIR_TILT_RANGE,
316 MUSE_CAMERA_GET_INT_PAIR_NUM
317 } muse_camera_get_int_pair_e;
321 * @brief Enumeration for the string type list.
324 MUSE_CAMERA_GET_STRING_TAG_IMAGE_DESCRIPTION,
325 MUSE_CAMERA_GET_STRING_TAG_SOFTWARE,
326 MUSE_CAMERA_GET_STRING_NUM
327 } muse_camera_get_string_e;
332 void *internal_buffer;
335 } muse_camera_export_data;
339 * @brief The structure type for muse camera errors.
342 MUSE_CAMERA_ERROR_INVALID = -1,
343 MUSE_CAMERA_ERROR_NONE = 1,
344 } muse_camera_error_e;
347 * @brief Definition for the callback event id.
349 #define MUSE_CAMERA_CB_EVENT MUSE_CAMERA_API_MAX + 1 /* 148 */
352 * @brief Definition for the max message length.
354 #define MUSE_CAMERA_MSG_MAX_LENGTH 512
357 * @brief Definition for device state change signal
359 #define MM_CAMCORDER_DBUS_OBJECT "/org/tizen/MMCamcorder"
360 #define MM_CAMCORDER_DBUS_INTERFACE_CAMERA "org.tizen.MMCamcorder.Camera"
361 #define MM_CAMCORDER_DBUS_SIGNAL_STATE_CHANGED "DeviceStateChanged"
367 #endif /* __MUSE_CAMERA_H__ */