Use filename instead of path 14/305814/1 accepted/tizen/unified/20240214.163957 accepted/tizen/unified/x/20240219.013852
authorminje.ahn <minje.ahn@samsung.com>
Thu, 8 Feb 2024 06:56:22 +0000 (15:56 +0900)
committerminje.ahn <minje.ahn@samsung.com>
Thu, 8 Feb 2024 06:56:22 +0000 (15:56 +0900)
Use file name instead of full path.
It reduces duplicate function calls.

Change-Id: I1faade4c99edf1aaee2495e0e62424ace62e59c8
Signed-off-by: minje.ahn <minje.ahn@samsung.com>
src/common/media-svc-util.c
src/common/media-svc.c
src/include/common/media-svc-util.h

index f4997a6..bc2df0c 100644 (file)
@@ -318,22 +318,18 @@ static int __media_svc_save_image(unsigned char *image, unsigned int size, char
        return MS_MEDIA_ERR_NONE;
 }
 
-static char *__media_svc_get_title_from_filepath(const char *path)
+static char *__media_svc_get_title_from_filename(const char *filename)
 {
-       char *filename = NULL;
        char *title = NULL;
        char *last_dot = NULL;
 
-       media_svc_retvm_if(!STRING_VALID(path), NULL, "Invalid path");
-
-       filename = g_path_get_basename(path);
+       media_svc_retvm_if(!STRING_VALID(filename), g_strdup(MEDIA_SVC_TAG_UNKNOWN), "Invalid path");
 
        last_dot = strrchr(filename, '.');
        if (last_dot) {
                title = g_strndup(filename, last_dot - filename);
-               g_free(filename);
        } else {
-               title = filename;
+               title = g_strdup(filename);
        }
 
        media_svc_debug("extract title is [%s]", title);
@@ -454,12 +450,11 @@ int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char
        return MS_MEDIA_ERR_NONE;
 }
 
-static char * __media_svc_get_title(MMHandleType tag, const char *path)
+static char * __media_svc_get_title(MMHandleType tag, const char *filename)
 {
        int ret = FILEINFO_ERROR_NONE;
        char *p = NULL;
        int size = 0;
-       char *title = NULL;
 
        if (tag) {
                ret = mm_file_get_attrs(tag, MM_FILE_TAG_TITLE, &p, &size, NULL);
@@ -471,19 +466,13 @@ static char * __media_svc_get_title(MMHandleType tag, const char *path)
                }
        }
 
-       title = __media_svc_get_title_from_filepath(path);
-       if (title)
-               return title;
-
-       media_svc_error("Can't extract title");
-
-       return g_strdup(MEDIA_SVC_TAG_UNKNOWN);
+       return __media_svc_get_title_from_filename(filename);
 }
 
-char * _media_svc_get_title_by_path(const char *path)
+char * _media_svc_get_title_from_filename(const char *filename)
 {
        /* No MMHandleType in media-svc.c */
-       return __media_svc_get_title(NULL, path);
+       return __media_svc_get_title_from_filename(filename);
 }
 
 int _media_svc_extract_image_metadata(media_svc_content_info_s *content_info)
