}
}
-static void __thumbnail_util_convert_itoa(int request_id, char **req_str)
-{
- char buf[MAX_SIZE] = {0, };
-
- snprintf(buf, MAX_SIZE, "%d", request_id);
- *req_str = strndup(buf, strlen(buf));
-}
-static void __thumbnail_util_extract_completed_cb(int error, int request_id, const char *path, int thumb_width, int thumb_height, unsigned char *thumb_data, int thumb_size, void *user_data)
+static void __thumbnail_util_extract_completed_cb(int error,
+ int request_id,
+ const char *path,
+ int thumb_width,
+ int thumb_height,
+ unsigned char *thumb_data,
+ int thumb_size,
+ void *user_data)
{
thumbnail_extract_cb_s *_thumb_cb = (thumbnail_extract_cb_s *)user_data;
char *request_id_str = NULL;
- if (_thumb_cb != NULL) {
- __thumbnail_util_convert_itoa(request_id, &request_id_str);
- if (_thumb_cb->thumb_extract_cb)
- _thumb_cb->thumb_extract_cb(__thumbnail_util_error_capi(error), request_id_str, thumb_width, thumb_height, thumb_data, thumb_size, _thumb_cb->user_data);
- SAFE_FREE(request_id_str);
- }
- SAFE_FREE(_thumb_cb);
+ if (!_thumb_cb || !_thumb_cb->thumb_extract_cb)
+ return;
+
+ request_id_str = g_strdup_printf("%d", request_id);
+ _thumb_cb->thumb_extract_cb(__thumbnail_util_error_capi(error),
+ request_id_str,
+ thumb_width,
+ thumb_height,
+ thumb_data,
+ thumb_size,
+ _thumb_cb->user_data);
+
+ g_free(request_id_str);
+ g_free(_thumb_cb);
}
int thumbnail_util_create(thumbnail_h *thumb)
static int g_thumbnail_req_id = 0;
thumbnail_s *_thumb = (thumbnail_s *)thumb;
- if (_thumb != NULL && STRING_VALID(_thumb->file_path)) {
- g_thumbnail_req_id++;
- _thumb->request_id = g_thumbnail_req_id;
- __thumbnail_util_convert_itoa(_thumb->request_id, request_id);
- thumbnail_extract_cb_s *_thumb_cb = (thumbnail_extract_cb_s *)calloc(1, sizeof(thumbnail_extract_cb_s));
+ thumbnail_util_retvm_if(!_thumb, THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER, "Invalid handle");
+ thumbnail_util_retvm_if(!STRING_VALID(_thumb->file_path), THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER, "Invalid path");
- if (_thumb_cb != NULL) {
- _thumb_cb->user_data = user_data;
- _thumb_cb->thumb_extract_cb = callback;
- }
+ _thumb->request_id = ++g_thumbnail_req_id;
- res = thumbnail_request_extract_raw_data_async(_thumb->request_id, _thumb->file_path, _thumb->dst_width, _thumb->dst_height, (ThumbRawFunc)__thumbnail_util_extract_completed_cb, (void *)_thumb_cb, tzplatform_getuid(TZ_USER_NAME));
- ret = __thumbnail_util_error_capi(res);
- if (ret != THUMBNAIL_UTIL_ERROR_NONE)
- free(_thumb_cb);
- } else {
- thumbnail_util_error("INVALID_PARAMETER(0x%08x)", THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER);
- ret = THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER;
- }
+ thumbnail_extract_cb_s *_thumb_cb = g_new0(thumbnail_extract_cb_s, 1);
+
+ _thumb_cb->user_data = user_data;
+ _thumb_cb->thumb_extract_cb = callback;
+
+ res = thumbnail_request_extract_raw_data_async(_thumb->request_id,
+ _thumb->file_path,
+ _thumb->dst_width,
+ _thumb->dst_height,
+ __thumbnail_util_extract_completed_cb,
+ (void *)_thumb_cb,
+ tzplatform_getuid(TZ_USER_NAME));
+ ret = __thumbnail_util_error_capi(res);
+ if (ret == THUMBNAIL_UTIL_ERROR_NONE)
+ *request_id = g_strdup_printf("%d", g_thumbnail_req_id);
+ else
+ g_free(_thumb_cb);
return ret;
}