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 void _client_user_callback(callback_cb_info_s * cb_info, muse_camera_event_e event )
48 char *recvMsg = cb_info->recvMsg;
49 int param, param1, param2;
50 LOGD("get event %d", event);
53 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION:
54 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION:
55 muse_camera_msg_get(param1, recvMsg);
56 muse_camera_msg_get(param2, recvMsg);
58 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE:
59 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT:
60 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT:
61 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE:
62 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE:
63 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO:
64 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE:
65 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT:
66 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE:
67 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE:
68 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS:
69 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION:
70 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP:
71 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION:
72 muse_camera_msg_get(param, recvMsg);
79 case MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE:
81 int cb_previous, cb_current, cb_by_policy;
82 muse_camera_msg_get(cb_previous, recvMsg);
83 muse_camera_msg_get(cb_current, recvMsg);
84 muse_camera_msg_get(cb_by_policy, recvMsg);
85 ((camera_state_changed_cb)cb_info->user_cb[event])((camera_state_e)cb_previous,
86 (camera_state_e)cb_current,
88 cb_info->user_data[event]);
91 case MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE:
94 muse_camera_msg_get(cb_state, recvMsg);
95 ((camera_focus_changed_cb)cb_info->user_cb[event])((camera_focus_state_e)cb_state,
96 cb_info->user_data[event]);
99 case MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE:
100 ((camera_capture_completed_cb)cb_info->user_cb[event])(cb_info->user_data[event]);
102 case MUSE_CAMERA_EVENT_TYPE_PREVIEW:
103 ((camera_preview_cb)cb_info->user_cb[event])(NULL,
104 cb_info->user_data[event]);
106 case MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW:
107 ((camera_media_packet_preview_cb)cb_info->user_cb[event])(NULL,
108 cb_info->user_data[event]);
110 case MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS:
113 muse_camera_msg_get(progress, recvMsg);
114 ((camera_attr_hdr_progress_cb)cb_info->user_cb[event])(progress,
115 cb_info->user_data[event]);
118 case MUSE_CAMERA_EVENT_TYPE_INTERRUPTED:
120 int cb_policy, cb_previous, cb_current;
121 muse_camera_msg_get(cb_policy, recvMsg);
122 muse_camera_msg_get(cb_previous, recvMsg);
123 muse_camera_msg_get(cb_current, recvMsg);
124 ((camera_interrupted_cb)cb_info->user_cb[event])((camera_policy_e)cb_policy,
125 (camera_state_e)cb_previous,
126 (camera_state_e)cb_current,
127 cb_info->user_data[event]);
130 case MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION:
133 muse_camera_msg_get(count, recvMsg);
134 ((camera_face_detected_cb)cb_info->user_cb[event])(NULL,
136 cb_info->user_data[event]);
139 case MUSE_CAMERA_EVENT_TYPE_ERROR:
141 int cb_error, cb_current_state;
142 muse_camera_msg_get(cb_error, recvMsg);
143 muse_camera_msg_get(cb_current_state, recvMsg);
144 ((camera_error_cb)cb_info->user_cb[event])((camera_error_e)cb_error,
145 (camera_state_e)cb_current_state,
146 cb_info->user_data[event]);
149 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION:
150 ((camera_supported_preview_resolution_cb)cb_info->user_cb[event])(param1, param2,
151 cb_info->user_data[event]);
153 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION:
154 ((camera_supported_capture_resolution_cb)cb_info->user_cb[event])(param1, param2,
155 cb_info->user_data[event]);
157 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT:
158 ((camera_supported_capture_format_cb)cb_info->user_cb[event])((camera_pixel_format_e)param,
159 cb_info->user_data[event]);
161 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT:
162 ((camera_supported_preview_format_cb)cb_info->user_cb[event])((camera_pixel_format_e)param,
163 cb_info->user_data[event]);
165 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE:
166 ((camera_attr_supported_af_mode_cb)cb_info->user_cb[event])((camera_attr_af_mode_e)param,
167 cb_info->user_data[event]);
169 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE:
170 ((camera_attr_supported_exposure_mode_cb)cb_info->user_cb[event])((camera_attr_exposure_mode_e)param,
171 cb_info->user_data[event]);
173 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO:
174 ((camera_attr_supported_iso_cb)cb_info->user_cb[event])((camera_attr_iso_e)param,
175 cb_info->user_data[event]);
177 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE:
178 ((camera_attr_supported_whitebalance_cb)cb_info->user_cb[event])((camera_attr_whitebalance_e)param,
179 cb_info->user_data[event]);
181 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT:
182 ((camera_attr_supported_effect_cb)cb_info->user_cb[event])((camera_attr_effect_mode_e)param,
183 cb_info->user_data[event]);
185 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE:
186 ((camera_attr_supported_scene_mode_cb)cb_info->user_cb[event])((camera_attr_scene_mode_e)param,
187 cb_info->user_data[event]);
189 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE:
190 ((camera_attr_supported_flash_mode_cb)cb_info->user_cb[event])((camera_attr_flash_mode_e)param,
191 cb_info->user_data[event]);
193 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS:
194 ((camera_attr_supported_fps_cb)cb_info->user_cb[event])((camera_attr_fps_e)param,
195 cb_info->user_data[event]);
197 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION:
198 ((camera_attr_supported_fps_cb)cb_info->user_cb[event])((camera_attr_fps_e)param,
199 cb_info->user_data[event]);
201 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP:
202 ((camera_attr_supported_stream_flip_cb)cb_info->user_cb[event])((camera_flip_e)param,
203 cb_info->user_data[event]);
205 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION:
206 ((camera_attr_supported_stream_rotation_cb)cb_info->user_cb[event])((camera_rotation_e)param,
207 cb_info->user_data[event]);
209 case MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE:
210 ((camera_attr_supported_theater_mode_cb)cb_info->user_cb[event])((camera_attr_theater_mode_e)param,
211 cb_info->user_data[event]);
213 case MUSE_CAMERA_EVENT_TYPE_CAPTURE:
215 camera_image_data_s *rImage = NULL;
216 camera_image_data_s *rPostview = NULL;
217 camera_image_data_s *rThumbnail = NULL;
218 unsigned char *buf_pos = NULL;
219 muse_camera_transport_info_s transport_info;
222 int is_thumbnail = 0;
224 LOGD("camera capture callback came in.");
225 muse_camera_msg_get(tKey, recvMsg);
226 muse_camera_msg_get(is_postview, recvMsg);
227 muse_camera_msg_get(is_thumbnail, recvMsg);
230 transport_info.tbm_key = tKey;
231 LOGD("Read key_info INFO : %d", transport_info.tbm_key);
233 if (muse_camera_ipc_init_tbm(&transport_info) == FALSE) {
234 LOGE("camera_init_tbm ERROR!!");
238 if(muse_camera_ipc_import_tbm(&transport_info) == FALSE) {
239 LOGE("camera_import_tbm ERROR!!");
240 muse_camera_unref_tbm(&transport_info);
243 if (transport_info.bo_handle.ptr != NULL) {
245 buf_pos = (unsigned char *)transport_info.bo_handle.ptr;
246 rImage = (camera_image_data_s *)buf_pos;
247 LOGE(" !! rImage->size : %d", rImage->size);
248 rImage->data = buf_pos + sizeof(camera_image_data_s);
249 buf_pos += sizeof(camera_image_data_s) + rImage->size;
251 rPostview = (camera_image_data_s *)buf_pos;
252 LOGE(" !! rPostview->size : %d", rPostview->size);
253 rPostview->data = buf_pos + sizeof(camera_image_data_s);
254 buf_pos += sizeof(camera_image_data_s) + rPostview->size;
257 rThumbnail = (camera_image_data_s *)buf_pos;
258 rThumbnail->data = buf_pos + sizeof(camera_image_data_s);
259 buf_pos += sizeof(camera_image_data_s) + rThumbnail->size;
264 LOGE("Get KEY INFO sock msg ERROR!!");
268 LOGD("read image info height: %d, width : %d, size : %d", rImage->height, rImage->width, rImage->size);
269 ((camera_capturing_cb)cb_info->user_cb[event])(rImage, rPostview, rThumbnail, cb_info->user_data[event]);
270 muse_camera_unref_tbm(&transport_info);
273 case MUSE_CAMERA_EVENT_TYPE_VIDEO_FRAME_RENDER_ERROR:
277 LOGE("Unknonw event");
282 static void *client_cb_handler(gpointer data)
290 callback_cb_info_s *cb_info = data;
291 char *recvMsg = cb_info->recvMsg;
292 char parseStr[CAMERA_PARSE_STRING_SIZE][MUSE_CAMERA_MSG_MAX_LENGTH] = {{0,0},};
294 while (g_atomic_int_get(&cb_info->running)) {
295 ret = muse_core_ipc_recv_msg(cb_info->fd, recvMsg);
303 memset(parseStr, 0, CAMERA_PARSE_STRING_SIZE * MUSE_CAMERA_MSG_MAX_LENGTH);
305 LOGD("recvMSg : %s, length : %d", recvMsg, ret);
307 /* Need to split the combined entering msgs.
308 This module supports up to 200 combined msgs. */
309 for (str_pos = 0; str_pos < ret; str_pos++) {
310 if(recvMsg[str_pos] == '}') {
311 strncpy(&(parseStr[num_token][0]), recvMsg + prev_pos, str_pos - prev_pos + 1);
312 LOGD("splitted msg : %s, Index : %d", &(parseStr[num_token][0]), num_token);
313 prev_pos = str_pos+1;
317 LOGD("num_token : %d", num_token);
319 /* Re-construct to the useful single msg. */
320 for (i = 0; i < num_token; i++) {
322 if (i >= CAMERA_PARSE_STRING_SIZE)
325 if (muse_camera_msg_get(api, &(parseStr[i][0]))) {
326 if(api < MUSE_CAMERA_API_MAX){
327 LOGD("Set Condition");
328 g_mutex_lock(&(cb_info->pMutex[api]));
329 /* The api msgs should be distinguished from the event msg. */
330 memset(cb_info->recvApiMsg, 0, strlen(cb_info->recvApiMsg));
331 strcpy(cb_info->recvApiMsg, &(parseStr[i][0]));
332 LOGD("cb_info->recvApiMsg : %s", cb_info->recvApiMsg);
333 cb_info->activating[api] = 1;
334 g_cond_signal(&(cb_info->pCond[api]));
335 g_mutex_unlock(&(cb_info->pMutex[api]));
337 if(api == MUSE_CAMERA_API_DESTROY) {
338 g_atomic_int_set(&cb_info->running, 0);
339 LOGD("close client cb handler");
342 } else if(api == MUSE_CAMERA_CB_EVENT) {
344 if (muse_camera_msg_get(event, &(parseStr[i][0]))) {
345 LOGD("go callback : %d", event);
346 _client_user_callback(cb_info, event);
350 LOGE("Get Msg Failed");
355 LOGD("client cb exit");
360 static callback_cb_info_s *client_callback_new(gint sockfd)
362 callback_cb_info_s *cb_info;
364 GMutex *camera_mutex;
366 g_return_val_if_fail(sockfd > 0, NULL);
368 cb_info = g_new0(callback_cb_info_s, 1);
369 camera_cond = g_new0(GCond, MUSE_CAMERA_API_MAX);
370 camera_mutex = g_new0(GMutex, MUSE_CAMERA_API_MAX);
371 camera_activ = g_new0(gint, MUSE_CAMERA_API_MAX);
373 g_atomic_int_set(&cb_info->running, 1);
374 cb_info->fd = sockfd;
375 cb_info->pCond = camera_cond;
376 cb_info->pMutex = camera_mutex;
377 cb_info->activating = camera_activ;
379 g_thread_new("callback_thread", client_cb_handler,
385 static int client_wait_for_cb_return(muse_camera_api_e api, callback_cb_info_s *cb_info, int time_out)
387 int ret = CAMERA_ERROR_NONE;
390 LOGD("Enter api : %d", api);
391 g_mutex_lock(&(cb_info->pMutex[api]));
393 if (cb_info->activating[api] == 0) {
394 end_time = g_get_monotonic_time() + time_out * G_TIME_SPAN_SECOND;
395 if (g_cond_wait_until(&(cb_info->pCond[api]), &(cb_info->pMutex[api]), end_time)) {
396 LOGD("cb_info->recvApiMsg : %s", cb_info->recvApiMsg);
397 if (!muse_camera_msg_get(ret, cb_info->recvApiMsg)) {
398 LOGE("Get cb msg failed.");
399 ret = CAMERA_ERROR_INVALID_OPERATION;
401 LOGD("Wait passed, ret : 0x%x", ret);
403 if (cb_info->activating[api])
404 cb_info->activating[api] = 0;
406 LOGD("api %d was TIMED OUT!", api);
407 ret = CAMERA_ERROR_INVALID_OPERATION;
410 LOGE("condition is already checked for the api : %d.", api);
411 if (!muse_camera_msg_get(ret, cb_info->recvApiMsg)) {
412 LOGE("Get cb msg failed.");
413 ret = CAMERA_ERROR_INVALID_OPERATION;
415 LOGD("Already checked condition, Wait passed, ret : 0x%x", ret);
418 g_mutex_unlock(&(cb_info->pMutex[api]));
419 LOGD("ret : 0x%x", ret);
423 static void client_callback_destroy(callback_cb_info_s * cb_info)
425 g_return_if_fail(cb_info != NULL);
427 LOGI("%p Callback destroyed", cb_info->thread);
429 g_thread_join(cb_info->thread);
430 g_thread_unref(cb_info->thread);
432 if (cb_info->pCond) {
433 g_free(cb_info->pCond);
435 if (cb_info->pMutex) {
436 g_free(cb_info->pMutex);
438 if (cb_info->activating) {
439 g_free(cb_info->activating);
444 int camera_create(camera_device_e device, camera_h* camera)
447 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
448 return CAMERA_ERROR_INVALID_PARAMETER;
453 int ret = CAMERA_ERROR_NONE;
454 camera_cli_s *pc = NULL;
456 muse_camera_api_e api = MUSE_CAMERA_API_CREATE;
457 muse_core_api_module_e muse_module = MUSE_CAMERA;
458 int device_type = (int)device;
460 sock_fd = muse_core_client_new();
462 sndMsg = muse_core_msg_json_factory_new(api,
463 MUSE_TYPE_INT, "module", muse_module,
464 MUSE_TYPE_INT, PARAM_DEVICE_TYPE, (int)device_type,
466 muse_core_ipc_send_msg(sock_fd, sndMsg);
467 muse_core_msg_json_factory_free(sndMsg);
469 pc = g_new0(camera_cli_s, 1);
471 return CAMERA_ERROR_OUT_OF_MEMORY;
474 pc->cb_info = client_callback_new(sock_fd);
475 LOGD("cb info : %d", pc->cb_info->fd);
477 ret = client_wait_for_cb_return(api, pc->cb_info, CALLBACK_TIME_OUT);
478 LOGD("ret value : 0x%x", ret);
479 if (ret == CAMERA_ERROR_NONE) {
481 muse_camera_msg_get_pointer(handle, pc->cb_info->recvMsg);
483 LOGE("Receiving Handle Failed!!");
484 ret = CAMERA_ERROR_INVALID_OPERATION;
487 pc->remote_handle = handle;
489 LOGD("camera create 0x%x", pc->remote_handle);
490 *camera = (camera_h) pc;
498 LOGD("ret value : 0x%x", ret);
502 int camera_destroy(camera_h camera)
504 if (camera == NULL) {
505 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
506 return CAMERA_ERROR_INVALID_PARAMETER;
509 int ret = CAMERA_ERROR_NONE;
510 muse_camera_api_e api = MUSE_CAMERA_API_DESTROY;
511 camera_cli_s *pc = (camera_cli_s *)camera;
512 int sock_fd = pc->cb_info->fd;
516 LOGD("pc is already nul!!");
517 return CAMERA_ERROR_INVALID_PARAMETER;
518 } else if (pc->cb_info == NULL) {
519 return CAMERA_ERROR_INVALID_PARAMETER;
522 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
523 if(ret == CAMERA_ERROR_NONE) {
524 LOGD("destroy client");
527 client_callback_destroy(pc->cb_info);
532 LOGD("ret : 0x%x", ret);
536 int camera_start_preview(camera_h camera)
539 if (camera == NULL) {
540 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
541 return CAMERA_ERROR_INVALID_PARAMETER;
544 int ret = CAMERA_ERROR_NONE;
545 muse_camera_api_e api = MUSE_CAMERA_API_START_PREVIEW;
546 camera_cli_s *pc = (camera_cli_s *)camera;
548 char caps[MUSE_CAMERA_MSG_MAX_LENGTH] = {0};
550 if (pc->cb_info == NULL) {
551 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
552 return CAMERA_ERROR_INVALID_PARAMETER;
555 sock_fd = pc->cb_info->fd;
557 muse_camera_msg_send_longtime(api, sock_fd, pc->cb_info, ret);
558 LOGD("Enter, ret :0x%x", ret);
559 if(ret == CAMERA_ERROR_NONE) {
560 muse_camera_msg_get_string(caps, pc->cb_info->recvMsg);
561 LOGD("caps : %s", caps);
562 if (pc->cli_display_handle != 0) {
563 LOGD("client's display handle is : 0x%x", pc->cli_display_handle);
564 if(strlen(caps) > 0 &&
565 mm_camcorder_client_realize(pc->client_handle, caps) != MM_ERROR_NONE)
566 ret = CAMERA_ERROR_INVALID_OPERATION;
568 LOGD("display handle is NULL");
571 LOGD("ret : 0x%x", ret);
575 int camera_stop_preview(camera_h camera)
577 if (camera == NULL) {
578 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
579 return CAMERA_ERROR_INVALID_PARAMETER;
581 int ret = CAMERA_ERROR_NONE;
582 camera_cli_s *pc = (camera_cli_s *)camera;
584 muse_camera_api_e api = MUSE_CAMERA_API_STOP_PREVIEW;
586 if (pc->cb_info == NULL) {
587 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
588 return CAMERA_ERROR_INVALID_PARAMETER;
591 sock_fd = pc->cb_info->fd;
593 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
595 if(ret == CAMERA_ERROR_NONE) {
596 if (pc->cli_display_handle != 0) {
597 LOGD("Unrealize client");
598 if (pc->client_handle != NULL) {
599 ret = mm_camcorder_client_unrealize(pc->client_handle);
600 mm_camcorder_client_destroy(pc->client_handle);
603 LOGD("Client did not realized : Display handle is NULL");
606 LOGD("ret : 0x%x", ret);
610 int camera_start_capture(camera_h camera, camera_capturing_cb capturing_cb , camera_capture_completed_cb completed_cb , void *user_data)
612 if (camera == NULL) {
613 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
614 return CAMERA_ERROR_INVALID_PARAMETER;
616 int ret = CAMERA_ERROR_NONE;
618 camera_cli_s *pc = (camera_cli_s *)camera;
619 muse_camera_api_e api = MUSE_CAMERA_API_START_CAPTURE;
621 int is_capturing_cb = 0;
622 int is_completed_cb = 0;
623 LOGD("Enter, handle :%x", pc->remote_handle);
625 if (pc->cb_info == NULL) {
626 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
627 return CAMERA_ERROR_INVALID_PARAMETER;
630 sock_fd = pc->cb_info->fd;
632 if (capturing_cb != NULL) {
634 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = capturing_cb;
635 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = user_data;
638 if(completed_cb != NULL) {
640 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE] = completed_cb;
641 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_CAPTURE_COMPLETE] = user_data;
644 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, is_capturing_cb, INT, is_completed_cb);
645 LOGD("is_capturing_cb :%d, is_completed_cb : %d", is_capturing_cb, is_completed_cb);
646 LOGD("ret : 0x%x", ret);
650 bool camera_is_supported_continuous_capture(camera_h camera)
652 if (camera == NULL) {
653 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
657 int ret = CAMERA_ERROR_NONE;
658 camera_cli_s *pc = (camera_cli_s *)camera;
659 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_CONTINUOUS_CAPTURE;
662 if (pc->cb_info == NULL) {
663 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
664 return CAMERA_ERROR_INVALID_PARAMETER;
667 sock_fd = pc->cb_info->fd;
669 LOGD("Enter, remote_handle : %x", pc->remote_handle);
670 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
671 LOGD("ret : 0x%x", ret);
675 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)
677 if (camera == NULL) {
678 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
679 return CAMERA_ERROR_INVALID_PARAMETER;
682 int ret = CAMERA_ERROR_NONE;
684 camera_cli_s *pc = (camera_cli_s *)camera;
685 muse_camera_api_e api = MUSE_CAMERA_API_START_CONTINUOUS_CAPTURE;
687 LOGD("Enter, handle :%x", pc->remote_handle);
690 if (pc->cb_info == NULL) {
691 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
692 return CAMERA_ERROR_INVALID_PARAMETER;
694 sock_fd = pc->cb_info->fd;
696 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = capturing_cb;
697 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = user_data;
698 pc->cb_info->user_cb_completed[MUSE_CAMERA_EVENT_TYPE_CAPTURE] = completed_cb;
700 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, count, INT, interval);
701 LOGD("ret : 0x%x", ret);
705 int camera_stop_continuous_capture(camera_h camera)
707 if (camera == NULL) {
708 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
709 return CAMERA_ERROR_INVALID_PARAMETER;
713 int ret = CAMERA_ERROR_NONE;
715 camera_cli_s *pc = (camera_cli_s *)camera;
716 muse_camera_api_e api = MUSE_CAMERA_API_STOP_CONTINUOUS_CAPTURE;
717 LOGD("Enter, handle :%x", pc->remote_handle);
719 if (pc->cb_info == NULL) {
720 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
721 return CAMERA_ERROR_INVALID_PARAMETER;
723 sock_fd = pc->cb_info->fd;
724 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
725 LOGD("ret : 0x%x", ret);
729 bool camera_is_supported_face_detection(camera_h camera)
731 if (camera == NULL) {
732 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
735 int ret = CAMERA_ERROR_NONE;
737 camera_cli_s *pc = (camera_cli_s *)camera;
738 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_FACE_DETECTION;
740 if (pc->cb_info == NULL) {
741 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
742 return CAMERA_ERROR_INVALID_PARAMETER;
744 sock_fd = pc->cb_info->fd;
746 LOGD("Enter, remote_handle : %x", pc->remote_handle);
747 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
748 LOGD("ret : 0x%x", ret);
752 bool camera_is_supported_zero_shutter_lag(camera_h camera)
754 if (camera == NULL) {
755 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
758 int ret = CAMERA_ERROR_NONE;
760 camera_cli_s *pc = (camera_cli_s *)camera;
761 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_ZERO_SHUTTER_LAG;
763 if (pc->cb_info == NULL) {
764 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
765 return CAMERA_ERROR_INVALID_PARAMETER;
767 sock_fd = pc->cb_info->fd;
769 LOGD("Enter, remote_handle : %x", pc->remote_handle);
770 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
771 LOGD("ret : 0x%x", ret);
775 bool camera_is_supported_media_packet_preview_cb(camera_h camera)
777 if (camera == NULL) {
778 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
782 int ret = CAMERA_ERROR_NONE;
784 camera_cli_s *pc = (camera_cli_s *)camera;
785 muse_camera_api_e api = MUSE_CAMERA_API_SUPPORT_MEDIA_PACKET_PREVIEW_CB;
787 if (pc->cb_info == NULL) {
788 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
789 return CAMERA_ERROR_INVALID_PARAMETER;
791 sock_fd = pc->cb_info->fd;
793 LOGD("Enter, remote_handle : %x", pc->remote_handle);
794 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
795 LOGD("ret : 0x%x", ret);
799 int camera_get_device_count(camera_h camera, int *device_count)
801 if (camera == NULL || device_count == NULL) {
802 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
803 return CAMERA_ERROR_INVALID_PARAMETER;
805 int ret = CAMERA_ERROR_NONE;
807 camera_cli_s *pc = (camera_cli_s *)camera;
808 muse_camera_api_e api = MUSE_CAMERA_API_GET_DEVICE_COUNT;
810 if (pc->cb_info == NULL) {
811 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
812 return CAMERA_ERROR_INVALID_PARAMETER;
814 sock_fd = pc->cb_info->fd;
815 int get_device_count;
817 LOGD("Enter, remote_handle : %x", pc->remote_handle);
818 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
820 if (ret == CAMERA_ERROR_NONE) {
821 muse_camera_msg_get(get_device_count, pc->cb_info->recvMsg);
822 *device_count = get_device_count;
824 LOGD("ret : 0x%x", ret);
828 int camera_start_face_detection(camera_h camera, camera_face_detected_cb callback, void * user_data)
830 if (camera == NULL) {
831 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
832 return CAMERA_ERROR_INVALID_PARAMETER;
835 int ret = CAMERA_ERROR_NONE;
837 camera_cli_s *pc = (camera_cli_s *)camera;
838 muse_camera_api_e api = MUSE_CAMERA_API_START_FACE_DETECTION;
840 LOGD("Enter, handle :%x", pc->remote_handle);
842 if (pc->cb_info == NULL) {
843 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
844 return CAMERA_ERROR_INVALID_PARAMETER;
846 sock_fd = pc->cb_info->fd;
847 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION] = callback;
848 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FACE_DETECTION] = user_data;
850 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
851 LOGD("ret : 0x%x", ret);
855 int camera_stop_face_detection(camera_h camera)
857 if (camera == NULL) {
858 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
859 return CAMERA_ERROR_INVALID_PARAMETER;
862 int ret = CAMERA_ERROR_NONE;
864 camera_cli_s *pc = (camera_cli_s *)camera;
865 muse_camera_api_e api = MUSE_CAMERA_API_STOP_FACE_DETECTION;
866 LOGD("Enter, handle :%x", pc->remote_handle);
868 if (pc->cb_info == NULL) {
869 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
870 return CAMERA_ERROR_INVALID_PARAMETER;
872 sock_fd = pc->cb_info->fd;
873 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
874 LOGD("ret : 0x%x", ret);
878 int camera_get_state(camera_h camera, camera_state_e * state)
880 if (camera == NULL || state == NULL) {
881 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
882 return CAMERA_ERROR_INVALID_PARAMETER;
884 int ret = CAMERA_ERROR_NONE;
886 camera_cli_s *pc = (camera_cli_s *)camera;
887 muse_camera_api_e api = MUSE_CAMERA_API_GET_STATE;
889 if (pc->cb_info == NULL) {
890 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
891 return CAMERA_ERROR_INVALID_PARAMETER;
893 sock_fd = pc->cb_info->fd;
896 LOGD("Enter, remote_handle : %x", pc->remote_handle);
897 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
899 if (ret == CAMERA_ERROR_NONE) {
900 muse_camera_msg_get(get_state, pc->cb_info->recvMsg);
901 *state = (camera_state_e)get_state;
903 LOGD("ret : 0x%x", ret);
907 int camera_start_focusing(camera_h camera, bool continuous)
910 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
911 return CAMERA_ERROR_INVALID_PARAMETER;
914 int ret = CAMERA_ERROR_NONE;
916 camera_cli_s *pc = (camera_cli_s *)camera;
917 muse_camera_api_e api = MUSE_CAMERA_API_START_FOCUSING;
919 if (pc->cb_info == NULL) {
920 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
921 return CAMERA_ERROR_INVALID_PARAMETER;
923 sock_fd = pc->cb_info->fd;
924 int is_continuous = (int)continuous;
926 LOGD("Enter, remote_handle : %x", pc->remote_handle);
927 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, is_continuous);
928 LOGD("ret : 0x%x", ret);
932 int camera_cancel_focusing(camera_h camera)
934 if (camera == NULL) {
935 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
936 return CAMERA_ERROR_INVALID_PARAMETER;
939 int ret = CAMERA_ERROR_NONE;
941 camera_cli_s *pc = (camera_cli_s *)camera;
942 muse_camera_api_e api = MUSE_CAMERA_API_CANCEL_FOCUSING;
944 if (pc->cb_info == NULL) {
945 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
946 return CAMERA_ERROR_INVALID_PARAMETER;
948 sock_fd = pc->cb_info->fd;
950 LOGD("Enter, remote_handle : %x", pc->remote_handle);
951 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
952 LOGD("ret : 0x%x", ret);
956 int camera_set_display(camera_h camera, camera_display_type_e type, camera_display_h display)
958 int ret = CAMERA_ERROR_NONE;
960 void *set_display_handle = NULL;
961 int set_surface = MM_DISPLAY_SURFACE_X;
962 camera_s *handle = NULL;
963 Evas_Object *obj = NULL;
964 const char *object_type = NULL;
965 char socket_path[MUSE_CAMERA_MSG_MAX_LENGTH] = {0,};
967 if (camera == NULL) {
968 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
969 return CAMERA_ERROR_INVALID_PARAMETER;
972 if (type != CAMERA_DISPLAY_TYPE_NONE && display == NULL) {
973 LOGE("display type[%d] is not NONE, but display handle is NULL", type);
974 return CAMERA_ERROR_INVALID_PARAMETER;
977 int display_type = (int)type;
978 camera_cli_s *pc = (camera_cli_s *)camera;
979 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY;
981 if (pc->cb_info == NULL) {
982 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
983 return CAMERA_ERROR_INVALID_PARAMETER;
985 sock_fd = pc->cb_info->fd;
987 LOGD("Enter, remote_handle : %x display : 0x%x", pc->remote_handle, display);
989 handle = (camera_s *)camera;
990 handle->display_type = type;
992 if (type == CAMERA_DISPLAY_TYPE_NONE) {
993 set_display_handle = 0;
994 set_surface = MM_DISPLAY_SURFACE_NULL;
995 LOGD("display type NONE");
997 obj = (Evas_Object *)display;
998 object_type = evas_object_type_get(obj);
1000 if (type == CAMERA_DISPLAY_TYPE_OVERLAY && !strcmp(object_type, "elm_win")) {
1002 MMCamWaylandInfo *wl_info = g_new0(MMCamWaylandInfo, 1);
1004 if (wl_info == NULL) {
1005 LOGE("wl_info alloc failed : %d", sizeof(MMCamWaylandInfo));
1006 return CAMERA_ERROR_OUT_OF_MEMORY;
1009 wl_info->evas_obj = (void *)obj;
1010 wl_info->window = (void *)elm_win_wl_window_get(obj);
1011 wl_info->surface = (void *)ecore_wl_window_surface_get(wl_info->window);
1012 wl_info->display = (void *)ecore_wl_display_get();
1014 if (wl_info->window == NULL || wl_info->surface == NULL || wl_info->display == NULL) {
1015 LOGE("something is NULL %p, %p, %p", wl_info->window, wl_info->surface, wl_info->display);
1016 return CAMERA_ERROR_INVALID_OPERATION;
1019 evas_object_geometry_get(obj, &wl_info->window_x, &wl_info->window_y,
1020 &wl_info->window_width, &wl_info->window_height);
1022 /* set wayland info */
1023 handle->wl_info = (void *)wl_info;
1024 pc->wl_info = wl_info;
1025 set_surface = MM_DISPLAY_SURFACE_X;
1026 set_display_handle = (void *)wl_info;
1028 LOGD("wayland obj %p, window %p, surface %p, display %p, size %d,%d,%dx%d",
1029 wl_info->evas_obj, wl_info->window, wl_info->surface, wl_info->display,
1030 wl_info->window_x, wl_info->window_y, wl_info->window_width, wl_info->window_height);
1031 #else /* HAVE_WAYLAND */
1032 /* x window overlay surface */
1033 set_display_handle = (void *)elm_win_xwindow_get(obj);
1034 set_surface = MM_DISPLAY_SURFACE_X;
1035 LOGD("display type OVERLAY : handle %p", set_display_handle);
1037 } else if (type == CAMERA_DISPLAY_TYPE_EVAS && !strcmp(object_type, "image")) {
1038 /* evas object surface */
1039 set_display_handle = (void *)display;
1040 set_surface = MM_DISPLAY_SURFACE_EVAS;
1041 LOGD("display type EVAS : handle %p", set_display_handle);
1043 LOGE("unknown evas object [%p,%s] or type [%d] mismatch", obj, object_type, type);
1044 return CAMERA_ERROR_INVALID_PARAMETER;
1047 LOGE("failed to get evas object type from %p", obj);
1048 return CAMERA_ERROR_INVALID_PARAMETER;
1052 pc->cli_display_handle = (intptr_t)set_display_handle;
1053 display_surface = (int)set_surface;
1054 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret,
1056 INT, display_surface);
1058 if (ret == CAMERA_ERROR_NONE && type == CAMERA_DISPLAY_TYPE_OVERLAY && !strcmp(object_type, "elm_win")) {
1059 if (mm_camcorder_client_create(&(pc->client_handle))) {
1060 LOGE("camera client create Failed");
1061 return CAMERA_ERROR_INVALID_OPERATION;
1063 muse_camera_msg_get_string(socket_path, pc->cb_info->recvMsg);
1064 LOGD("shmsrc stream path : %s", socket_path);
1065 if(mm_camcorder_client_set_shm_socket_path(pc->client_handle, socket_path)
1067 return CAMERA_ERROR_INVALID_OPERATION;
1068 ret = mm_camcorder_set_attributes(pc->client_handle, NULL,
1069 MMCAM_DISPLAY_SURFACE, set_surface,
1071 if (ret == MM_ERROR_NONE && type != CAMERA_DISPLAY_TYPE_NONE) {
1072 ret = mm_camcorder_set_attributes(pc->client_handle, NULL,
1073 MMCAM_DISPLAY_HANDLE, pc->cli_display_handle, sizeof(void *),
1075 LOGD("ret : 0x%x", ret);
1078 LOGD("ret : 0x%x", ret);
1082 int camera_set_preview_resolution(camera_h camera, int width, int height)
1084 if( camera == NULL){
1085 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1086 return CAMERA_ERROR_INVALID_PARAMETER;
1088 int ret = CAMERA_ERROR_NONE;
1090 camera_cli_s *pc = (camera_cli_s *)camera;
1091 muse_camera_api_e api = MUSE_CAMERA_API_SET_PREVIEW_RESOLUTION;
1093 if (pc->cb_info == NULL) {
1094 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1095 return CAMERA_ERROR_INVALID_PARAMETER;
1097 sock_fd = pc->cb_info->fd;
1099 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1100 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, width, INT, height);
1101 LOGD("ret : 0x%x", ret);
1106 int camera_set_capture_resolution(camera_h camera, int width, int height)
1108 if (camera == NULL) {
1109 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1110 return CAMERA_ERROR_INVALID_PARAMETER;
1113 int ret = CAMERA_ERROR_NONE;
1115 camera_cli_s *pc = (camera_cli_s *)camera;
1116 muse_camera_api_e api = MUSE_CAMERA_API_SET_CAPTURE_RESOLUTION;
1118 if (pc->cb_info == NULL) {
1119 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1120 return CAMERA_ERROR_INVALID_PARAMETER;
1122 sock_fd = pc->cb_info->fd;
1124 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1125 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, width, INT, height);
1126 LOGD("ret : 0x%x", ret);
1130 int camera_set_capture_format(camera_h camera, camera_pixel_format_e format)
1132 if (camera == NULL) {
1133 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1134 return CAMERA_ERROR_INVALID_PARAMETER;
1137 int ret = CAMERA_ERROR_NONE;
1138 int set_format = (int)format;
1140 camera_cli_s *pc = (camera_cli_s *)camera;
1141 muse_camera_api_e api = MUSE_CAMERA_API_SET_CAPTURE_FORMAT;
1143 if (pc->cb_info == NULL) {
1144 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1145 return CAMERA_ERROR_INVALID_PARAMETER;
1147 sock_fd = pc->cb_info->fd;
1149 LOGD("Enter, remote_handle : %x, capture_format: %d", pc->remote_handle, set_format);
1150 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_format);
1151 LOGD("ret : 0x%x", ret);
1155 int camera_set_preview_format(camera_h camera, camera_pixel_format_e format)
1157 if (camera == NULL) {
1158 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1159 return CAMERA_ERROR_INVALID_PARAMETER;
1162 int ret = CAMERA_ERROR_NONE;
1163 int set_format = (int)format;
1165 camera_cli_s *pc = (camera_cli_s *)camera;
1166 muse_camera_api_e api = MUSE_CAMERA_API_SET_PREVIEW_FORMAT;
1168 if (pc->cb_info == NULL) {
1169 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1170 return CAMERA_ERROR_INVALID_PARAMETER;
1172 sock_fd = pc->cb_info->fd;
1174 LOGD("Enter, remote_handle : %x, capture_format: %d", pc->remote_handle, set_format);
1175 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_format);
1176 LOGD("ret : 0x%x", ret);
1180 int camera_get_preview_resolution(camera_h camera, int *width, int *height)
1182 if (camera == NULL || width == NULL || height == NULL) {
1183 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1184 return CAMERA_ERROR_INVALID_PARAMETER;
1188 int ret = CAMERA_ERROR_NONE;
1190 camera_cli_s *pc = (camera_cli_s *)camera;
1191 muse_camera_api_e api = MUSE_CAMERA_API_GET_PREVIEW_RESOLUTION;
1193 if (pc->cb_info == NULL) {
1194 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1195 return CAMERA_ERROR_INVALID_PARAMETER;
1197 sock_fd = pc->cb_info->fd;
1201 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1202 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1204 if (ret == CAMERA_ERROR_NONE) {
1205 muse_camera_msg_get(get_width, pc->cb_info->recvMsg);
1206 muse_camera_msg_get(get_height, pc->cb_info->recvMsg);
1208 *height = get_height;
1210 LOGD("ret : 0x%x", ret);
1214 int camera_set_display_rotation(camera_h camera, camera_rotation_e rotation)
1216 if( camera == NULL){
1217 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1218 return CAMERA_ERROR_INVALID_PARAMETER;
1221 int ret = CAMERA_ERROR_NONE;
1222 camera_cli_s *pc = (camera_cli_s *)camera;
1223 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_ROTATION;
1225 if (pc->cb_info == NULL) {
1226 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1227 return CAMERA_ERROR_INVALID_PARAMETER;
1229 sock_fd = pc->cb_info->fd;
1230 int set_rotation = (int)rotation;
1232 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1233 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_rotation);
1234 LOGD("ret : 0x%x", ret);
1238 int camera_get_display_rotation(camera_h camera, camera_rotation_e *rotation)
1240 if( camera == NULL || rotation == NULL ){
1241 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1242 return CAMERA_ERROR_INVALID_PARAMETER;
1245 int ret = CAMERA_ERROR_NONE;
1247 camera_cli_s *pc = (camera_cli_s *)camera;
1248 muse_camera_api_e api = MUSE_CAMERA_API_GET_DISPLAY_ROTATION;
1250 if (pc->cb_info == NULL) {
1251 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1252 return CAMERA_ERROR_INVALID_PARAMETER;
1254 sock_fd = pc->cb_info->fd;
1257 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1258 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1260 if (ret == CAMERA_ERROR_NONE) {
1261 muse_camera_msg_get(get_rotation, pc->cb_info->recvMsg);
1262 *rotation = (camera_rotation_e)get_rotation;
1264 LOGD("ret : 0x%x", ret);
1268 int camera_set_display_flip(camera_h camera, camera_flip_e flip)
1270 if( camera == NULL){
1271 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1272 return CAMERA_ERROR_INVALID_PARAMETER;
1275 int ret = CAMERA_ERROR_NONE;
1277 camera_cli_s *pc = (camera_cli_s *)camera;
1278 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_FLIP;
1280 if (pc->cb_info == NULL) {
1281 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1282 return CAMERA_ERROR_INVALID_PARAMETER;
1284 sock_fd = pc->cb_info->fd;
1285 int set_flip = (int)flip;
1287 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1288 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_flip);
1289 LOGD("ret : 0x%x", ret);
1293 int camera_get_display_flip(camera_h camera, camera_flip_e *flip)
1295 if( camera == NULL || flip == NULL ){
1296 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1297 return CAMERA_ERROR_INVALID_PARAMETER;
1300 int ret = CAMERA_ERROR_NONE;
1302 camera_cli_s *pc = (camera_cli_s *)camera;
1303 muse_camera_api_e api = MUSE_CAMERA_API_GET_DISPLAY_FLIP;
1305 if (pc->cb_info == NULL) {
1306 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1307 return CAMERA_ERROR_INVALID_PARAMETER;
1309 sock_fd = pc->cb_info->fd;
1312 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1313 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1315 if (ret == CAMERA_ERROR_NONE) {
1316 muse_camera_msg_get(get_flip, pc->cb_info->recvMsg);
1317 *flip = (camera_flip_e)get_flip;
1319 LOGD("ret : 0x%x", ret);
1323 int camera_set_display_visible(camera_h camera, bool visible)
1325 if( camera == NULL){
1326 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1327 return CAMERA_ERROR_INVALID_PARAMETER;
1330 int ret = CAMERA_ERROR_NONE;
1332 camera_cli_s *pc = (camera_cli_s *)camera;
1333 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_VISIBLE;
1334 int set_visible = (int)visible;
1336 if (pc->cb_info == NULL) {
1337 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1338 return CAMERA_ERROR_INVALID_PARAMETER;
1340 sock_fd = pc->cb_info->fd;
1342 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1343 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_visible);
1344 LOGD("ret : 0x%x", ret);
1348 int camera_is_display_visible(camera_h camera, bool* visible)
1350 if( camera == NULL || visible == NULL){
1351 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1352 return CAMERA_ERROR_INVALID_PARAMETER;
1355 int ret = CAMERA_ERROR_NONE;
1357 camera_cli_s *pc = (camera_cli_s *)camera;
1358 muse_camera_api_e api = MUSE_CAMERA_API_IS_DISPLAY_VISIBLE;
1360 if (pc->cb_info == NULL) {
1361 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1362 return CAMERA_ERROR_INVALID_PARAMETER;
1364 sock_fd = pc->cb_info->fd;
1367 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1368 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1370 if (ret == CAMERA_ERROR_NONE) {
1371 muse_camera_msg_get(get_visible, pc->cb_info->recvMsg);
1372 *visible = (bool)get_visible;
1374 LOGD("ret : 0x%x", ret);
1378 int camera_set_display_mode(camera_h camera, camera_display_mode_e mode)
1380 if (camera == NULL) {
1381 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1382 return CAMERA_ERROR_INVALID_PARAMETER;
1385 int ret = CAMERA_ERROR_NONE;
1386 int set_mode = (int)mode;
1388 camera_cli_s *pc = (camera_cli_s *)camera;
1389 muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY_MODE;
1391 if (pc->cb_info == NULL) {
1392 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1393 return CAMERA_ERROR_INVALID_PARAMETER;
1395 sock_fd = pc->cb_info->fd;
1397 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1398 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
1399 LOGD("ret : 0x%x", ret);
1403 int camera_get_display_mode(camera_h camera, camera_display_mode_e* mode)
1405 if( camera == NULL || mode == NULL){
1406 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1407 return CAMERA_ERROR_INVALID_PARAMETER;
1410 int ret = CAMERA_ERROR_NONE;
1412 camera_cli_s *pc = (camera_cli_s *)camera;
1413 muse_camera_api_e api = MUSE_CAMERA_API_GET_DISPLAY_MODE;
1415 if (pc->cb_info == NULL) {
1416 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1417 return CAMERA_ERROR_INVALID_PARAMETER;
1419 sock_fd = pc->cb_info->fd;
1422 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1423 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1425 if (ret == CAMERA_ERROR_NONE) {
1426 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
1427 *mode = (camera_display_mode_e)get_mode;
1429 LOGD("ret : 0x%x", ret);
1433 int camera_get_capture_resolution(camera_h camera, int *width, int *height)
1435 if( camera == NULL || width== NULL || height == NULL){
1436 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1437 return CAMERA_ERROR_INVALID_PARAMETER;
1439 int ret = CAMERA_ERROR_NONE;
1441 camera_cli_s *pc = (camera_cli_s *)camera;
1442 muse_camera_api_e api = MUSE_CAMERA_API_GET_CAPTURE_RESOLUTION;
1444 if (pc->cb_info == NULL) {
1445 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1446 return CAMERA_ERROR_INVALID_PARAMETER;
1448 sock_fd = pc->cb_info->fd;
1452 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1453 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1455 if (ret == CAMERA_ERROR_NONE) {
1456 muse_camera_msg_get(get_width, pc->cb_info->recvMsg);
1457 muse_camera_msg_get(get_height, pc->cb_info->recvMsg);
1459 *height = get_height;
1461 LOGD("ret : 0x%x", ret);
1465 int camera_get_capture_format(camera_h camera, camera_pixel_format_e *format)
1467 if( camera == NULL || format == NULL){
1468 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1469 return CAMERA_ERROR_INVALID_PARAMETER;
1471 int ret = CAMERA_ERROR_NONE;
1473 camera_cli_s *pc = (camera_cli_s *)camera;
1474 muse_camera_api_e api = MUSE_CAMERA_API_GET_CAPTURE_FORMAT;
1477 if (pc->cb_info == NULL) {
1478 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1479 return CAMERA_ERROR_INVALID_PARAMETER;
1481 sock_fd = pc->cb_info->fd;
1483 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1484 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1486 if (ret == CAMERA_ERROR_NONE) {
1487 muse_camera_msg_get(get_format, pc->cb_info->recvMsg);
1488 *format = (camera_pixel_format_e)get_format;
1490 LOGD("ret : 0x%x", ret);
1494 int camera_get_preview_format(camera_h camera, camera_pixel_format_e *format)
1496 if( camera == NULL || format == NULL){
1497 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1498 return CAMERA_ERROR_INVALID_PARAMETER;
1501 int ret = CAMERA_ERROR_NONE;
1503 camera_cli_s *pc = (camera_cli_s *)camera;
1504 muse_camera_api_e api = MUSE_CAMERA_API_GET_PREVIEW_FORMAT;
1507 if (pc->cb_info == NULL) {
1508 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1509 return CAMERA_ERROR_INVALID_PARAMETER;
1511 sock_fd = pc->cb_info->fd;
1513 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1514 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1516 if (ret == CAMERA_ERROR_NONE) {
1517 muse_camera_msg_get(get_format, pc->cb_info->recvMsg);
1518 *format = (camera_pixel_format_e)get_format;
1520 LOGD("ret : 0x%x", ret);
1524 int camera_set_preview_cb(camera_h camera, camera_preview_cb callback, void* user_data)
1526 if (camera == NULL || callback == NULL) {
1527 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1528 return CAMERA_ERROR_INVALID_PARAMETER;
1530 int ret = CAMERA_ERROR_NONE;
1532 camera_cli_s *pc = (camera_cli_s *)camera;
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;
1539 muse_camera_api_e api = MUSE_CAMERA_API_SET_PREVIEW_CB;
1541 LOGD("Enter, handle :%x", pc->remote_handle);
1543 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = callback;
1544 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = user_data;
1546 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1547 LOGD("ret : 0x%x", ret);
1551 int camera_unset_preview_cb(camera_h camera)
1553 if (camera == NULL) {
1554 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1555 return CAMERA_ERROR_INVALID_PARAMETER;
1558 int ret = CAMERA_ERROR_NONE;
1560 camera_cli_s *pc = (camera_cli_s *)camera;
1561 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_PREVIEW_CB;
1563 LOGD("Enter, handle :%x", pc->remote_handle);
1566 if (pc->cb_info == NULL) {
1567 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1568 return CAMERA_ERROR_INVALID_PARAMETER;
1570 sock_fd = pc->cb_info->fd;
1571 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = (void *)NULL;
1572 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_PREVIEW] = (void *)NULL;
1574 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1575 LOGD("ret : 0x%x", ret);
1579 int camera_set_media_packet_preview_cb(camera_h camera, camera_media_packet_preview_cb callback, void* user_data)
1581 if (camera == NULL) {
1582 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
1583 return CAMERA_ERROR_INVALID_PARAMETER;
1586 if (callback == NULL) {
1587 LOGE("INVALID_PARAMETER(0x%08x) - callback", CAMERA_ERROR_INVALID_PARAMETER);
1588 return CAMERA_ERROR_NOT_SUPPORTED;
1591 int ret = CAMERA_ERROR_NONE;
1593 camera_cli_s *pc = (camera_cli_s *)camera;
1594 muse_camera_api_e api = MUSE_CAMERA_API_SET_MEDIA_PACKET_PREVIEW_CB;
1596 LOGD("Enter, handle :%x", pc->remote_handle);
1599 if (pc->cb_info == NULL) {
1600 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1601 return CAMERA_ERROR_INVALID_PARAMETER;
1603 sock_fd = pc->cb_info->fd;
1604 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = callback;
1605 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = user_data;
1607 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1608 LOGD("ret : 0x%x", ret);
1612 int camera_unset_media_packet_preview_cb(camera_h camera)
1614 if (camera == NULL) {
1615 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
1616 return CAMERA_ERROR_INVALID_PARAMETER;
1619 int ret = CAMERA_ERROR_NONE;
1621 camera_cli_s *pc = (camera_cli_s *)camera;
1622 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_MEDIA_PACKET_PREVIEW_CB;
1624 LOGD("Enter, handle :%x", pc->remote_handle);
1627 if (pc->cb_info == NULL) {
1628 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1629 return CAMERA_ERROR_INVALID_PARAMETER;
1631 sock_fd = pc->cb_info->fd;
1632 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = (void *)NULL;
1633 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] = (void *)NULL;
1635 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1636 LOGD("ret : 0x%x", ret);
1640 int camera_set_state_changed_cb(camera_h camera, camera_state_changed_cb callback, void* user_data)
1642 if( camera == NULL || callback == NULL){
1643 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1644 return CAMERA_ERROR_INVALID_PARAMETER;
1646 int ret = CAMERA_ERROR_NONE;
1648 camera_cli_s *pc = (camera_cli_s *)camera;
1649 muse_camera_api_e api = MUSE_CAMERA_API_SET_STATE_CHANGED_CB;
1651 LOGD("Enter, handle :%x", pc->remote_handle);
1654 if (pc->cb_info == NULL) {
1655 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1656 return CAMERA_ERROR_INVALID_PARAMETER;
1658 sock_fd = pc->cb_info->fd;
1659 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = callback;
1660 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = user_data;
1662 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1663 LOGD("ret : 0x%x", ret);
1666 int camera_unset_state_changed_cb(camera_h camera)
1668 if( camera == NULL){
1669 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1670 return CAMERA_ERROR_INVALID_PARAMETER;
1672 int ret = CAMERA_ERROR_NONE;
1674 camera_cli_s *pc = (camera_cli_s *)camera;
1675 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_STATE_CHANGED_CB;
1677 LOGD("Enter, handle :%x", pc->remote_handle);
1680 if (pc->cb_info == NULL) {
1681 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1682 return CAMERA_ERROR_INVALID_PARAMETER;
1684 sock_fd = pc->cb_info->fd;
1685 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = (void *)NULL;
1686 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_STATE_CHANGE] = (void *)NULL;
1688 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1689 LOGD("ret : 0x%x", ret);
1693 int camera_set_interrupted_cb(camera_h camera, camera_interrupted_cb callback, void *user_data)
1695 if( camera == NULL || callback == NULL){
1696 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1697 return CAMERA_ERROR_INVALID_PARAMETER;
1699 int ret = CAMERA_ERROR_NONE;
1701 camera_cli_s *pc = (camera_cli_s *)camera;
1702 muse_camera_api_e api = MUSE_CAMERA_API_SET_INTERRUPTED_CB;
1704 LOGD("Enter, handle :%x", pc->remote_handle);
1707 if (pc->cb_info == NULL) {
1708 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1709 return CAMERA_ERROR_INVALID_PARAMETER;
1711 sock_fd = pc->cb_info->fd;
1712 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = callback;
1713 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = user_data;
1715 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1716 LOGD("ret : 0x%x", ret);
1720 int camera_unset_interrupted_cb(camera_h camera)
1722 if( camera == NULL){
1723 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1724 return CAMERA_ERROR_INVALID_PARAMETER;
1726 int ret = CAMERA_ERROR_NONE;
1728 camera_cli_s *pc = (camera_cli_s *)camera;
1729 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_INTERRUPTED_CB;
1731 LOGD("Enter, handle :%x", pc->remote_handle);
1734 if (pc->cb_info == NULL) {
1735 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1736 return CAMERA_ERROR_INVALID_PARAMETER;
1738 sock_fd = pc->cb_info->fd;
1739 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = (void *)NULL;
1740 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_INTERRUPTED] = (void *)NULL;
1742 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1743 LOGD("ret : 0x%x", ret);
1747 int camera_set_focus_changed_cb(camera_h camera, camera_focus_changed_cb callback, void* user_data)
1749 if( camera == NULL || callback == NULL){
1750 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1751 return CAMERA_ERROR_INVALID_PARAMETER;
1753 int ret = CAMERA_ERROR_NONE;
1755 camera_cli_s *pc = (camera_cli_s *)camera;
1756 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOCUS_CHANGED_CB;
1758 LOGD("Enter, handle :%x", pc->remote_handle);
1761 if (pc->cb_info == NULL) {
1762 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1763 return CAMERA_ERROR_INVALID_PARAMETER;
1765 sock_fd = pc->cb_info->fd;
1766 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = callback;
1767 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = user_data;
1769 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1770 LOGD("ret : 0x%x", ret);
1774 int camera_unset_focus_changed_cb(camera_h camera)
1776 if( camera == NULL){
1777 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1778 return CAMERA_ERROR_INVALID_PARAMETER;
1780 int ret = CAMERA_ERROR_NONE;
1782 camera_cli_s *pc = (camera_cli_s *)camera;
1783 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_FOCUS_CHANGED_CB;
1785 LOGD("Enter, handle :%x", pc->remote_handle);
1788 if (pc->cb_info == NULL) {
1789 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1790 return CAMERA_ERROR_INVALID_PARAMETER;
1792 sock_fd = pc->cb_info->fd;
1793 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = (void *)NULL;
1794 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOCUS_CHANGE] = (void *)NULL;
1796 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1797 LOGD("ret : 0x%x", ret);
1801 int camera_set_error_cb(camera_h camera, camera_error_cb callback, void *user_data)
1803 if( camera == NULL || callback == NULL){
1804 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1805 return CAMERA_ERROR_INVALID_PARAMETER;
1807 int ret = CAMERA_ERROR_NONE;
1809 camera_cli_s *pc = (camera_cli_s *)camera;
1810 muse_camera_api_e api = MUSE_CAMERA_API_SET_ERROR_CB;
1812 LOGD("Enter, handle :%x", pc->remote_handle);
1815 if (pc->cb_info == NULL) {
1816 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1817 return CAMERA_ERROR_INVALID_PARAMETER;
1819 sock_fd = pc->cb_info->fd;
1820 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_ERROR] = callback;
1821 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_ERROR] = user_data;
1823 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1824 LOGD("ret : 0x%x", ret);
1828 int camera_unset_error_cb(camera_h camera)
1830 if( camera == NULL){
1831 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1832 return CAMERA_ERROR_INVALID_PARAMETER;
1834 int ret = CAMERA_ERROR_NONE;
1836 camera_cli_s *pc = (camera_cli_s *)camera;
1837 muse_camera_api_e api = MUSE_CAMERA_API_UNSET_ERROR_CB;
1839 LOGD("Enter, handle :%x", pc->remote_handle);
1842 if (pc->cb_info == NULL) {
1843 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1844 return CAMERA_ERROR_INVALID_PARAMETER;
1846 sock_fd = pc->cb_info->fd;
1847 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_ERROR] = (void *)NULL;
1848 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_ERROR] = (void *)NULL;
1850 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1851 LOGD("ret : 0x%x", ret);
1855 int camera_foreach_supported_preview_resolution(camera_h camera, camera_supported_preview_resolution_cb foreach_cb , void *user_data)
1857 if( camera == NULL || foreach_cb == NULL){
1858 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1859 return CAMERA_ERROR_INVALID_PARAMETER;
1861 int ret = CAMERA_ERROR_NONE;
1863 camera_cli_s *pc = (camera_cli_s *)camera;
1864 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_RESOLUTION;
1866 LOGD("Enter, handle :%x", pc->remote_handle);
1869 if (pc->cb_info == NULL) {
1870 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1871 return CAMERA_ERROR_INVALID_PARAMETER;
1873 sock_fd = pc->cb_info->fd;
1874 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION] = foreach_cb;
1875 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_RESOLUTION] = user_data;
1877 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1878 LOGD("ret : 0x%x", ret);
1882 int camera_foreach_supported_capture_resolution(camera_h camera, camera_supported_capture_resolution_cb foreach_cb , void *user_data)
1884 if( camera == NULL || foreach_cb == NULL){
1885 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1886 return CAMERA_ERROR_INVALID_PARAMETER;
1888 int ret = CAMERA_ERROR_NONE;
1890 camera_cli_s *pc = (camera_cli_s *)camera;
1891 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_RESOLUTION;
1893 LOGD("Enter, handle :%x", pc->remote_handle);
1896 if (pc->cb_info == NULL) {
1897 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1898 return CAMERA_ERROR_INVALID_PARAMETER;
1900 sock_fd = pc->cb_info->fd;
1901 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION] = foreach_cb;
1902 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_RESOLUTION] = user_data;
1904 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1905 LOGD("ret : 0x%x", ret);
1909 int camera_foreach_supported_capture_format(camera_h camera, camera_supported_capture_format_cb foreach_cb , void *user_data)
1911 if( camera == NULL || foreach_cb == NULL){
1912 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1913 return CAMERA_ERROR_INVALID_PARAMETER;
1915 int ret = CAMERA_ERROR_NONE;
1917 camera_cli_s *pc = (camera_cli_s *)camera;
1918 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_FORMAT;
1920 LOGD("Enter, handle :%x", pc->remote_handle);
1923 if (pc->cb_info == NULL) {
1924 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1925 return CAMERA_ERROR_INVALID_PARAMETER;
1927 sock_fd = pc->cb_info->fd;
1928 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT] = foreach_cb;
1929 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_CAPTURE_FORMAT] = user_data;
1931 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1932 LOGD("ret : 0x%x", ret);
1937 int camera_foreach_supported_preview_format(camera_h camera, camera_supported_preview_format_cb foreach_cb , void *user_data)
1939 if( camera == NULL || foreach_cb == NULL){
1940 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1941 return CAMERA_ERROR_INVALID_PARAMETER;
1943 int ret = CAMERA_ERROR_NONE;
1945 camera_cli_s *pc = (camera_cli_s *)camera;
1946 muse_camera_api_e api = MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_FORMAT;
1948 LOGD("Enter, handle :%x", pc->remote_handle);
1951 if (pc->cb_info == NULL) {
1952 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1953 return CAMERA_ERROR_INVALID_PARAMETER;
1955 sock_fd = pc->cb_info->fd;
1956 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT] = foreach_cb;
1957 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_PREVIEW_FORMAT] = user_data;
1959 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1960 LOGD("ret : 0x%x", ret);
1965 int camera_get_recommended_preview_resolution(camera_h camera, int *width, int *height)
1967 if (camera == NULL || width == NULL || height == NULL) {
1968 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1969 return CAMERA_ERROR_INVALID_PARAMETER;
1971 int ret = CAMERA_ERROR_NONE;
1973 camera_cli_s *pc = (camera_cli_s *)camera;
1974 muse_camera_api_e api = MUSE_CAMERA_API_GET_RECOMMENDED_PREVIEW_RESOLUTION;
1976 if (pc->cb_info == NULL) {
1977 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
1978 return CAMERA_ERROR_INVALID_PARAMETER;
1980 sock_fd = pc->cb_info->fd;
1984 LOGD("Enter, remote_handle : %x", pc->remote_handle);
1985 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
1987 if (ret == CAMERA_ERROR_NONE) {
1988 muse_camera_msg_get(get_width, pc->cb_info->recvMsg);
1989 muse_camera_msg_get(get_height, pc->cb_info->recvMsg);
1991 *height = get_height;
1993 LOGD("ret : 0x%x", ret);
1998 int camera_attr_get_lens_orientation(camera_h camera, int *angle)
2000 if( camera == NULL || angle == NULL){
2001 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2002 return CAMERA_ERROR_INVALID_PARAMETER;
2004 int ret = CAMERA_ERROR_NONE;
2006 camera_cli_s *pc = (camera_cli_s *)camera;
2007 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_LENS_ORIENTATION;
2009 if (pc->cb_info == NULL) {
2010 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2011 return CAMERA_ERROR_INVALID_PARAMETER;
2013 sock_fd = pc->cb_info->fd;
2016 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2017 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2019 if (ret == CAMERA_ERROR_NONE) {
2020 muse_camera_msg_get(get_angle, pc->cb_info->recvMsg);
2023 LOGD("ret : 0x%x", ret);
2027 int camera_attr_set_theater_mode(camera_h camera, camera_attr_theater_mode_e mode)
2029 if (camera == NULL) {
2030 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2031 return CAMERA_ERROR_INVALID_PARAMETER;
2033 int ret = CAMERA_ERROR_NONE;
2034 camera_cli_s *pc = (camera_cli_s *)camera;
2035 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_THEATER_MODE;
2037 if (pc->cb_info == NULL) {
2038 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2039 return CAMERA_ERROR_INVALID_PARAMETER;
2041 sock_fd = pc->cb_info->fd;
2042 int set_mode = (int)mode;
2043 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2044 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2045 LOGD("ret : 0x%x", ret);
2049 int camera_attr_get_theater_mode(camera_h camera, camera_attr_theater_mode_e *mode)
2051 if (camera == NULL || mode == NULL) {
2052 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2053 return CAMERA_ERROR_INVALID_PARAMETER;
2056 int ret = CAMERA_ERROR_NONE;
2057 camera_cli_s *pc = (camera_cli_s *)camera;
2058 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_THEATER_MODE;
2060 if (pc->cb_info == NULL) {
2061 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2062 return CAMERA_ERROR_INVALID_PARAMETER;
2064 sock_fd = pc->cb_info->fd;
2066 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2067 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2069 if (ret == CAMERA_ERROR_NONE) {
2070 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
2071 *mode = (camera_attr_theater_mode_e)get_mode;
2073 LOGD("ret : 0x%x", ret);
2077 int camera_attr_foreach_supported_theater_mode(camera_h camera, camera_attr_supported_theater_mode_cb foreach_cb, void *user_data)
2079 if (camera == NULL || foreach_cb == NULL) {
2080 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2081 return CAMERA_ERROR_INVALID_PARAMETER;
2083 int ret = CAMERA_ERROR_NONE;
2085 camera_cli_s *pc = (camera_cli_s *)camera;
2086 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_THEATER_MODE;
2088 LOGD("Enter, handle :%x", pc->remote_handle);
2091 if (pc->cb_info == NULL) {
2092 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2093 return CAMERA_ERROR_INVALID_PARAMETER;
2095 sock_fd = pc->cb_info->fd;
2096 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE] = foreach_cb;
2097 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_THEATER_MODE] = user_data;
2099 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2101 LOGD("Finish, return :%x", ret);
2106 int camera_attr_set_preview_fps(camera_h camera, camera_attr_fps_e fps)
2108 if( camera == NULL){
2109 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2110 return CAMERA_ERROR_INVALID_PARAMETER;
2112 int ret = CAMERA_ERROR_NONE;
2113 camera_cli_s *pc = (camera_cli_s *)camera;
2114 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_PREVIEW_FPS;
2116 if (pc->cb_info == NULL) {
2117 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2118 return CAMERA_ERROR_INVALID_PARAMETER;
2120 sock_fd = pc->cb_info->fd;
2121 int set_fps = (int)fps;
2122 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2123 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_fps);
2124 LOGD("ret : 0x%x", ret);
2129 int camera_attr_set_image_quality(camera_h camera, int quality)
2131 if( camera == NULL){
2132 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2133 return CAMERA_ERROR_INVALID_PARAMETER;
2135 int ret = CAMERA_ERROR_NONE;
2137 camera_cli_s *pc = (camera_cli_s *)camera;
2138 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_IMAGE_QUALITY;
2140 if (pc->cb_info == NULL) {
2141 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2142 return CAMERA_ERROR_INVALID_PARAMETER;
2144 sock_fd = pc->cb_info->fd;
2145 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2146 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, quality);
2147 LOGD("ret : 0x%x", ret);
2151 int camera_attr_get_preview_fps(camera_h camera, camera_attr_fps_e *fps)
2153 if( camera == NULL || fps == NULL){
2154 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2155 return CAMERA_ERROR_INVALID_PARAMETER;
2157 int ret = CAMERA_ERROR_NONE;
2159 camera_cli_s *pc = (camera_cli_s *)camera;
2160 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_PREVIEW_FPS;
2163 if (pc->cb_info == NULL) {
2164 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2165 return CAMERA_ERROR_INVALID_PARAMETER;
2167 sock_fd = pc->cb_info->fd;
2169 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2170 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2172 if (ret == CAMERA_ERROR_NONE) {
2173 muse_camera_msg_get(get_fps, pc->cb_info->recvMsg);
2174 *fps = (camera_attr_fps_e)get_fps;
2176 LOGD("ret : 0x%x", ret);
2181 int camera_attr_get_image_quality(camera_h camera, int *quality)
2183 if( camera == NULL || quality == NULL){
2184 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2185 return CAMERA_ERROR_INVALID_PARAMETER;
2187 int ret = CAMERA_ERROR_NONE;
2189 camera_cli_s *pc = (camera_cli_s *)camera;
2190 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_IMAGE_QUALITY;
2192 if (pc->cb_info == NULL) {
2193 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2194 return CAMERA_ERROR_INVALID_PARAMETER;
2196 sock_fd = pc->cb_info->fd;
2198 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2199 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2201 if (ret == CAMERA_ERROR_NONE) {
2202 muse_camera_msg_get(get_quality, pc->cb_info->recvMsg);
2203 *quality = get_quality;
2205 LOGD("ret : 0x%x", ret);
2210 int camera_attr_set_zoom(camera_h camera, int zoom)
2212 if( camera == NULL){
2213 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2214 return CAMERA_ERROR_INVALID_PARAMETER;
2216 int ret = CAMERA_ERROR_NONE;
2218 camera_cli_s *pc = (camera_cli_s *)camera;
2219 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_ZOOM;
2221 if (pc->cb_info == NULL) {
2222 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2223 return CAMERA_ERROR_INVALID_PARAMETER;
2225 sock_fd = pc->cb_info->fd;
2227 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2228 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, zoom);
2229 LOGD("ret : 0x%x", ret);
2233 int camera_attr_set_af_mode(camera_h camera, camera_attr_af_mode_e mode)
2235 if( camera == NULL){
2236 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2237 return CAMERA_ERROR_INVALID_PARAMETER;
2239 int ret = CAMERA_ERROR_NONE;
2241 camera_cli_s *pc = (camera_cli_s *)camera;
2242 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_AF_MODE;
2244 if (pc->cb_info == NULL) {
2245 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2246 return CAMERA_ERROR_INVALID_PARAMETER;
2248 sock_fd = pc->cb_info->fd;
2249 int set_mode = (int)mode;
2250 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2251 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2252 LOGD("ret : 0x%x", ret);
2256 int camera_attr_set_af_area(camera_h camera, int x, int y)
2258 if( camera == NULL){
2259 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2260 return CAMERA_ERROR_INVALID_PARAMETER;
2262 int ret = CAMERA_ERROR_NONE;
2263 camera_cli_s *pc = (camera_cli_s *)camera;
2264 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_AF_AREA;
2265 int sock_fd = pc->cb_info->fd;
2266 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2267 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, x, INT, y);
2268 LOGD("ret : 0x%x", ret);
2273 int camera_attr_clear_af_area(camera_h camera)
2275 if( camera == NULL){
2276 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
2277 return CAMERA_ERROR_INVALID_PARAMETER;
2279 int ret = CAMERA_ERROR_NONE;
2281 camera_cli_s *pc = (camera_cli_s *)camera;
2282 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_CLEAR_AF_AREA;
2284 if (pc->cb_info == NULL) {
2285 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2286 return CAMERA_ERROR_INVALID_PARAMETER;
2288 sock_fd = pc->cb_info->fd;
2289 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2290 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2291 LOGD("ret : 0x%x", ret);
2296 int camera_attr_set_exposure_mode(camera_h camera, camera_attr_exposure_mode_e mode)
2298 if( camera == NULL){
2299 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2300 return CAMERA_ERROR_INVALID_PARAMETER;
2303 if (mode < CAMERA_ATTR_EXPOSURE_MODE_OFF || mode > CAMERA_ATTR_EXPOSURE_MODE_CUSTOM) {
2304 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_NOT_SUPPORTED);
2305 return CAMERA_ERROR_NOT_SUPPORTED;
2308 int ret = CAMERA_ERROR_NONE;
2309 camera_cli_s *pc = (camera_cli_s *)camera;
2310 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EXPOSURE_MODE;
2311 int set_mode = (int)mode;
2313 if (pc->cb_info == NULL) {
2314 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2315 return CAMERA_ERROR_INVALID_PARAMETER;
2317 sock_fd = pc->cb_info->fd;
2318 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2319 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2320 LOGD("ret : 0x%x", ret);
2325 int camera_attr_set_exposure(camera_h camera, int value)
2327 if( camera == NULL){
2328 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2329 return CAMERA_ERROR_INVALID_PARAMETER;
2331 int ret = CAMERA_ERROR_NONE;
2333 camera_cli_s *pc = (camera_cli_s *)camera;
2334 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EXPOSURE;
2336 if (pc->cb_info == NULL) {
2337 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2338 return CAMERA_ERROR_INVALID_PARAMETER;
2340 sock_fd = pc->cb_info->fd;
2342 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2343 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, value);
2344 LOGD("ret : 0x%x", ret);
2349 int camera_attr_set_iso(camera_h camera, camera_attr_iso_e iso)
2351 if( camera == NULL){
2352 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2353 return CAMERA_ERROR_INVALID_PARAMETER;
2355 int ret = CAMERA_ERROR_NONE;
2357 camera_cli_s *pc = (camera_cli_s *)camera;
2358 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_ISO;
2360 if (pc->cb_info == NULL) {
2361 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2362 return CAMERA_ERROR_INVALID_PARAMETER;
2364 sock_fd = pc->cb_info->fd;
2365 int set_iso = (int)iso;
2366 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2367 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_iso);
2368 LOGD("ret : 0x%x", ret);
2373 int camera_attr_set_brightness(camera_h camera, int level)
2375 if( camera == NULL){
2376 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2377 return CAMERA_ERROR_INVALID_PARAMETER;
2379 int ret = CAMERA_ERROR_NONE;
2381 camera_cli_s *pc = (camera_cli_s *)camera;
2382 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_BRIGHTNESS;
2384 if (pc->cb_info == NULL) {
2385 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2386 return CAMERA_ERROR_INVALID_PARAMETER;
2388 sock_fd = pc->cb_info->fd;
2390 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2391 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, level);
2392 LOGD("ret : 0x%x", ret);
2397 int camera_attr_set_contrast(camera_h camera, int level)
2399 if( camera == NULL){
2400 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2401 return CAMERA_ERROR_INVALID_PARAMETER;
2403 int ret = CAMERA_ERROR_NONE;
2405 camera_cli_s *pc = (camera_cli_s *)camera;
2406 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_CONTRAST;
2408 if (pc->cb_info == NULL) {
2409 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2410 return CAMERA_ERROR_INVALID_PARAMETER;
2412 sock_fd = pc->cb_info->fd;
2414 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2415 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, level);
2416 LOGD("ret : 0x%x", ret);
2421 int camera_attr_set_whitebalance(camera_h camera, camera_attr_whitebalance_e wb)
2423 if (camera == NULL) {
2424 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2425 return CAMERA_ERROR_INVALID_PARAMETER;
2428 if (wb < CAMERA_ATTR_WHITE_BALANCE_NONE || wb > CAMERA_ATTR_WHITE_BALANCE_CUSTOM) {
2429 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_NOT_SUPPORTED);
2430 return CAMERA_ERROR_NOT_SUPPORTED;
2433 int ret = CAMERA_ERROR_NONE;
2435 camera_cli_s *pc = (camera_cli_s *)camera;
2436 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_WHITEBALANCE;
2438 if (pc->cb_info == NULL) {
2439 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2440 return CAMERA_ERROR_INVALID_PARAMETER;
2442 sock_fd = pc->cb_info->fd;
2443 int set_whitebalance = (int)wb;
2444 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2445 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_whitebalance);
2446 LOGD("ret : 0x%x", ret);
2451 int camera_attr_set_effect(camera_h camera, camera_attr_effect_mode_e effect)
2453 if( camera == NULL){
2454 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2455 return CAMERA_ERROR_INVALID_PARAMETER;
2457 int ret = CAMERA_ERROR_NONE;
2459 camera_cli_s *pc = (camera_cli_s *)camera;
2460 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_EFFECT;
2462 if (pc->cb_info == NULL) {
2463 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2464 return CAMERA_ERROR_INVALID_PARAMETER;
2466 sock_fd = pc->cb_info->fd;
2467 int set_effect = (int)effect;
2468 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2469 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_effect);
2470 LOGD("ret : 0x%x", ret);
2475 int camera_attr_set_scene_mode(camera_h camera, camera_attr_scene_mode_e mode)
2477 if( camera == NULL){
2478 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2479 return CAMERA_ERROR_INVALID_PARAMETER;
2481 int ret = CAMERA_ERROR_NONE;
2483 camera_cli_s *pc = (camera_cli_s *)camera;
2484 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_SCENE_MODE;
2486 if (pc->cb_info == NULL) {
2487 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2488 return CAMERA_ERROR_INVALID_PARAMETER;
2490 sock_fd = pc->cb_info->fd;
2491 int set_mode = (int)mode;
2492 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2493 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2494 LOGD("ret : 0x%x", ret);
2499 int camera_attr_enable_tag(camera_h camera, bool enable)
2501 if( camera == NULL){
2502 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2503 return CAMERA_ERROR_INVALID_PARAMETER;
2505 int ret = CAMERA_ERROR_NONE;
2506 camera_cli_s *pc = (camera_cli_s *)camera;
2507 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_TAG;
2509 if (pc->cb_info == NULL) {
2510 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2511 return CAMERA_ERROR_INVALID_PARAMETER;
2513 sock_fd = pc->cb_info->fd;
2514 int set_enable = (int)enable;
2516 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2517 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
2518 LOGD("ret : 0x%x", ret);
2523 int camera_attr_set_tag_image_description(camera_h camera, const char *description)
2525 if( camera == NULL){
2526 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2527 return CAMERA_ERROR_INVALID_PARAMETER;
2529 if( description == NULL){
2530 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2531 return CAMERA_ERROR_INVALID_PARAMETER;
2533 int ret = CAMERA_ERROR_NONE;
2534 camera_cli_s *pc = (camera_cli_s *)camera;
2535 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_TAG_IMAGE_DESCRIPTION;
2537 if (pc->cb_info == NULL) {
2538 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2539 return CAMERA_ERROR_INVALID_PARAMETER;
2541 sock_fd = pc->cb_info->fd;
2542 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2543 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, STRING, description);
2544 LOGD("ret : 0x%x", ret);
2549 int camera_attr_set_tag_orientation(camera_h camera, camera_attr_tag_orientation_e orientation)
2551 if( camera == NULL){
2552 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2553 return CAMERA_ERROR_INVALID_PARAMETER;
2555 int ret = CAMERA_ERROR_NONE;
2556 camera_cli_s *pc = (camera_cli_s *)camera;
2557 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_TAG_ORIENTATION;
2559 if (pc->cb_info == NULL) {
2560 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2561 return CAMERA_ERROR_INVALID_PARAMETER;
2563 sock_fd = pc->cb_info->fd;
2564 int set_orientation = (int)orientation;
2566 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2567 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_orientation);
2568 LOGD("ret : 0x%x", ret);
2573 int camera_attr_set_tag_software(camera_h camera, const char *software)
2575 if( camera == NULL){
2576 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2577 return CAMERA_ERROR_INVALID_PARAMETER;
2579 if( software == NULL){
2580 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2581 return CAMERA_ERROR_INVALID_PARAMETER;
2583 int ret = CAMERA_ERROR_NONE;
2584 camera_cli_s *pc = (camera_cli_s *)camera;
2585 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_TAG_SOFTWARE;
2587 if (pc->cb_info == NULL) {
2588 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2589 return CAMERA_ERROR_INVALID_PARAMETER;
2591 sock_fd = pc->cb_info->fd;
2592 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2593 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, STRING, software);
2594 LOGD("ret : 0x%x", ret);
2599 int camera_attr_set_geotag(camera_h camera, double latitude , double longitude, double altitude)
2601 if( camera == NULL){
2602 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2603 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_SET_GEOTAG;
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;
2614 double set_geotag[3] = { latitude, longitude, altitude };
2616 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2617 muse_camera_msg_send_array(api, sock_fd, pc->cb_info, ret,
2618 set_geotag, sizeof(set_geotag), sizeof(double));
2619 LOGD("ret : 0x%x", ret);
2624 int camera_attr_remove_geotag(camera_h camera)
2626 if( camera == NULL){
2627 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2628 return CAMERA_ERROR_INVALID_PARAMETER;
2630 int ret = CAMERA_ERROR_NONE;
2631 camera_cli_s *pc = (camera_cli_s *)camera;
2632 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_REMOVE_GEOTAG;
2634 if (pc->cb_info == NULL) {
2635 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2636 return CAMERA_ERROR_INVALID_PARAMETER;
2638 sock_fd = pc->cb_info->fd;
2639 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2640 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2641 LOGD("ret : 0x%x", ret);
2646 int camera_attr_set_flash_mode(camera_h camera, camera_attr_flash_mode_e mode)
2648 if( camera == NULL){
2649 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2650 return CAMERA_ERROR_INVALID_PARAMETER;
2652 int ret = CAMERA_ERROR_NONE;
2653 camera_cli_s *pc = (camera_cli_s *)camera;
2654 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_FLASH_MODE;
2656 if (pc->cb_info == NULL) {
2657 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2658 return CAMERA_ERROR_INVALID_PARAMETER;
2660 sock_fd = pc->cb_info->fd;
2661 int set_mode = (int)mode;
2663 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2664 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
2665 LOGD("ret : 0x%x", ret);
2670 int camera_attr_get_zoom(camera_h camera, int *zoom)
2672 if( camera == NULL || zoom == NULL){
2673 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2674 return CAMERA_ERROR_INVALID_PARAMETER;
2676 int ret = CAMERA_ERROR_NONE;
2678 camera_cli_s *pc = (camera_cli_s *)camera;
2679 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_ZOOM;
2682 if (pc->cb_info == NULL) {
2683 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2684 return CAMERA_ERROR_INVALID_PARAMETER;
2686 sock_fd = pc->cb_info->fd;
2688 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2689 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2691 if (ret == CAMERA_ERROR_NONE) {
2692 muse_camera_msg_get(get_zoom, pc->cb_info->recvMsg);
2695 LOGD("ret : 0x%x", ret);
2700 int camera_attr_get_zoom_range(camera_h camera, int *min, int *max)
2702 if( camera == NULL || min == NULL || max == NULL ){
2703 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2704 return CAMERA_ERROR_INVALID_PARAMETER;
2706 int ret = CAMERA_ERROR_NONE;
2707 camera_cli_s *pc = (camera_cli_s *)camera;
2709 if (pc->cb_info == NULL) {
2710 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2711 return CAMERA_ERROR_INVALID_PARAMETER;
2713 sock_fd = pc->cb_info->fd;
2714 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_ZOOM_RANGE;
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_min, pc->cb_info->recvMsg);
2723 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
2727 LOGD("ret : 0x%x", ret);
2732 int camera_attr_get_af_mode( camera_h camera, camera_attr_af_mode_e *mode)
2734 if( camera == NULL || mode == NULL){
2735 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2736 return CAMERA_ERROR_INVALID_PARAMETER;
2738 int ret = CAMERA_ERROR_NONE;
2739 camera_cli_s *pc = (camera_cli_s *)camera;
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;
2746 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_AF_MODE;
2749 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2750 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2752 if (ret == CAMERA_ERROR_NONE) {
2753 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
2754 *mode = (camera_attr_af_mode_e)get_mode;
2756 LOGD("ret : 0x%x", ret);
2761 int camera_attr_get_exposure_mode( camera_h camera, camera_attr_exposure_mode_e *mode)
2763 if( camera == NULL|| mode == NULL){
2764 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2765 return CAMERA_ERROR_INVALID_PARAMETER;
2767 int ret = CAMERA_ERROR_NONE;
2768 camera_cli_s *pc = (camera_cli_s *)camera;
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;
2775 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EXPOSURE_MODE;
2778 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2779 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2781 if (ret == CAMERA_ERROR_NONE) {
2782 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
2783 *mode = (camera_attr_exposure_mode_e)get_mode;
2785 LOGD("ret : 0x%x", ret);
2789 int camera_attr_get_exposure(camera_h camera, int *value)
2791 if( camera == NULL || value == NULL){
2792 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2793 return CAMERA_ERROR_INVALID_PARAMETER;
2795 int ret = CAMERA_ERROR_NONE;
2796 camera_cli_s *pc = (camera_cli_s *)camera;
2798 if (pc->cb_info == NULL) {
2799 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2800 return CAMERA_ERROR_INVALID_PARAMETER;
2802 sock_fd = pc->cb_info->fd;
2803 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EXPOSURE;
2806 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2807 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2809 if (ret == CAMERA_ERROR_NONE) {
2810 muse_camera_msg_get(get_value, pc->cb_info->recvMsg);
2813 LOGD("ret : 0x%x", ret);
2818 int camera_attr_get_exposure_range(camera_h camera, int *min, int *max)
2820 if( camera == NULL || min == NULL || max == NULL ){
2821 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2822 return CAMERA_ERROR_INVALID_PARAMETER;
2824 int ret = CAMERA_ERROR_NONE;
2825 camera_cli_s *pc = (camera_cli_s *)camera;
2827 if (pc->cb_info == NULL) {
2828 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2829 return CAMERA_ERROR_INVALID_PARAMETER;
2831 sock_fd = pc->cb_info->fd;
2832 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EXPOSURE_RANGE;
2836 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2837 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2839 if (ret == CAMERA_ERROR_NONE) {
2840 muse_camera_msg_get(get_min, pc->cb_info->recvMsg);
2841 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
2845 LOGD("ret : 0x%x", ret);
2850 int camera_attr_get_iso( camera_h camera, camera_attr_iso_e *iso)
2852 if( camera == NULL || iso == NULL){
2853 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2854 return CAMERA_ERROR_INVALID_PARAMETER;
2856 int ret = CAMERA_ERROR_NONE;
2857 camera_cli_s *pc = (camera_cli_s *)camera;
2859 if (pc->cb_info == NULL) {
2860 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2861 return CAMERA_ERROR_INVALID_PARAMETER;
2863 sock_fd = pc->cb_info->fd;
2864 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_ISO;
2867 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2868 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2870 if (ret == CAMERA_ERROR_NONE) {
2871 muse_camera_msg_get(get_iso, pc->cb_info->recvMsg);
2872 *iso = (camera_attr_iso_e)get_iso;
2874 LOGD("ret : 0x%x", ret);
2879 int camera_attr_get_brightness(camera_h camera, int *level)
2881 if( camera == NULL || level == NULL){
2882 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2883 return CAMERA_ERROR_INVALID_PARAMETER;
2885 int ret = CAMERA_ERROR_NONE;
2886 camera_cli_s *pc = (camera_cli_s *)camera;
2888 if (pc->cb_info == NULL) {
2889 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2890 return CAMERA_ERROR_INVALID_PARAMETER;
2892 sock_fd = pc->cb_info->fd;
2893 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS;
2896 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2897 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2899 if (ret == CAMERA_ERROR_NONE) {
2900 muse_camera_msg_get(get_level, pc->cb_info->recvMsg);
2903 LOGD("ret : 0x%x", ret);
2908 int camera_attr_get_brightness_range(camera_h camera, int *min, int *max)
2910 if( camera == NULL || min == NULL || max == NULL ){
2911 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2912 return CAMERA_ERROR_INVALID_PARAMETER;
2914 int ret = CAMERA_ERROR_NONE;
2915 camera_cli_s *pc = (camera_cli_s *)camera;
2917 if (pc->cb_info == NULL) {
2918 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2919 return CAMERA_ERROR_INVALID_PARAMETER;
2921 sock_fd = pc->cb_info->fd;
2922 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS_RANGE;
2926 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2927 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2929 if (ret == CAMERA_ERROR_NONE) {
2930 muse_camera_msg_get(get_min, pc->cb_info->recvMsg);
2931 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
2935 LOGD("ret : 0x%x", ret);
2940 int camera_attr_get_contrast(camera_h camera, int *level)
2942 if( camera == NULL || level == NULL){
2943 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2944 return CAMERA_ERROR_INVALID_PARAMETER;
2946 int ret = CAMERA_ERROR_NONE;
2947 camera_cli_s *pc = (camera_cli_s *)camera;
2948 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_CONTRAST;
2950 if (pc->cb_info == NULL) {
2951 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2952 return CAMERA_ERROR_INVALID_PARAMETER;
2954 sock_fd = pc->cb_info->fd;
2957 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2958 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2960 if (ret == CAMERA_ERROR_NONE) {
2961 muse_camera_msg_get(get_level, pc->cb_info->recvMsg);
2964 LOGD("ret : 0x%x", ret);
2969 int camera_attr_get_contrast_range(camera_h camera, int *min , int *max)
2971 if( camera == NULL || min == NULL || max == NULL ){
2972 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2973 return CAMERA_ERROR_INVALID_PARAMETER;
2975 int ret = CAMERA_ERROR_NONE;
2976 camera_cli_s *pc = (camera_cli_s *)camera;
2977 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_CONTRAST_RANGE;
2979 if (pc->cb_info == NULL) {
2980 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
2981 return CAMERA_ERROR_INVALID_PARAMETER;
2983 sock_fd = pc->cb_info->fd;
2987 LOGD("Enter, remote_handle : %x", pc->remote_handle);
2988 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
2990 if (ret == CAMERA_ERROR_NONE) {
2991 muse_camera_msg_get(get_min, pc->cb_info->recvMsg);
2992 muse_camera_msg_get(get_max, pc->cb_info->recvMsg);
2996 LOGD("ret : 0x%x", ret);
3001 int camera_attr_get_whitebalance(camera_h camera, camera_attr_whitebalance_e *wb)
3003 if( camera == NULL || wb == NULL){
3004 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3005 return CAMERA_ERROR_INVALID_PARAMETER;
3007 int ret = CAMERA_ERROR_NONE;
3008 camera_cli_s *pc = (camera_cli_s *)camera;
3009 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_WHITEBALANCE;
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;
3018 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3019 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3021 if (ret == CAMERA_ERROR_NONE) {
3022 muse_camera_msg_get(get_wb, pc->cb_info->recvMsg);
3023 *wb = (camera_attr_whitebalance_e)get_wb;
3025 LOGD("ret : 0x%x", ret);
3030 int camera_attr_get_effect(camera_h camera, camera_attr_effect_mode_e *effect)
3032 if( camera == NULL || effect == NULL ){
3033 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3034 return CAMERA_ERROR_INVALID_PARAMETER;
3037 int ret = CAMERA_ERROR_NONE;
3038 camera_cli_s *pc = (camera_cli_s *)camera;
3039 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_EFFECT;
3041 if (pc->cb_info == NULL) {
3042 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3043 return CAMERA_ERROR_INVALID_PARAMETER;
3045 sock_fd = pc->cb_info->fd;
3048 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3049 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3051 if (ret == CAMERA_ERROR_NONE) {
3052 muse_camera_msg_get(get_effect, pc->cb_info->recvMsg);
3053 *effect = (camera_attr_effect_mode_e)get_effect;
3055 LOGD("ret : 0x%x", ret);
3060 int camera_attr_get_scene_mode(camera_h camera, camera_attr_scene_mode_e *mode)
3062 if( camera == NULL || mode == NULL){
3063 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3064 return CAMERA_ERROR_INVALID_PARAMETER;
3067 int ret = CAMERA_ERROR_NONE;
3068 camera_cli_s *pc = (camera_cli_s *)camera;
3069 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_SCENE_MODE;
3071 if (pc->cb_info == NULL) {
3072 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3073 return CAMERA_ERROR_INVALID_PARAMETER;
3075 sock_fd = pc->cb_info->fd;
3078 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3079 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3081 if (ret == CAMERA_ERROR_NONE) {
3082 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
3083 *mode = (camera_attr_scene_mode_e)get_mode;
3085 LOGD("ret : 0x%x", ret);
3090 int camera_attr_is_enabled_tag(camera_h camera, bool *enable)
3092 if( camera == NULL || enable == NULL){
3093 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3094 return CAMERA_ERROR_INVALID_PARAMETER;
3097 int ret = CAMERA_ERROR_NONE;
3098 camera_cli_s *pc = (camera_cli_s *)camera;
3099 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_TAG;
3101 if (pc->cb_info == NULL) {
3102 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3103 return CAMERA_ERROR_INVALID_PARAMETER;
3105 sock_fd = pc->cb_info->fd;
3108 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3109 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3111 if (ret == CAMERA_ERROR_NONE) {
3112 muse_camera_msg_get(get_enable, pc->cb_info->recvMsg);
3113 *enable = (bool)get_enable;
3115 LOGD("ret : 0x%x", ret);
3120 int camera_attr_get_tag_image_description(camera_h camera, char **description)
3122 if( camera == NULL || description == NULL){
3123 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3124 return CAMERA_ERROR_INVALID_PARAMETER;
3127 int ret = CAMERA_ERROR_NONE;
3128 camera_cli_s *pc = (camera_cli_s *)camera;
3129 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_TAG_IMAGE_DESCRIPTION;
3131 if (pc->cb_info == NULL) {
3132 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3133 return CAMERA_ERROR_INVALID_PARAMETER;
3135 sock_fd = pc->cb_info->fd;
3136 char get_description[MUSE_CAMERA_MSG_MAX_LENGTH] = {0,};
3138 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3139 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3141 if (ret == CAMERA_ERROR_NONE) {
3142 muse_camera_msg_get_string(get_description, pc->cb_info->recvMsg);
3143 *description = strdup(get_description);
3145 LOGD("ret : 0x%x", ret);
3150 int camera_attr_get_tag_orientation(camera_h camera, camera_attr_tag_orientation_e *orientation)
3152 if( camera == NULL || orientation == NULL){
3153 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3154 return CAMERA_ERROR_INVALID_PARAMETER;
3157 int ret = CAMERA_ERROR_NONE;
3158 camera_cli_s *pc = (camera_cli_s *)camera;
3159 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_TAG_ORIENTATION;
3161 if (pc->cb_info == NULL) {
3162 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3163 return CAMERA_ERROR_INVALID_PARAMETER;
3165 sock_fd = pc->cb_info->fd;
3166 int get_orientation;
3168 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3169 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3171 if (ret == CAMERA_ERROR_NONE) {
3172 muse_camera_msg_get(get_orientation, pc->cb_info->recvMsg);
3173 *orientation = (camera_attr_tag_orientation_e)get_orientation;
3174 LOGD("success, orientation : %d", *orientation);
3176 LOGD("ret : 0x%x", ret);
3181 int camera_attr_get_tag_software(camera_h camera, char **software)
3183 if( camera == NULL || software == NULL ){
3184 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3185 return CAMERA_ERROR_INVALID_PARAMETER;
3188 int ret = CAMERA_ERROR_NONE;
3189 camera_cli_s *pc = (camera_cli_s *)camera;
3190 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_TAG_SOFTWARE;
3192 if (pc->cb_info == NULL) {
3193 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3194 return CAMERA_ERROR_INVALID_PARAMETER;
3196 sock_fd = pc->cb_info->fd;
3197 char get_software[MUSE_CAMERA_MSG_MAX_LENGTH] = {0,};
3199 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3200 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3202 if (ret == CAMERA_ERROR_NONE) {
3203 muse_camera_msg_get_string(get_software, pc->cb_info->recvMsg);
3204 *software = strdup(get_software);
3206 LOGD("ret : 0x%x", ret);
3211 int camera_attr_get_geotag(camera_h camera, double *latitude , double *longitude, double *altitude)
3213 if( camera == NULL || latitude == NULL || longitude == NULL || altitude == NULL){
3214 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3215 return CAMERA_ERROR_INVALID_PARAMETER;
3218 int ret = CAMERA_ERROR_NONE;
3219 camera_cli_s *pc = (camera_cli_s *)camera;
3220 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_GEOTAG;
3221 double get_geotag[3] = {0,};
3223 if (pc->cb_info == NULL) {
3224 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3225 return CAMERA_ERROR_INVALID_PARAMETER;
3227 sock_fd = pc->cb_info->fd;
3229 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3230 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3232 if (ret == CAMERA_ERROR_NONE) {
3233 muse_camera_msg_get_array(get_geotag, pc->cb_info->recvMsg);
3234 *latitude = get_geotag[0];
3235 *longitude = get_geotag[1];
3236 *altitude = get_geotag[2];
3238 LOGE("Returned value is not valid : 0x%x", valid);
3243 LOGD("ret : 0x%x", ret);
3248 int camera_attr_get_flash_mode(camera_h camera, camera_attr_flash_mode_e *mode)
3250 if( camera == NULL || mode == NULL){
3251 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3252 return CAMERA_ERROR_INVALID_PARAMETER;
3255 int ret = CAMERA_ERROR_NONE;
3256 camera_cli_s *pc = (camera_cli_s *)camera;
3257 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_FLASH_MODE;
3259 if (pc->cb_info == NULL) {
3260 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3261 return CAMERA_ERROR_INVALID_PARAMETER;
3263 sock_fd = pc->cb_info->fd;
3266 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3267 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3269 if (ret == CAMERA_ERROR_NONE) {
3270 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
3271 *mode = (camera_attr_flash_mode_e)get_mode;
3273 LOGD("ret : 0x%x", ret);
3278 int camera_attr_foreach_supported_af_mode( camera_h camera, camera_attr_supported_af_mode_cb foreach_cb , void *user_data)
3280 if( camera == NULL || foreach_cb == NULL){
3281 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3282 return CAMERA_ERROR_INVALID_PARAMETER;
3284 int ret = CAMERA_ERROR_NONE;
3286 camera_cli_s *pc = (camera_cli_s *)camera;
3287 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_AF_MODE;
3289 LOGD("Enter, handle :%x", pc->remote_handle);
3292 if (pc->cb_info == NULL) {
3293 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3294 return CAMERA_ERROR_INVALID_PARAMETER;
3296 sock_fd = pc->cb_info->fd;
3297 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE] = foreach_cb;
3298 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_AF_MODE] = user_data;
3300 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3301 LOGD("ret : 0x%x", ret);
3306 int camera_attr_foreach_supported_exposure_mode(camera_h camera, camera_attr_supported_exposure_mode_cb foreach_cb , void *user_data)
3308 if( camera == NULL || foreach_cb == NULL){
3309 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3310 return CAMERA_ERROR_INVALID_PARAMETER;
3312 int ret = CAMERA_ERROR_NONE;
3314 camera_cli_s *pc = (camera_cli_s *)camera;
3315 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EXPOSURE_MODE;
3317 LOGD("Enter, handle :%x", pc->remote_handle);
3320 if (pc->cb_info == NULL) {
3321 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3322 return CAMERA_ERROR_INVALID_PARAMETER;
3324 sock_fd = pc->cb_info->fd;
3325 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE] = foreach_cb;
3326 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EXPOSURE_MODE] = user_data;
3328 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3329 LOGD("ret : 0x%x", ret);
3334 int camera_attr_foreach_supported_iso( camera_h camera, camera_attr_supported_iso_cb foreach_cb , void *user_data)
3336 if( camera == NULL || foreach_cb == NULL){
3337 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3338 return CAMERA_ERROR_INVALID_PARAMETER;
3340 int ret = CAMERA_ERROR_NONE;
3342 camera_cli_s *pc = (camera_cli_s *)camera;
3343 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_ISO;
3345 LOGD("Enter, handle :%x", pc->remote_handle);
3348 if (pc->cb_info == NULL) {
3349 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3350 return CAMERA_ERROR_INVALID_PARAMETER;
3352 sock_fd = pc->cb_info->fd;
3353 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO] = foreach_cb;
3354 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_ISO] = user_data;
3356 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3357 LOGD("ret : 0x%x", ret);
3362 int camera_attr_foreach_supported_whitebalance(camera_h camera, camera_attr_supported_whitebalance_cb foreach_cb , void *user_data)
3364 if( camera == NULL || foreach_cb == NULL){
3365 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3366 return CAMERA_ERROR_INVALID_PARAMETER;
3368 int ret = CAMERA_ERROR_NONE;
3370 camera_cli_s *pc = (camera_cli_s *)camera;
3371 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_WHITEBALANCE;
3373 LOGD("Enter, handle :%x", pc->remote_handle);
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 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE] = foreach_cb;
3382 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_WHITEBALANCE] = user_data;
3384 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3385 LOGD("ret : 0x%x", ret);
3390 int camera_attr_foreach_supported_effect(camera_h camera, camera_attr_supported_effect_cb foreach_cb , void *user_data)
3392 if( camera == NULL || foreach_cb == NULL){
3393 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3394 return CAMERA_ERROR_INVALID_PARAMETER;
3396 int ret = CAMERA_ERROR_NONE;
3398 camera_cli_s *pc = (camera_cli_s *)camera;
3399 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EFFECT;
3401 LOGD("Enter, handle :%x", pc->remote_handle);
3404 if (pc->cb_info == NULL) {
3405 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3406 return CAMERA_ERROR_INVALID_PARAMETER;
3408 sock_fd = pc->cb_info->fd;
3409 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT] = foreach_cb;
3410 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_EFFECT] = user_data;
3412 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3413 LOGD("ret : 0x%x", ret);
3418 int camera_attr_foreach_supported_scene_mode(camera_h camera, camera_attr_supported_scene_mode_cb foreach_cb , void *user_data)
3420 if( camera == NULL || foreach_cb == NULL){
3421 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3422 return CAMERA_ERROR_INVALID_PARAMETER;
3424 int ret = CAMERA_ERROR_NONE;
3426 camera_cli_s *pc = (camera_cli_s *)camera;
3427 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_SCENE_MODE;
3429 LOGD("Enter, handle :%x", pc->remote_handle);
3432 if (pc->cb_info == NULL) {
3433 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3434 return CAMERA_ERROR_INVALID_PARAMETER;
3436 sock_fd = pc->cb_info->fd;
3437 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE] = foreach_cb;
3438 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_SCENE_MODE] = user_data;
3440 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3441 LOGD("ret : 0x%x", ret);
3446 int camera_attr_foreach_supported_flash_mode(camera_h camera, camera_attr_supported_flash_mode_cb foreach_cb , void *user_data)
3448 if( camera == NULL || foreach_cb == NULL){
3449 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3450 return CAMERA_ERROR_INVALID_PARAMETER;
3452 int ret = CAMERA_ERROR_NONE;
3454 camera_cli_s *pc = (camera_cli_s *)camera;
3455 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FLASH_MODE;
3457 LOGD("Enter, handle :%x", pc->remote_handle);
3460 if (pc->cb_info == NULL) {
3461 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3462 return CAMERA_ERROR_INVALID_PARAMETER;
3464 sock_fd = pc->cb_info->fd;
3465 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE] = foreach_cb;
3466 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FLASH_MODE] = user_data;
3468 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3469 LOGD("ret : 0x%x", ret);
3474 int camera_attr_foreach_supported_fps(camera_h camera, camera_attr_supported_fps_cb foreach_cb , void *user_data)
3476 if( camera == NULL || foreach_cb == NULL){
3477 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3478 return CAMERA_ERROR_INVALID_PARAMETER;
3480 int ret = CAMERA_ERROR_NONE;
3482 camera_cli_s *pc = (camera_cli_s *)camera;
3483 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS;
3485 if (pc->cb_info == NULL) {
3486 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3487 return CAMERA_ERROR_INVALID_PARAMETER;
3489 sock_fd = pc->cb_info->fd;
3490 LOGD("Enter, handle :%x", pc->remote_handle);
3491 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS] = foreach_cb;
3492 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS] = user_data;
3494 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3495 LOGD("Enter, handle :%x", pc->remote_handle);
3499 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)
3501 if( camera == NULL || foreach_cb == NULL){
3502 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3503 return CAMERA_ERROR_INVALID_PARAMETER;
3505 int ret = CAMERA_ERROR_NONE;
3507 camera_cli_s *pc = (camera_cli_s *)camera;
3508 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS_BY_RESOLUTION;
3510 if (pc->cb_info == NULL) {
3511 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3512 return CAMERA_ERROR_INVALID_PARAMETER;
3514 sock_fd = pc->cb_info->fd;
3515 LOGD("Enter, handle :%x", pc->remote_handle);
3516 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION] = foreach_cb;
3517 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_FPS_BY_RESOLUTION] = user_data;
3519 muse_camera_msg_send2(api, sock_fd, pc->cb_info, ret, INT, width, INT, height);
3520 LOGD("ret : 0x%x", ret);
3524 int camera_attr_foreach_supported_stream_flip(camera_h camera, camera_attr_supported_stream_flip_cb foreach_cb, void *user_data)
3526 if( camera == NULL || foreach_cb == NULL){
3527 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3528 return CAMERA_ERROR_INVALID_PARAMETER;
3530 int ret = CAMERA_ERROR_NONE;
3532 camera_cli_s *pc = (camera_cli_s *)camera;
3533 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_FLIP;
3535 if (pc->cb_info == NULL) {
3536 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3537 return CAMERA_ERROR_INVALID_PARAMETER;
3539 sock_fd = pc->cb_info->fd;
3540 LOGD("Enter, handle :%x", pc->remote_handle);
3541 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP] = foreach_cb;
3542 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_FLIP] = user_data;
3544 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3545 LOGD("ret : 0x%x", ret);
3550 int camera_attr_foreach_supported_stream_rotation(camera_h camera, camera_attr_supported_stream_rotation_cb foreach_cb, void *user_data)
3552 if( camera == NULL || foreach_cb == NULL){
3553 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3554 return CAMERA_ERROR_INVALID_PARAMETER;
3556 int ret = CAMERA_ERROR_NONE;
3558 camera_cli_s *pc = (camera_cli_s *)camera;
3559 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_ROTATION;
3561 if (pc->cb_info == NULL) {
3562 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3563 return CAMERA_ERROR_INVALID_PARAMETER;
3565 sock_fd = pc->cb_info->fd;
3566 LOGD("Enter, handle :%x", pc->remote_handle);
3567 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION] = foreach_cb;
3568 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_FOREACH_SUPPORTED_STREAM_ROTATION] = user_data;
3570 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3571 LOGD("ret : 0x%x", ret);
3576 int camera_attr_set_stream_rotation(camera_h camera , camera_rotation_e rotation)
3578 if( camera == NULL){
3579 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3580 return CAMERA_ERROR_INVALID_PARAMETER;
3583 int ret = CAMERA_ERROR_NONE;
3584 camera_cli_s *pc = (camera_cli_s *)camera;
3585 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_STREAM_ROTATION;
3587 if (pc->cb_info == NULL) {
3588 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3589 return CAMERA_ERROR_INVALID_PARAMETER;
3591 sock_fd = pc->cb_info->fd;
3592 int set_rotation = (int)rotation;
3594 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3595 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_rotation);
3596 LOGD("ret : 0x%x", ret);
3601 int camera_attr_get_stream_rotation(camera_h camera , camera_rotation_e *rotation)
3603 if( camera == NULL || rotation == NULL ){
3604 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3605 return CAMERA_ERROR_INVALID_PARAMETER;
3608 int ret = CAMERA_ERROR_NONE;
3609 camera_cli_s *pc = (camera_cli_s *)camera;
3610 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_STREAM_ROTATION;
3612 if (pc->cb_info == NULL) {
3613 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3614 return CAMERA_ERROR_INVALID_PARAMETER;
3616 sock_fd = pc->cb_info->fd;
3619 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3620 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3622 if (ret == CAMERA_ERROR_NONE) {
3623 muse_camera_msg_get(get_rotation, pc->cb_info->recvMsg);
3624 *rotation = (camera_rotation_e)get_rotation;
3626 LOGD("ret : 0x%x", ret);
3631 int camera_attr_set_stream_flip(camera_h camera , camera_flip_e flip)
3633 if( camera == NULL){
3634 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3635 return CAMERA_ERROR_INVALID_PARAMETER;
3638 int ret = CAMERA_ERROR_NONE;
3639 camera_cli_s *pc = (camera_cli_s *)camera;
3640 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_STREAM_FLIP;
3642 if (pc->cb_info == NULL) {
3643 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3644 return CAMERA_ERROR_INVALID_PARAMETER;
3646 sock_fd = pc->cb_info->fd;
3647 int set_flip = (int)flip;
3649 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3650 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_flip);
3651 LOGD("ret : 0x%x", ret);
3656 int camera_attr_get_stream_flip(camera_h camera , camera_flip_e *flip)
3658 if( camera == NULL || flip == NULL ){
3659 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3660 return CAMERA_ERROR_INVALID_PARAMETER;
3663 int ret = CAMERA_ERROR_NONE;
3664 camera_cli_s *pc = (camera_cli_s *)camera;
3665 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_STREAM_FLIP;
3667 if (pc->cb_info == NULL) {
3668 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3669 return CAMERA_ERROR_INVALID_PARAMETER;
3671 sock_fd = pc->cb_info->fd;
3674 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3675 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3677 if (ret == CAMERA_ERROR_NONE) {
3678 muse_camera_msg_get(get_flip, pc->cb_info->recvMsg);
3679 *flip = (camera_flip_e)get_flip;
3681 LOGD("ret : 0x%x", ret);
3685 int camera_attr_set_hdr_mode(camera_h camera, camera_attr_hdr_mode_e mode)
3687 if( camera == NULL){
3688 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
3689 return CAMERA_ERROR_INVALID_PARAMETER;
3692 int ret = CAMERA_ERROR_NONE;
3693 camera_cli_s *pc = (camera_cli_s *)camera;
3694 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_HDR_MODE;
3696 if (pc->cb_info == NULL) {
3697 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3698 return CAMERA_ERROR_INVALID_PARAMETER;
3700 sock_fd = pc->cb_info->fd;
3701 int set_mode = (int)mode;
3703 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3704 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_mode);
3705 LOGD("ret : 0x%x", ret);
3710 int camera_attr_get_hdr_mode(camera_h camera, camera_attr_hdr_mode_e *mode)
3712 if (camera == NULL) {
3713 LOGE("INVALID_PARAMETER(0x%08x) - handle",CAMERA_ERROR_INVALID_PARAMETER);
3714 return CAMERA_ERROR_INVALID_PARAMETER;
3717 LOGE("CAMERA_ERROR_NOT_SUPPORTED(0x%08x) - mode",CAMERA_ERROR_NOT_SUPPORTED);
3718 return CAMERA_ERROR_NOT_SUPPORTED;
3720 int ret = CAMERA_ERROR_NONE;
3721 camera_cli_s *pc = (camera_cli_s *)camera;
3722 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_GET_HDR_MODE;
3724 if (pc->cb_info == NULL) {
3725 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3726 return CAMERA_ERROR_INVALID_PARAMETER;
3728 sock_fd = pc->cb_info->fd;
3731 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3732 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3734 if (ret == CAMERA_ERROR_NONE) {
3735 muse_camera_msg_get(get_mode, pc->cb_info->recvMsg);
3736 *mode = (camera_attr_hdr_mode_e)get_mode;
3738 LOGD("ret : 0x%x", ret);
3743 bool camera_attr_is_supported_hdr_capture(camera_h camera)
3745 if( camera == NULL){
3746 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3750 int ret = CAMERA_ERROR_NONE;
3751 camera_cli_s *pc = (camera_cli_s *)camera;
3752 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_HDR_CAPTURE;
3754 if (pc->cb_info == NULL) {
3755 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3756 return CAMERA_ERROR_INVALID_PARAMETER;
3758 sock_fd = pc->cb_info->fd;
3759 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3760 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3761 LOGD("ret : 0x%x", ret);
3766 int camera_attr_set_hdr_capture_progress_cb(camera_h camera, camera_attr_hdr_progress_cb callback, void* user_data)
3768 if (camera == NULL) {
3769 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
3770 return CAMERA_ERROR_INVALID_PARAMETER;
3772 if (callback == NULL) {
3773 LOGE("CAMERA_ERROR_NOT_SUPPORTED(0x%08x) - callback", CAMERA_ERROR_NOT_SUPPORTED);
3774 return CAMERA_ERROR_NOT_SUPPORTED;
3776 int ret = CAMERA_ERROR_NONE;
3778 camera_cli_s *pc = (camera_cli_s *)camera;
3779 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_SET_HDR_CAPTURE_PROGRESS_CB;
3781 if (pc->cb_info == NULL) {
3782 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3783 return CAMERA_ERROR_INVALID_PARAMETER;
3785 sock_fd = pc->cb_info->fd;
3786 LOGD("Enter, handle :%x", pc->remote_handle);
3788 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = callback;
3789 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = user_data;
3791 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3792 LOGD("ret : 0x%x", ret);
3797 int camera_attr_unset_hdr_capture_progress_cb(camera_h camera)
3799 if( camera == NULL){
3800 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3801 return CAMERA_ERROR_INVALID_PARAMETER;
3804 int ret = CAMERA_ERROR_NONE;
3806 camera_cli_s *pc = (camera_cli_s *)camera;
3807 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_UNSET_HDR_CAPTURE_PROGRESS_CB;
3809 if (pc->cb_info == NULL) {
3810 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3811 return CAMERA_ERROR_INVALID_PARAMETER;
3813 sock_fd = pc->cb_info->fd;
3814 LOGD("Enter, handle :%x", pc->remote_handle);
3816 pc->cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = (void *)NULL;
3817 pc->cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_HDR_PROGRESS] = (void *)NULL;
3819 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3820 LOGD("ret : 0x%x", ret);
3825 int camera_attr_enable_anti_shake(camera_h camera, bool enable)
3827 if (camera == NULL) {
3828 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3829 return CAMERA_ERROR_INVALID_PARAMETER;
3832 int ret = CAMERA_ERROR_NONE;
3833 camera_cli_s *pc = (camera_cli_s *)camera;
3834 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_ANTI_SHAKE;
3836 if (pc->cb_info == NULL) {
3837 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3838 return CAMERA_ERROR_INVALID_PARAMETER;
3840 sock_fd = pc->cb_info->fd;
3841 int set_enable = (int)enable;
3843 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3844 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
3845 LOGD("ret : 0x%x", ret);
3850 int camera_attr_is_enabled_anti_shake(camera_h camera , bool *enabled)
3852 if (camera == NULL) {
3853 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
3854 return CAMERA_ERROR_INVALID_PARAMETER;
3856 if (enabled == NULL) {
3857 LOGE("INVALID_PARAMETER(0x%08x) - enabled", CAMERA_ERROR_INVALID_PARAMETER);
3858 return CAMERA_ERROR_NOT_SUPPORTED;
3860 int ret = CAMERA_ERROR_NONE;
3861 camera_cli_s *pc = (camera_cli_s *)camera;
3862 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_ANTI_SHAKE;
3864 if (pc->cb_info == NULL) {
3865 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3866 return CAMERA_ERROR_INVALID_PARAMETER;
3868 sock_fd = pc->cb_info->fd;
3871 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3872 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3874 if (ret == CAMERA_ERROR_NONE) {
3875 muse_camera_msg_get(get_enabled, pc->cb_info->recvMsg);
3876 *enabled = (bool)get_enabled;
3878 LOGD("ret : 0x%x", ret);
3883 bool camera_attr_is_supported_anti_shake(camera_h camera)
3886 if( camera == NULL){
3887 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3891 int ret = CAMERA_ERROR_NONE;
3892 camera_cli_s *pc = (camera_cli_s *)camera;
3893 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_ANTI_SHAKE;
3895 if (pc->cb_info == NULL) {
3896 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3897 return CAMERA_ERROR_INVALID_PARAMETER;
3899 sock_fd = pc->cb_info->fd;
3900 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3901 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3902 LOGD("ret : 0x%x", ret);
3907 int camera_attr_enable_video_stabilization(camera_h camera, bool enable)
3909 if (camera == NULL) {
3910 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3911 return CAMERA_ERROR_INVALID_PARAMETER;
3914 int ret = CAMERA_ERROR_NONE;
3915 camera_cli_s *pc = (camera_cli_s *)camera;
3916 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_VIDEO_STABILIZATION;
3918 if (pc->cb_info == NULL) {
3919 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3920 return CAMERA_ERROR_INVALID_PARAMETER;
3922 sock_fd = pc->cb_info->fd;
3923 int set_enable = (int)enable;
3925 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3926 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
3927 LOGD("ret : 0x%x", ret);
3932 int camera_attr_is_enabled_video_stabilization(camera_h camera, bool *enabled)
3934 if (camera == NULL) {
3935 LOGE("INVALID_PARAMETER(0x%08x) - handle",CAMERA_ERROR_INVALID_PARAMETER);
3936 return CAMERA_ERROR_INVALID_PARAMETER;
3938 if (enabled == NULL) {
3939 LOGE("INVALID_PARAMETER(0x%08x) - enabled",CAMERA_ERROR_INVALID_PARAMETER);
3940 return CAMERA_ERROR_NOT_SUPPORTED;
3942 int ret = CAMERA_ERROR_NONE;
3943 camera_cli_s *pc = (camera_cli_s *)camera;
3944 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_VIDEO_STABILIZATION;
3946 if (pc->cb_info == NULL) {
3947 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3948 return CAMERA_ERROR_INVALID_PARAMETER;
3950 sock_fd = pc->cb_info->fd;
3953 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3954 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3956 if (ret == CAMERA_ERROR_NONE) {
3957 muse_camera_msg_get(get_enabled, pc->cb_info->recvMsg);
3958 *enabled = (bool)get_enabled;
3960 LOGD("ret : 0x%x", ret);
3965 bool camera_attr_is_supported_video_stabilization(camera_h camera)
3967 if( camera == NULL){
3968 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3972 int ret = CAMERA_ERROR_NONE;
3973 camera_cli_s *pc = (camera_cli_s *)camera;
3974 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_VIDEO_STABILIZATION;
3976 if (pc->cb_info == NULL) {
3977 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
3978 return CAMERA_ERROR_INVALID_PARAMETER;
3980 sock_fd = pc->cb_info->fd;
3981 LOGD("Enter, remote_handle : %x", pc->remote_handle);
3982 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
3983 LOGD("ret : 0x%x", ret);
3988 int camera_attr_enable_auto_contrast(camera_h camera, bool enable)
3990 if( camera == NULL){
3991 LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
3992 return CAMERA_ERROR_INVALID_PARAMETER;
3995 int ret = CAMERA_ERROR_NONE;
3996 camera_cli_s *pc = (camera_cli_s *)camera;
3997 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_ENABLE_AUTO_CONTRAST;
3999 if (pc->cb_info == NULL) {
4000 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4001 return CAMERA_ERROR_INVALID_PARAMETER;
4003 sock_fd = pc->cb_info->fd;
4004 int set_enable = (int)enable;
4006 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4007 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_enable);
4008 LOGD("ret : 0x%x", ret);
4013 int camera_attr_is_enabled_auto_contrast(camera_h camera, bool *enabled)
4015 if (camera == NULL) {
4016 LOGE("INVALID_PARAMETER(0x%08x) - handle", CAMERA_ERROR_INVALID_PARAMETER);
4017 return CAMERA_ERROR_INVALID_PARAMETER;
4019 if (enabled == NULL) {
4020 LOGE("INVALID_PARAMETER(0x%08x) - enabled", CAMERA_ERROR_INVALID_PARAMETER);
4021 return CAMERA_ERROR_INVALID_PARAMETER;
4023 int ret = CAMERA_ERROR_NONE;
4024 camera_cli_s *pc = (camera_cli_s *)camera;
4025 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_ENABLED_AUTO_CONTRAST;
4027 if (pc->cb_info == NULL) {
4028 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4029 return CAMERA_ERROR_INVALID_PARAMETER;
4031 sock_fd = pc->cb_info->fd;
4034 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4035 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4037 if (ret == CAMERA_ERROR_NONE) {
4038 muse_camera_msg_get(get_enabled, pc->cb_info->recvMsg);
4039 *enabled = (bool)get_enabled;
4041 LOGD("ret : 0x%x", ret);
4046 bool camera_attr_is_supported_auto_contrast(camera_h camera)
4048 if( camera == NULL){
4049 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4053 int ret = CAMERA_ERROR_NONE;
4054 camera_cli_s *pc = (camera_cli_s *)camera;
4055 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_IS_SUPPORTED_AUTO_CONTRAST;
4057 if (pc->cb_info == NULL) {
4058 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4059 return CAMERA_ERROR_INVALID_PARAMETER;
4061 sock_fd = pc->cb_info->fd;
4062 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4063 muse_camera_msg_send(api, sock_fd, pc->cb_info, ret);
4064 LOGD("ret : 0x%x", ret);
4069 int camera_attr_disable_shutter_sound(camera_h camera, bool disable)
4071 if (camera == NULL) {
4072 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4073 return CAMERA_ERROR_INVALID_PARAMETER;
4076 int ret = CAMERA_ERROR_NONE;
4077 camera_cli_s *pc = (camera_cli_s *)camera;
4078 muse_camera_api_e api = MUSE_CAMERA_API_ATTR_DISABLE_SHUTTER_SOUND;
4080 if (pc->cb_info == NULL) {
4081 LOGE("INVALID_PARAMETER(0x%08x)",CAMERA_ERROR_INVALID_PARAMETER);
4082 return CAMERA_ERROR_INVALID_PARAMETER;
4084 sock_fd = pc->cb_info->fd;
4085 int set_disable = (int)disable;
4087 LOGD("Enter, remote_handle : %x", pc->remote_handle);
4088 muse_camera_msg_send1(api, sock_fd, pc->cb_info, ret, INT, set_disable);
4089 LOGD("ret : 0x%x", ret);