static int g_rec_dev_state_changed_cb_id;
static GDBusConnection *g_rec_dev_state_changed_cb_conn;
static guint g_rec_dev_state_changed_cb_subscribe_id;
+ static GMutex g_rec_idle_event_lock;
}
break;
}
+//LCOV_EXCL_START
case MUSE_RECORDER_EVENT_TYPE_ERROR:
{
int error = 0;
cb_info->user_data[event]);
break;
}
+//LCOV_EXCL_STOP
case MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_AUDIO_ENCODER:
{
int codec = 0;
}
- static bool _recorder_idle_event_callback(void *data)
+ static gboolean _recorder_idle_event_callback(gpointer data)
{
recorder_cb_info_s *cb_info = NULL;
recorder_idle_event_s *rec_idle_event = (recorder_idle_event_s *)data;
if (rec_idle_event == NULL) {
LOGE("rec_idle_event is NULL");
- return false;
+ return FALSE;
}
/* lock event */
- g_mutex_lock(&rec_idle_event->event_mutex);
+ g_mutex_lock(&g_rec_idle_event_lock);
cb_info = rec_idle_event->cb_info;
if (cb_info == NULL) {
LOGW("recorder cb_info is NULL. event %p %d", rec_idle_event, rec_idle_event->event);
+ g_mutex_unlock(&g_rec_idle_event_lock);
goto IDLE_EVENT_CALLBACK_DONE;
}
/* remove event from list */
- g_mutex_lock(&cb_info->idle_event_mutex);
-
if (cb_info->idle_event_list)
cb_info->idle_event_list = g_list_remove(cb_info->idle_event_list, (gpointer)rec_idle_event);
- /*LOGD("remove recorder idle event %p, %p", rec_idle_event, cb_info->idle_event_list);*/
- g_mutex_unlock(&cb_info->idle_event_mutex);
+ g_mutex_unlock(&g_rec_idle_event_lock);
/* user callback */
_recorder_client_user_callback(cb_info, rec_idle_event->recv_msg, rec_idle_event->event);
- /* send signal for waiting thread */
- g_cond_signal(&cb_info->idle_event_cond);
-
IDLE_EVENT_CALLBACK_DONE:
- /* unlock and release event */
- g_mutex_unlock(&rec_idle_event->event_mutex);
- g_mutex_clear(&rec_idle_event->event_mutex);
-
+ /* release event */
g_free(rec_idle_event);
rec_idle_event = NULL;
- return false;
+ return FALSE;
}
{
recorder_idle_event_s *rec_idle_event = NULL;
GList *list = NULL;
- gint64 end_time = 0;
if (cb_info == NULL) {
LOGE("cb_info is NULL");
return;
}
- g_mutex_lock(&cb_info->idle_event_mutex);
+ g_mutex_lock(&g_rec_idle_event_lock);
if (cb_info->idle_event_list == NULL) {
LOGD("No event");
cb_info->idle_event_list = g_list_remove(cb_info->idle_event_list, (gpointer)rec_idle_event);
- g_mutex_clear(&rec_idle_event->event_mutex);
g_free(rec_idle_event);
rec_idle_event = NULL;
continue;
}
- LOGW("remove idle event %p failed", rec_idle_event);
-
- if (!g_mutex_trylock(&rec_idle_event->event_mutex)) {
- LOGW("lock failed, %p event is calling now", rec_idle_event);
-
- end_time = g_get_monotonic_time() + G_TIME_SPAN_MILLISECOND * 100;
-
- if (g_cond_wait_until(&cb_info->idle_event_cond, &cb_info->idle_event_mutex, end_time))
- LOGW("signal received");
- else
- LOGW("timeout");
-
- continue;
- }
-
LOGW("set NULL cb_info for event %p %d, it will be freed on idle callback",
rec_idle_event, rec_idle_event->event);
rec_idle_event->cb_info = NULL;
cb_info->idle_event_list = g_list_remove(cb_info->idle_event_list, (gpointer)rec_idle_event);
-
- g_mutex_unlock(&rec_idle_event->event_mutex);
}
g_list_free(cb_info->idle_event_list);
cb_info->idle_event_list = NULL;
}
- g_mutex_unlock(&cb_info->idle_event_mutex);
+ g_mutex_unlock(&g_rec_idle_event_lock);
return;
}
rec_idle_event->event = rec_msg->event;
rec_idle_event->cb_info = cb_info;
- g_mutex_init(&rec_idle_event->event_mutex);
+
strncpy(rec_idle_event->recv_msg, rec_msg->recv_msg, sizeof(rec_idle_event->recv_msg) - 1);
/*LOGD("add recorder event[%d, %p] to IDLE", rec_msg->event, rec_idle_event);*/
- g_mutex_lock(&cb_info->idle_event_mutex);
+ g_mutex_lock(&g_rec_idle_event_lock);
cb_info->idle_event_list = g_list_append(cb_info->idle_event_list, (gpointer)rec_idle_event);
- g_mutex_unlock(&cb_info->idle_event_mutex);
+ g_mutex_unlock(&g_rec_idle_event_lock);
g_idle_add_full(G_PRIORITY_DEFAULT,
(GSourceFunc)_recorder_idle_event_callback,
while (g_atomic_int_get(&cb_info->msg_recv_running)) {
recv_length = muse_core_msg_recv(cb_info->fd, recv_msg, MUSE_MSG_MAX_LENGTH);
if (recv_length <= 0) {
+//LCOV_EXCL_START
cb_info->is_server_connected = FALSE;
LOGE("receive msg failed - server disconnected");
break;
+//LCOV_EXCL_STOP
}
recv_msg[recv_length] = '\0';
if (single_length < MUSE_RECORDER_MSG_MAX_LENGTH) {
/* check remained msg */
if (remained_length > 0) {
+//LCOV_EXCL_START
if (remained_msg) {
strncpy(single_msg, remained_msg, remained_length);
strncpy(single_msg + remained_length, recv_msg + prev_pos, single_length);
}
remained_length = 0;
+//LCOV_EXCL_STOP
} else {
strncpy(single_msg, recv_msg + prev_pos, single_length);
single_msg[single_length] = '\0';
/* check incompleted message */
if (recv_msg[recv_length - 1] != '}') {
+//LCOV_EXCL_START
remained_length = recv_length - prev_pos;
LOGW("incompleted message [len %d]", remained_length);
} else {
LOGE("failed to alloc for remained msg");
}
+//LCOV_EXCL_STOP
} else {
remained_length = 0;
}
LOGD("client cb exit - server connected %d", cb_info->is_server_connected);
if (!cb_info->is_server_connected) {
+//LCOV_EXCL_START
/* send error msg for server disconnection */
char *error_msg = muse_core_msg_new(MUSE_RECORDER_CB_EVENT,
MUSE_TYPE_INT, "error", RECORDER_ERROR_SERVICE_DISCONNECTED,
error_msg = NULL;
LOGE("add error msg for service disconnection done");
+//LCOV_EXCL_STOP
}
CB_HANDLER_EXIT:
handler_info->thread = g_thread_try_new(thread_name,
_recorder_msg_handler_func, (gpointer)handler_info, NULL);
if (handler_info->thread == NULL) {
+//LCOV_EXCL_START
LOGE("t:%d thread failed", type);
g_mutex_clear(&handler_info->mutex);
handler_info->queue = NULL;
return false;
+//LCOV_EXCL_STOP
}
LOGD("t:%d done", type);
g_cond_init(&cb_info->api_cond[i]);
}
- g_mutex_init(&cb_info->idle_event_mutex);
- g_cond_init(&cb_info->idle_event_cond);
-
for (i = 0 ; i < MUSE_RECORDER_EVENT_TYPE_NUM ; i++)
g_mutex_init(&cb_info->user_cb_mutex[i]);
cb_info->is_server_connected = TRUE;
return cb_info;
-
+//LCOV_EXCL_START
ErrorExit:
if (cb_info) {
__destroy_msg_handler_thread(&cb_info->msg_handler_info);
for (i = 0 ; i < MUSE_RECORDER_EVENT_TYPE_NUM ; i++)
g_mutex_clear(&cb_info->user_cb_mutex[i]);
- g_mutex_clear(&cb_info->idle_event_mutex);
- g_cond_clear(&cb_info->idle_event_cond);
-
for (i = 0 ; i < MUSE_RECORDER_API_MAX ; i++) {
g_mutex_clear(&cb_info->api_mutex[i]);
g_cond_clear(&cb_info->api_cond[i]);
}
return NULL;
+//LCOV_EXCL_STOP
}
static int _recorder_client_wait_for_cb_return(muse_recorder_api_e api, recorder_cb_info_s *cb_info, int time_out)
for (i = 0 ; i < MUSE_RECORDER_EVENT_TYPE_NUM ; i++)
g_mutex_clear(&cb_info->user_cb_mutex[i]);
- g_mutex_clear(&cb_info->idle_event_mutex);
- g_cond_clear(&cb_info->idle_event_cond);
-
for (i = 0 ; i < MUSE_RECORDER_API_MAX ; i++) {
g_mutex_clear(&cb_info->api_mutex[i]);
g_cond_clear(&cb_info->api_cond[i]);
sock_fd = muse_client_new();
if (sock_fd < 0) {
+//LCOV_EXCL_START
LOGE("muse_client_new failed - returned fd %d", sock_fd);
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _ERR_RECORDER_EXIT;
+//LCOV_EXCL_STOP
}
if (type == MUSE_RECORDER_TYPE_AUDIO) {
}
if (!send_msg) {
+//LCOV_EXCL_START
LOGE("NULL msg");
ret = RECORDER_ERROR_OUT_OF_MEMORY;
goto _ERR_RECORDER_EXIT;
+//LCOV_EXCL_STOP
}
LOGD("sock_fd : %d, msg : %s", sock_fd, send_msg);
send_msg = NULL;
if (send_ret < 0) {
+//LCOV_EXCL_START
LOGE("send msg failed %d", errno);
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _ERR_RECORDER_EXIT;
+//LCOV_EXCL_STOP
}
pc->cb_info = _recorder_client_callback_new(sock_fd);
muse_recorder_msg_get_pointer(handle, pc->cb_info->recv_msg);
if (handle == 0) {
+//LCOV_EXCL_START
LOGE("Receiving Handle Failed!!");
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _ERR_RECORDER_AFTER_CREATE;
+//LCOV_EXCL_STOP
}
if (!_recorder_client_get_root_directory(&root_directory) || root_directory == NULL) {
+//LCOV_EXCL_START
LOGE("failed to get root directory of internal storage");
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _ERR_RECORDER_AFTER_CREATE;
+//LCOV_EXCL_STOP
}
LOGD("root directory [%s]", root_directory);
pc->remote_handle = handle;
pc->cb_info->bufmgr = bufmgr;
- LOGD("recorder[type %d] %p create success : remote handle 0x%x",
+ LOGD("recorder[type %d] %p create success : remote handle 0x%td",
type, pc, pc->remote_handle);
*recorder = (recorder_h)pc;
LOGD("done");
return RECORDER_ERROR_NONE;
-
+//LCOV_EXCL_START
_ERR_RECORDER_AFTER_CREATE:
_recorder_msg_send(MUSE_RECORDER_API_DESTROY, pc->cb_info, &destroy_ret, RECORDER_CB_TIMEOUT);
LOGE("destroy return 0x%x", destroy_ret);
}
return ret;
+//LCOV_EXCL_STOP
}
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, remote_handle : %x", pc->remote_handle);
+ LOGD("Enter, remote_handle : %td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
LOGD("ENTER");
if (pc->camera) {
+//LCOV_EXCL_START
ret = camera_get_state(pc->camera, &camera_state);
if (ret != CAMERA_ERROR_NONE) {
LOGE("failed to get camera state 0x%x", ret);
return RECORDER_ERROR_INVALID_OPERATION;
}
}
+//LCOV_EXCL_STOP
}
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
LOGD("ENTER");
if (pc->camera) {
+//LCOV_EXCL_START
ret = recorder_get_state(recorder, ¤t_state);
if (ret != RECORDER_ERROR_NONE) {
LOGE("failed to get current state 0x%x", ret);
return RECORDER_ERROR_INVALID_OPERATION;
}
}
+//LCOV_EXCL_STOP
}
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_NO_TIMEOUT);
LOGD("ENTER");
if (pc->camera) {
+//LCOV_EXCL_START
ret = recorder_get_state(recorder, ¤t_state);
if (ret != RECORDER_ERROR_NONE) {
LOGE("failed to get current state 0x%x", ret);
return RECORDER_ERROR_INVALID_OPERATION;
}
}
+//LCOV_EXCL_STOP
}
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_RESOLUTION] = foreach_cb;
pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_RESOLUTION] = user_data;
length = strlen(filename);
if (length >= RECORDER_FILENAME_MAX - 1) {
- LOGE("too long file name [%d]", length);
+ LOGE("too long file name [%zu]", length);
return RECORDER_ERROR_INVALID_PARAMETER;
}
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
_recorder_msg_send(api, pc->cb_info, &ret, RECORDER_CB_TIMEOUT);
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_FILE_FORMAT] = foreach_cb;
pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_FILE_FORMAT] = user_data;
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_AUDIO_ENCODER] = foreach_cb;
pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_AUDIO_ENCODER] = user_data;
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("Enter, handle :%x", pc->remote_handle);
+ LOGD("Enter, handle :%td", pc->remote_handle);
pc->cb_info->user_cb[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_ENCODER] = foreach_cb;
pc->cb_info->user_data[MUSE_RECORDER_EVENT_TYPE_FOREACH_SUPPORTED_VIDEO_ENCODER] = user_data;
sock_fd = muse_client_new();
if (sock_fd < 0) {
+//LCOV_EXCL_START
LOGE("muse_client_new failed - returned fd %d", sock_fd);
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _GET_DEVICE_STATE_EXIT;
+//LCOV_EXCL_STOP
}
send_msg = muse_core_msg_new(MUSE_RECORDER_API_GET_DEVICE_STATE,
MUSE_TYPE_INT, PARAM_RECORDER_TYPE, type,
NULL);
if (!send_msg) {
+//LCOV_EXCL_START
LOGE("NULL msg");
ret = RECORDER_ERROR_OUT_OF_MEMORY;
goto _GET_DEVICE_STATE_EXIT;
+//LCOV_EXCL_STOP
}
LOGD("sock_fd : %d, msg : %s", sock_fd, send_msg);
send_msg = NULL;
if (ret < 0) {
+//LCOV_EXCL_START
LOGE("send msg failed %d", errno);
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _GET_DEVICE_STATE_EXIT;
+//LCOV_EXCL_STOP
}
ret = muse_core_msg_recv(sock_fd, recv_msg, MUSE_RECORDER_MSG_MAX_LENGTH);
if (ret <= 0) {
+//LCOV_EXCL_START
LOGE("recv msg failed %d", errno);
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _GET_DEVICE_STATE_EXIT;
+//LCOV_EXCL_STOP
}
if (!muse_recorder_msg_get(ret, recv_msg)) {
+//LCOV_EXCL_START
LOGE("failed to get return value from msg [%s]", recv_msg);
ret = RECORDER_ERROR_INVALID_OPERATION;
goto _GET_DEVICE_STATE_EXIT;
+//LCOV_EXCL_STOP
}
if (ret == RECORDER_ERROR_NONE) {
_DONE:
if (ret != RECORDER_ERROR_NONE) {
+//LCOV_EXCL_START
if (info) {
g_free(info);
info = NULL;
g_object_unref(g_rec_dev_state_changed_cb_conn);
g_rec_dev_state_changed_cb_conn = NULL;
}
+//LCOV_EXCL_STOP
}
g_mutex_unlock(&g_rec_dev_state_changed_cb_lock);