Unify duplicate codes regarding content attribute 87/225987/3
authorhj kim <backto.kim@samsung.com>
Wed, 26 Feb 2020 04:44:17 +0000 (13:44 +0900)
committerhj kim <backto.kim@samsung.com>
Thu, 27 Feb 2020 03:10:53 +0000 (03:10 +0000)
Change-Id: I9bc54faeb45eed7ea86275d5ceb990f61781b5fe

mm_file.c

index 0340a0b..7f5eb37 100644 (file)
--- a/mm_file.c
+++ b/mm_file.c
@@ -70,12 +70,12 @@ enum {
        MM_FILE_INVALID,
 };
 
-enum {
+typedef enum {
        MM_FILE_PARSE_TYPE_SIMPLE,              /*parse audio/video track num only*/
        MM_FILE_PARSE_TYPE_NORMAL,              /*parse infomation without thumbnail*/
        MM_FILE_PARSE_TYPE_ALL,                 /*parse all infomation*/
        MM_FILE_PARSE_TYPE_SAFE,                /*parse infomation without both thumbnail and stream full-searching*/
-};
+} MMFILE_PARSE_TYPE;
 
 typedef struct {
        int     type;
@@ -850,8 +850,7 @@ int mm_file_destroy_tag_attrs(MMHandleType tag_attrs)
        return ret;
 }
 
-EXPORT_API
-int mm_file_create_content_attrs(MMHandleType *contents_attrs, const char *filename)
+static int __create_content_attrs(MMHandleType *contents_attrs, const char *filename, MMFILE_PARSE_TYPE parse_type)
 {
        MMHandleType attrs = NULL;
        MMFileSourceType src = {0, };
@@ -912,7 +911,7 @@ int mm_file_create_content_attrs(MMHandleType *contents_attrs, const char *filen
        }
 
 
-       parse.type = MM_FILE_PARSE_TYPE_ALL;
+       parse.type = parse_type;
        ret = _get_contents_info(attrs, &src, &parse);
        if (ret != FILEINFO_ERROR_NONE) {
                mm_attrs_free(attrs);
@@ -943,6 +942,11 @@ END:
        return ret;
 }
 
+EXPORT_API
+int mm_file_create_content_attrs(MMHandleType *contents_attrs, const char *filename)
+{
+       return __create_content_attrs(contents_attrs, filename, MM_FILE_PARSE_TYPE_ALL);
+}
 
 EXPORT_API
 int mm_file_create_tag_attrs_from_memory(MMHandleType *tag_attrs, const void *data, unsigned int size, int format)
@@ -1144,131 +1148,13 @@ END:
 EXPORT_API
 int mm_file_create_content_attrs_simple(MMHandleType *contents_attrs, const char *filename)
 {
-       MMHandleType attrs = NULL;
-       MMFileSourceType src = {0, };
-       MMFILE_PARSE_INFO parse = {0, };
-       int ret = 0;
-
-       debug_fenter(RELEASE);
-
-#ifdef __MMFILE_DYN_LOADING__
-       MMFILE_FUNC_HANDLE func_handle;
-
-       ret = _load_dynamic_functions(&func_handle);
-       if (ret == 0) {
-               debug_error(DEBUG, "load library error\n");
-               return FILEINFO_ERROR_FILE_INTERNAL;
-       }
-#endif
-       if (filename == NULL) {
-               ret =  FILEINFO_ERROR_INVALID_ARGUMENT;
-               goto END;
-       } else {
-               if (strlen(filename) == 0) {
-                       ret =  FILEINFO_ERROR_INVALID_ARGUMENT;
-                       goto END;
-               }
-       }
-
-       /*set source file infomation*/
-       MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
-
-       ret = _is_file_exist(filename);
-       if (ret != FILEINFO_ERROR_NONE) {
-               goto END;
-       }
-
-       /*set attrs*/
-       ret = mm_attrs_new(g_content_attrs, ARRAY_SIZE(g_content_attrs), "content", NULL, NULL, &attrs);
-       if (ret) {
-               debug_error(DEBUG, "attribute internal error.\n");
-               ret = FILEINFO_ERROR_FILE_INTERNAL;
-               goto END;
-       }
-
-       parse.type = MM_FILE_PARSE_TYPE_NORMAL;
-       ret = _get_contents_info(attrs, &src, &parse);
-       if (ret != FILEINFO_ERROR_NONE) {
-               mm_attrs_free(attrs);
-               attrs = NULL;
-               debug_error(DEBUG, "failed to get contents: %s\n", filename);
-       }
-
-       *contents_attrs = attrs;
-
-END:
-#ifdef __MMFILE_DYN_LOADING__
-       _unload_dynamic_functions(&func_handle);
-#endif
-
-       debug_fleave(RELEASE);
-
-       return ret;
+       return __create_content_attrs(contents_attrs, filename, MM_FILE_PARSE_TYPE_NORMAL);
 }
 
 EXPORT_API
 int mm_file_create_content_attrs_safe(MMHandleType *contents_attrs, const char *filename)
 {
-       MMHandleType attrs = NULL;
-       MMFileSourceType src = {0, };
-       MMFILE_PARSE_INFO parse = {0, };
-       int ret = 0;
-
-       debug_fenter(RELEASE);
-
-#ifdef __MMFILE_DYN_LOADING__
-       MMFILE_FUNC_HANDLE func_handle;
-
-       ret = _load_dynamic_functions(&func_handle);
-       if (ret == 0) {
-               debug_error(DEBUG, "load library error\n");
-               return FILEINFO_ERROR_FILE_INTERNAL;
-       }
-#endif
-       if (filename == NULL) {
-               ret = FILEINFO_ERROR_INVALID_ARGUMENT;
-               goto END;
-       } else {
-               if (strlen(filename) == 0) {
-                       ret = FILEINFO_ERROR_INVALID_ARGUMENT;
-                       goto END;
-               }
-       }
-
-       /*set source file infomation*/
-       MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
-
-       ret = _is_file_exist(filename);
-       if (ret != FILEINFO_ERROR_NONE) {
-               goto END;
-       }
-
-       /*set attrs*/
-       ret = mm_attrs_new(g_content_attrs, ARRAY_SIZE(g_content_attrs), "content", NULL, NULL, &attrs);
-       if (ret) {
-               debug_error(DEBUG, "attribute internal error.\n");
-               ret = FILEINFO_ERROR_FILE_INTERNAL;
-               goto END;
-       }
-
-       parse.type = MM_FILE_PARSE_TYPE_SAFE;
-       ret = _get_contents_info(attrs, &src, &parse);
-       if (ret != FILEINFO_ERROR_NONE) {
-               mm_attrs_free(attrs);
-               attrs = NULL;
-               debug_error(DEBUG, "failed to get contents: %s\n", filename);
-       }
-
-       *contents_attrs = attrs;
-
-END:
-#ifdef __MMFILE_DYN_LOADING__
-       _unload_dynamic_functions(&func_handle);
-#endif
-
-       debug_fleave(RELEASE);
-
-       return ret;
+       return __create_content_attrs(contents_attrs, filename, MM_FILE_PARSE_TYPE_SAFE);
 }
 
 EXPORT_API