4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jeongmo Yang <jm80.yang@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
22 /* ==============================================================================
24 ===============================================================================*/
29 #include <mm_attrs_private.h>
31 #include "mm_camcorder.h"
32 #include "mm_camcorder_internal.h"
35 /*===============================================================================
36 | FUNCTION DEFINITIONS |
37 ===============================================================================*/
38 /*-------------------------------------------------------------------------------
39 | GLOBAL FUNCTION DEFINITIONS: |
40 -------------------------------------------------------------------------------*/
41 int mm_camcorder_create(MMHandleType *camcorder, MMCamPreset *info)
43 int error = MM_ERROR_NONE;
45 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
46 mmf_return_val_if_fail((void *)info, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
50 error = _mmcamcorder_create(camcorder, info);
52 _mmcam_dbg_err("END");
58 int mm_camcorder_destroy(MMHandleType camcorder)
60 int error = MM_ERROR_NONE;
62 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
66 error = _mmcamcorder_destroy(camcorder);
68 _mmcam_dbg_err("END!!!");
74 int mm_camcorder_realize(MMHandleType camcorder)
76 int error = MM_ERROR_NONE;
78 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
82 _MMCAMCORDER_LOCK_ASM(camcorder);
84 error = _mmcamcorder_realize(camcorder);
86 _MMCAMCORDER_UNLOCK_ASM(camcorder);
88 _mmcam_dbg_err("END");
94 int mm_camcorder_unrealize(MMHandleType camcorder)
96 int error = MM_ERROR_NONE;
98 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
102 _MMCAMCORDER_LOCK_ASM(camcorder);
104 error = _mmcamcorder_unrealize(camcorder);
106 _MMCAMCORDER_UNLOCK_ASM(camcorder);
108 _mmcam_dbg_err("END");
114 int mm_camcorder_start(MMHandleType camcorder)
116 int error = MM_ERROR_NONE;
118 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
122 _MMCAMCORDER_LOCK_ASM(camcorder);
124 error = _mmcamcorder_start(camcorder);
126 _MMCAMCORDER_UNLOCK_ASM(camcorder);
128 _mmcam_dbg_err("END");
134 int mm_camcorder_stop(MMHandleType camcorder)
136 int error = MM_ERROR_NONE;
138 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
142 _MMCAMCORDER_LOCK_ASM(camcorder);
144 error = _mmcamcorder_stop(camcorder);
146 _MMCAMCORDER_UNLOCK_ASM(camcorder);
148 _mmcam_dbg_err("END");
154 int mm_camcorder_capture_start(MMHandleType camcorder)
156 int error = MM_ERROR_NONE;
158 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
162 _MMCAMCORDER_LOCK_ASM(camcorder);
164 error = _mmcamcorder_capture_start(camcorder);
166 _MMCAMCORDER_UNLOCK_ASM(camcorder);
168 _mmcam_dbg_err("END");
174 int mm_camcorder_capture_stop(MMHandleType camcorder)
176 int error = MM_ERROR_NONE;
178 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
182 _MMCAMCORDER_LOCK_ASM(camcorder);
184 error = _mmcamcorder_capture_stop(camcorder);
186 _MMCAMCORDER_UNLOCK_ASM(camcorder);
188 _mmcam_dbg_err("END");
194 int mm_camcorder_record(MMHandleType camcorder)
196 int error = MM_ERROR_NONE;
198 mmf_return_val_if_fail((void*)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
202 _MMCAMCORDER_LOCK_ASM(camcorder);
204 error = _mmcamcorder_record(camcorder);
206 _MMCAMCORDER_UNLOCK_ASM(camcorder);
208 _mmcam_dbg_err("END");
214 int mm_camcorder_pause(MMHandleType camcorder)
216 int error = MM_ERROR_NONE;
218 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
222 _MMCAMCORDER_LOCK_ASM(camcorder);
224 error = _mmcamcorder_pause(camcorder);
226 _MMCAMCORDER_UNLOCK_ASM(camcorder);
228 _mmcam_dbg_err("END");
234 int mm_camcorder_commit(MMHandleType camcorder)
236 int error = MM_ERROR_NONE;
238 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
242 _MMCAMCORDER_LOCK_ASM(camcorder);
244 error = _mmcamcorder_commit(camcorder);
246 _MMCAMCORDER_UNLOCK_ASM(camcorder);
248 _mmcam_dbg_err("END");
254 int mm_camcorder_cancel(MMHandleType camcorder)
256 int error = MM_ERROR_NONE;
258 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
262 _MMCAMCORDER_LOCK_ASM(camcorder);
264 error = _mmcamcorder_cancel(camcorder);
266 _MMCAMCORDER_UNLOCK_ASM(camcorder);
268 _mmcam_dbg_err("END");
274 int mm_camcorder_set_message_callback(MMHandleType camcorder, MMMessageCallback callback, void *user_data)
276 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
278 return _mmcamcorder_set_message_callback(camcorder, callback, user_data);
282 int mm_camcorder_set_video_stream_callback(MMHandleType camcorder, mm_camcorder_video_stream_callback callback, void* user_data)
284 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
286 return _mmcamcorder_set_video_stream_callback(camcorder, callback, user_data);
290 int mm_camcorder_set_audio_stream_callback(MMHandleType camcorder, mm_camcorder_audio_stream_callback callback, void* user_data)
292 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
294 return _mmcamcorder_set_audio_stream_callback(camcorder, callback, user_data);
298 int mm_camcorder_set_video_capture_callback(MMHandleType camcorder, mm_camcorder_video_capture_callback callback, void* user_data)
300 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT );
302 return _mmcamcorder_set_video_capture_callback(camcorder, callback, user_data);
306 int mm_camcorder_get_state(MMHandleType camcorder, MMCamcorderStateType *status)
308 int ret = MM_ERROR_NONE;
311 _mmcam_dbg_warn("Empty handle.");
312 return MM_ERROR_CAMCORDER_INVALID_ARGUMENT;
315 *status = _mmcamcorder_get_state(camcorder);
322 int mm_camcorder_get_attributes(MMHandleType camcorder, char **err_attr_name, const char *attribute_name, ...)
325 int ret = MM_ERROR_NONE;
327 return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
329 va_start(var_args, attribute_name);
330 ret = _mmcamcorder_get_attributes(camcorder, err_attr_name, attribute_name, var_args);
337 int mm_camcorder_set_attributes(MMHandleType camcorder, char **err_attr_name, const char *attribute_name, ...)
340 int ret = MM_ERROR_NONE;
342 return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
344 va_start (var_args, attribute_name);
345 ret = _mmcamcorder_set_attributes(camcorder, err_attr_name, attribute_name, var_args);
352 int mm_camcorder_get_attribute_info(MMHandleType camcorder, const char *attribute_name, MMCamAttrsInfo *info)
354 return _mmcamcorder_get_attribute_info(camcorder, attribute_name, info);
357 int mm_camcorder_get_fps_list_by_resolution(MMHandleType camcorder, int width, int height, MMCamAttrsInfo *fps_info)
359 return _mmcamcorder_get_fps_array_by_resolution(camcorder, width, height, fps_info);
363 int mm_camcorder_init_focusing(MMHandleType camcorder)
365 int error = MM_ERROR_NONE;
367 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
369 error = _mmcamcorder_init_focusing(camcorder);
375 int mm_camcorder_start_focusing( MMHandleType camcorder )
377 int error = MM_ERROR_NONE;
379 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
381 /* TODO : Add direction parameter */
383 error = _mmcamcorder_adjust_focus(camcorder, MM_CAMCORDER_MF_LENS_DIR_FORWARD);
389 int mm_camcorder_stop_focusing(MMHandleType camcorder)
391 int error = MM_ERROR_NONE;
393 mmf_return_val_if_fail((void *)camcorder, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);
395 error = _mmcamcorder_stop_focusing(camcorder);