summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeongmo Yang <jm80.yang@samsung.com>2016-11-03 21:49:37 +0900
committerJeongmo Yang <jm80.yang@samsung.com>2016-11-03 21:49:41 +0900
commitc8c0987395c7f1f49cb54892854ae6bbd0d0baec (patch)
tree46241a4e12d263e9f81db3491bb896146cd82407
parentec8faf10ef99145d03f7125f4b338026e3603d10 (diff)
parent1d04639319a384608c53cd8084814e487f5de5f2 (diff)
downloadrecorder-c8c0987395c7f1f49cb54892854ae6bbd0d0baec.tar.gz
recorder-c8c0987395c7f1f49cb54892854ae6bbd0d0baec.tar.bz2
recorder-c8c0987395c7f1f49cb54892854ae6bbd0d0baec.zip
Change-Id: I7567740a23d1bb5be1d8258816ee2775ad2e3bb1
-rw-r--r--packaging/capi-media-recorder.spec2
-rw-r--r--src/recorder.c67
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;