[ACR-1163] Add synchronous API to create thumbnails 51/169251/7 accepted/tizen/unified/20180320.065801 submit/tizen/20180320.000717
authorMinje Ahn <minje.ahn@samsung.com>
Mon, 5 Feb 2018 07:34:52 +0000 (16:34 +0900)
committerMinje ahn <minje.ahn@samsung.com>
Fri, 16 Mar 2018 07:41:40 +0000 (07:41 +0000)
Change-Id: I13494f948a36ae3bd0fd1968f7b898d58b739978
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
include/media-svc.h
src/common/media-svc-util.c
src/common/media-svc.c

index 01160b3..828352b 100755 (executable)
@@ -102,6 +102,7 @@ int media_svc_append_query(const char *query, uid_t uid);
 int media_svc_send_query(uid_t uid);
 
 int media_svc_get_media_type(const char *path, int *mediatype);
+int media_svc_create_thumbnail(const char *file_path, int media_type, uid_t uid, char **thumbnail_path);
 
 #ifdef __cplusplus
 }
index 4f48df2..608b44c 100755 (executable)
@@ -1829,7 +1829,7 @@ int _media_svc_create_thumbnail(const char *path, char *thumb_path, int max_leng
                return MS_MEDIA_ERR_INVALID_PARAMETER;
        }
 
-       media_svc_sec_debug("Path : %s", path);
+       media_svc_sec_debug("Path[%s] Type[%d]", path, media_type);
 
        //1. make hash path
        ret = _media_svc_get_thumbnail_path(store_type, media_type, thumb_path, path, THUMB_EXT, uid);
index daa593b..3d03e70 100755 (executable)
@@ -1863,3 +1863,32 @@ int media_svc_get_media_type(const char *path, int *mediatype)
        return _media_svc_get_media_type(path, mediatype);
 }
 
+int media_svc_create_thumbnail(const char *file_path, int media_type, uid_t uid, char **thumbnail_path)
+{
+       int ret = MS_MEDIA_ERR_NONE;
+       char thumb_path[MEDIA_SVC_PATHNAME_SIZE + 1] = { 0, };
+       char *sql = NULL;
+
+       // 1. Check media type
+       if (media_type != MS_MEDIA_IMAGE && media_type != MS_MEDIA_VIDEO)
+               return MS_MEDIA_ERR_UNSUPPORTED_CONTENT;
+
+       // 2. try to create thumbnail
+       ret = _media_svc_create_thumbnail(file_path, thumb_path, MEDIA_SVC_PATHNAME_SIZE, media_type, uid);
+       if (ret != MS_MEDIA_ERR_NONE)
+               media_svc_error("Failed to create thumbnail [%d]", ret);
+
+       // 3. Update creation result to media db
+       sql = sqlite3_mprintf("UPDATE %q SET thumbnail_path = '%q' WHERE path='%q';", MEDIA_SVC_DB_TABLE_MEDIA, thumb_path, file_path);
+
+       ret = _media_svc_sql_query(sql, uid);
+       SQLITE3_SAFE_FREE(sql);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("Failed to update media db [%d]", ret);
+               *thumbnail_path = g_strdup("");
+       } else {
+               *thumbnail_path = g_strdup(thumb_path);
+       }
+
+       return ret;
+}