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.
24 #include <muse_camera.h>
25 #include <muse_camera_msg.h>
26 #include <muse_core_ipc.h>
27 #include <camera_private.h>
28 #include <muse_core.h>
31 #include <Elementary.h>
32 #include <mm_camcorder_client.h>
35 #include <Ecore_Wayland.h>
43 #define LOG_TAG "TIZEN_N_CAMERA_CLIENT"
46 static int _import_tbm_key(tbm_bufmgr bufmgr, unsigned int tbm_key, tbm_bo *bo, tbm_bo_handle *bo_handle)
49 tbm_bo_handle tmp_bo_handle = {NULL, };
51 if (bufmgr == NULL || bo == NULL || bo_handle == NULL || tbm_key == 0) {
52 LOGE("invalid parameter - bufmgr %p, bo %p, bo_handle %p, key %d",
53 bufmgr, bo, bo_handle, tbm_key);
57 tmp_bo = tbm_bo_import(bufmgr, tbm_key);
59 LOGE("bo import failed - bufmgr %p, key %d", bufmgr, tbm_key);
63 tmp_bo_handle = tbm_bo_map(tmp_bo, TBM_DEVICE_CPU, TBM_OPTION_READ);
64 if (tmp_bo_handle.ptr == NULL) {
65 LOGE("bo map failed %p", tmp_bo);
71 /* set bo and bo_handle */
73 *bo_handle = tmp_bo_handle;
78 static void _release_imported_bo(tbm_bo *bo)
80 if (bo == NULL || *bo == NULL) {
92 static int _client_wait_for_cb_return(muse_camera_api_e api, callback_cb_info_s *cb_info, int time_out)
94 int ret = CAMERA_ERROR_NONE;
97 LOGD("Enter api : %d", api);
98 g_mutex_lock(&(cb_info->pMutex[api]));
100 if (cb_info->activating[api] == 0) {
101 end_time = g_get_monotonic_time() + time_out * G_TIME_SPAN_SECOND;
102 if (g_cond_wait_until(&(cb_info->pCond[api]), &(cb_info->pMutex[api]), end_time)) {
103 LOGD("cb_info->recvApiMsg : %s", cb_info->recvApiMsg);
104 if (!muse_camera_msg_get(ret, cb_info->recvApiMsg)) {
105 LOGE("Get cb msg failed.");
106 ret = CAMERA_ERROR_INVALID_OPERATION;
108 LOGD("Wait passed, ret : 0x%x", ret);
110 if (cb_info->activating[api])
111 cb_info->activating[api] = 0;
113 LOGD("api %d was TIMED OUT!", api);
114 ret = CAMERA_ERROR_INVALID_OPERATION;
117 LOGE("condition is already checked for the api : %d.", api);
118 if (!muse_camera_msg_get(ret, cb_info->recvApiMsg)) {
119 LOGE("Get cb msg failed.");
120 ret = CAMERA_ERROR_INVALID_OPERATION;
122 LOGD("Already checked condition, Wait passed, ret : 0x%x", ret);
125 g_mutex_unlock(&(cb_info->pMutex[api]));
126 LOGD("ret : 0x%x", ret);
130 static void _client_user_callback(callback_cb_info_s *cb_info, char *recvMsg, muse_camera_event_e event)
136 tbm_bo_handle bo_handle = {NULL, };
138 if (recvMsg == NULL || event >= MUSE_CAMERA_EVENT_TYPE_NUM) {
139 LOGE("invalid parameter - msg %p, event %d", recvMsg, event);
143 LOGD("get msg %s, event %d", recvMsg, event);
145 if (cb_info->user_cb[event] == NULL) {
146 LOGW("user callback for event %d is not set", event);
151 case MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE:
157 muse_camera_msg_get(previous, recvMsg);
158 muse_camera_msg_get(current, recvMsg);
159 muse_camera_msg_get(by_policy, recvMsg);
161 LOGD("STATE CHANGE - previous %d, current %d, by_policy %d",
162 previous, current, by_policy);
164 ((camera_state_changed_cb)cb_info->user_cb[event])((camera_state_e)previous,
165 (camera_state_e)current,
167 cb_info->user_data[event]);
170 case MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE:
174 muse_camera_msg_get(state, recvMsg);
176 LOGD("FOCUS state - %d", state);
178 ((camera_focus_changed_cb)cb_info->user_cb[event])((camera_focus_state_e)state,
179 cb_info->user_data[event]);
182 case MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE:
183 LOGD("CAPTURE_COMPLETED");
184 ((camera_capture_completed_cb)cb_info->user_cb[event])(cb_info->user_data[event]);
186 case MUSE_CAMERA_EVENT_TYPE_PREVIEW:
188 unsigned char *buf_pos = NULL;
189 camera_preview_data_s *frame = NULL;
192 muse_camera_msg_get(tbm_key, recvMsg);
195 LOGE("invalid key %d", tbm_key);
199 /* import tbm bo and get virtual address */
200 if (!_import_tbm_key(cb_info->bufmgr, tbm_key, &bo, &bo_handle)) {
204 buf_pos = (unsigned char *)bo_handle.ptr;
206 frame = (camera_preview_data_s *)buf_pos;
207 buf_pos += sizeof(camera_preview_data_s);
209 switch (frame->num_of_planes) {
211 frame->data.single_plane.yuv = buf_pos;
212 total_size = frame->data.single_plane.size;
214 frame->data.double_plane.y = buf_pos;
215 buf_pos += frame->data.double_plane.y_size;
216 frame->data.double_plane.uv = buf_pos;
217 total_size = frame->data.double_plane.y_size + \
218 frame->data.double_plane.uv_size;
220 frame->data.triple_plane.y = buf_pos;
221 buf_pos += frame->data.triple_plane.y_size;
222 frame->data.triple_plane.u = buf_pos;
223 buf_pos += frame->data.triple_plane.u_size;
224 frame->data.triple_plane.v = buf_pos;
225 total_size = frame->data.triple_plane.y_size + \
226 frame->data.triple_plane.u_size + \
227 frame->data.triple_plane.v_size;
232 LOGD("PREVIEW_CB - format %d, %dx%d, size %d plane num %d",
233 frame->format, frame->width, frame->height, total_size, frame->num_of_planes);
235 ((camera_preview_cb)cb_info->user_cb[event])(frame, cb_info->user_data[event]);
237 LOGD("PREVIEW_CB retuned");
239 /* unmap and unref tbm bo */
240 _release_imported_bo(&bo);
243 muse_camera_msg_send1_no_return(MUSE_CAMERA_API_RETURN_BUFFER,
244 cb_info->fd, cb_info,
247 LOGD("return buffer Done");
250 case MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW:
251 ((camera_media_packet_preview_cb)cb_info->user_cb[event])(NULL, cb_info->user_data[event]);
253 case MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS:
257 muse_camera_msg_get(percent, recvMsg);
259 LOGD("HDR progress - %d \%", percent);
261 ((camera_attr_hdr_progress_cb)cb_info->user_cb[event])(percent, cb_info->user_data[event]);
264 case MUSE_CAMERA_EVENT_TYPE_INTERRUPTED:
270 muse_camera_msg_get(policy, recvMsg);
271 muse_camera_msg_get(previous, recvMsg);
272 muse_camera_msg_get(current, recvMsg);
274 LOGD("INTERRUPTED - policy %d, state previous %d, current %d",
275 policy, previous, current);
277 ((camera_interrupted_cb)cb_info->user_cb[event])((camera_policy_e)policy,
278 (camera_state_e)previous,
279 (camera_state_e)current,
280 cb_info->user_data[event]);
283 case MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION:
286 camera_detected_face_s *faces = NULL;
288 muse_camera_msg_get(count, recvMsg);
289 muse_camera_msg_get(tbm_key, recvMsg);
291 if (count > 0 && tbm_key > 0) {
292 LOGD("FACE_DETECTION - count %d, tbm_key %d", count, tbm_key);
294 if (!_import_tbm_key(cb_info->bufmgr, tbm_key, &bo, &bo_handle)) {
299 faces = bo_handle.ptr;
301 ((camera_face_detected_cb)cb_info->user_cb[event])(faces, count, cb_info->user_data[event]);
307 for (i = 0 ; i < count ; i++) {
308 LOGD("id[%2d] - score %d, position (%d,%d,%dx%d)",
309 i, faces[i].score, faces[i].x, faces[i].y, faces[i].width, faces[i].height);
315 _release_imported_bo(&bo);
318 muse_camera_msg_send1_no_return(MUSE_CAMERA_API_RETURN_BUFFER,
319 cb_info->fd, cb_info,
322 LOGD("return buffer done");
324 LOGE("invalid message - count %d, key %d", count, tbm_key);
328 case MUSE_CAMERA_EVENT_TYPE_ERROR:
331 int current_state = 0;
333 muse_camera_msg_get(error, recvMsg);
334 muse_camera_msg_get(current_state, recvMsg);
336 LOGE("ERROR - error 0x%x, current_state %d", error, current_state);
338 ((camera_error_cb)cb_info->user_cb[event])((camera_error_e)error,
339 (camera_state_e)current_state,
340 cb_info->user_data[event]);
343 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION:
344 muse_camera_msg_get(param1, recvMsg);
345 muse_camera_msg_get(param2, recvMsg);
347 LOGD("SUPPORTED_PREVIEW_RESOLUTION - %d x %d", param1, param2);
349 ((camera_supported_preview_resolution_cb)cb_info->user_cb[event])(param1, param2, cb_info->user_data[event]);
351 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION:
352 muse_camera_msg_get(param1, recvMsg);
353 muse_camera_msg_get(param2, recvMsg);
355 LOGD("SUPPORTED_CAPTURE_RESOLUTION - %d x %d", param1, param2);
357 ((camera_supported_capture_resolution_cb)cb_info->user_cb[event])(param1, param2, cb_info->user_data[event]);
359 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT:
360 muse_camera_msg_get(param1, recvMsg);
362 LOGD("SUPPORTED_CAPTURE_FORMAT - %d ", param1);
364 ((camera_supported_capture_format_cb)cb_info->user_cb[event])((camera_pixel_format_e)param1, cb_info->user_data[event]);
366 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT:
367 muse_camera_msg_get(param1, recvMsg);
369 LOGD("SUPPORTED_PREVIEW_FORMAT - %d ", param1);
371 ((camera_supported_preview_format_cb)cb_info->user_cb[event])((camera_pixel_format_e)param1, cb_info->user_data[event]);
373 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE:
374 muse_camera_msg_get(param1, recvMsg);
376 LOGD("SUPPORTED_AF_MODE - %d ", param1);
378 ((camera_attr_supported_af_mode_cb)cb_info->user_cb[event])((camera_attr_af_mode_e)param1, cb_info->user_data[event]);
380 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE:
381 muse_camera_msg_get(param1, recvMsg);
383 LOGD("SUPPORTED_EXPOSURE_MODE - %d ", param1);
385 ((camera_attr_supported_exposure_mode_cb)cb_info->user_cb[event])((camera_attr_exposure_mode_e)param1, cb_info->user_data[event]);
387 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO:
388 muse_camera_msg_get(param1, recvMsg);
390 LOGD("SUPPORTED_ISO - %d ", param1);
392 ((camera_attr_supported_iso_cb)cb_info->user_cb[event])((camera_attr_iso_e)param1, cb_info->user_data[event]);
394 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE:
395 muse_camera_msg_get(param1, recvMsg);
397 LOGD("SUPPORTED_WHITEBALANCE - %d ", param1);
399 ((camera_attr_supported_whitebalance_cb)cb_info->user_cb[event])((camera_attr_whitebalance_e)param1, cb_info->user_data[event]);
401 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT:
402 muse_camera_msg_get(param1, recvMsg);
404 LOGD("SUPPORTED_EFFECT - %d ", param1);
406 ((camera_attr_supported_effect_cb)cb_info->user_cb[event])((camera_attr_effect_mode_e)param1, cb_info->user_data[event]);
408 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE:
409 muse_camera_msg_get(param1, recvMsg);
411 LOGD("SUPPORTED_SCENE_MODE - %d ", param1);
413 ((camera_attr_supported_scene_mode_cb)cb_info->user_cb[event])((camera_attr_scene_mode_e)param1, cb_info->user_data[event]);
415 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE:
416 muse_camera_msg_get(param1, recvMsg);
418 LOGD("SUPPORTED_FLASH_MODE - %d ", param1);
420 ((camera_attr_supported_flash_mode_cb)cb_info->user_cb[event])((camera_attr_flash_mode_e)param1, cb_info->user_data[event]);
422 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS:
423 muse_camera_msg_get(param1, recvMsg);
425 LOGD("SUPPORTED_FPS - %d ", param1);
427 ((camera_attr_supported_fps_cb)cb_info->user_cb[event])((camera_attr_fps_e)param1, cb_info->user_data[event]);
429 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION:
430 muse_camera_msg_get(param1, recvMsg);
432 LOGD("SUPPORTED_FPS_BY_RESOLUTION - %d ", param1);
434 ((camera_attr_supported_fps_cb)cb_info->user_cb[event])((camera_attr_fps_e)param1, cb_info->user_data[event]);
436 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP:
437 muse_camera_msg_get(param1, recvMsg);
439 LOGD("SUPPORTED_STREAM_FLIP - %d ", param1);
441 ((camera_attr_supported_stream_flip_cb)cb_info->user_cb[event])((camera_flip_e)param1, cb_info->user_data[event]);
443 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION:
444 muse_camera_msg_get(param1, recvMsg);
446 LOGD("SUPPORTED_STREAM_ROTATION - %d ", param1);
448 ((camera_attr_supported_stream_rotation_cb)cb_info->user_cb[event])((camera_rotation_e)param1, cb_info->user_data[event]);
450 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE:
451 muse_camera_msg_get(param1, recvMsg);
453 LOGD("SUPPORTED_THEATER_MODE - %d ", param1);
455 ((camera_attr_supported_theater_mode_cb)cb_info->user_cb[event])((camera_attr_theater_mode_e)param1, cb_info->user_data[event]);
457 case MUSE_CAMERA_EVENT_TYPE_CAPTURE:
459 camera_image_data_s *rImage = NULL;
460 camera_image_data_s *rPostview = NULL;
461 camera_image_data_s *rThumbnail = NULL;
462 unsigned char *buf_pos = NULL;
464 int is_thumbnail = 0;
466 muse_camera_msg_get(tbm_key, recvMsg);
467 muse_camera_msg_get(is_postview, recvMsg);
468 muse_camera_msg_get(is_thumbnail, recvMsg);
470 LOGD("camera capture callback came in. key %d, postview %d, thumbnail %d",
471 tbm_key, is_postview, is_thumbnail);
474 LOGE("invalid key %d", tbm_key);
478 /* import tbm bo and get virtual address */
479 if (!_import_tbm_key(cb_info->bufmgr, tbm_key, &bo, &bo_handle)) {
483 buf_pos = (unsigned char *)bo_handle.ptr;
484 rImage = (camera_image_data_s *)buf_pos;
485 rImage->data = buf_pos + sizeof(camera_image_data_s);
486 buf_pos += sizeof(camera_image_data_s) + rImage->size;
489 rPostview = (camera_image_data_s *)buf_pos;
490 LOGD("rPostview->size : %d", rPostview->size);
491 rPostview->data = buf_pos + sizeof(camera_image_data_s);
492 buf_pos += sizeof(camera_image_data_s) + rPostview->size;
496 rThumbnail = (camera_image_data_s *)buf_pos;
497 LOGD("rThumbnail->size : %d", rThumbnail->size);
498 rThumbnail->data = buf_pos + sizeof(camera_image_data_s);
499 buf_pos += sizeof(camera_image_data_s) + rThumbnail->size;
502 LOGD("image info %dx%d, size : %d", rImage->height, rImage->width, rImage->size);
504 ((camera_capturing_cb)cb_info->user_cb[event])(rImage, rPostview, rThumbnail, cb_info->user_data[event]);
506 /* unmap and unref tbm bo */
507 _release_imported_bo(&bo);
510 muse_camera_msg_send1_no_return(MUSE_CAMERA_API_RETURN_BUFFER,
515 LOGD("return buffer done");
518 case MUSE_CAMERA_EVENT_TYPE_VIDEO_FRAME_RENDER_ERROR:
521 LOGW("Unknown event : %d", event);
528 static void *_event_handler(gpointer data)
530 camera_event_s *cam_event = NULL;
531 callback_cb_info_s *cb_info = (callback_cb_info_s *)data;
533 if (cb_info == NULL) {
534 LOGE("cb_info NULL");
540 g_mutex_lock(&cb_info->event_mutex);
542 while (g_atomic_int_get(&cb_info->event_thread_running)) {
543 if (g_queue_is_empty(cb_info->event_queue)) {
544 LOGD("signal wait...");
545 g_cond_wait(&cb_info->event_cond, &cb_info->event_mutex);
546 LOGD("signal received");
548 if (g_atomic_int_get(&cb_info->event_thread_running) == 0) {
549 LOGD("stop event thread");
554 cam_event = (camera_event_s *)g_queue_pop_head(cb_info->event_queue);
556 g_mutex_unlock(&cb_info->event_mutex);
559 _client_user_callback(cam_event->cb_info, cam_event->recvMsg, cam_event->event);
563 LOGW("NULL event info");
566 g_mutex_lock(&cb_info->event_mutex);
569 /* remove remained event */
570 while (!g_queue_is_empty(cb_info->event_queue)) {
571 cam_event = (camera_event_s *)g_queue_pop_head(cb_info->event_queue);
573 LOGD("remove event info %p", cam_event);
577 LOGW("NULL event info");
581 g_mutex_unlock(&cb_info->event_mutex);
588 static bool _camera_idle_event_callback(void *data)
590 callback_cb_info_s *cb_info = NULL;
591 camera_idle_event_s *cam_idle_event = (camera_idle_event_s *)data;
593 if (cam_idle_event == NULL) {
594 LOGE("cam_idle_event is NULL");
599 g_mutex_lock(&cam_idle_event->event_mutex);
601 cb_info = cam_idle_event->cb_info;
602 if (cb_info == NULL) {
603 LOGW("cb_info is NULL. event %d", cam_idle_event->event);
604 goto IDLE_EVENT_CALLBACK_DONE;
607 /* remove event from list */
608 g_mutex_lock(&cb_info->idle_event_mutex);
609 if (cb_info->idle_event_list) {
610 cb_info->idle_event_list = g_list_remove(cb_info->idle_event_list, (gpointer)cam_idle_event);
612 g_mutex_unlock(&cb_info->idle_event_mutex);
615 _client_user_callback(cam_idle_event->cb_info, cam_idle_event->recvMsg, cam_idle_event->event);
617 /* send signal for waiting thread */
618 g_cond_signal(&cb_info->idle_event_cond);
620 IDLE_EVENT_CALLBACK_DONE:
621 /* unlock and release event */
622 g_mutex_unlock(&cam_idle_event->event_mutex);
623 g_mutex_clear(&cam_idle_event->event_mutex);
625 free(cam_idle_event);
626 cam_idle_event = NULL;
631 static void _camera_remove_idle_event_all(callback_cb_info_s *cb_info)
633 camera_idle_event_s *cam_idle_event = NULL;
638 if (cb_info == NULL) {
639 LOGE("cb_info is NULL");
643 g_mutex_lock(&cb_info->idle_event_mutex);
645 if (cb_info->idle_event_list) {
646 LOGD("No idle event is remained.");
648 list = cb_info->idle_event_list;
651 cam_idle_event = list->data;
652 list = g_list_next(list);
654 if (!cam_idle_event) {
655 LOGW("Fail to remove idle event. The event is NULL");
657 if (g_mutex_trylock(&cam_idle_event->event_mutex)) {
658 ret = g_idle_remove_by_data(cam_idle_event);
660 LOGD("remove idle event [%p], ret[%d]", cam_idle_event, ret);
663 cam_idle_event->cb_info = NULL;
664 LOGW("idle callback for event %p will be called later", cam_idle_event);
667 cb_info->idle_event_list = g_list_remove(cb_info->idle_event_list, (gpointer)cam_idle_event);
669 g_mutex_unlock(&cam_idle_event->event_mutex);
672 g_mutex_clear(&cam_idle_event->event_mutex);
674 free(cam_idle_event);
675 cam_idle_event = NULL;
677 LOGD("remove idle event done");
680 LOGW("event lock failed. it's being called...");
682 end_time = g_get_monotonic_time () + G_TIME_SPAN_MILLISECOND * 100;
684 if (g_cond_wait_until(&cb_info->idle_event_cond, &cb_info->idle_event_mutex, end_time)) {
685 LOGW("signal received");
693 g_list_free(cb_info->idle_event_list);
694 cb_info->idle_event_list = NULL;
697 g_mutex_unlock(&cb_info->idle_event_mutex);
702 static void *_client_cb_handler(gpointer data)
710 callback_cb_info_s *cb_info = (callback_cb_info_s *)data;
711 char *recvMsg = NULL;
712 char **parseStr = NULL;
714 if (cb_info == NULL) {
715 LOGE("cb_info NULL");
721 parseStr = (char **)malloc(sizeof(char *) * CAMERA_PARSE_STRING_SIZE);
722 if (parseStr == NULL) {
723 LOGE("parseStr malloc failed");
727 for (i = 0 ; i < CAMERA_PARSE_STRING_SIZE ; i++) {
728 parseStr[i] = (char *)malloc(sizeof(char) * MUSE_CAMERA_MSG_MAX_LENGTH);
729 if (parseStr[i] == NULL) {
730 LOGE("parseStr[%d] malloc failed", i);
731 goto CB_HANDLER_EXIT;
735 recvMsg = cb_info->recvMsg;
737 while (g_atomic_int_get(&cb_info->rcv_thread_running)) {
738 ret = muse_core_ipc_recv_msg(cb_info->fd, recvMsg);
747 LOGD("recvMSg : %s, length : %d", recvMsg, ret);
749 /* Need to split the combined entering msgs.
750 This module supports up to 200 combined msgs. */
751 for (str_pos = 0; str_pos < ret; str_pos++) {
752 if(recvMsg[str_pos] == '}') {
753 memset(parseStr[num_token], 0x0, sizeof(char) * MUSE_CAMERA_MSG_MAX_LENGTH);
754 strncpy(parseStr[num_token], recvMsg + prev_pos, str_pos - prev_pos + 1);
755 LOGD("splitted msg : [%s], Index : %d", parseStr[num_token], num_token);
756 prev_pos = str_pos+1;
761 LOGD("num_token : %d", num_token);
763 /* Re-construct to the useful single msg. */
764 for (i = 0; i < num_token; i++) {
766 if (i >= CAMERA_PARSE_STRING_SIZE)
769 if (muse_camera_msg_get(api, parseStr[i])) {
770 if(api < MUSE_CAMERA_API_MAX){
771 LOGD("Set Condition - api %d", api);
772 g_mutex_lock(&(cb_info->pMutex[api]));
774 /* The api msgs should be distinguished from the event msg. */
775 memset(cb_info->recvApiMsg, 0, strlen(cb_info->recvApiMsg));
776 strcpy(cb_info->recvApiMsg, parseStr[i]);
777 LOGD("cb_info->recvApiMsg : [%s]", cb_info->recvApiMsg);
778 cb_info->activating[api] = 1;
779 g_cond_signal(&(cb_info->pCond[api]));
780 g_mutex_unlock(&(cb_info->pMutex[api]));
782 if (api == MUSE_CAMERA_API_CREATE) {
783 if (muse_camera_msg_get(ret, cb_info->recvApiMsg)) {
784 if (ret != CAMERA_ERROR_NONE) {
785 g_atomic_int_set(&cb_info->rcv_thread_running, 0);
786 LOGE("camera create error 0x%x. close client cb handler", ret);
789 LOGE("failed to get api return");
791 } else if (api == MUSE_CAMERA_API_DESTROY) {
792 if (muse_camera_msg_get(ret, cb_info->recvApiMsg)) {
793 if (ret == CAMERA_ERROR_NONE) {
794 g_atomic_int_set(&cb_info->rcv_thread_running, 0);
795 LOGD("camera destroy done. close client cb handler");
798 LOGE("failed to get api return");
801 } else if(api == MUSE_CAMERA_CB_EVENT) {
804 camera_event_s *cam_event = NULL;
805 camera_idle_event_s *cam_idle_event = NULL;
807 if (!muse_camera_msg_get(event, parseStr[i]) ||
808 !muse_camera_msg_get(class, parseStr[i])) {
809 LOGE("failed to get event %d, class %d", event, class);
814 case MUSE_CAMERA_EVENT_CLASS_NORMAL:
815 cam_event = (camera_event_s *)malloc(sizeof(camera_event_s));
817 cam_event->event = event;
818 cam_event->cb_info = cb_info;
819 memcpy(cam_event->recvMsg, recvMsg, sizeof(cam_event->recvMsg));
821 LOGD("add event to EVENT QUEUE : %d", event);
822 g_mutex_lock(&cb_info->event_mutex);
823 g_queue_push_tail(cb_info->event_queue, (gpointer)cam_event);
824 g_cond_signal(&cb_info->event_cond);
825 g_mutex_unlock(&cb_info->event_mutex);
827 LOGE("cam_event alloc failed");
830 case MUSE_CAMERA_EVENT_CLASS_IMMEDIATE:
831 _client_user_callback(cb_info, recvMsg, event);
833 case MUSE_CAMERA_EVENT_CLASS_IDLE:
834 cam_idle_event = (camera_idle_event_s *)malloc(sizeof(camera_idle_event_s));
835 if (cam_idle_event) {
836 cam_idle_event->event = event;
837 cam_idle_event->cb_info = cb_info;
838 g_mutex_init(&cam_idle_event->event_mutex);
839 memcpy(cam_idle_event->recvMsg, recvMsg, sizeof(cam_idle_event->recvMsg));
841 LOGD("add event to IDLE : %d", event);
843 g_mutex_lock(&cb_info->idle_event_mutex);
844 cb_info->idle_event_list = g_list_append(cb_info->idle_event_list, (gpointer)cam_idle_event);
845 g_mutex_unlock(&cb_info->idle_event_mutex);
847 g_idle_add_full(G_PRIORITY_DEFAULT,
848 (GSourceFunc)_camera_idle_event_callback,
849 (gpointer)cam_idle_event,
852 LOGE("cam_idle_event alloc failed");
856 LOGE("unknown class %d", class);
860 LOGW("unknown api : %d", api);
863 LOGE("Get Msg Failed");
869 LOGD("client cb exit");
873 for (i = 0 ; i < CAMERA_PARSE_STRING_SIZE ; i++) {
887 static callback_cb_info_s *_client_callback_new(gint sockfd)
889 callback_cb_info_s *cb_info;
891 GMutex *camera_mutex;
893 g_return_val_if_fail(sockfd > 0, NULL);
895 cb_info = g_new0(callback_cb_info_s, 1);
896 camera_cond = g_new0(GCond, MUSE_CAMERA_API_MAX);
897 camera_mutex = g_new0(GMutex, MUSE_CAMERA_API_MAX);
898 camera_activ = g_new0(gint, MUSE_CAMERA_API_MAX);
900 g_atomic_int_set(&cb_info->rcv_thread_running, 1);
901 cb_info->fd = sockfd;
902 cb_info->pCond = camera_cond;
903 cb_info->pMutex = camera_mutex;
904 cb_info->activating = camera_activ;
905 cb_info->msg_rcv_thread = g_thread_new("msg_rcv_thread", _client_cb_handler, (gpointer)cb_info);
907 g_atomic_int_set(&cb_info->event_thread_running, 1);
908 g_mutex_init(&cb_info->event_mutex);
909 g_cond_init(&cb_info->event_cond);
910 g_mutex_init(&cb_info->idle_event_mutex);
911 g_cond_init(&cb_info->idle_event_cond);
912 cb_info->event_queue = g_queue_new();
913 cb_info->event_thread = g_thread_new("event_thread", _event_handler, (gpointer)cb_info);
918 static void _client_callback_destroy(callback_cb_info_s * cb_info)
920 g_return_if_fail(cb_info != NULL);
922 LOGI("MSG receive thread[%p] destroy", cb_info->msg_rcv_thread);
924 g_thread_join(cb_info->msg_rcv_thread);
925 g_thread_unref(cb_info->msg_rcv_thread);
926 cb_info->msg_rcv_thread = NULL;
928 LOGD("msg thread removed");
930 g_mutex_lock(&cb_info->event_mutex);
931 g_atomic_int_set(&cb_info->event_thread_running, 0);
932 g_cond_signal(&cb_info->event_cond);
933 g_mutex_unlock(&cb_info->event_mutex);
935 g_thread_join(cb_info->event_thread);
936 g_thread_unref(cb_info->event_thread);
937 cb_info->event_thread = NULL;
939 g_queue_free(cb_info->event_queue);
940 cb_info->event_queue = NULL;
941 g_mutex_clear(&cb_info->event_mutex);
942 g_cond_clear(&cb_info->event_cond);
943 g_mutex_clear(&cb_info->idle_event_mutex);
944 g_cond_clear(&cb_info->idle_event_cond);
946 LOGD("event thread removed");
948 if (cb_info->bufmgr) {
949 tbm_bufmgr_deinit(cb_info->bufmgr);
950 cb_info->bufmgr = NULL;
953 if (cb_info->pCond) {
954 g_free(cb_info->pCond);
956 if (cb_info->pMutex) {
957 g_free(cb_info->pMutex);
959 if (cb_info->activating) {
960 g_free(cb_info->activating);
968 int camera_create(camera_device_e device, camera_h* camera)
972 int ret = CAMERA_ERROR_NONE;
974 camera_cli_s *pc = NULL;
975 tbm_bufmgr bufmgr = NULL;
977 muse_camera_api_e api = MUSE_CAMERA_API_CREATE;
978 muse_core_api_module_e muse_module = MUSE_CAMERA;
979 int device_type = (int)device;
982 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
983 return CAMERA_ERROR_INVALID_PARAMETER;
986 bufmgr = tbm_bufmgr_init(-1);
987 if (bufmgr == NULL) {
988 LOGE("get tbm bufmgr failed");
989 return CAMERA_ERROR_INVALID_OPERATION;
992 sock_fd = muse_core_client_new();
994 LOGE("muse_core_client_new failed - returned fd %d", sock_fd);
995 ret = CAMERA_ERROR_INVALID_OPERATION;
1001 sndMsg = muse_core_msg_json_factory_new(api,
1002 MUSE_TYPE_INT, "module", muse_module,
1003 MUSE_TYPE_INT, PARAM_DEVICE_TYPE, device_type,
1004 MUSE_TYPE_INT, "pid", pid,
1007 muse_core_ipc_send_msg(sock_fd, sndMsg);
1008 muse_core_msg_json_factory_free(sndMsg);
1010 pc = g_new0(camera_cli_s, 1);
1012 ret = CAMERA_ERROR_OUT_OF_MEMORY;
1016 pc->cb_info = _client_callback_new(sock_fd);
1018 LOGD("cb info : %d", pc->cb_info->fd);
1020 ret = _client_wait_for_cb_return(api, pc->cb_info, CALLBACK_TIME_OUT);
1021 if (ret == CAMERA_ERROR_NONE) {
1022 intptr_t handle = 0;
1023 muse_camera_msg_get_pointer(handle, pc->cb_info->recvMsg);
1025 LOGE("Receiving Handle Failed!!");
1026 ret = CAMERA_ERROR_INVALID_OPERATION;
1030 pc->remote_handle = handle;
1031 pc->cb_info->bufmgr = bufmgr;
1033 LOGD("camera create 0x%x", pc->remote_handle);
1034 *camera = (camera_h) pc;
1042 tbm_bufmgr_deinit(bufmgr);
1046 _client_callback_destroy(pc->cb_info);
1052 LOGE("camera create error : 0x%x", ret);
1057 int camera_destroy(camera_h camera)
1059 if (camera == NULL) {
1060 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1061 return CAMERA_ERROR_INVALID_PARAMETER;
1064 int ret = CAMERA_ERROR_NONE;
1065 muse_camera_api_e api = MUSE_CAMERA_API_DESTROY;
1066 camera_cli_s *pc = (camera_cli_s *)camera;
1067 int sock_fd = pc->cb_info->fd;
1071 LOGE("pc is already nul!!");
1072 return CAMERA_ERROR_INVALID_PARAMETER;
1073 } else if (pc->cb_info == NULL) {
1074 return CAMERA_ERROR_INVALID_PARAMETER;
1077 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1078 if (ret == CAMERA_ERROR_NONE) {
1079 _camera_remove_idle_event_all(pc->cb_info);
1080 _client_callback_destroy(pc->cb_info);
1084 LOGE("camera destroy error : 0x%x", ret);
1090 int camera_start_preview(camera_h camera)
1093 if (camera == NULL) {
1094 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1095 return CAMERA_ERROR_INVALID_PARAMETER;
1098 int ret = CAMERA_ERROR_NONE;
1099 muse_camera_api_e api = MUSE_CAMERA_API_START_PREVIEW;
1100 camera_cli_s *pc = (camera_cli_s *)camera;
1102 char caps[MUSE_CAMERA_MSG_MAX_LENGTH] = {0};
1104 if (pc->cb_info == NULL) {
1105 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1106 return CAMERA_ERROR_INVALID_PARAMETER;
1109 sock_fd = pc->cb_info->fd;
1111 muse_camera_msg_send_longtime(api, sock_fd, pc->cb_info, ret);
1112 LOGD("Enter, ret :0x%x", ret);
1113 if(ret == CAMERA_ERROR_NONE) {
1114 muse_camera_msg_get_string(caps, pc->cb_info->recvMsg);
1115 LOGD("caps : %s", caps);
1116 if (pc->cli_display_handle != 0) {
1117 LOGD("client's display handle is : 0x%x", pc->cli_display_handle);
1118 if(strlen(caps) > 0 &&
1119 mm_camcorder_client_realize(pc->client_handle, caps) != MM_ERROR_NONE)
1120 ret = CAMERA_ERROR_INVALID_OPERATION;
1122 LOGD("display handle is NULL");
1125 LOGD("ret : 0x%x", ret);
1129 int camera_stop_preview(camera_h camera)
1131 if (camera == NULL) {
1132 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1133 return CAMERA_ERROR_INVALID_PARAMETER;
1135 int ret = CAMERA_ERROR_NONE;
1136 camera_cli_s *pc = (camera_cli_s *)camera;
1138 muse_camera_api_e api = MUSE_CAMERA_API_STOP_PREVIEW;
1140 if (pc->cb_info == NULL) {
1141 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1142 return CAMERA_ERROR_INVALID_PARAMETER;
1145 sock_fd = pc->cb_info->fd;
1147 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1149 if(ret == CAMERA_ERROR_NONE) {
1150 if (pc->cli_display_handle != 0) {
1151 LOGD("Unrealize client");
1152 if (pc->client_handle != NULL) {
1153 ret = mm_camcorder_client_unrealize(pc->client_handle);
1154 mm_camcorder_client_destroy(pc->client_handle);
1157 LOGD("Client did not realized : Display handle is NULL");
1160 LOGD("ret : 0x%x", ret);
1164 int camera_start_capture(camera_h camera, camera_capturing_cb capturing_cb, camera_capture_completed_cb completed_cb, void *user_data)
1166 if (camera == NULL) {
1167 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1168 return CAMERA_ERROR_INVALID_PARAMETER;
1170 int ret = CAMERA_ERROR_NONE;
1172 camera_cli_s *pc = (camera_cli_s *)camera;
1173 muse_camera_api_e api = MUSE_CAMERA_API_START_CAPTURE;
1175 int is_capturing_cb = 0;
1176 int is_completed_cb = 0;
1177 LOGD("Enter, handle :%x", pc->remote_handle);
1179 if (pc->cb_info == NULL) {
1180 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1181 return CAMERA_ERROR_INVALID_PARAMETER;
1184 sock_fd = pc->cb_info->fd;
1186 if (capturing_cb != NULL) {
1187 is_capturing_cb = 1;
1188 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = capturing_cb;
1189 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = user_data;
1192 if(completed_cb != NULL) {
1193 is_completed_cb = 1;
1194 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE] = completed_cb;
1195 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE] = user_data;
1198 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, is_capturing_cb, INT, is_completed_cb);
1199 LOGD("is_capturing_cb :%d, is_completed_cb : %d", is_capturing_cb, is_completed_cb);
1200 LOGD("ret : 0x%x", ret);
1204 bool camera_is_supported_continuous_capture(camera_h camera)
1206 if (camera == NULL) {
1207 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1211 int ret = CAMERA_ERROR_NONE;
1212 camera_cli_s *pc = (camera_cli_s *)camera;
1213 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_CONTINUOUS_CAPTURE;
1216 if (pc->cb_info == NULL) {
1217 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1218 return CAMERA_ERROR_INVALID_PARAMETER;
1221 sock_fd = pc->cb_info->fd;
1223 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1224 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1225 LOGD("ret : 0x%x", ret);
1229 int camera_start_continuous_capture(camera_h camera, int count, int interval, camera_capturing_cb capturing_cb, camera_capture_completed_cb completed_cb , void *user_data)
1231 if (camera == NULL) {
1232 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
1233 return CAMERA_ERROR_INVALID_PARAMETER;
1236 int ret = CAMERA_ERROR_NONE;
1238 camera_cli_s *pc = (camera_cli_s *)camera;
1239 muse_camera_api_e api = MUSE_CAMERA_API_START_CONTINUOUS_CAPTURE;
1241 LOGD("Enter, handle :%x", pc->remote_handle);
1244 if (pc->cb_info == NULL) {
1245 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1246 return CAMERA_ERROR_INVALID_PARAMETER;
1248 sock_fd = pc->cb_info->fd;
1250 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = capturing_cb;
1251 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = user_data;
1252 pc->cb_info->user_cb_completed[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = completed_cb;
1254 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, count, INT, interval);
1255 LOGD("ret : 0x%x", ret);
1259 int camera_stop_continuous_capture(camera_h camera)
1261 if (camera == NULL) {
1262 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1263 return CAMERA_ERROR_INVALID_PARAMETER;
1267 int ret = CAMERA_ERROR_NONE;
1269 camera_cli_s *pc = (camera_cli_s *)camera;
1270 muse_camera_api_e api = MUSE_CAMERA_API_STOP_CONTINUOUS_CAPTURE;
1271 LOGD("Enter, handle :%x", pc->remote_handle);
1273 if (pc->cb_info == NULL) {
1274 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1275 return CAMERA_ERROR_INVALID_PARAMETER;
1277 sock_fd = pc->cb_info->fd;
1278 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1279 LOGD("ret : 0x%x", ret);
1283 bool camera_is_supported_face_detection(camera_h camera)
1285 if (camera == NULL) {
1286 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1289 int ret = CAMERA_ERROR_NONE;
1291 camera_cli_s *pc = (camera_cli_s *)camera;
1292 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_FACE_DETECTION;
1294 if (pc->cb_info == NULL) {
1295 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1296 return CAMERA_ERROR_INVALID_PARAMETER;
1298 sock_fd = pc->cb_info->fd;
1300 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1301 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1302 LOGD("ret : 0x%x", ret);
1306 bool camera_is_supported_zero_shutter_lag(camera_h camera)
1308 if (camera == NULL) {
1309 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1312 int ret = CAMERA_ERROR_NONE;
1314 camera_cli_s *pc = (camera_cli_s *)camera;
1315 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_ZERO_SHUTTER_LAG;
1317 if (pc->cb_info == NULL) {
1318 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1319 return CAMERA_ERROR_INVALID_PARAMETER;
1321 sock_fd = pc->cb_info->fd;
1323 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1324 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1325 LOGD("ret : 0x%x", ret);
1329 bool camera_is_supported_media_packet_preview_cb(camera_h camera)
1331 if (camera == NULL) {
1332 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1336 int ret = CAMERA_ERROR_NONE;
1338 camera_cli_s *pc = (camera_cli_s *)camera;
1339 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_MEDIA_PACKET_PREVIEW_CB;
1341 if (pc->cb_info == NULL) {
1342 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1343 return CAMERA_ERROR_INVALID_PARAMETER;
1345 sock_fd = pc->cb_info->fd;
1347 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1348 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1349 LOGD("ret : 0x%x", ret);
1353 int camera_get_device_count(camera_h camera, int *device_count)
1355 if (camera == NULL || device_count == NULL) {
1356 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
1357 return CAMERA_ERROR_INVALID_PARAMETER;
1359 int ret = CAMERA_ERROR_NONE;
1361 camera_cli_s *pc = (camera_cli_s *)camera;
1362 muse_camera_api_e api = MUSE_CAMERA_API_GET_DEVICE_COUNT;
1364 if (pc->cb_info == NULL) {
1365 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1366 return CAMERA_ERROR_INVALID_PARAMETER;
1368 sock_fd = pc->cb_info->fd;
1369 int get_device_count;
1371 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1372 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1374 if (ret == CAMERA_ERROR_NONE) {
1375 muse_camera_msg_get(get_device_count, pc->cb_info->recvMsg);
1376 *device_count = get_device_count;
1378 LOGD("ret : 0x%x", ret);
1382 int camera_start_face_detection(camera_h camera, camera_face_detected_cb callback, void * user_data)
1384 if (camera == NULL) {
1385 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
1386 return CAMERA_ERROR_INVALID_PARAMETER;
1389 int ret = CAMERA_ERROR_NONE;
1391 camera_cli_s *pc = (camera_cli_s *)camera;
1392 muse_camera_api_e api = MUSE_CAMERA_API_START_FACE_DETECTION;
1394 LOGD("Enter, handle :%x", pc->remote_handle);
1396 if (pc->cb_info == NULL) {
1397 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1398 return CAMERA_ERROR_INVALID_PARAMETER;
1400 sock_fd = pc->cb_info->fd;
1401 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION] = callback;
1402 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION] = user_data;
1404 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1405 LOGD("ret : 0x%x", ret);
1409 int camera_stop_face_detection(camera_h camera)
1411 if (camera == NULL) {
1412 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1413 return CAMERA_ERROR_INVALID_PARAMETER;
1416 int ret = CAMERA_ERROR_NONE;
1418 camera_cli_s *pc = (camera_cli_s *)camera;
1419 muse_camera_api_e api = MUSE_CAMERA_API_STOP_FACE_DETECTION;
1420 LOGD("Enter, handle :%x", pc->remote_handle);
1422 if (pc->cb_info == NULL) {
1423 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1424 return CAMERA_ERROR_INVALID_PARAMETER;
1426 sock_fd = pc->cb_info->fd;
1427 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1428 LOGD("ret : 0x%x", ret);
1432 int camera_get_state(camera_h camera, camera_state_e * state)
1434 if (camera == NULL || state == NULL) {
1435 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1436 return CAMERA_ERROR_INVALID_PARAMETER;
1438 int ret = CAMERA_ERROR_NONE;
1440 camera_cli_s *pc = (camera_cli_s *)camera;
1441 muse_camera_api_e api = MUSE_CAMERA_API_GET_STATE;
1443 if (pc->cb_info == NULL) {
1444 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1445 return CAMERA_ERROR_INVALID_PARAMETER;
1447 sock_fd = pc->cb_info->fd;
1450 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1451 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1453 if (ret == CAMERA_ERROR_NONE) {
1454 muse_camera_msg_get(get_state, pc->cb_info->recvMsg);
1455 *state = (camera_state_e)get_state;
1457 LOGD("ret : 0x%x", ret);
1461 int camera_start_focusing(camera_h camera, bool continuous)
1463 if( camera == NULL){
1464 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1465 return CAMERA_ERROR_INVALID_PARAMETER;
1468 int ret = CAMERA_ERROR_NONE;
1470 camera_cli_s *pc = (camera_cli_s *)camera;
1471 muse_camera_api_e api = MUSE_CAMERA_API_START_FOCUSING;
1473 if (pc->cb_info == NULL) {
1474 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1475 return CAMERA_ERROR_INVALID_PARAMETER;
1477 sock_fd = pc->cb_info->fd;
1478 int is_continuous = (int)continuous;
1480 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1481 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, is_continuous);
1482 LOGD("ret : 0x%x", ret);
1486 int camera_cancel_focusing(camera_h camera)
1488 if (camera == NULL) {
1489 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1490 return CAMERA_ERROR_INVALID_PARAMETER;
1493 int ret = CAMERA_ERROR_NONE;
1495 camera_cli_s *pc = (camera_cli_s *)camera;
1496 muse_camera_api_e api = MUSE_CAMERA_API_CANCEL_FOCUSING;
1498 if (pc->cb_info == NULL) {
1499 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1500 return CAMERA_ERROR_INVALID_PARAMETER;
1502 sock_fd = pc->cb_info->fd;
1504 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1505 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1506 LOGD("ret : 0x%x", ret);
1510 int camera_set_display(camera_h camera, camera_display_type_e type, camera_display_h display)
1512 int ret = CAMERA_ERROR_NONE;
1513 int display_surface;
1514 void *set_display_handle = NULL;
1515 int set_surface = MM_DISPLAY_SURFACE_X;
1516 Evas_Object *obj = NULL;
1517 const char *object_type = NULL;
1518 char socket_path[MUSE_CAMERA_MSG_MAX_LENGTH] = {0,};
1520 if (camera == NULL) {
1521 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
1522 return CAMERA_ERROR_INVALID_PARAMETER;
1525 if (type != CAMERA_DISPLAY_TYPE_NONE && display == NULL) {
1526 LOGE("display type[%d] is not NONE, but display handle is NULL", type);
1527 return CAMERA_ERROR_INVALID_PARAMETER;
1530 int display_type = (int)type;
1531 camera_cli_s *pc = (camera_cli_s *)camera;
1532 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY;
1534 if (pc->cb_info == NULL) {
1535 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1536 return CAMERA_ERROR_INVALID_PARAMETER;
1538 sock_fd = pc->cb_info->fd;
1540 LOGD("Enter, remote_handle : %x display : 0x%x", pc->remote_handle, display);
1542 if (type == CAMERA_DISPLAY_TYPE_NONE) {
1543 set_display_handle = 0;
1544 set_surface = MM_DISPLAY_SURFACE_NULL;
1545 LOGD("display type NONE");
1547 obj = (Evas_Object *)display;
1548 object_type = evas_object_type_get(obj);
1550 if (type == CAMERA_DISPLAY_TYPE_OVERLAY && !strcmp(object_type, "elm_win")) {
1552 MMCamWaylandInfo *wl_info = g_new0(MMCamWaylandInfo, 1);
1554 if (wl_info == NULL) {
1555 LOGE("wl_info alloc failed : %d", sizeof(MMCamWaylandInfo));
1556 return CAMERA_ERROR_OUT_OF_MEMORY;
1559 wl_info->evas_obj = (void *)obj;
1560 wl_info->window = (void *)elm_win_wl_window_get(obj);
1561 wl_info->surface = (void *)ecore_wl_window_surface_get(wl_info->window);
1562 wl_info->display = (void *)ecore_wl_display_get();
1564 if (wl_info->window == NULL || wl_info->surface == NULL || wl_info->display == NULL) {
1565 LOGE("something is NULL %p, %p, %p", wl_info->window, wl_info->surface, wl_info->display);
1566 return CAMERA_ERROR_INVALID_OPERATION;
1569 evas_object_geometry_get(obj, &wl_info->window_x, &wl_info->window_y,
1570 &wl_info->window_width, &wl_info->window_height);
1572 /* set wayland info */
1573 pc->wl_info = wl_info;
1574 set_surface = MM_DISPLAY_SURFACE_X;
1575 set_display_handle = (void *)wl_info;
1577 LOGD("wayland obj %p, window %p, surface %p, display %p, size %d,%d,%dx%d",
1578 wl_info->evas_obj, wl_info->window, wl_info->surface, wl_info->display,
1579 wl_info->window_x, wl_info->window_y, wl_info->window_width, wl_info->window_height);
1580 #else /* HAVE_WAYLAND */
1581 /* x window overlay surface */
1582 set_display_handle = (void *)elm_win_xwindow_get(obj);
1583 set_surface = MM_DISPLAY_SURFACE_X;
1584 LOGD("display type OVERLAY : handle %p", set_display_handle);
1586 } else if (type == CAMERA_DISPLAY_TYPE_EVAS && !strcmp(object_type, "image")) {
1587 /* evas object surface */
1588 set_display_handle = (void *)display;
1589 set_surface = MM_DISPLAY_SURFACE_EVAS;
1590 LOGD("display type EVAS : handle %p", set_display_handle);
1592 LOGE("unknown evas object [%p,%s] or type [%d] mismatch", obj, object_type, type);
1593 return CAMERA_ERROR_INVALID_PARAMETER;
1596 LOGE("failed to get evas object type from %p", obj);
1597 return CAMERA_ERROR_INVALID_PARAMETER;
1601 pc->cli_display_handle = (intptr_t)set_display_handle;
1602 display_surface = (int)set_surface;
1603 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret,
1605 INT, display_surface);
1607 if (ret == CAMERA_ERROR_NONE && type == CAMERA_DISPLAY_TYPE_OVERLAY && !strcmp(object_type, "elm_win")) {
1608 if (mm_camcorder_client_create(&(pc->client_handle))) {
1609 LOGE("camera client create Failed");
1610 return CAMERA_ERROR_INVALID_OPERATION;
1612 muse_camera_msg_get_string(socket_path, pc->cb_info->recvMsg);
1613 LOGD("shmsrc stream path : %s", socket_path);
1614 if(mm_camcorder_client_set_shm_socket_path(pc->client_handle, socket_path)
1616 return CAMERA_ERROR_INVALID_OPERATION;
1617 ret = mm_camcorder_set_attributes(pc->client_handle, NULL,
1618 MMCAM_DISPLAY_SURFACE, set_surface,
1620 if (ret == MM_ERROR_NONE && type != CAMERA_DISPLAY_TYPE_NONE) {
1621 ret = mm_camcorder_set_attributes(pc->client_handle, NULL,
1622 MMCAM_DISPLAY_HANDLE, pc->cli_display_handle, sizeof(void *),
1624 LOGD("ret : 0x%x", ret);
1627 LOGD("ret : 0x%x", ret);
1631 int camera_set_preview_resolution(camera_h camera, int width, int height)
1633 if( camera == NULL){
1634 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1635 return CAMERA_ERROR_INVALID_PARAMETER;
1637 int ret = CAMERA_ERROR_NONE;
1639 camera_cli_s *pc = (camera_cli_s *)camera;
1640 muse_camera_api_e api = MUSE_CAMERA_API_SET_PREVIEW_RESOLUTION;
1642 if (pc->cb_info == NULL) {
1643 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1644 return CAMERA_ERROR_INVALID_PARAMETER;
1646 sock_fd = pc->cb_info->fd;
1648 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1649 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, width, INT, height);
1650 LOGD("ret : 0x%x", ret);
1655 int camera_set_capture_resolution(camera_h camera, int width, int height)
1657 if (camera == NULL) {
1658 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1659 return CAMERA_ERROR_INVALID_PARAMETER;
1662 int ret = CAMERA_ERROR_NONE;
1664 camera_cli_s *pc = (camera_cli_s *)camera;
1665 muse_camera_api_e api = MUSE_CAMERA_API_SET_CAPTURE_RESOLUTION;
1667 if (pc->cb_info == NULL) {
1668 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1669 return CAMERA_ERROR_INVALID_PARAMETER;
1671 sock_fd = pc->cb_info->fd;
1673 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1674 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, width, INT, height);
1675 LOGD("ret : 0x%x", ret);
1679 int camera_set_capture_format(camera_h camera, camera_pixel_format_e format)
1681 if (camera == NULL) {
1682 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1683 return CAMERA_ERROR_INVALID_PARAMETER;
1686 int ret = CAMERA_ERROR_NONE;
1687 int set_format = (int)format;
1689 camera_cli_s *pc = (camera_cli_s *)camera;
1690 muse_camera_api_e api = MUSE_CAMERA_API_SET_CAPTURE_FORMAT;
1692 if (pc->cb_info == NULL) {
1693 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1694 return CAMERA_ERROR_INVALID_PARAMETER;
1696 sock_fd = pc->cb_info->fd;
1698 LOGD("Enter, remote_handle : %x, capture_format: %d", pc->remote_handle, set_format);
1699 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_format);
1700 LOGD("ret : 0x%x", ret);
1704 int camera_set_preview_format(camera_h camera, camera_pixel_format_e format)
1706 if (camera == NULL) {
1707 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1708 return CAMERA_ERROR_INVALID_PARAMETER;
1711 int ret = CAMERA_ERROR_NONE;
1712 int set_format = (int)format;
1714 camera_cli_s *pc = (camera_cli_s *)camera;
1715 muse_camera_api_e api = MUSE_CAMERA_API_SET_PREVIEW_FORMAT;
1717 if (pc->cb_info == NULL) {
1718 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1719 return CAMERA_ERROR_INVALID_PARAMETER;
1721 sock_fd = pc->cb_info->fd;
1723 LOGD("Enter, remote_handle : %x, capture_format: %d", pc->remote_handle, set_format);
1724 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_format);
1725 LOGD("ret : 0x%x", ret);
1729 int camera_get_preview_resolution(camera_h camera, int *width, int *height)
1731 if (camera == NULL || width == NULL || height == NULL) {
1732 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1733 return CAMERA_ERROR_INVALID_PARAMETER;
1737 int ret = CAMERA_ERROR_NONE;
1739 camera_cli_s *pc = (camera_cli_s *)camera;
1740 muse_camera_api_e api = MUSE_CAMERA_API_GET_PREVIEW_RESOLUTION;
1742 if (pc->cb_info == NULL) {
1743 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1744 return CAMERA_ERROR_INVALID_PARAMETER;
1746 sock_fd = pc->cb_info->fd;
1750 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1751 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1753 if (ret == CAMERA_ERROR_NONE) {
1754 muse_camera_msg_get(get_width, pc->cb_info->recvMsg);
1755 muse_camera_msg_get(get_height, pc->cb_info->recvMsg);
1757 *height = get_height;
1759 LOGD("ret : 0x%x", ret);
1763 int camera_set_display_rotation(camera_h camera, camera_rotation_e rotation)
1765 if( camera == NULL){
1766 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1767 return CAMERA_ERROR_INVALID_PARAMETER;
1770 int ret = CAMERA_ERROR_NONE;
1771 camera_cli_s *pc = (camera_cli_s *)camera;
1772 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_ROTATION;
1774 if (pc->cb_info == NULL) {
1775 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1776 return CAMERA_ERROR_INVALID_PARAMETER;
1778 sock_fd = pc->cb_info->fd;
1779 int set_rotation = (int)rotation;
1781 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1782 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_rotation);
1783 LOGD("ret : 0x%x", ret);
1787 int camera_get_display_rotation(camera_h camera, camera_rotation_e *rotation)
1789 if( camera == NULL || rotation == NULL ){
1790 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1791 return CAMERA_ERROR_INVALID_PARAMETER;
1794 int ret = CAMERA_ERROR_NONE;
1796 camera_cli_s *pc = (camera_cli_s *)camera;
1797 muse_camera_api_e api = MUSE_CAMERA_API_GET_DISPLAY_ROTATION;
1799 if (pc->cb_info == NULL) {
1800 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1801 return CAMERA_ERROR_INVALID_PARAMETER;
1803 sock_fd = pc->cb_info->fd;
1806 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1807 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1809 if (ret == CAMERA_ERROR_NONE) {
1810 muse_camera_msg_get(get_rotation, pc->cb_info->recvMsg);
1811 *rotation = (camera_rotation_e)get_rotation;
1813 LOGD("ret : 0x%x", ret);
1817 int camera_set_display_flip(camera_h camera, camera_flip_e flip)
1819 if( camera == NULL){
1820 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1821 return CAMERA_ERROR_INVALID_PARAMETER;
1824 int ret = CAMERA_ERROR_NONE;
1826 camera_cli_s *pc = (camera_cli_s *)camera;
1827 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_FLIP;
1829 if (pc->cb_info == NULL) {
1830 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1831 return CAMERA_ERROR_INVALID_PARAMETER;
1833 sock_fd = pc->cb_info->fd;
1834 int set_flip = (int)flip;
1836 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1837 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_flip);
1838 LOGD("ret : 0x%x", ret);
1842 int camera_get_display_flip(camera_h camera, camera_flip_e *flip)
1844 if( camera == NULL || flip == NULL ){
1845 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1846 return CAMERA_ERROR_INVALID_PARAMETER;
1849 int ret = CAMERA_ERROR_NONE;
1851 camera_cli_s *pc = (camera_cli_s *)camera;
1852 muse_camera_api_e api = MUSE_CAMERA_API_GET_DISPLAY_FLIP;
1854 if (pc->cb_info == NULL) {
1855 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1856 return CAMERA_ERROR_INVALID_PARAMETER;
1858 sock_fd = pc->cb_info->fd;
1861 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1862 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1864 if (ret == CAMERA_ERROR_NONE) {
1865 muse_camera_msg_get(get_flip, pc->cb_info->recvMsg);
1866 *flip = (camera_flip_e)get_flip;
1868 LOGD("ret : 0x%x", ret);
1872 int camera_set_display_visible(camera_h camera, bool visible)
1874 if( camera == NULL){
1875 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1876 return CAMERA_ERROR_INVALID_PARAMETER;
1879 int ret = CAMERA_ERROR_NONE;
1881 camera_cli_s *pc = (camera_cli_s *)camera;
1882 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_VISIBLE;
1883 int set_visible = (int)visible;
1885 if (pc->cb_info == NULL) {
1886 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1887 return CAMERA_ERROR_INVALID_PARAMETER;
1889 sock_fd = pc->cb_info->fd;
1891 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1892 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_visible);
1893 LOGD("ret : 0x%x", ret);
1897 int camera_is_display_visible(camera_h camera, bool* visible)
1899 if( camera == NULL || visible == NULL){
1900 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1901 return CAMERA_ERROR_INVALID_PARAMETER;
1904 int ret = CAMERA_ERROR_NONE;
1906 camera_cli_s *pc = (camera_cli_s *)camera;
1907 muse_camera_api_e api = MUSE_CAMERA_API_IS_DISPLAY_VISIBLE;
1909 if (pc->cb_info == NULL) {
1910 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1911 return CAMERA_ERROR_INVALID_PARAMETER;
1913 sock_fd = pc->cb_info->fd;
1916 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1917 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1919 if (ret == CAMERA_ERROR_NONE) {
1920 muse_camera_msg_get(get_visible, pc->cb_info->recvMsg);
1921 *visible = (bool)get_visible;
1923 LOGD("ret : 0x%x", ret);
1927 int camera_set_display_mode(camera_h camera, camera_display_mode_e mode)
1929 if (camera == NULL) {
1930 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1931 return CAMERA_ERROR_INVALID_PARAMETER;
1934 int ret = CAMERA_ERROR_NONE;
1935 int set_mode = (int)mode;
1937 camera_cli_s *pc = (camera_cli_s *)camera;
1938 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_MODE;
1940 if (pc->cb_info == NULL) {
1941 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1942 return CAMERA_ERROR_INVALID_PARAMETER;
1944 sock_fd = pc->cb_info->fd;
1946 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1947 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
1948 LOGD("ret : 0x%x", ret);
1952 int camera_get_display_mode(camera_h camera, camera_display_mode_e* mode)
1954 if( camera == NULL || mode == NULL){
1955 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1956 return CAMERA_ERROR_INVALID_PARAMETER;
1959 int ret = CAMERA_ERROR_NONE;
1961 camera_cli_s *pc = (camera_cli_s *)camera;
1962 muse_camera_api_e api = MUSE_CAMERA_API_GET_DISPLAY_MODE;
1964 if (pc->cb_info == NULL) {
1965 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1966 return CAMERA_ERROR_INVALID_PARAMETER;
1968 sock_fd = pc->cb_info->fd;
1971 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1972 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1974 if (ret == CAMERA_ERROR_NONE) {
1975 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
1976 *mode = (camera_display_mode_e)get_mode;
1978 LOGD("ret : 0x%x", ret);
1982 int camera_get_capture_resolution(camera_h camera, int *width, int *height)
1984 if( camera == NULL || width== NULL || height == NULL){
1985 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1986 return CAMERA_ERROR_INVALID_PARAMETER;
1988 int ret = CAMERA_ERROR_NONE;
1990 camera_cli_s *pc = (camera_cli_s *)camera;
1991 muse_camera_api_e api = MUSE_CAMERA_API_GET_CAPTURE_RESOLUTION;
1993 if (pc->cb_info == NULL) {
1994 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1995 return CAMERA_ERROR_INVALID_PARAMETER;
1997 sock_fd = pc->cb_info->fd;
2001 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2002 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2004 if (ret == CAMERA_ERROR_NONE) {
2005 muse_camera_msg_get(get_width, pc->cb_info->recvMsg);
2006 muse_camera_msg_get(get_height, pc->cb_info->recvMsg);
2008 *height = get_height;
2010 LOGD("ret : 0x%x", ret);
2014 int camera_get_capture_format(camera_h camera, camera_pixel_format_e *format)
2016 if( camera == NULL || format == NULL){
2017 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2018 return CAMERA_ERROR_INVALID_PARAMETER;
2020 int ret = CAMERA_ERROR_NONE;
2022 camera_cli_s *pc = (camera_cli_s *)camera;
2023 muse_camera_api_e api = MUSE_CAMERA_API_GET_CAPTURE_FORMAT;
2026 if (pc->cb_info == NULL) {
2027 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2028 return CAMERA_ERROR_INVALID_PARAMETER;
2030 sock_fd = pc->cb_info->fd;
2032 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2033 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2035 if (ret == CAMERA_ERROR_NONE) {
2036 muse_camera_msg_get(get_format, pc->cb_info->recvMsg);
2037 *format = (camera_pixel_format_e)get_format;
2039 LOGD("ret : 0x%x", ret);
2043 int camera_get_preview_format(camera_h camera, camera_pixel_format_e *format)
2045 if( camera == NULL || format == NULL){
2046 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2047 return CAMERA_ERROR_INVALID_PARAMETER;
2050 int ret = CAMERA_ERROR_NONE;
2052 camera_cli_s *pc = (camera_cli_s *)camera;
2053 muse_camera_api_e api = MUSE_CAMERA_API_GET_PREVIEW_FORMAT;
2056 if (pc->cb_info == NULL) {
2057 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2058 return CAMERA_ERROR_INVALID_PARAMETER;
2060 sock_fd = pc->cb_info->fd;
2062 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2063 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2065 if (ret == CAMERA_ERROR_NONE) {
2066 muse_camera_msg_get(get_format, pc->cb_info->recvMsg);
2067 *format = (camera_pixel_format_e)get_format;
2069 LOGD("ret : 0x%x", ret);
2073 int camera_set_preview_cb(camera_h camera, camera_preview_cb callback, void* user_data)
2075 if (camera == NULL || callback == NULL) {
2076 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2077 return CAMERA_ERROR_INVALID_PARAMETER;
2079 int ret = CAMERA_ERROR_NONE;
2081 camera_cli_s *pc = (camera_cli_s *)camera;
2083 if (pc->cb_info == NULL) {
2084 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2085 return CAMERA_ERROR_INVALID_PARAMETER;
2087 sock_fd = pc->cb_info->fd;
2088 muse_camera_api_e api = MUSE_CAMERA_API_SET_PREVIEW_CB;
2090 LOGD("Enter, handle :%x", pc->remote_handle);
2092 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = callback;
2093 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = user_data;
2095 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2096 LOGD("ret : 0x%x", ret);
2100 int camera_unset_preview_cb(camera_h camera)
2102 if (camera == NULL) {
2103 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2104 return CAMERA_ERROR_INVALID_PARAMETER;
2107 int ret = CAMERA_ERROR_NONE;
2109 camera_cli_s *pc = (camera_cli_s *)camera;
2110 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_PREVIEW_CB;
2112 LOGD("Enter, handle :%x", pc->remote_handle);
2115 if (pc->cb_info == NULL) {
2116 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2117 return CAMERA_ERROR_INVALID_PARAMETER;
2119 sock_fd = pc->cb_info->fd;
2120 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = (void *)NULL;
2121 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = (void *)NULL;
2123 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2124 LOGD("ret : 0x%x", ret);
2128 int camera_set_media_packet_preview_cb(camera_h camera, camera_media_packet_preview_cb callback, void* user_data)
2130 if (camera == NULL) {
2131 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
2132 return CAMERA_ERROR_INVALID_PARAMETER;
2135 if (callback == NULL) {
2136 LOGE("INVALID_PARAMETER(0x%08x) - callback", CAMERA_ERROR_INVALID_PARAMETER);
2137 return CAMERA_ERROR_NOT_SUPPORTED;
2140 int ret = CAMERA_ERROR_NONE;
2142 camera_cli_s *pc = (camera_cli_s *)camera;
2143 muse_camera_api_e api = MUSE_CAMERA_API_SET_MEDIA_PACKET_PREVIEW_CB;
2145 LOGD("Enter, handle :%x", pc->remote_handle);
2148 if (pc->cb_info == NULL) {
2149 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2150 return CAMERA_ERROR_INVALID_PARAMETER;
2152 sock_fd = pc->cb_info->fd;
2153 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = callback;
2154 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = user_data;
2156 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2157 LOGD("ret : 0x%x", ret);
2161 int camera_unset_media_packet_preview_cb(camera_h camera)
2163 if (camera == NULL) {
2164 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2165 return CAMERA_ERROR_INVALID_PARAMETER;
2168 int ret = CAMERA_ERROR_NONE;
2170 camera_cli_s *pc = (camera_cli_s *)camera;
2171 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_MEDIA_PACKET_PREVIEW_CB;
2173 LOGD("Enter, handle :%x", pc->remote_handle);
2176 if (pc->cb_info == NULL) {
2177 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2178 return CAMERA_ERROR_INVALID_PARAMETER;
2180 sock_fd = pc->cb_info->fd;
2181 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = (void *)NULL;
2182 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = (void *)NULL;
2184 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2185 LOGD("ret : 0x%x", ret);
2189 int camera_set_state_changed_cb(camera_h camera, camera_state_changed_cb callback, void* user_data)
2191 if( camera == NULL || callback == NULL){
2192 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2193 return CAMERA_ERROR_INVALID_PARAMETER;
2195 int ret = CAMERA_ERROR_NONE;
2197 camera_cli_s *pc = (camera_cli_s *)camera;
2198 muse_camera_api_e api = MUSE_CAMERA_API_SET_STATE_CHANGED_CB;
2200 LOGD("Enter, handle :%x", pc->remote_handle);
2203 if (pc->cb_info == NULL) {
2204 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2205 return CAMERA_ERROR_INVALID_PARAMETER;
2207 sock_fd = pc->cb_info->fd;
2208 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = callback;
2209 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = user_data;
2211 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2212 LOGD("ret : 0x%x", ret);
2215 int camera_unset_state_changed_cb(camera_h camera)
2217 if( camera == NULL){
2218 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2219 return CAMERA_ERROR_INVALID_PARAMETER;
2221 int ret = CAMERA_ERROR_NONE;
2223 camera_cli_s *pc = (camera_cli_s *)camera;
2224 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_STATE_CHANGED_CB;
2226 LOGD("Enter, handle :%x", pc->remote_handle);
2229 if (pc->cb_info == NULL) {
2230 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2231 return CAMERA_ERROR_INVALID_PARAMETER;
2233 sock_fd = pc->cb_info->fd;
2234 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = (void *)NULL;
2235 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = (void *)NULL;
2237 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2238 LOGD("ret : 0x%x", ret);
2242 int camera_set_interrupted_cb(camera_h camera, camera_interrupted_cb callback, void *user_data)
2244 if( camera == NULL || callback == NULL){
2245 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2246 return CAMERA_ERROR_INVALID_PARAMETER;
2248 int ret = CAMERA_ERROR_NONE;
2250 camera_cli_s *pc = (camera_cli_s *)camera;
2251 muse_camera_api_e api = MUSE_CAMERA_API_SET_INTERRUPTED_CB;
2253 LOGD("Enter, handle :%x", pc->remote_handle);
2256 if (pc->cb_info == NULL) {
2257 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2258 return CAMERA_ERROR_INVALID_PARAMETER;
2260 sock_fd = pc->cb_info->fd;
2261 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = callback;
2262 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = user_data;
2264 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2265 LOGD("ret : 0x%x", ret);
2269 int camera_unset_interrupted_cb(camera_h camera)
2271 if( camera == NULL){
2272 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2273 return CAMERA_ERROR_INVALID_PARAMETER;
2275 int ret = CAMERA_ERROR_NONE;
2277 camera_cli_s *pc = (camera_cli_s *)camera;
2278 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_INTERRUPTED_CB;
2280 LOGD("Enter, handle :%x", pc->remote_handle);
2283 if (pc->cb_info == NULL) {
2284 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2285 return CAMERA_ERROR_INVALID_PARAMETER;
2287 sock_fd = pc->cb_info->fd;
2288 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = (void *)NULL;
2289 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = (void *)NULL;
2291 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2292 LOGD("ret : 0x%x", ret);
2296 int camera_set_focus_changed_cb(camera_h camera, camera_focus_changed_cb callback, void* user_data)
2298 if( camera == NULL || callback == NULL){
2299 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2300 return CAMERA_ERROR_INVALID_PARAMETER;
2302 int ret = CAMERA_ERROR_NONE;
2304 camera_cli_s *pc = (camera_cli_s *)camera;
2305 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOCUS_CHANGED_CB;
2307 LOGD("Enter, handle :%x", pc->remote_handle);
2310 if (pc->cb_info == NULL) {
2311 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2312 return CAMERA_ERROR_INVALID_PARAMETER;
2314 sock_fd = pc->cb_info->fd;
2315 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = callback;
2316 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = user_data;
2318 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2319 LOGD("ret : 0x%x", ret);
2323 int camera_unset_focus_changed_cb(camera_h camera)
2325 if( camera == NULL){
2326 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2327 return CAMERA_ERROR_INVALID_PARAMETER;
2329 int ret = CAMERA_ERROR_NONE;
2331 camera_cli_s *pc = (camera_cli_s *)camera;
2332 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_FOCUS_CHANGED_CB;
2334 LOGD("Enter, handle :%x", pc->remote_handle);
2337 if (pc->cb_info == NULL) {
2338 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2339 return CAMERA_ERROR_INVALID_PARAMETER;
2341 sock_fd = pc->cb_info->fd;
2342 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = (void *)NULL;
2343 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = (void *)NULL;
2345 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2346 LOGD("ret : 0x%x", ret);
2350 int camera_set_error_cb(camera_h camera, camera_error_cb callback, void *user_data)
2352 if( camera == NULL || callback == NULL){
2353 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2354 return CAMERA_ERROR_INVALID_PARAMETER;
2356 int ret = CAMERA_ERROR_NONE;
2358 camera_cli_s *pc = (camera_cli_s *)camera;
2359 muse_camera_api_e api = MUSE_CAMERA_API_SET_ERROR_CB;
2361 LOGD("Enter, handle :%x", pc->remote_handle);
2364 if (pc->cb_info == NULL) {
2365 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2366 return CAMERA_ERROR_INVALID_PARAMETER;
2368 sock_fd = pc->cb_info->fd;
2369 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_ERROR] = callback;
2370 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_ERROR] = user_data;
2372 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2373 LOGD("ret : 0x%x", ret);
2377 int camera_unset_error_cb(camera_h camera)
2379 if( camera == NULL){
2380 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2381 return CAMERA_ERROR_INVALID_PARAMETER;
2383 int ret = CAMERA_ERROR_NONE;
2385 camera_cli_s *pc = (camera_cli_s *)camera;
2386 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_ERROR_CB;
2388 LOGD("Enter, handle :%x", pc->remote_handle);
2391 if (pc->cb_info == NULL) {
2392 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2393 return CAMERA_ERROR_INVALID_PARAMETER;
2395 sock_fd = pc->cb_info->fd;
2396 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_ERROR] = (void *)NULL;
2397 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_ERROR] = (void *)NULL;
2399 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2400 LOGD("ret : 0x%x", ret);
2404 int camera_foreach_supported_preview_resolution(camera_h camera, camera_supported_preview_resolution_cb foreach_cb , void *user_data)
2406 if( camera == NULL || foreach_cb == NULL){
2407 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2408 return CAMERA_ERROR_INVALID_PARAMETER;
2410 int ret = CAMERA_ERROR_NONE;
2412 camera_cli_s *pc = (camera_cli_s *)camera;
2413 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_RESOLUTION;
2415 LOGD("Enter, handle :%x", pc->remote_handle);
2418 if (pc->cb_info == NULL) {
2419 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2420 return CAMERA_ERROR_INVALID_PARAMETER;
2422 sock_fd = pc->cb_info->fd;
2423 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION] = foreach_cb;
2424 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION] = user_data;
2426 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2427 LOGD("ret : 0x%x", ret);
2431 int camera_foreach_supported_capture_resolution(camera_h camera, camera_supported_capture_resolution_cb foreach_cb , void *user_data)
2433 if( camera == NULL || foreach_cb == NULL){
2434 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2435 return CAMERA_ERROR_INVALID_PARAMETER;
2437 int ret = CAMERA_ERROR_NONE;
2439 camera_cli_s *pc = (camera_cli_s *)camera;
2440 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_RESOLUTION;
2442 LOGD("Enter, handle :%x", pc->remote_handle);
2445 if (pc->cb_info == NULL) {
2446 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2447 return CAMERA_ERROR_INVALID_PARAMETER;
2449 sock_fd = pc->cb_info->fd;
2450 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION] = foreach_cb;
2451 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION] = user_data;
2453 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2454 LOGD("ret : 0x%x", ret);
2458 int camera_foreach_supported_capture_format(camera_h camera, camera_supported_capture_format_cb foreach_cb , void *user_data)
2460 if( camera == NULL || foreach_cb == NULL){
2461 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2462 return CAMERA_ERROR_INVALID_PARAMETER;
2464 int ret = CAMERA_ERROR_NONE;
2466 camera_cli_s *pc = (camera_cli_s *)camera;
2467 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_FORMAT;
2469 LOGD("Enter, handle :%x", pc->remote_handle);
2472 if (pc->cb_info == NULL) {
2473 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2474 return CAMERA_ERROR_INVALID_PARAMETER;
2476 sock_fd = pc->cb_info->fd;
2477 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT] = foreach_cb;
2478 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT] = user_data;
2480 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2481 LOGD("ret : 0x%x", ret);
2486 int camera_foreach_supported_preview_format(camera_h camera, camera_supported_preview_format_cb foreach_cb , void *user_data)
2488 if( camera == NULL || foreach_cb == NULL){
2489 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2490 return CAMERA_ERROR_INVALID_PARAMETER;
2492 int ret = CAMERA_ERROR_NONE;
2494 camera_cli_s *pc = (camera_cli_s *)camera;
2495 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_FORMAT;
2497 LOGD("Enter, handle :%x", pc->remote_handle);
2500 if (pc->cb_info == NULL) {
2501 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2502 return CAMERA_ERROR_INVALID_PARAMETER;
2504 sock_fd = pc->cb_info->fd;
2505 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT] = foreach_cb;
2506 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT] = user_data;
2508 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2509 LOGD("ret : 0x%x", ret);
2514 int camera_get_recommended_preview_resolution(camera_h camera, int *width, int *height)
2516 if (camera == NULL || width == NULL || height == NULL) {
2517 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2518 return CAMERA_ERROR_INVALID_PARAMETER;
2520 int ret = CAMERA_ERROR_NONE;
2522 camera_cli_s *pc = (camera_cli_s *)camera;
2523 muse_camera_api_e api = MUSE_CAMERA_API_GET_RECOMMENDED_PREVIEW_RESOLUTION;
2525 if (pc->cb_info == NULL) {
2526 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2527 return CAMERA_ERROR_INVALID_PARAMETER;
2529 sock_fd = pc->cb_info->fd;
2533 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2534 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2536 if (ret == CAMERA_ERROR_NONE) {
2537 muse_camera_msg_get(get_width, pc->cb_info->recvMsg);
2538 muse_camera_msg_get(get_height, pc->cb_info->recvMsg);
2540 *height = get_height;
2542 LOGD("ret : 0x%x", ret);
2547 int camera_attr_get_lens_orientation(camera_h camera, int *angle)
2549 if( camera == NULL || angle == NULL){
2550 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2551 return CAMERA_ERROR_INVALID_PARAMETER;
2553 int ret = CAMERA_ERROR_NONE;
2555 camera_cli_s *pc = (camera_cli_s *)camera;
2556 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_LENS_ORIENTATION;
2558 if (pc->cb_info == NULL) {
2559 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2560 return CAMERA_ERROR_INVALID_PARAMETER;
2562 sock_fd = pc->cb_info->fd;
2565 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2566 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2568 if (ret == CAMERA_ERROR_NONE) {
2569 muse_camera_msg_get(get_angle, pc->cb_info->recvMsg);
2572 LOGD("ret : 0x%x", ret);
2576 int camera_attr_set_theater_mode(camera_h camera, camera_attr_theater_mode_e mode)
2578 if (camera == NULL) {
2579 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2580 return CAMERA_ERROR_INVALID_PARAMETER;
2582 int ret = CAMERA_ERROR_NONE;
2583 camera_cli_s *pc = (camera_cli_s *)camera;
2584 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_THEATER_MODE;
2586 if (pc->cb_info == NULL) {
2587 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2588 return CAMERA_ERROR_INVALID_PARAMETER;
2590 sock_fd = pc->cb_info->fd;
2591 int set_mode = (int)mode;
2592 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2593 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2594 LOGD("ret : 0x%x", ret);
2598 int camera_attr_get_theater_mode(camera_h camera, camera_attr_theater_mode_e *mode)
2600 if (camera == NULL || mode == NULL) {
2601 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2602 return CAMERA_ERROR_INVALID_PARAMETER;
2605 int ret = CAMERA_ERROR_NONE;
2606 camera_cli_s *pc = (camera_cli_s *)camera;
2607 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_THEATER_MODE;
2609 if (pc->cb_info == NULL) {
2610 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2611 return CAMERA_ERROR_INVALID_PARAMETER;
2613 sock_fd = pc->cb_info->fd;
2615 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2616 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2618 if (ret == CAMERA_ERROR_NONE) {
2619 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
2620 *mode = (camera_attr_theater_mode_e)get_mode;
2622 LOGD("ret : 0x%x", ret);
2626 int camera_attr_foreach_supported_theater_mode(camera_h camera, camera_attr_supported_theater_mode_cb foreach_cb, void *user_data)
2628 if (camera == NULL || foreach_cb == NULL) {
2629 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2630 return CAMERA_ERROR_INVALID_PARAMETER;
2632 int ret = CAMERA_ERROR_NONE;
2634 camera_cli_s *pc = (camera_cli_s *)camera;
2635 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_THEATER_MODE;
2637 LOGD("Enter, handle :%x", pc->remote_handle);
2640 if (pc->cb_info == NULL) {
2641 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2642 return CAMERA_ERROR_INVALID_PARAMETER;
2644 sock_fd = pc->cb_info->fd;
2645 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE] = foreach_cb;
2646 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE] = user_data;
2648 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2650 LOGD("Finish, return :%x", ret);
2655 int camera_attr_set_preview_fps(camera_h camera, camera_attr_fps_e fps)
2657 if( camera == NULL){
2658 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2659 return CAMERA_ERROR_INVALID_PARAMETER;
2661 int ret = CAMERA_ERROR_NONE;
2662 camera_cli_s *pc = (camera_cli_s *)camera;
2663 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_PREVIEW_FPS;
2665 if (pc->cb_info == NULL) {
2666 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2667 return CAMERA_ERROR_INVALID_PARAMETER;
2669 sock_fd = pc->cb_info->fd;
2670 int set_fps = (int)fps;
2671 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2672 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_fps);
2673 LOGD("ret : 0x%x", ret);
2678 int camera_attr_set_image_quality(camera_h camera, int quality)
2680 if( camera == NULL){
2681 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2682 return CAMERA_ERROR_INVALID_PARAMETER;
2684 int ret = CAMERA_ERROR_NONE;
2686 camera_cli_s *pc = (camera_cli_s *)camera;
2687 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_IMAGE_QUALITY;
2689 if (pc->cb_info == NULL) {
2690 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2691 return CAMERA_ERROR_INVALID_PARAMETER;
2693 sock_fd = pc->cb_info->fd;
2694 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2695 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, quality);
2696 LOGD("ret : 0x%x", ret);
2700 int camera_attr_get_preview_fps(camera_h camera, camera_attr_fps_e *fps)
2702 if( camera == NULL || fps == NULL){
2703 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2704 return CAMERA_ERROR_INVALID_PARAMETER;
2706 int ret = CAMERA_ERROR_NONE;
2708 camera_cli_s *pc = (camera_cli_s *)camera;
2709 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_PREVIEW_FPS;
2712 if (pc->cb_info == NULL) {
2713 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2714 return CAMERA_ERROR_INVALID_PARAMETER;
2716 sock_fd = pc->cb_info->fd;
2718 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2719 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2721 if (ret == CAMERA_ERROR_NONE) {
2722 muse_camera_msg_get(get_fps, pc->cb_info->recvMsg);
2723 *fps = (camera_attr_fps_e)get_fps;
2725 LOGD("ret : 0x%x", ret);
2730 int camera_attr_get_image_quality(camera_h camera, int *quality)
2732 if( camera == NULL || quality == NULL){
2733 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2734 return CAMERA_ERROR_INVALID_PARAMETER;
2736 int ret = CAMERA_ERROR_NONE;
2738 camera_cli_s *pc = (camera_cli_s *)camera;
2739 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_IMAGE_QUALITY;
2741 if (pc->cb_info == NULL) {
2742 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2743 return CAMERA_ERROR_INVALID_PARAMETER;
2745 sock_fd = pc->cb_info->fd;
2747 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2748 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2750 if (ret == CAMERA_ERROR_NONE) {
2751 muse_camera_msg_get(get_quality, pc->cb_info->recvMsg);
2752 *quality = get_quality;
2754 LOGD("ret : 0x%x", ret);
2759 int camera_attr_set_zoom(camera_h camera, int zoom)
2761 if( camera == NULL){
2762 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2763 return CAMERA_ERROR_INVALID_PARAMETER;
2765 int ret = CAMERA_ERROR_NONE;
2767 camera_cli_s *pc = (camera_cli_s *)camera;
2768 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_ZOOM;
2770 if (pc->cb_info == NULL) {
2771 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2772 return CAMERA_ERROR_INVALID_PARAMETER;
2774 sock_fd = pc->cb_info->fd;
2776 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2777 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, zoom);
2778 LOGD("ret : 0x%x", ret);
2782 int camera_attr_set_af_mode(camera_h camera, camera_attr_af_mode_e mode)
2784 if( camera == NULL){
2785 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2786 return CAMERA_ERROR_INVALID_PARAMETER;
2788 int ret = CAMERA_ERROR_NONE;
2790 camera_cli_s *pc = (camera_cli_s *)camera;
2791 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_AF_MODE;
2793 if (pc->cb_info == NULL) {
2794 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2795 return CAMERA_ERROR_INVALID_PARAMETER;
2797 sock_fd = pc->cb_info->fd;
2798 int set_mode = (int)mode;
2799 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2800 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2801 LOGD("ret : 0x%x", ret);
2805 int camera_attr_set_af_area(camera_h camera, int x, int y)
2807 if( camera == NULL){
2808 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2809 return CAMERA_ERROR_INVALID_PARAMETER;
2811 int ret = CAMERA_ERROR_NONE;
2812 camera_cli_s *pc = (camera_cli_s *)camera;
2813 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_AF_AREA;
2814 int sock_fd = pc->cb_info->fd;
2815 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2816 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, x, INT, y);
2817 LOGD("ret : 0x%x", ret);
2822 int camera_attr_clear_af_area(camera_h camera)
2824 if( camera == NULL){
2825 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2826 return CAMERA_ERROR_INVALID_PARAMETER;
2828 int ret = CAMERA_ERROR_NONE;
2830 camera_cli_s *pc = (camera_cli_s *)camera;
2831 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_CLEAR_AF_AREA;
2833 if (pc->cb_info == NULL) {
2834 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2835 return CAMERA_ERROR_INVALID_PARAMETER;
2837 sock_fd = pc->cb_info->fd;
2838 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2839 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2840 LOGD("ret : 0x%x", ret);
2845 int camera_attr_set_exposure_mode(camera_h camera, camera_attr_exposure_mode_e mode)
2847 if( camera == NULL){
2848 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2849 return CAMERA_ERROR_INVALID_PARAMETER;
2852 if (mode < CAMERA_ATTR_EXPOSURE_MODE_OFF || mode > CAMERA_ATTR_EXPOSURE_MODE_CUSTOM) {
2853 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_NOT_SUPPORTED);
2854 return CAMERA_ERROR_NOT_SUPPORTED;
2857 int ret = CAMERA_ERROR_NONE;
2858 camera_cli_s *pc = (camera_cli_s *)camera;
2859 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EXPOSURE_MODE;
2860 int set_mode = (int)mode;
2862 if (pc->cb_info == NULL) {
2863 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2864 return CAMERA_ERROR_INVALID_PARAMETER;
2866 sock_fd = pc->cb_info->fd;
2867 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2868 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2869 LOGD("ret : 0x%x", ret);
2874 int camera_attr_set_exposure(camera_h camera, int value)
2876 if( camera == NULL){
2877 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2878 return CAMERA_ERROR_INVALID_PARAMETER;
2880 int ret = CAMERA_ERROR_NONE;
2882 camera_cli_s *pc = (camera_cli_s *)camera;
2883 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EXPOSURE;
2885 if (pc->cb_info == NULL) {
2886 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2887 return CAMERA_ERROR_INVALID_PARAMETER;
2889 sock_fd = pc->cb_info->fd;
2891 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2892 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, value);
2893 LOGD("ret : 0x%x", ret);
2898 int camera_attr_set_iso(camera_h camera, camera_attr_iso_e iso)
2900 if( camera == NULL){
2901 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2902 return CAMERA_ERROR_INVALID_PARAMETER;
2904 int ret = CAMERA_ERROR_NONE;
2906 camera_cli_s *pc = (camera_cli_s *)camera;
2907 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_ISO;
2909 if (pc->cb_info == NULL) {
2910 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2911 return CAMERA_ERROR_INVALID_PARAMETER;
2913 sock_fd = pc->cb_info->fd;
2914 int set_iso = (int)iso;
2915 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2916 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_iso);
2917 LOGD("ret : 0x%x", ret);
2922 int camera_attr_set_brightness(camera_h camera, int level)
2924 if( camera == NULL){
2925 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2926 return CAMERA_ERROR_INVALID_PARAMETER;
2928 int ret = CAMERA_ERROR_NONE;
2930 camera_cli_s *pc = (camera_cli_s *)camera;
2931 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_BRIGHTNESS;
2933 if (pc->cb_info == NULL) {
2934 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2935 return CAMERA_ERROR_INVALID_PARAMETER;
2937 sock_fd = pc->cb_info->fd;
2939 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2940 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, level);
2941 LOGD("ret : 0x%x", ret);
2946 int camera_attr_set_contrast(camera_h camera, int level)
2948 if( camera == NULL){
2949 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2950 return CAMERA_ERROR_INVALID_PARAMETER;
2952 int ret = CAMERA_ERROR_NONE;
2954 camera_cli_s *pc = (camera_cli_s *)camera;
2955 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_CONTRAST;
2957 if (pc->cb_info == NULL) {
2958 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2959 return CAMERA_ERROR_INVALID_PARAMETER;
2961 sock_fd = pc->cb_info->fd;
2963 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2964 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, level);
2965 LOGD("ret : 0x%x", ret);
2970 int camera_attr_set_whitebalance(camera_h camera, camera_attr_whitebalance_e wb)
2972 if (camera == NULL) {
2973 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2974 return CAMERA_ERROR_INVALID_PARAMETER;
2977 if (wb < CAMERA_ATTR_WHITE_BALANCE_NONE || wb > CAMERA_ATTR_WHITE_BALANCE_CUSTOM) {
2978 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_NOT_SUPPORTED);
2979 return CAMERA_ERROR_NOT_SUPPORTED;
2982 int ret = CAMERA_ERROR_NONE;
2984 camera_cli_s *pc = (camera_cli_s *)camera;
2985 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_WHITEBALANCE;
2987 if (pc->cb_info == NULL) {
2988 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2989 return CAMERA_ERROR_INVALID_PARAMETER;
2991 sock_fd = pc->cb_info->fd;
2992 int set_whitebalance = (int)wb;
2993 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2994 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_whitebalance);
2995 LOGD("ret : 0x%x", ret);
3000 int camera_attr_set_effect(camera_h camera, camera_attr_effect_mode_e effect)
3002 if( camera == NULL){
3003 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3004 return CAMERA_ERROR_INVALID_PARAMETER;
3006 int ret = CAMERA_ERROR_NONE;
3008 camera_cli_s *pc = (camera_cli_s *)camera;
3009 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EFFECT;
3011 if (pc->cb_info == NULL) {
3012 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3013 return CAMERA_ERROR_INVALID_PARAMETER;
3015 sock_fd = pc->cb_info->fd;
3016 int set_effect = (int)effect;
3017 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3018 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_effect);
3019 LOGD("ret : 0x%x", ret);
3024 int camera_attr_set_scene_mode(camera_h camera, camera_attr_scene_mode_e mode)
3026 if( camera == NULL){
3027 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3028 return CAMERA_ERROR_INVALID_PARAMETER;
3030 int ret = CAMERA_ERROR_NONE;
3032 camera_cli_s *pc = (camera_cli_s *)camera;
3033 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_SCENE_MODE;
3035 if (pc->cb_info == NULL) {
3036 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3037 return CAMERA_ERROR_INVALID_PARAMETER;
3039 sock_fd = pc->cb_info->fd;
3040 int set_mode = (int)mode;
3041 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3042 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
3043 LOGD("ret : 0x%x", ret);
3048 int camera_attr_enable_tag(camera_h camera, bool enable)
3050 if( camera == NULL){
3051 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3052 return CAMERA_ERROR_INVALID_PARAMETER;
3054 int ret = CAMERA_ERROR_NONE;
3055 camera_cli_s *pc = (camera_cli_s *)camera;
3056 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_TAG;
3058 if (pc->cb_info == NULL) {
3059 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3060 return CAMERA_ERROR_INVALID_PARAMETER;
3062 sock_fd = pc->cb_info->fd;
3063 int set_enable = (int)enable;
3065 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3066 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
3067 LOGD("ret : 0x%x", ret);
3072 int camera_attr_set_tag_image_description(camera_h camera, const char *description)
3074 if( camera == NULL){
3075 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3076 return CAMERA_ERROR_INVALID_PARAMETER;
3078 if( description == NULL){
3079 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3080 return CAMERA_ERROR_INVALID_PARAMETER;
3082 int ret = CAMERA_ERROR_NONE;
3083 camera_cli_s *pc = (camera_cli_s *)camera;
3084 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_TAG_IMAGE_DESCRIPTION;
3086 if (pc->cb_info == NULL) {
3087 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3088 return CAMERA_ERROR_INVALID_PARAMETER;
3090 sock_fd = pc->cb_info->fd;
3091 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3092 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, STRING, description);
3093 LOGD("ret : 0x%x", ret);
3098 int camera_attr_set_tag_orientation(camera_h camera, camera_attr_tag_orientation_e orientation)
3100 if( camera == NULL){
3101 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3102 return CAMERA_ERROR_INVALID_PARAMETER;
3104 int ret = CAMERA_ERROR_NONE;
3105 camera_cli_s *pc = (camera_cli_s *)camera;
3106 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_TAG_ORIENTATION;
3108 if (pc->cb_info == NULL) {
3109 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3110 return CAMERA_ERROR_INVALID_PARAMETER;
3112 sock_fd = pc->cb_info->fd;
3113 int set_orientation = (int)orientation;
3115 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3116 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_orientation);
3117 LOGD("ret : 0x%x", ret);
3122 int camera_attr_set_tag_software(camera_h camera, const char *software)
3124 if( camera == NULL){
3125 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3126 return CAMERA_ERROR_INVALID_PARAMETER;
3128 if( software == NULL){
3129 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3130 return CAMERA_ERROR_INVALID_PARAMETER;
3132 int ret = CAMERA_ERROR_NONE;
3133 camera_cli_s *pc = (camera_cli_s *)camera;
3134 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_TAG_SOFTWARE;
3136 if (pc->cb_info == NULL) {
3137 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3138 return CAMERA_ERROR_INVALID_PARAMETER;
3140 sock_fd = pc->cb_info->fd;
3141 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3142 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, STRING, software);
3143 LOGD("ret : 0x%x", ret);
3148 int camera_attr_set_geotag(camera_h camera, double latitude , double longitude, double altitude)
3150 if( camera == NULL){
3151 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3152 return CAMERA_ERROR_INVALID_PARAMETER;
3154 int ret = CAMERA_ERROR_NONE;
3155 camera_cli_s *pc = (camera_cli_s *)camera;
3156 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_GEOTAG;
3158 if (pc->cb_info == NULL) {
3159 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3160 return CAMERA_ERROR_INVALID_PARAMETER;
3162 sock_fd = pc->cb_info->fd;
3163 double set_geotag[3] = { latitude, longitude, altitude };
3165 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3166 muse_camera_msg_send_array(api, sock_fd, pc->cb_info, ret,
3167 set_geotag, sizeof(set_geotag), sizeof(double));
3168 LOGD("ret : 0x%x", ret);
3173 int camera_attr_remove_geotag(camera_h camera)
3175 if( camera == NULL){
3176 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3177 return CAMERA_ERROR_INVALID_PARAMETER;
3179 int ret = CAMERA_ERROR_NONE;
3180 camera_cli_s *pc = (camera_cli_s *)camera;
3181 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_REMOVE_GEOTAG;
3183 if (pc->cb_info == NULL) {
3184 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3185 return CAMERA_ERROR_INVALID_PARAMETER;
3187 sock_fd = pc->cb_info->fd;
3188 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3189 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3190 LOGD("ret : 0x%x", ret);
3195 int camera_attr_set_flash_mode(camera_h camera, camera_attr_flash_mode_e mode)
3197 if( camera == NULL){
3198 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3199 return CAMERA_ERROR_INVALID_PARAMETER;
3201 int ret = CAMERA_ERROR_NONE;
3202 camera_cli_s *pc = (camera_cli_s *)camera;
3203 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_FLASH_MODE;
3205 if (pc->cb_info == NULL) {
3206 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3207 return CAMERA_ERROR_INVALID_PARAMETER;
3209 sock_fd = pc->cb_info->fd;
3210 int set_mode = (int)mode;
3212 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3213 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
3214 LOGD("ret : 0x%x", ret);
3219 int camera_attr_get_zoom(camera_h camera, int *zoom)
3221 if( camera == NULL || zoom == NULL){
3222 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3223 return CAMERA_ERROR_INVALID_PARAMETER;
3225 int ret = CAMERA_ERROR_NONE;
3227 camera_cli_s *pc = (camera_cli_s *)camera;
3228 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_ZOOM;
3231 if (pc->cb_info == NULL) {
3232 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3233 return CAMERA_ERROR_INVALID_PARAMETER;
3235 sock_fd = pc->cb_info->fd;
3237 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3238 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3240 if (ret == CAMERA_ERROR_NONE) {
3241 muse_camera_msg_get(get_zoom, pc->cb_info->recvMsg);
3244 LOGD("ret : 0x%x", ret);
3249 int camera_attr_get_zoom_range(camera_h camera, int *min, int *max)
3251 if( camera == NULL || min == NULL || max == NULL ){
3252 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3253 return CAMERA_ERROR_INVALID_PARAMETER;
3255 int ret = CAMERA_ERROR_NONE;
3256 camera_cli_s *pc = (camera_cli_s *)camera;
3258 if (pc->cb_info == NULL) {
3259 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3260 return CAMERA_ERROR_INVALID_PARAMETER;
3262 sock_fd = pc->cb_info->fd;
3263 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_ZOOM_RANGE;
3267 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3268 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3270 if (ret == CAMERA_ERROR_NONE) {
3271 muse_camera_msg_get(get_min, pc->cb_info->recvMsg);
3272 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
3276 LOGD("ret : 0x%x", ret);
3281 int camera_attr_get_af_mode( camera_h camera, camera_attr_af_mode_e *mode)
3283 if( camera == NULL || mode == NULL){
3284 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3285 return CAMERA_ERROR_INVALID_PARAMETER;
3287 int ret = CAMERA_ERROR_NONE;
3288 camera_cli_s *pc = (camera_cli_s *)camera;
3290 if (pc->cb_info == NULL) {
3291 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3292 return CAMERA_ERROR_INVALID_PARAMETER;
3294 sock_fd = pc->cb_info->fd;
3295 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_AF_MODE;
3298 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3299 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3301 if (ret == CAMERA_ERROR_NONE) {
3302 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
3303 *mode = (camera_attr_af_mode_e)get_mode;
3305 LOGD("ret : 0x%x", ret);
3310 int camera_attr_get_exposure_mode( camera_h camera, camera_attr_exposure_mode_e *mode)
3312 if( camera == NULL|| mode == NULL){
3313 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3314 return CAMERA_ERROR_INVALID_PARAMETER;
3316 int ret = CAMERA_ERROR_NONE;
3317 camera_cli_s *pc = (camera_cli_s *)camera;
3319 if (pc->cb_info == NULL) {
3320 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3321 return CAMERA_ERROR_INVALID_PARAMETER;
3323 sock_fd = pc->cb_info->fd;
3324 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EXPOSURE_MODE;
3327 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3328 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3330 if (ret == CAMERA_ERROR_NONE) {
3331 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
3332 *mode = (camera_attr_exposure_mode_e)get_mode;
3334 LOGD("ret : 0x%x", ret);
3338 int camera_attr_get_exposure(camera_h camera, int *value)
3340 if( camera == NULL || value == NULL){
3341 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3342 return CAMERA_ERROR_INVALID_PARAMETER;
3344 int ret = CAMERA_ERROR_NONE;
3345 camera_cli_s *pc = (camera_cli_s *)camera;
3347 if (pc->cb_info == NULL) {
3348 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3349 return CAMERA_ERROR_INVALID_PARAMETER;
3351 sock_fd = pc->cb_info->fd;
3352 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EXPOSURE;
3355 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3356 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3358 if (ret == CAMERA_ERROR_NONE) {
3359 muse_camera_msg_get(get_value, pc->cb_info->recvMsg);
3362 LOGD("ret : 0x%x", ret);
3367 int camera_attr_get_exposure_range(camera_h camera, int *min, int *max)
3369 if( camera == NULL || min == NULL || max == NULL ){
3370 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3371 return CAMERA_ERROR_INVALID_PARAMETER;
3373 int ret = CAMERA_ERROR_NONE;
3374 camera_cli_s *pc = (camera_cli_s *)camera;
3376 if (pc->cb_info == NULL) {
3377 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3378 return CAMERA_ERROR_INVALID_PARAMETER;
3380 sock_fd = pc->cb_info->fd;
3381 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EXPOSURE_RANGE;
3385 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3386 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3388 if (ret == CAMERA_ERROR_NONE) {
3389 muse_camera_msg_get(get_min, pc->cb_info->recvMsg);
3390 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
3394 LOGD("ret : 0x%x", ret);
3399 int camera_attr_get_iso( camera_h camera, camera_attr_iso_e *iso)
3401 if( camera == NULL || iso == NULL){
3402 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3403 return CAMERA_ERROR_INVALID_PARAMETER;
3405 int ret = CAMERA_ERROR_NONE;
3406 camera_cli_s *pc = (camera_cli_s *)camera;
3408 if (pc->cb_info == NULL) {
3409 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3410 return CAMERA_ERROR_INVALID_PARAMETER;
3412 sock_fd = pc->cb_info->fd;
3413 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_ISO;
3416 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3417 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3419 if (ret == CAMERA_ERROR_NONE) {
3420 muse_camera_msg_get(get_iso, pc->cb_info->recvMsg);
3421 *iso = (camera_attr_iso_e)get_iso;
3423 LOGD("ret : 0x%x", ret);
3428 int camera_attr_get_brightness(camera_h camera, int *level)
3430 if( camera == NULL || level == NULL){
3431 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3432 return CAMERA_ERROR_INVALID_PARAMETER;
3434 int ret = CAMERA_ERROR_NONE;
3435 camera_cli_s *pc = (camera_cli_s *)camera;
3437 if (pc->cb_info == NULL) {
3438 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3439 return CAMERA_ERROR_INVALID_PARAMETER;
3441 sock_fd = pc->cb_info->fd;
3442 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS;
3445 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3446 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3448 if (ret == CAMERA_ERROR_NONE) {
3449 muse_camera_msg_get(get_level, pc->cb_info->recvMsg);
3452 LOGD("ret : 0x%x", ret);
3457 int camera_attr_get_brightness_range(camera_h camera, int *min, int *max)
3459 if( camera == NULL || min == NULL || max == NULL ){
3460 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3461 return CAMERA_ERROR_INVALID_PARAMETER;
3463 int ret = CAMERA_ERROR_NONE;
3464 camera_cli_s *pc = (camera_cli_s *)camera;
3466 if (pc->cb_info == NULL) {
3467 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3468 return CAMERA_ERROR_INVALID_PARAMETER;
3470 sock_fd = pc->cb_info->fd;
3471 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS_RANGE;
3475 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3476 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3478 if (ret == CAMERA_ERROR_NONE) {
3479 muse_camera_msg_get(get_min, pc->cb_info->recvMsg);
3480 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
3484 LOGD("ret : 0x%x", ret);
3489 int camera_attr_get_contrast(camera_h camera, int *level)
3491 if( camera == NULL || level == NULL){
3492 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3493 return CAMERA_ERROR_INVALID_PARAMETER;
3495 int ret = CAMERA_ERROR_NONE;
3496 camera_cli_s *pc = (camera_cli_s *)camera;
3497 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_CONTRAST;
3499 if (pc->cb_info == NULL) {
3500 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3501 return CAMERA_ERROR_INVALID_PARAMETER;
3503 sock_fd = pc->cb_info->fd;
3506 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3507 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3509 if (ret == CAMERA_ERROR_NONE) {
3510 muse_camera_msg_get(get_level, pc->cb_info->recvMsg);
3513 LOGD("ret : 0x%x", ret);
3518 int camera_attr_get_contrast_range(camera_h camera, int *min , int *max)
3520 if( camera == NULL || min == NULL || max == NULL ){
3521 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3522 return CAMERA_ERROR_INVALID_PARAMETER;
3524 int ret = CAMERA_ERROR_NONE;
3525 camera_cli_s *pc = (camera_cli_s *)camera;
3526 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_CONTRAST_RANGE;
3528 if (pc->cb_info == NULL) {
3529 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3530 return CAMERA_ERROR_INVALID_PARAMETER;
3532 sock_fd = pc->cb_info->fd;
3536 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3537 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3539 if (ret == CAMERA_ERROR_NONE) {
3540 muse_camera_msg_get(get_min, pc->cb_info->recvMsg);
3541 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
3545 LOGD("ret : 0x%x", ret);
3550 int camera_attr_get_whitebalance(camera_h camera, camera_attr_whitebalance_e *wb)
3552 if( camera == NULL || wb == NULL){
3553 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3554 return CAMERA_ERROR_INVALID_PARAMETER;
3556 int ret = CAMERA_ERROR_NONE;
3557 camera_cli_s *pc = (camera_cli_s *)camera;
3558 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_WHITEBALANCE;
3560 if (pc->cb_info == NULL) {
3561 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3562 return CAMERA_ERROR_INVALID_PARAMETER;
3564 sock_fd = pc->cb_info->fd;
3567 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3568 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3570 if (ret == CAMERA_ERROR_NONE) {
3571 muse_camera_msg_get(get_wb, pc->cb_info->recvMsg);
3572 *wb = (camera_attr_whitebalance_e)get_wb;
3574 LOGD("ret : 0x%x", ret);
3579 int camera_attr_get_effect(camera_h camera, camera_attr_effect_mode_e *effect)
3581 if( camera == NULL || effect == NULL ){
3582 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3583 return CAMERA_ERROR_INVALID_PARAMETER;
3586 int ret = CAMERA_ERROR_NONE;
3587 camera_cli_s *pc = (camera_cli_s *)camera;
3588 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EFFECT;
3590 if (pc->cb_info == NULL) {
3591 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3592 return CAMERA_ERROR_INVALID_PARAMETER;
3594 sock_fd = pc->cb_info->fd;
3597 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3598 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3600 if (ret == CAMERA_ERROR_NONE) {
3601 muse_camera_msg_get(get_effect, pc->cb_info->recvMsg);
3602 *effect = (camera_attr_effect_mode_e)get_effect;
3604 LOGD("ret : 0x%x", ret);
3609 int camera_attr_get_scene_mode(camera_h camera, camera_attr_scene_mode_e *mode)
3611 if( camera == NULL || mode == NULL){
3612 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3613 return CAMERA_ERROR_INVALID_PARAMETER;
3616 int ret = CAMERA_ERROR_NONE;
3617 camera_cli_s *pc = (camera_cli_s *)camera;
3618 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_SCENE_MODE;
3620 if (pc->cb_info == NULL) {
3621 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3622 return CAMERA_ERROR_INVALID_PARAMETER;
3624 sock_fd = pc->cb_info->fd;
3627 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3628 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3630 if (ret == CAMERA_ERROR_NONE) {
3631 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
3632 *mode = (camera_attr_scene_mode_e)get_mode;
3634 LOGD("ret : 0x%x", ret);
3639 int camera_attr_is_enabled_tag(camera_h camera, bool *enable)
3641 if( camera == NULL || enable == NULL){
3642 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3643 return CAMERA_ERROR_INVALID_PARAMETER;
3646 int ret = CAMERA_ERROR_NONE;
3647 camera_cli_s *pc = (camera_cli_s *)camera;
3648 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_TAG;
3650 if (pc->cb_info == NULL) {
3651 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3652 return CAMERA_ERROR_INVALID_PARAMETER;
3654 sock_fd = pc->cb_info->fd;
3657 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3658 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3660 if (ret == CAMERA_ERROR_NONE) {
3661 muse_camera_msg_get(get_enabled, pc->cb_info->recvMsg);
3662 *enable = (bool)get_enabled;
3664 LOGD("ret : 0x%x", ret);
3669 int camera_attr_get_tag_image_description(camera_h camera, char **description)
3671 if( camera == NULL || description == NULL){
3672 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3673 return CAMERA_ERROR_INVALID_PARAMETER;
3676 int ret = CAMERA_ERROR_NONE;
3677 camera_cli_s *pc = (camera_cli_s *)camera;
3678 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_TAG_IMAGE_DESCRIPTION;
3680 if (pc->cb_info == NULL) {
3681 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3682 return CAMERA_ERROR_INVALID_PARAMETER;
3684 sock_fd = pc->cb_info->fd;
3685 char get_description[MUSE_CAMERA_MSG_MAX_LENGTH] = {0,};
3687 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3688 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3690 if (ret == CAMERA_ERROR_NONE) {
3691 muse_camera_msg_get_string(get_description, pc->cb_info->recvMsg);
3692 *description = strdup(get_description);
3694 LOGD("ret : 0x%x", ret);
3699 int camera_attr_get_tag_orientation(camera_h camera, camera_attr_tag_orientation_e *orientation)
3701 if( camera == NULL || orientation == NULL){
3702 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3703 return CAMERA_ERROR_INVALID_PARAMETER;
3706 int ret = CAMERA_ERROR_NONE;
3707 camera_cli_s *pc = (camera_cli_s *)camera;
3708 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_TAG_ORIENTATION;
3710 if (pc->cb_info == NULL) {
3711 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3712 return CAMERA_ERROR_INVALID_PARAMETER;
3714 sock_fd = pc->cb_info->fd;
3715 int get_orientation;
3717 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3718 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3720 if (ret == CAMERA_ERROR_NONE) {
3721 muse_camera_msg_get(get_orientation, pc->cb_info->recvMsg);
3722 *orientation = (camera_attr_tag_orientation_e)get_orientation;
3723 LOGD("success, orientation : %d", *orientation);
3725 LOGD("ret : 0x%x", ret);
3730 int camera_attr_get_tag_software(camera_h camera, char **software)
3732 if( camera == NULL || software == NULL ){
3733 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3734 return CAMERA_ERROR_INVALID_PARAMETER;
3737 int ret = CAMERA_ERROR_NONE;
3738 camera_cli_s *pc = (camera_cli_s *)camera;
3739 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_TAG_SOFTWARE;
3741 if (pc->cb_info == NULL) {
3742 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3743 return CAMERA_ERROR_INVALID_PARAMETER;
3745 sock_fd = pc->cb_info->fd;
3746 char get_software[MUSE_CAMERA_MSG_MAX_LENGTH] = {0,};
3748 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3749 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3751 if (ret == CAMERA_ERROR_NONE) {
3752 muse_camera_msg_get_string(get_software, pc->cb_info->recvMsg);
3753 *software = strdup(get_software);
3755 LOGD("ret : 0x%x", ret);
3760 int camera_attr_get_geotag(camera_h camera, double *latitude , double *longitude, double *altitude)
3762 if( camera == NULL || latitude == NULL || longitude == NULL || altitude == NULL){
3763 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3764 return CAMERA_ERROR_INVALID_PARAMETER;
3767 int ret = CAMERA_ERROR_NONE;
3768 camera_cli_s *pc = (camera_cli_s *)camera;
3769 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_GEOTAG;
3770 double get_geotag[3] = {0,};
3772 if (pc->cb_info == NULL) {
3773 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3774 return CAMERA_ERROR_INVALID_PARAMETER;
3776 sock_fd = pc->cb_info->fd;
3778 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3779 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3781 if (ret == CAMERA_ERROR_NONE) {
3782 muse_camera_msg_get_array(get_geotag, pc->cb_info->recvMsg);
3783 *latitude = get_geotag[0];
3784 *longitude = get_geotag[1];
3785 *altitude = get_geotag[2];
3787 LOGE("Returned value is not valid : 0x%x", valid);
3790 LOGD("ret : 0x%x", ret);
3796 int camera_attr_get_flash_mode(camera_h camera, camera_attr_flash_mode_e *mode)
3798 if( camera == NULL || mode == NULL){
3799 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3800 return CAMERA_ERROR_INVALID_PARAMETER;
3803 int ret = CAMERA_ERROR_NONE;
3804 camera_cli_s *pc = (camera_cli_s *)camera;
3805 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_FLASH_MODE;
3807 if (pc->cb_info == NULL) {
3808 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3809 return CAMERA_ERROR_INVALID_PARAMETER;
3811 sock_fd = pc->cb_info->fd;
3814 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3815 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3817 if (ret == CAMERA_ERROR_NONE) {
3818 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
3819 *mode = (camera_attr_flash_mode_e)get_mode;
3821 LOGD("ret : 0x%x", ret);
3826 int camera_attr_foreach_supported_af_mode( camera_h camera, camera_attr_supported_af_mode_cb foreach_cb , void *user_data)
3828 if( camera == NULL || foreach_cb == NULL){
3829 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3830 return CAMERA_ERROR_INVALID_PARAMETER;
3832 int ret = CAMERA_ERROR_NONE;
3834 camera_cli_s *pc = (camera_cli_s *)camera;
3835 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_AF_MODE;
3837 LOGD("Enter, handle :%x", pc->remote_handle);
3840 if (pc->cb_info == NULL) {
3841 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3842 return CAMERA_ERROR_INVALID_PARAMETER;
3844 sock_fd = pc->cb_info->fd;
3845 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE] = foreach_cb;
3846 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE] = user_data;
3848 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3849 LOGD("ret : 0x%x", ret);
3854 int camera_attr_foreach_supported_exposure_mode(camera_h camera, camera_attr_supported_exposure_mode_cb foreach_cb , void *user_data)
3856 if( camera == NULL || foreach_cb == NULL){
3857 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3858 return CAMERA_ERROR_INVALID_PARAMETER;
3860 int ret = CAMERA_ERROR_NONE;
3862 camera_cli_s *pc = (camera_cli_s *)camera;
3863 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EXPOSURE_MODE;
3865 LOGD("Enter, handle :%x", pc->remote_handle);
3868 if (pc->cb_info == NULL) {
3869 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3870 return CAMERA_ERROR_INVALID_PARAMETER;
3872 sock_fd = pc->cb_info->fd;
3873 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE] = foreach_cb;
3874 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE] = user_data;
3876 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3877 LOGD("ret : 0x%x", ret);
3882 int camera_attr_foreach_supported_iso( camera_h camera, camera_attr_supported_iso_cb foreach_cb , void *user_data)
3884 if( camera == NULL || foreach_cb == NULL){
3885 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3886 return CAMERA_ERROR_INVALID_PARAMETER;
3888 int ret = CAMERA_ERROR_NONE;
3890 camera_cli_s *pc = (camera_cli_s *)camera;
3891 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_ISO;
3893 LOGD("Enter, handle :%x", pc->remote_handle);
3896 if (pc->cb_info == NULL) {
3897 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3898 return CAMERA_ERROR_INVALID_PARAMETER;
3900 sock_fd = pc->cb_info->fd;
3901 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO] = foreach_cb;
3902 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO] = user_data;
3904 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3905 LOGD("ret : 0x%x", ret);
3910 int camera_attr_foreach_supported_whitebalance(camera_h camera, camera_attr_supported_whitebalance_cb foreach_cb , void *user_data)
3912 if( camera == NULL || foreach_cb == NULL){
3913 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3914 return CAMERA_ERROR_INVALID_PARAMETER;
3916 int ret = CAMERA_ERROR_NONE;
3918 camera_cli_s *pc = (camera_cli_s *)camera;
3919 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_WHITEBALANCE;
3921 LOGD("Enter, handle :%x", pc->remote_handle);
3924 if (pc->cb_info == NULL) {
3925 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3926 return CAMERA_ERROR_INVALID_PARAMETER;
3928 sock_fd = pc->cb_info->fd;
3929 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE] = foreach_cb;
3930 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE] = user_data;
3932 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3933 LOGD("ret : 0x%x", ret);
3938 int camera_attr_foreach_supported_effect(camera_h camera, camera_attr_supported_effect_cb foreach_cb , void *user_data)
3940 if( camera == NULL || foreach_cb == NULL){
3941 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3942 return CAMERA_ERROR_INVALID_PARAMETER;
3944 int ret = CAMERA_ERROR_NONE;
3946 camera_cli_s *pc = (camera_cli_s *)camera;
3947 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EFFECT;
3949 LOGD("Enter, handle :%x", pc->remote_handle);
3952 if (pc->cb_info == NULL) {
3953 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3954 return CAMERA_ERROR_INVALID_PARAMETER;
3956 sock_fd = pc->cb_info->fd;
3957 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT] = foreach_cb;
3958 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT] = user_data;
3960 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3961 LOGD("ret : 0x%x", ret);
3966 int camera_attr_foreach_supported_scene_mode(camera_h camera, camera_attr_supported_scene_mode_cb foreach_cb , void *user_data)
3968 if( camera == NULL || foreach_cb == NULL){
3969 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3970 return CAMERA_ERROR_INVALID_PARAMETER;
3972 int ret = CAMERA_ERROR_NONE;
3974 camera_cli_s *pc = (camera_cli_s *)camera;
3975 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_SCENE_MODE;
3977 LOGD("Enter, handle :%x", pc->remote_handle);
3980 if (pc->cb_info == NULL) {
3981 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3982 return CAMERA_ERROR_INVALID_PARAMETER;
3984 sock_fd = pc->cb_info->fd;
3985 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE] = foreach_cb;
3986 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE] = user_data;
3988 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3989 LOGD("ret : 0x%x", ret);
3994 int camera_attr_foreach_supported_flash_mode(camera_h camera, camera_attr_supported_flash_mode_cb foreach_cb , void *user_data)
3996 if( camera == NULL || foreach_cb == NULL){
3997 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3998 return CAMERA_ERROR_INVALID_PARAMETER;
4000 int ret = CAMERA_ERROR_NONE;
4002 camera_cli_s *pc = (camera_cli_s *)camera;
4003 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FLASH_MODE;
4005 LOGD("Enter, handle :%x", pc->remote_handle);
4008 if (pc->cb_info == NULL) {
4009 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4010 return CAMERA_ERROR_INVALID_PARAMETER;
4012 sock_fd = pc->cb_info->fd;
4013 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE] = foreach_cb;
4014 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE] = user_data;
4016 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4017 LOGD("ret : 0x%x", ret);
4022 int camera_attr_foreach_supported_fps(camera_h camera, camera_attr_supported_fps_cb foreach_cb , void *user_data)
4024 if( camera == NULL || foreach_cb == NULL){
4025 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4026 return CAMERA_ERROR_INVALID_PARAMETER;
4028 int ret = CAMERA_ERROR_NONE;
4030 camera_cli_s *pc = (camera_cli_s *)camera;
4031 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS;
4033 if (pc->cb_info == NULL) {
4034 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4035 return CAMERA_ERROR_INVALID_PARAMETER;
4037 sock_fd = pc->cb_info->fd;
4038 LOGD("Enter, handle :%x", pc->remote_handle);
4039 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS] = foreach_cb;
4040 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS] = user_data;
4042 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4043 LOGD("Enter, handle :%x", pc->remote_handle);
4047 int camera_attr_foreach_supported_fps_by_resolution(camera_h camera, int width, int height, camera_attr_supported_fps_cb foreach_cb, void *user_data)
4049 if( camera == NULL || foreach_cb == NULL){
4050 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4051 return CAMERA_ERROR_INVALID_PARAMETER;
4053 int ret = CAMERA_ERROR_NONE;
4055 camera_cli_s *pc = (camera_cli_s *)camera;
4056 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS_BY_RESOLUTION;
4058 if (pc->cb_info == NULL) {
4059 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4060 return CAMERA_ERROR_INVALID_PARAMETER;
4062 sock_fd = pc->cb_info->fd;
4063 LOGD("Enter, handle :%x", pc->remote_handle);
4064 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION] = foreach_cb;
4065 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION] = user_data;
4067 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, width, INT, height);
4068 LOGD("ret : 0x%x", ret);
4072 int camera_attr_foreach_supported_stream_flip(camera_h camera, camera_attr_supported_stream_flip_cb foreach_cb, void *user_data)
4074 if( camera == NULL || foreach_cb == NULL){
4075 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4076 return CAMERA_ERROR_INVALID_PARAMETER;
4078 int ret = CAMERA_ERROR_NONE;
4080 camera_cli_s *pc = (camera_cli_s *)camera;
4081 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_FLIP;
4083 if (pc->cb_info == NULL) {
4084 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4085 return CAMERA_ERROR_INVALID_PARAMETER;
4087 sock_fd = pc->cb_info->fd;
4088 LOGD("Enter, handle :%x", pc->remote_handle);
4089 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP] = foreach_cb;
4090 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP] = user_data;
4092 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4093 LOGD("ret : 0x%x", ret);
4098 int camera_attr_foreach_supported_stream_rotation(camera_h camera, camera_attr_supported_stream_rotation_cb foreach_cb, void *user_data)
4100 if( camera == NULL || foreach_cb == NULL){
4101 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4102 return CAMERA_ERROR_INVALID_PARAMETER;
4104 int ret = CAMERA_ERROR_NONE;
4106 camera_cli_s *pc = (camera_cli_s *)camera;
4107 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_ROTATION;
4109 if (pc->cb_info == NULL) {
4110 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4111 return CAMERA_ERROR_INVALID_PARAMETER;
4113 sock_fd = pc->cb_info->fd;
4114 LOGD("Enter, handle :%x", pc->remote_handle);
4115 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION] = foreach_cb;
4116 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION] = user_data;
4118 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4119 LOGD("ret : 0x%x", ret);
4124 int camera_attr_set_stream_rotation(camera_h camera , camera_rotation_e rotation)
4126 if( camera == NULL){
4127 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4128 return CAMERA_ERROR_INVALID_PARAMETER;
4131 int ret = CAMERA_ERROR_NONE;
4132 camera_cli_s *pc = (camera_cli_s *)camera;
4133 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_STREAM_ROTATION;
4135 if (pc->cb_info == NULL) {
4136 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4137 return CAMERA_ERROR_INVALID_PARAMETER;
4139 sock_fd = pc->cb_info->fd;
4140 int set_rotation = (int)rotation;
4142 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4143 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_rotation);
4144 LOGD("ret : 0x%x", ret);
4149 int camera_attr_get_stream_rotation(camera_h camera , camera_rotation_e *rotation)
4151 if( camera == NULL || rotation == NULL ){
4152 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4153 return CAMERA_ERROR_INVALID_PARAMETER;
4156 int ret = CAMERA_ERROR_NONE;
4157 camera_cli_s *pc = (camera_cli_s *)camera;
4158 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_STREAM_ROTATION;
4160 if (pc->cb_info == NULL) {
4161 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4162 return CAMERA_ERROR_INVALID_PARAMETER;
4164 sock_fd = pc->cb_info->fd;
4167 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4168 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4170 if (ret == CAMERA_ERROR_NONE) {
4171 muse_camera_msg_get(get_rotation, pc->cb_info->recvMsg);
4172 *rotation = (camera_rotation_e)get_rotation;
4174 LOGD("ret : 0x%x", ret);
4179 int camera_attr_set_stream_flip(camera_h camera , camera_flip_e flip)
4181 if( camera == NULL){
4182 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4183 return CAMERA_ERROR_INVALID_PARAMETER;
4186 int ret = CAMERA_ERROR_NONE;
4187 camera_cli_s *pc = (camera_cli_s *)camera;
4188 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_STREAM_FLIP;
4190 if (pc->cb_info == NULL) {
4191 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4192 return CAMERA_ERROR_INVALID_PARAMETER;
4194 sock_fd = pc->cb_info->fd;
4195 int set_flip = (int)flip;
4197 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4198 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_flip);
4199 LOGD("ret : 0x%x", ret);
4204 int camera_attr_get_stream_flip(camera_h camera , camera_flip_e *flip)
4206 if( camera == NULL || flip == NULL ){
4207 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4208 return CAMERA_ERROR_INVALID_PARAMETER;
4211 int ret = CAMERA_ERROR_NONE;
4212 camera_cli_s *pc = (camera_cli_s *)camera;
4213 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_STREAM_FLIP;
4215 if (pc->cb_info == NULL) {
4216 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4217 return CAMERA_ERROR_INVALID_PARAMETER;
4219 sock_fd = pc->cb_info->fd;
4222 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4223 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4225 if (ret == CAMERA_ERROR_NONE) {
4226 muse_camera_msg_get(get_flip, pc->cb_info->recvMsg);
4227 *flip = (camera_flip_e)get_flip;
4229 LOGD("ret : 0x%x", ret);
4233 int camera_attr_set_hdr_mode(camera_h camera, camera_attr_hdr_mode_e mode)
4235 if( camera == NULL){
4236 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
4237 return CAMERA_ERROR_INVALID_PARAMETER;
4240 int ret = CAMERA_ERROR_NONE;
4241 camera_cli_s *pc = (camera_cli_s *)camera;
4242 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_HDR_MODE;
4244 if (pc->cb_info == NULL) {
4245 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4246 return CAMERA_ERROR_INVALID_PARAMETER;
4248 sock_fd = pc->cb_info->fd;
4249 int set_mode = (int)mode;
4251 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4252 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
4253 LOGD("ret : 0x%x", ret);
4258 int camera_attr_get_hdr_mode(camera_h camera, camera_attr_hdr_mode_e *mode)
4260 if (camera == NULL) {
4261 LOGE("INVALID_PARAMETER(0x%08x) - handle",CAMERA_ERROR_INVALID_PARAMETER);
4262 return CAMERA_ERROR_INVALID_PARAMETER;
4265 LOGE("CAMERA_ERROR_NOT_SUPPORTED(0x%08x) - mode",CAMERA_ERROR_NOT_SUPPORTED);
4266 return CAMERA_ERROR_NOT_SUPPORTED;
4268 int ret = CAMERA_ERROR_NONE;
4269 camera_cli_s *pc = (camera_cli_s *)camera;
4270 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_HDR_MODE;
4272 if (pc->cb_info == NULL) {
4273 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4274 return CAMERA_ERROR_INVALID_PARAMETER;
4276 sock_fd = pc->cb_info->fd;
4279 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4280 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4282 if (ret == CAMERA_ERROR_NONE) {
4283 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
4284 *mode = (camera_attr_hdr_mode_e)get_mode;
4286 LOGD("ret : 0x%x", ret);
4291 bool camera_attr_is_supported_hdr_capture(camera_h camera)
4293 if( camera == NULL){
4294 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4298 int ret = CAMERA_ERROR_NONE;
4299 camera_cli_s *pc = (camera_cli_s *)camera;
4300 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_HDR_CAPTURE;
4302 if (pc->cb_info == NULL) {
4303 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4304 return CAMERA_ERROR_INVALID_PARAMETER;
4306 sock_fd = pc->cb_info->fd;
4307 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4308 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4309 LOGD("ret : 0x%x", ret);
4314 int camera_attr_set_hdr_capture_progress_cb(camera_h camera, camera_attr_hdr_progress_cb callback, void* user_data)
4316 if (camera == NULL) {
4317 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
4318 return CAMERA_ERROR_INVALID_PARAMETER;
4320 if (callback == NULL) {
4321 LOGE("CAMERA_ERROR_NOT_SUPPORTED(0x%08x) - callback", CAMERA_ERROR_NOT_SUPPORTED);
4322 return CAMERA_ERROR_NOT_SUPPORTED;
4324 int ret = CAMERA_ERROR_NONE;
4326 camera_cli_s *pc = (camera_cli_s *)camera;
4327 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_HDR_CAPTURE_PROGRESS_CB;
4329 if (pc->cb_info == NULL) {
4330 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4331 return CAMERA_ERROR_INVALID_PARAMETER;
4333 sock_fd = pc->cb_info->fd;
4334 LOGD("Enter, handle :%x", pc->remote_handle);
4336 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = callback;
4337 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = user_data;
4339 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4340 LOGD("ret : 0x%x", ret);
4345 int camera_attr_unset_hdr_capture_progress_cb(camera_h camera)
4347 if( camera == NULL){
4348 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4349 return CAMERA_ERROR_INVALID_PARAMETER;
4352 int ret = CAMERA_ERROR_NONE;
4354 camera_cli_s *pc = (camera_cli_s *)camera;
4355 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_UNSET_HDR_CAPTURE_PROGRESS_CB;
4357 if (pc->cb_info == NULL) {
4358 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4359 return CAMERA_ERROR_INVALID_PARAMETER;
4361 sock_fd = pc->cb_info->fd;
4362 LOGD("Enter, handle :%x", pc->remote_handle);
4364 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = (void *)NULL;
4365 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = (void *)NULL;
4367 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4368 LOGD("ret : 0x%x", ret);
4373 int camera_attr_enable_anti_shake(camera_h camera, bool enable)
4375 if (camera == NULL) {
4376 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4377 return CAMERA_ERROR_INVALID_PARAMETER;
4380 int ret = CAMERA_ERROR_NONE;
4381 camera_cli_s *pc = (camera_cli_s *)camera;
4382 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_ANTI_SHAKE;
4384 if (pc->cb_info == NULL) {
4385 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4386 return CAMERA_ERROR_INVALID_PARAMETER;
4388 sock_fd = pc->cb_info->fd;
4389 int set_enable = (int)enable;
4391 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4392 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
4393 LOGD("ret : 0x%x", ret);
4398 int camera_attr_is_enabled_anti_shake(camera_h camera , bool *enabled)
4400 if (camera == NULL) {
4401 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
4402 return CAMERA_ERROR_INVALID_PARAMETER;
4404 if (enabled == NULL) {
4405 LOGE("INVALID_PARAMETER(0x%08x) - enabled", CAMERA_ERROR_INVALID_PARAMETER);
4406 return CAMERA_ERROR_NOT_SUPPORTED;
4408 int ret = CAMERA_ERROR_NONE;
4409 camera_cli_s *pc = (camera_cli_s *)camera;
4410 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_ANTI_SHAKE;
4412 if (pc->cb_info == NULL) {
4413 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4414 return CAMERA_ERROR_INVALID_PARAMETER;
4416 sock_fd = pc->cb_info->fd;
4419 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4420 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4422 if (ret == CAMERA_ERROR_NONE) {
4423 muse_camera_msg_get(get_enabled, pc->cb_info->recvMsg);
4424 *enabled = (bool)get_enabled;
4426 LOGD("ret : 0x%x", ret);
4431 bool camera_attr_is_supported_anti_shake(camera_h camera)
4434 if( camera == NULL){
4435 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4439 int ret = CAMERA_ERROR_NONE;
4440 camera_cli_s *pc = (camera_cli_s *)camera;
4441 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_ANTI_SHAKE;
4443 if (pc->cb_info == NULL) {
4444 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4445 return CAMERA_ERROR_INVALID_PARAMETER;
4447 sock_fd = pc->cb_info->fd;
4448 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4449 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4450 LOGD("ret : 0x%x", ret);
4455 int camera_attr_enable_video_stabilization(camera_h camera, bool enable)
4457 if (camera == NULL) {
4458 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4459 return CAMERA_ERROR_INVALID_PARAMETER;
4462 int ret = CAMERA_ERROR_NONE;
4463 camera_cli_s *pc = (camera_cli_s *)camera;
4464 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_VIDEO_STABILIZATION;
4466 if (pc->cb_info == NULL) {
4467 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4468 return CAMERA_ERROR_INVALID_PARAMETER;
4470 sock_fd = pc->cb_info->fd;
4471 int set_enable = (int)enable;
4473 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4474 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
4475 LOGD("ret : 0x%x", ret);
4480 int camera_attr_is_enabled_video_stabilization(camera_h camera, bool *enabled)
4482 if (camera == NULL) {
4483 LOGE("INVALID_PARAMETER(0x%08x) - handle",CAMERA_ERROR_INVALID_PARAMETER);
4484 return CAMERA_ERROR_INVALID_PARAMETER;
4486 if (enabled == NULL) {
4487 LOGE("INVALID_PARAMETER(0x%08x) - enabled",CAMERA_ERROR_INVALID_PARAMETER);
4488 return CAMERA_ERROR_NOT_SUPPORTED;
4490 int ret = CAMERA_ERROR_NONE;
4491 camera_cli_s *pc = (camera_cli_s *)camera;
4492 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_VIDEO_STABILIZATION;
4494 if (pc->cb_info == NULL) {
4495 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4496 return CAMERA_ERROR_INVALID_PARAMETER;
4498 sock_fd = pc->cb_info->fd;
4501 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4502 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4504 if (ret == CAMERA_ERROR_NONE) {
4505 muse_camera_msg_get(get_enabled, pc->cb_info->recvMsg);
4506 *enabled = (bool)get_enabled;
4508 LOGD("ret : 0x%x", ret);
4513 bool camera_attr_is_supported_video_stabilization(camera_h camera)
4515 if( camera == NULL){
4516 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4520 int ret = CAMERA_ERROR_NONE;
4521 camera_cli_s *pc = (camera_cli_s *)camera;
4522 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_VIDEO_STABILIZATION;
4524 if (pc->cb_info == NULL) {
4525 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4526 return CAMERA_ERROR_INVALID_PARAMETER;
4528 sock_fd = pc->cb_info->fd;
4529 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4530 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4531 LOGD("ret : 0x%x", ret);
4536 int camera_attr_enable_auto_contrast(camera_h camera, bool enable)
4538 if( camera == NULL){
4539 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
4540 return CAMERA_ERROR_INVALID_PARAMETER;
4543 int ret = CAMERA_ERROR_NONE;
4544 camera_cli_s *pc = (camera_cli_s *)camera;
4545 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_AUTO_CONTRAST;
4547 if (pc->cb_info == NULL) {
4548 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4549 return CAMERA_ERROR_INVALID_PARAMETER;
4551 sock_fd = pc->cb_info->fd;
4552 int set_enable = (int)enable;
4554 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4555 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
4556 LOGD("ret : 0x%x", ret);
4561 int camera_attr_is_enabled_auto_contrast(camera_h camera, bool *enabled)
4563 if (camera == NULL) {
4564 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
4565 return CAMERA_ERROR_INVALID_PARAMETER;
4567 if (enabled == NULL) {
4568 LOGE("INVALID_PARAMETER(0x%08x) - enabled", CAMERA_ERROR_INVALID_PARAMETER);
4569 return CAMERA_ERROR_INVALID_PARAMETER;
4571 int ret = CAMERA_ERROR_NONE;
4572 camera_cli_s *pc = (camera_cli_s *)camera;
4573 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_AUTO_CONTRAST;
4575 if (pc->cb_info == NULL) {
4576 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4577 return CAMERA_ERROR_INVALID_PARAMETER;
4579 sock_fd = pc->cb_info->fd;
4582 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4583 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4585 if (ret == CAMERA_ERROR_NONE) {
4586 muse_camera_msg_get(get_enabled, pc->cb_info->recvMsg);
4587 *enabled = (bool)get_enabled;
4589 LOGD("ret : 0x%x", ret);
4594 bool camera_attr_is_supported_auto_contrast(camera_h camera)
4596 if( camera == NULL){
4597 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4601 int ret = CAMERA_ERROR_NONE;
4602 camera_cli_s *pc = (camera_cli_s *)camera;
4603 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_AUTO_CONTRAST;
4605 if (pc->cb_info == NULL) {
4606 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4607 return CAMERA_ERROR_INVALID_PARAMETER;
4609 sock_fd = pc->cb_info->fd;
4610 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4611 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4612 LOGD("ret : 0x%x", ret);
4617 int camera_attr_disable_shutter_sound(camera_h camera, bool disable)
4619 if (camera == NULL) {
4620 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4621 return CAMERA_ERROR_INVALID_PARAMETER;
4624 int ret = CAMERA_ERROR_NONE;
4625 camera_cli_s *pc = (camera_cli_s *)camera;
4626 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_DISABLE_SHUTTER_SOUND;
4628 if (pc->cb_info == NULL) {
4629 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4630 return CAMERA_ERROR_INVALID_PARAMETER;
4632 sock_fd = pc->cb_info->fd;
4633 int set_disable = (int)disable;
4635 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4636 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_disable);
4637 LOGD("ret : 0x%x", ret);