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.
30 #include <tbm_bufmgr.h>
34 * @brief Enumeration for the muse camera apis.
37 MUSE_CAMERA_API_CREATE, /* 0 */
38 MUSE_CAMERA_API_DESTROY,
39 MUSE_CAMERA_API_START_PREVIEW,
40 MUSE_CAMERA_API_STOP_PREVIEW,
41 MUSE_CAMERA_API_START_CAPTURE,
42 MUSE_CAMERA_API_SUPPORT_CONTINUOUS_CAPTURE, /* 5 */
43 MUSE_CAMERA_API_START_CONTINUOUS_CAPTURE,
44 MUSE_CAMERA_API_STOP_CONTINUOUS_CAPTURE,
45 MUSE_CAMERA_API_SUPPORT_FACE_DETECTION,
46 MUSE_CAMERA_API_SUPPORT_ZERO_SHUTTER_LAG,
47 MUSE_CAMERA_API_SUPPORT_MEDIA_PACKET_PREVIEW_CB, /* 10 */
48 MUSE_CAMERA_API_GET_DEVICE_COUNT,
49 MUSE_CAMERA_API_START_FACE_DETECTION,
50 MUSE_CAMERA_API_STOP_FACE_DETECTION,
51 MUSE_CAMERA_API_GET_STATE,
52 MUSE_CAMERA_API_START_FOCUSING, /* 15 */
53 MUSE_CAMERA_API_CANCEL_FOCUSING,
54 MUSE_CAMERA_API_SET_DISPLAY,
55 MUSE_CAMERA_API_SET_PREVIEW_RESOLUTION,
56 MUSE_CAMERA_API_SET_CAPTURE_RESOLUTION,
57 MUSE_CAMERA_API_SET_CAPTURE_FORMAT, /* 20 */
58 MUSE_CAMERA_API_SET_PREVIEW_FORMAT,
59 MUSE_CAMERA_API_GET_PREVIEW_RESOLUTION,
60 MUSE_CAMERA_API_SET_DISPLAY_ROTATION,
61 MUSE_CAMERA_API_GET_DISPLAY_ROTATION,
62 MUSE_CAMERA_API_SET_DISPLAY_FLIP, /* 25 */
63 MUSE_CAMERA_API_GET_DISPLAY_FLIP,
64 MUSE_CAMERA_API_SET_DISPLAY_VISIBLE,
65 MUSE_CAMERA_API_IS_DISPLAY_VISIBLE,
66 MUSE_CAMERA_API_SET_DISPLAY_MODE,
67 MUSE_CAMERA_API_GET_DISPLAY_MODE, /* 30 */
68 MUSE_CAMERA_API_GET_CAPTURE_RESOLUTION,
69 MUSE_CAMERA_API_GET_CAPTURE_FORMAT,
70 MUSE_CAMERA_API_GET_PREVIEW_FORMAT,
71 MUSE_CAMERA_API_GET_FACING_DIRECTION,
72 MUSE_CAMERA_API_GET_FLASH_STATE, /* 35 */
73 MUSE_CAMERA_API_SET_PREVIEW_CB,
74 MUSE_CAMERA_API_UNSET_PREVIEW_CB,
75 MUSE_CAMERA_API_SET_MEDIA_PACKET_PREVIEW_CB,
76 MUSE_CAMERA_API_UNSET_MEDIA_PACKET_PREVIEW_CB,
77 MUSE_CAMERA_API_SET_STATE_CHANGED_CB, /* 40 */
78 MUSE_CAMERA_API_UNSET_STATE_CHANGED_CB,
79 MUSE_CAMERA_API_SET_INTERRUPTED_CB,
80 MUSE_CAMERA_API_UNSET_INTERRUPTED_CB,
81 MUSE_CAMERA_API_SET_FOCUS_CHANGED_CB,
82 MUSE_CAMERA_API_UNSET_FOCUS_CHANGED_CB, /* 45 */
83 MUSE_CAMERA_API_SET_ERROR_CB,
84 MUSE_CAMERA_API_UNSET_ERROR_CB,
85 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_RESOLUTION,
86 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_RESOLUTION,
87 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_FORMAT, /* 50 */
88 MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_FORMAT,
89 MUSE_CAMERA_API_GET_RECOMMENDED_PREVIEW_RESOLUTION,
90 MUSE_CAMERA_API_ATTR_GET_LENS_ORIENTATION,
91 MUSE_CAMERA_API_ATTR_SET_THEATER_MODE,
92 MUSE_CAMERA_API_ATTR_GET_THEATER_MODE, /* 55 */
93 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_THEATER_MODE,
94 MUSE_CAMERA_API_ATTR_SET_PREVIEW_FPS,
95 MUSE_CAMERA_API_ATTR_SET_IMAGE_QUALITY,
96 MUSE_CAMERA_API_ATTR_GET_PREVIEW_FPS,
97 MUSE_CAMERA_API_ATTR_GET_IMAGE_QUALITY, /* 60 */
98 MUSE_CAMERA_API_ATTR_SET_ZOOM,
99 MUSE_CAMERA_API_ATTR_SET_AF_MODE,
100 MUSE_CAMERA_API_ATTR_SET_AF_AREA,
101 MUSE_CAMERA_API_ATTR_CLEAR_AF_AREA,
102 MUSE_CAMERA_API_ATTR_SET_EXPOSURE_MODE, /* 65 */
103 MUSE_CAMERA_API_ATTR_SET_EXPOSURE,
104 MUSE_CAMERA_API_ATTR_SET_ISO,
105 MUSE_CAMERA_API_ATTR_SET_BRIGHTNESS,
106 MUSE_CAMERA_API_ATTR_SET_CONTRAST,
107 MUSE_CAMERA_API_ATTR_SET_WHITEBALANCE, /* 70 */
108 MUSE_CAMERA_API_ATTR_SET_EFFECT,
109 MUSE_CAMERA_API_ATTR_SET_SCENE_MODE,
110 MUSE_CAMERA_API_ATTR_ENABLE_TAG,
111 MUSE_CAMERA_API_ATTR_SET_TAG_IMAGE_DESCRIPTION,
112 MUSE_CAMERA_API_ATTR_SET_TAG_ORIENTATION, /* 75 */
113 MUSE_CAMERA_API_ATTR_SET_TAG_SOFTWARE,
114 MUSE_CAMERA_API_ATTR_SET_GEOTAG,
115 MUSE_CAMERA_API_ATTR_REMOVE_GEOTAG,
116 MUSE_CAMERA_API_ATTR_SET_FLASH_MODE,
117 MUSE_CAMERA_API_ATTR_GET_ZOOM, /* 80 */
118 MUSE_CAMERA_API_ATTR_GET_ZOOM_RANGE,
119 MUSE_CAMERA_API_ATTR_GET_AF_MODE,
120 MUSE_CAMERA_API_ATTR_GET_EXPOSURE_MODE,
121 MUSE_CAMERA_API_ATTR_GET_EXPOSURE,
122 MUSE_CAMERA_API_ATTR_GET_EXPOSURE_RANGE, /* 85 */
123 MUSE_CAMERA_API_ATTR_GET_ISO,
124 MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS,
125 MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS_RANGE,
126 MUSE_CAMERA_API_ATTR_GET_CONTRAST,
127 MUSE_CAMERA_API_ATTR_GET_CONTRAST_RANGE, /* 90 */
128 MUSE_CAMERA_API_ATTR_GET_WHITEBALANCE,
129 MUSE_CAMERA_API_ATTR_GET_EFFECT,
130 MUSE_CAMERA_API_ATTR_GET_SCENE_MODE,
131 MUSE_CAMERA_API_ATTR_IS_ENABLED_TAG,
132 MUSE_CAMERA_API_ATTR_GET_TAG_IMAGE_DESCRIPTION, /* 95 */
133 MUSE_CAMERA_API_ATTR_GET_TAG_ORIENTATION,
134 MUSE_CAMERA_API_ATTR_GET_TAG_SOFTWARE,
135 MUSE_CAMERA_API_ATTR_GET_GEOTAG,
136 MUSE_CAMERA_API_ATTR_GET_FLASH_MODE,
137 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_AF_MODE, /* 100 */
138 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EXPOSURE_MODE,
139 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_ISO,
140 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_WHITEBALANCE,
141 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EFFECT,
142 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_SCENE_MODE, /* 105 */
143 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FLASH_MODE,
144 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS,
145 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS_BY_RESOLUTION,
146 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_FLIP,
147 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_ROTATION, /* 110 */
148 MUSE_CAMERA_API_ATTR_SET_STREAM_ROTATION,
149 MUSE_CAMERA_API_ATTR_GET_STREAM_ROTATION,
150 MUSE_CAMERA_API_ATTR_SET_STREAM_FLIP,
151 MUSE_CAMERA_API_ATTR_GET_STREAM_FLIP,
152 MUSE_CAMERA_API_ATTR_SET_HDR_MODE, /* 115 */
153 MUSE_CAMERA_API_ATTR_GET_HDR_MODE,
154 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_HDR_CAPTURE,
155 MUSE_CAMERA_API_ATTR_SET_HDR_CAPTURE_PROGRESS_CB,
156 MUSE_CAMERA_API_ATTR_UNSET_HDR_CAPTURE_PROGRESS_CB,
157 MUSE_CAMERA_API_ATTR_ENABLE_ANTI_SHAKE, /* 120 */
158 MUSE_CAMERA_API_ATTR_IS_ENABLED_ANTI_SHAKE,
159 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_ANTI_SHAKE,
160 MUSE_CAMERA_API_ATTR_ENABLE_VIDEO_STABILIZATION,
161 MUSE_CAMERA_API_ATTR_IS_ENABLED_VIDEO_STABILIZATION,
162 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_VIDEO_STABILIZATION, /* 125 */
163 MUSE_CAMERA_API_ATTR_ENABLE_AUTO_CONTRAST,
164 MUSE_CAMERA_API_ATTR_IS_ENABLED_AUTO_CONTRAST,
165 MUSE_CAMERA_API_ATTR_IS_SUPPORTED_AUTO_CONTRAST,
166 MUSE_CAMERA_API_ATTR_DISABLE_SHUTTER_SOUND,
167 MUSE_CAMERA_API_ATTR_GET_ENCODED_PREVIEW_BITRATE, /* 130 */
168 MUSE_CAMERA_API_ATTR_SET_ENCODED_PREVIEW_BITRATE,
169 MUSE_CAMERA_API_ATTR_GET_ENCODED_PREVIEW_GOP_INTERVAL,
170 MUSE_CAMERA_API_ATTR_SET_ENCODED_PREVIEW_GOP_INTERVAL,
171 MUSE_CAMERA_API_ATTR_SET_PAN,
172 MUSE_CAMERA_API_ATTR_GET_PAN, /* 135 */
173 MUSE_CAMERA_API_ATTR_GET_PAN_RANGE,
174 MUSE_CAMERA_API_ATTR_SET_TILT,
175 MUSE_CAMERA_API_ATTR_GET_TILT,
176 MUSE_CAMERA_API_ATTR_GET_TILT_RANGE,
177 MUSE_CAMERA_API_ATTR_SET_PTZ_TYPE, /* 140 */
178 MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_PTZ_TYPE,
179 MUSE_CAMERA_API_SET_DISPLAY_ROI_AREA,
180 MUSE_CAMERA_API_GET_DISPLAY_ROI_AREA,
181 MUSE_CAMERA_API_RETURN_BUFFER,
182 MUSE_CAMERA_API_PREVIEW_CB_RETURN, /* 145 */
183 MUSE_CAMERA_API_SET_DISPLAY_REUSE_HINT,
184 MUSE_CAMERA_API_GET_DISPLAY_REUSE_HINT,
185 MUSE_CAMERA_API_CHANGE_DEVICE,
186 MUSE_CAMERA_API_GET_DEVICE_STATE,
187 MUSE_CAMERA_API_SET_INTERRUPT_STARTED_CB, /* 150 */
188 MUSE_CAMERA_API_UNSET_INTERRUPT_STARTED_CB,
189 MUSE_CAMERA_API_ATTR_SET_HUE,
190 MUSE_CAMERA_API_ATTR_GET_HUE,
191 MUSE_CAMERA_API_ATTR_GET_HUE_RANGE,
197 * @brief Enumeration for the muse camera API class.
200 MUSE_CAMERA_API_CLASS_IMMEDIATE,
201 MUSE_CAMERA_API_CLASS_THREAD_SUB,
202 MUSE_CAMERA_API_CLASS_NUM
203 } muse_camera_api_class_e;
206 * @brief Enumeration for the muse camera events.
209 MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE, /* 0 */
210 MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE,
211 MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE,
212 MUSE_CAMERA_EVENT_TYPE_PREVIEW,
213 MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW,
214 MUSE_CAMERA_EVENT_TYPE_CAPTURE, /* 5 */
215 MUSE_CAMERA_EVENT_TYPE_ERROR,
216 MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS,
217 MUSE_CAMERA_EVENT_TYPE_INTERRUPTED,
218 MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION,
219 MUSE_CAMERA_EVENT_TYPE_VIDEO_FRAME_RENDER_ERROR, /* 10 */
220 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION,
221 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION,
222 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT,
223 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT,
224 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE, /* 15 */
225 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE,
226 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE,
227 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO,
228 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE,
229 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT, /* 20 */
230 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE,
231 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE,
232 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS,
233 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION,
234 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP, /* 25 */
235 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION,
236 MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PTZ_TYPE,
237 MUSE_CAMERA_EVENT_TYPE_INTERRUPT_STARTED,
238 MUSE_CAMERA_EVENT_TYPE_NUM /* 29 */
239 } muse_camera_event_e;
242 * @brief Enumeration for the muse camera events class.
245 MUSE_CAMERA_EVENT_CLASS_THREAD_MAIN,
246 MUSE_CAMERA_EVENT_CLASS_THREAD_SUB,
247 MUSE_CAMERA_EVENT_CLASS_NUM
248 } muse_camera_event_class_e;
251 * @brief Enumeration for the muse camera get type list.
254 MUSE_CAMERA_GET_TYPE_NONE,
255 MUSE_CAMERA_GET_TYPE_INT,
256 MUSE_CAMERA_GET_TYPE_INT_PAIR,
257 MUSE_CAMERA_GET_TYPE_ARRAY,
258 MUSE_CAMERA_GET_TYPE_STRING,
259 MUSE_CAMERA_GET_TYPE_POINTER,
261 } muse_camera_get_type_e;
264 * @brief Enumeration for the integer type list.
267 MUSE_CAMERA_GET_INT_STATE = 0,
268 MUSE_CAMERA_GET_INT_DEVICE_COUNT,
269 MUSE_CAMERA_GET_INT_FACING_DIRECTION,
270 MUSE_CAMERA_GET_INT_LENS_ORIENTATION,
271 MUSE_CAMERA_GET_INT_PREVIEW_RESOLUTION,
272 MUSE_CAMERA_GET_INT_PREVIEW_FORMAT,
273 MUSE_CAMERA_GET_INT_PREVIEW_FPS,
274 MUSE_CAMERA_GET_INT_RECOMMENDED_PREVIEW_RESOLUTION,
275 MUSE_CAMERA_GET_INT_CAPTURE_RESOLUTION,
276 MUSE_CAMERA_GET_INT_CAPTURE_FORMAT,
277 MUSE_CAMERA_GET_INT_DISPLAY_FLIP,
278 MUSE_CAMERA_GET_INT_DISPLAY_MODE,
279 MUSE_CAMERA_GET_INT_DISPLAY_REUSE_HINT,
280 MUSE_CAMERA_GET_INT_DISPLAY_ROTATION,
281 MUSE_CAMERA_GET_INT_DISPLAY_VISIBLE,
282 MUSE_CAMERA_GET_INT_THEATER_MODE,
283 MUSE_CAMERA_GET_INT_FLASH_MODE,
284 MUSE_CAMERA_GET_INT_AF_MODE,
285 MUSE_CAMERA_GET_INT_ISO,
286 MUSE_CAMERA_GET_INT_BRIGHTNESS,
287 MUSE_CAMERA_GET_INT_CONTRAST,
288 MUSE_CAMERA_GET_INT_EFFECT,
289 MUSE_CAMERA_GET_INT_SCENE_MODE,
290 MUSE_CAMERA_GET_INT_WHITE_BALANCE,
291 MUSE_CAMERA_GET_INT_EXPOSURE,
292 MUSE_CAMERA_GET_INT_EXPOSURE_MODE,
293 MUSE_CAMERA_GET_INT_HDR_MODE,
294 MUSE_CAMERA_GET_INT_IMAGE_QUALITY,
295 MUSE_CAMERA_GET_INT_STREAM_FLIP,
296 MUSE_CAMERA_GET_INT_STREAM_ROTATION,
297 MUSE_CAMERA_GET_INT_TAG_ORIENTATION,
298 MUSE_CAMERA_GET_INT_ZOOM,
299 MUSE_CAMERA_GET_INT_PAN,
300 MUSE_CAMERA_GET_INT_TILT,
301 MUSE_CAMERA_GET_INT_ENABLED_ANTI_SHAKE,
302 MUSE_CAMERA_GET_INT_ENABLED_AUTO_CONTRAST,
303 MUSE_CAMERA_GET_INT_ENABLED_TAG,
304 MUSE_CAMERA_GET_INT_ENABLED_VIDEO_STABILIZATION,
305 MUSE_CAMERA_GET_INT_ENCODED_PREVIEW_BITRATE,
306 MUSE_CAMERA_GET_INT_ENCODED_PREVIEW_GOP_INTERVAL,
307 MUSE_CAMERA_GET_INT_HUE,
308 MUSE_CAMERA_GET_INT_NUM
309 } muse_camera_get_int_e;
312 * @brief Enumeration for the integer pair type list.
315 MUSE_CAMERA_GET_INT_PAIR_ZOOM_RANGE,
316 MUSE_CAMERA_GET_INT_PAIR_BRIGHTNESS_RANGE,
317 MUSE_CAMERA_GET_INT_PAIR_CONTRAST_RANGE,
318 MUSE_CAMERA_GET_INT_PAIR_EXPOSURE_RANGE,
319 MUSE_CAMERA_GET_INT_PAIR_PAN_RANGE,
320 MUSE_CAMERA_GET_INT_PAIR_TILT_RANGE,
321 MUSE_CAMERA_GET_INT_PAIR_HUE_RANGE,
322 MUSE_CAMERA_GET_INT_PAIR_NUM
323 } muse_camera_get_int_pair_e;
327 * @brief Enumeration for the string type list.
330 MUSE_CAMERA_GET_STRING_TAG_IMAGE_DESCRIPTION,
331 MUSE_CAMERA_GET_STRING_TAG_SOFTWARE,
332 MUSE_CAMERA_GET_STRING_NUM
333 } muse_camera_get_string_e;
338 void *internal_buffer;
341 } muse_camera_export_data;
345 * @brief The structure type for muse camera errors.
348 MUSE_CAMERA_ERROR_INVALID = -1,
349 MUSE_CAMERA_ERROR_NONE = 0,
350 } muse_camera_error_e;
353 * @brief Definition for the callback event id.
355 #define MUSE_CAMERA_CB_EVENT MUSE_CAMERA_API_MAX + 1 /* 148 */
358 * @brief Definition for the max message length.
360 #define MUSE_CAMERA_MSG_MAX_LENGTH 512
363 * @brief Definition for device state change signal
365 #define MM_CAMCORDER_DBUS_OBJECT "/org/tizen/MMCamcorder"
366 #define MM_CAMCORDER_DBUS_INTERFACE_CAMERA "org.tizen.MMCamcorder.Camera"
367 #define MM_CAMCORDER_DBUS_SIGNAL_STATE_CHANGED "DeviceStateChanged"
373 #endif /* __MUSE_CAMERA_H__ */