@@ -502,7 +491,7 @@ int _media_svc_extract_image_metadata(media_svc_content_info_s *content_info)
        media_svc_retvm_if(!STRING_VALID(content_info->path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid path");
 
        path = content_info->path;
-       content_info->media_meta.title = __media_svc_get_title(NULL, path);
+       content_info->media_meta.title = __media_svc_get_title_from_filename(content_info->file_name);
 
        /* Not used. But to preserved the behavior, set MEDIA_SVC_TAG_UNKNOWN. */
        content_info->media_meta.album = g_strdup(MEDIA_SVC_TAG_UNKNOWN);
@@ -616,7 +605,7 @@ int _media_svc_extract_audio_metadata(sqlite3 *handle, bool is_direct, media_svc
                mmf_error = mm_file_create_tag_attrs_no_albumart(&tag, content_info->path);
 
        if (mmf_error == FILEINFO_ERROR_NONE) {
-               content_info->media_meta.title = __media_svc_get_title(tag, content_info->path);
+               content_info->media_meta.title = __media_svc_get_title(tag, content_info->file_name);
                content_info->media_meta.album = __media_svc_get_tag_str_value(tag, MM_FILE_TAG_ALBUM);
                content_info->media_meta.artist = __media_svc_get_tag_str_value(tag, MM_FILE_TAG_ARTIST);
                content_info->media_meta.album_artist = __media_svc_get_tag_str_value(tag, MM_FILE_TAG_ALBUM_ARTIST);
@@ -701,7 +690,7 @@ int _media_svc_extract_audio_metadata(sqlite3 *handle, bool is_direct, media_svc
                if (mmf_error != FILEINFO_ERROR_NONE)
                        media_svc_error("fail to free tag attr - err(%x)", mmf_error);
        }       else {
-               content_info->media_meta.title = __media_svc_get_title(NULL, content_info->path);
+               content_info->media_meta.title = __media_svc_get_title_from_filename(content_info->file_name);
                content_info->album_id = album_id;
        }
 
@@ -747,7 +736,7 @@ int _media_svc_extract_video_metadata(media_svc_content_info_s *content_info)
 
        mm_file_destroy_content_attrs(content);
 
-       content_info->media_meta.title = __media_svc_get_title(NULL, content_info->path);
+       content_info->media_meta.title = __media_svc_get_title_from_filename(content_info->file_name);
        content_info->media_meta.album = g_strdup(MEDIA_SVC_TAG_UNKNOWN);
        content_info->media_meta.artist = g_strdup(MEDIA_SVC_TAG_UNKNOWN);
        content_info->media_meta.album_artist = g_strdup(MEDIA_SVC_TAG_UNKNOWN);
index 1c5cad7..33a2a2f 100755 (executable)
@@ -217,12 +217,12 @@ int media_svc_insert_item_bulk(sqlite3 *handle, const char *storage_id, const ch
                /* The 'TITLE' should always be filled in */
                if (!content_info.media_meta.title || strlen(content_info.media_meta.title) == 0) {
                        g_free(content_info.media_meta.title);
-                       content_info.media_meta.title = _media_svc_get_title_by_path(content_info.path);
+                       content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
                }
                break;
        default:
                /* The 'TITLE' should always be filled in */
-               content_info.media_meta.title = _media_svc_get_title_by_path(content_info.path);
+               content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
                break;
        }
 
@@ -290,12 +290,12 @@ int media_svc_insert_item_immediately(sqlite3 *handle, const char *storage_id, c
                /* The 'TITLE' should always be filled in */
                if (!content_info.media_meta.title || strlen(content_info.media_meta.title) == 0) {
                        g_free(content_info.media_meta.title);
-                       content_info.media_meta.title = _media_svc_get_title_by_path(content_info.path);
+                       content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
                }
                break;
        default:
                /* The 'TITLE' should always be filled in */
-               content_info.media_meta.title = _media_svc_get_title_by_path(content_info.path);
+               content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
                break;
        }
 
@@ -503,12 +503,12 @@ int media_svc_refresh_item(sqlite3 *handle, bool is_direct, const char *storage_
                /* The 'TITLE' should always be filled in */
                if (!content_info.media_meta.title || strlen(content_info.media_meta.title) == 0) {
                        g_free(content_info.media_meta.title);
-                       content_info.media_meta.title = _media_svc_get_title_by_path(content_info.path);
+                       content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
                }
                break;
        default:
                /* The 'TITLE' should always be filled in */
-               content_info.media_meta.title = _media_svc_get_title_by_path(content_info.path);
+               content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
                break;
        }
 
index 6dd07e3..4936e2a 100755 (executable)
@@ -92,7 +92,7 @@ typedef enum {
 
 void _media_svc_remove_file(const char *path);
 int _media_svc_get_file_time(const char *full_path);
-char * _media_svc_get_title_by_path(const char *path);
+char * _media_svc_get_title_from_filename(const char *filename);
 int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char *storage_id, const char *path, bool refresh);
 int _media_svc_extract_image_metadata(media_svc_content_info_s *content_info);
 int _media_svc_extract_audio_metadata(sqlite3 *handle, bool is_direct, media_svc_content_info_s *content_info, uid_t uid);