diff options
author | Jeongmo Yang <jm80.yang@samsung.com> | 2016-11-03 21:49:37 +0900 |
---|---|---|
committer | Jeongmo Yang <jm80.yang@samsung.com> | 2016-11-03 21:49:41 +0900 |
commit | c8c0987395c7f1f49cb54892854ae6bbd0d0baec (patch) | |
tree | 46241a4e12d263e9f81db3491bb896146cd82407 | |
parent | ec8faf10ef99145d03f7125f4b338026e3603d10 (diff) | |
parent | 1d04639319a384608c53cd8084814e487f5de5f2 (diff) | |
download | recorder-c8c0987395c7f1f49cb54892854ae6bbd0d0baec.tar.gz recorder-c8c0987395c7f1f49cb54892854ae6bbd0d0baec.tar.bz2 recorder-c8c0987395c7f1f49cb54892854ae6bbd0d0baec.zip |
Merge branch 'tizen' into tizen_3.0submit/tizen_3.0/20161103.125446accepted/tizen/3.0/wearable/20161104.103732accepted/tizen/3.0/tv/20161104.103729accepted/tizen/3.0/mobile/20161104.103722accepted/tizen/3.0/ivi/20161104.103736
Change-Id: I7567740a23d1bb5be1d8258816ee2775ad2e3bb1
-rw-r--r-- | packaging/capi-media-recorder.spec | 2 | ||||
-rw-r--r-- | src/recorder.c | 67 |
2 files changed, 32 insertions, 37 deletions
diff --git a/packaging/capi-media-recorder.spec b/packaging/capi-media-recorder.spec index 30acb4d..135d9c6 100644 --- a/packaging/capi-media-recorder.spec +++ b/packaging/capi-media-recorder.spec @@ -1,6 +1,6 @@ Name: capi-media-recorder Summary: A Recorder API -Version: 0.2.41 +Version: 0.2.43 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/recorder.c b/src/recorder.c index 89f634c..e4b0ffa 100644 --- a/src/recorder.c +++ b/src/recorder.c @@ -149,7 +149,7 @@ static void _recorder_client_user_callback(recorder_cb_info_s *cb_info, char *re return; } - LOGD("get recorder msg %s, event %d", recv_msg, event); + /*LOGD("get recorder msg %s, event %d", recv_msg, event);*/ if (cb_info->user_cb[event] == NULL) { LOGW("user callback for event %d is not set", event); @@ -841,7 +841,7 @@ static void *_recorder_msg_recv_func(gpointer data) prev_pos = str_pos + 1; if (num_token >= RECORDER_PARSED_STRING_NUM_MAX) { - LOGE("There's too many tokens. Remained msg : %s", recv_msg[++str_pos]); + LOGE("There's too many tokens. Remained msg length %d", ret - str_pos); break; } } @@ -1052,7 +1052,7 @@ static void __destroy_msg_handler_thread(recorder_msg_handler_info_s *handler_in } -static recorder_cb_info_s *_recorder_client_callback_new(gint sockfd, bool need_msg_handler_thread) +static recorder_cb_info_s *_recorder_client_callback_new(gint sockfd) { recorder_cb_info_s *cb_info = NULL; gint i = 0; @@ -1073,20 +1073,18 @@ static recorder_cb_info_s *_recorder_client_callback_new(gint sockfd, bool need_ g_mutex_init(&cb_info->idle_event_mutex); g_cond_init(&cb_info->idle_event_cond); - if (need_msg_handler_thread) { - /* message handler thread */ - if (!__create_msg_handler_thread(&cb_info->msg_handler_info, - _RECORDER_MESSAGE_HANDLER_TYPE_GENERAL, "recorder_msg_handler", cb_info)) { - LOGE("msg_handler_info failed"); - goto ErrorExit; - } + /* message handler thread */ + if (!__create_msg_handler_thread(&cb_info->msg_handler_info, + _RECORDER_MESSAGE_HANDLER_TYPE_GENERAL, "recorder_msg_handler", cb_info)) { + LOGE("msg_handler_info failed"); + goto ErrorExit; + } - /* message handler thread for audio stream callback */ - if (!__create_msg_handler_thread(&cb_info->audio_stream_cb_info, - _RECORDER_MESSAGE_HANDLER_TYPE_AUDIO_STREAM_CB, "recorder_msg_handler:audio_stream_cb", cb_info)) { - LOGE("audio_stream_cb_info failed"); - goto ErrorExit; - } + /* message handler thread for audio stream callback */ + if (!__create_msg_handler_thread(&cb_info->audio_stream_cb_info, + _RECORDER_MESSAGE_HANDLER_TYPE_AUDIO_STREAM_CB, "recorder_msg_handler:audio_stream_cb", cb_info)) { + LOGE("audio_stream_cb_info failed"); + goto ErrorExit; } cb_info->fd = sockfd; @@ -1433,7 +1431,7 @@ static int _recorder_create_common(recorder_h *recorder, muse_recorder_type_e ty goto _ERR_RECORDER_EXIT; } - pc->cb_info = _recorder_client_callback_new(sock_fd, true); + pc->cb_info = _recorder_client_callback_new(sock_fd); if (pc->cb_info == NULL) { ret = RECORDER_ERROR_OUT_OF_MEMORY; goto _ERR_RECORDER_EXIT; @@ -3094,8 +3092,7 @@ int recorder_get_device_state(recorder_type_e type, recorder_device_state_e *sta int sock_fd = -1; int get_device_state = 0; char *send_msg = NULL; - muse_recorder_api_e api = MUSE_RECORDER_API_GET_DEVICE_STATE; - recorder_cb_info_s *cb_info = NULL; + char recv_msg[MUSE_RECORDER_MSG_MAX_LENGTH] = {'\0',}; if (!state) { LOGE("NULL pointer"); @@ -3111,7 +3108,7 @@ int recorder_get_device_state(recorder_type_e type, recorder_device_state_e *sta goto _GET_DEVICE_STATE_EXIT; } - send_msg = muse_core_msg_json_factory_new(api, + send_msg = muse_core_msg_json_factory_new(MUSE_RECORDER_API_GET_DEVICE_STATE, MUSE_TYPE_INT, "module", MUSE_RECORDER, MUSE_TYPE_INT, PARAM_RECORDER_TYPE, type, NULL); @@ -3134,34 +3131,32 @@ int recorder_get_device_state(recorder_type_e type, recorder_device_state_e *sta goto _GET_DEVICE_STATE_EXIT; } - cb_info = _recorder_client_callback_new(sock_fd, false); - if (cb_info == NULL) { - ret = RECORDER_ERROR_OUT_OF_MEMORY; + ret = muse_core_ipc_recv_msg(sock_fd, recv_msg); + if (ret <= 0) { + LOGE("recv msg failed %d", errno); + ret = RECORDER_ERROR_INVALID_OPERATION; goto _GET_DEVICE_STATE_EXIT; } - sock_fd = -1; - - ret = _recorder_client_wait_for_cb_return(api, cb_info, RECORDER_CB_TIMEOUT); - if (ret != RECORDER_ERROR_NONE) { - LOGE("API_CREATE failed 0x%x", ret); + if (!muse_recorder_msg_get(ret, recv_msg)) { + LOGE("failed to get return value from msg [%s]", recv_msg); + ret = RECORDER_ERROR_INVALID_OPERATION; goto _GET_DEVICE_STATE_EXIT; } if (ret == RECORDER_ERROR_NONE) { - muse_recorder_msg_get(get_device_state, cb_info->recv_msg); - *state = (recorder_device_state_e)get_device_state; - LOGD("device state %d", *state); + if (muse_recorder_msg_get(get_device_state, recv_msg)) { + *state = (recorder_device_state_e)get_device_state; + LOGD("device type %d state %d", type, *state); + } else { + LOGE("failed to get device state from msg [%s]", recv_msg); + ret = RECORDER_ERROR_INVALID_OPERATION; + } } else { LOGE("failed 0x%x", ret); } _GET_DEVICE_STATE_EXIT: - if (cb_info) { - _recorder_client_callback_destroy(cb_info); - cb_info = NULL; - } - if (sock_fd > -1) { muse_core_connection_close(sock_fd); sock_fd = -1; |