[ACR-1838] Deprecate all bookmark and playlist funtions
[platform/core/api/media-content.git] / src / media_playlist.c
index 172bbbb..fce4acc 100755 (executable)
 #include <media_info_private.h>
 #include <media_util_private.h>
 
+// LCOV_EXCL_START
 static void __media_playlist_item_free(gpointer item)
 {
        media_playlist_item_s *_item = (media_playlist_item_s *)item;
-       SAFE_FREE(_item->media_id);
-       SAFE_FREE(_item->playlist_name);
-       SAFE_FREE(_item->thumbnail_path);
-       SAFE_FREE(_item);
+
+       g_free(_item->media_id);
+       g_free(_item->playlist_name);
+       g_free(_item->thumbnail_path);
+       g_free(_item);
 }
 
 static void __media_playlist_item_release(media_playlist_s *playlist)
@@ -187,7 +189,6 @@ static int __media_playlist_import_item_from_file(const char *playlist_path, GSL
 {
        int tmp_str_len = 0;
        char tmp_str[MAX_PATH_LEN] = {0, };
-       char repl_item[MAX_PATH_LEN] = {0, };
        FILE *fp = NULL;
 
        fp = fopen(playlist_path, "rb");
@@ -197,22 +198,19 @@ static int __media_playlist_import_item_from_file(const char *playlist_path, GSL
        }
 
        while (fgets(tmp_str, MAX_PATH_LEN, fp) != NULL) {
-               memset(repl_item, 0, sizeof(repl_item));
-               _media_content_replace_path(tmp_str, repl_item);
-
-               tmp_str_len = strlen(repl_item);
+               tmp_str_len = strlen(tmp_str);
                /* Check for empty file */
                if (tmp_str_len <= 1)
                        continue;
 
-               if (repl_item[0] == '#')
+               if (tmp_str[0] == '#')
                        continue;
 
 
-               if (repl_item[tmp_str_len - 1] == '\n')
-                       repl_item[tmp_str_len - 1] = '\0';
+               if (tmp_str[tmp_str_len - 1] == '\n')
+                       tmp_str[tmp_str_len - 1] = '\0';
 
-               *item_list = g_slist_append(*item_list, g_strdup(repl_item));
+               *item_list = g_slist_append(*item_list, g_strdup(tmp_str));
        }
 
        fclose(fp);
@@ -222,17 +220,18 @@ static int __media_playlist_import_item_from_file(const char *playlist_path, GSL
 
 int media_playlist_insert_to_db(const char *name, media_playlist_h *playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_insert_to_db() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        int playlist_id = 0;
 
        content_retip_if_fail(STRING_VALID(name));
+       content_retip_if_fail(playlist);
 
-       media_playlist_s *_playlist = (media_playlist_s *)calloc(1, sizeof(media_playlist_s));
-       content_retvm_if(_playlist == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       media_playlist_s *_playlist = g_new0(media_playlist_s, 1);
 
        ret = __media_playlist_insert_playlist_record(name, &playlist_id);
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
-               SAFE_FREE(_playlist);
+               g_free(_playlist);
                return ret;
        }
 
@@ -246,6 +245,7 @@ int media_playlist_insert_to_db(const char *name, media_playlist_h *playlist)
 
 int media_playlist_delete_from_db(int playlist_id)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_delete_from_db() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        char *query_str = NULL;
 
@@ -261,6 +261,7 @@ int media_playlist_delete_from_db(int playlist_id)
 
 int media_playlist_get_playlist_count_from_db(filter_h filter, int *playlist_count)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_playlist_count_from_db() is deprecated and will be removed from next release.");
        content_retip_if_fail(playlist_count);
 
        return _media_db_get_group_count(filter, MEDIA_GROUP_PLAYLIST, playlist_count);
@@ -268,6 +269,7 @@ int media_playlist_get_playlist_count_from_db(filter_h filter, int *playlist_cou
 
 int media_playlist_foreach_playlist_from_db(filter_h filter, media_playlist_cb callback, void *user_data)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_foreach_playlist_from_db() is deprecated and will be removed from next release.");
        content_retip_if_fail(callback);
 
        return _media_db_get_playlist(filter, callback, user_data);
@@ -275,6 +277,7 @@ int media_playlist_foreach_playlist_from_db(filter_h filter, media_playlist_cb c
 
 int media_playlist_get_media_count_from_db(int playlist_id, filter_h filter, int *media_count)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_media_count_from_db() is deprecated and will be removed from next release.");
        content_retip_if_fail(media_count);
        content_retipm_if_fail(playlist_id > 0, "%d", playlist_id);
 
@@ -283,6 +286,7 @@ int media_playlist_get_media_count_from_db(int playlist_id, filter_h filter, int
 
 int media_playlist_foreach_media_from_db(int playlist_id, filter_h filter, playlist_member_cb callback, void *user_data)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_foreach_media_from_db() is deprecated and will be removed from next release.");
        content_retip_if_fail(callback);
        content_retipm_if_fail(playlist_id > 0, "%d", playlist_id);
 
@@ -291,23 +295,29 @@ int media_playlist_foreach_media_from_db(int playlist_id, filter_h filter, playl
 
 int media_playlist_destroy(media_playlist_h playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_destroy() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
+
        content_retip_if_fail(playlist);
 
-       SAFE_FREE(_playlist->name);
-       SAFE_FREE(_playlist->thumbnail_path);
-       SAFE_FREE(_playlist);
+       __media_playlist_item_release(_playlist);
+
+       g_free(_playlist->name);
+       g_free(_playlist->thumbnail_path);
+       g_free(_playlist);
 
        return MEDIA_CONTENT_ERROR_NONE;
 }
 
 int media_playlist_clone(media_playlist_h *dst, media_playlist_h src)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_clone() is deprecated and will be removed from next release.");
        media_playlist_s *_src = (media_playlist_s *)src;
-       content_retip_if_fail(_src);
 
-       media_playlist_s *_dst = (media_playlist_s *)calloc(1, sizeof(media_playlist_s));
-       content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       content_retip_if_fail(dst);
+       content_retip_if_fail(src);
+
+       media_playlist_s *_dst = g_new0(media_playlist_s, 1);
 
        _dst->playlist_id = _src->playlist_id;
        _dst->name = g_strdup(_src->name);
@@ -319,11 +329,13 @@ int media_playlist_clone(media_playlist_h *dst, media_playlist_h src)
 
 int media_playlist_get_playlist_from_db(int playlist_id, media_playlist_h *playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_playlist_from_db() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
        char *query = NULL;
 
        content_retipm_if_fail(playlist_id > 0, "%d", playlist_id);
+       content_retip_if_fail(playlist);
 
        query = sqlite3_mprintf(SELECT_PLAYLIST_FROM_PLAYLIST, playlist_id);
 
@@ -334,12 +346,7 @@ int media_playlist_get_playlist_from_db(int playlist_id, media_playlist_h *playl
        media_playlist_s *_playlist = NULL;
 
        if (sqlite3_step(stmt) == SQLITE_ROW) {
-               _playlist = (media_playlist_s *)calloc(1, sizeof(media_playlist_s));
-               if (_playlist == NULL) {
-                       content_error("Out of memory");
-                       SQLITE3_FINALIZE(stmt);
-                       return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
-               }
+               _playlist = g_new0(media_playlist_s, 1);
 
                _playlist->playlist_id = playlist_id;
                _playlist->name = g_strdup((const char *)sqlite3_column_text(stmt, 0));
@@ -358,7 +365,9 @@ int media_playlist_get_playlist_from_db(int playlist_id, media_playlist_h *playl
 
 int media_playlist_get_playlist_id(media_playlist_h playlist, int *playlist_id)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_playlist_id() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
+
        content_retip_if_fail(playlist);
        content_retip_if_fail(playlist_id);
 
@@ -369,7 +378,9 @@ int media_playlist_get_playlist_id(media_playlist_h playlist, int *playlist_id)
 
 int media_playlist_get_name(media_playlist_h playlist, char **name)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_name() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
+
        content_retip_if_fail(playlist);
        content_retip_if_fail(name);
 
@@ -380,7 +391,9 @@ int media_playlist_get_name(media_playlist_h playlist, char **name)
 
 int media_playlist_get_thumbnail_path(media_playlist_h playlist, char **path)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_thumbnail_path() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
+
        content_retip_if_fail(playlist);
        content_retip_if_fail(path);
 
@@ -391,6 +404,7 @@ int media_playlist_get_thumbnail_path(media_playlist_h playlist, char **path)
 
 int media_playlist_get_play_order(media_playlist_h playlist, int playlist_member_id, int *play_order)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_play_order() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        sqlite3_stmt *stmt = NULL;
@@ -415,16 +429,16 @@ int media_playlist_get_play_order(media_playlist_h playlist, int playlist_member
 
 int media_playlist_set_name(media_playlist_h playlist, const char *playlist_name)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_set_name() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        media_playlist_item_s *item = NULL;
 
        content_retip_if_fail(playlist);
        content_retip_if_fail(STRING_VALID(playlist_name));
 
-       SAFE_FREE(_playlist->name);
+       g_free(_playlist->name);
 
-       item = (media_playlist_item_s *)calloc(1, sizeof(media_playlist_item_s));
-       content_retvm_if(item == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       item = g_new0(media_playlist_item_s, 1);
 
        item->playlist_name = g_strdup(playlist_name);
        item->function = MEDIA_PLAYLIST_UPDATE_PLAYLIST_NAME;
@@ -437,16 +451,16 @@ int media_playlist_set_name(media_playlist_h playlist, const char *playlist_name
 
 int media_playlist_set_thumbnail_path(media_playlist_h playlist, const char *path)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_set_thumbnail_path() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        media_playlist_item_s *item = NULL;
 
        content_retip_if_fail(playlist);
        content_retip_if_fail(STRING_VALID(path));
 
-       SAFE_FREE(_playlist->thumbnail_path);
+       g_free(_playlist->thumbnail_path);
 
-       item = (media_playlist_item_s *)calloc(1, sizeof(media_playlist_item_s));
-       content_retvm_if(item == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       item = g_new0(media_playlist_item_s, 1);
 
        item->thumbnail_path = g_strdup(path);
        item->function = MEDIA_PLAYLIST_UPDATE_THUMBNAIL_PATH;
@@ -459,6 +473,7 @@ int media_playlist_set_thumbnail_path(media_playlist_h playlist, const char *pat
 
 int media_playlist_set_play_order(media_playlist_h playlist, int playlist_member_id, int play_order)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_set_play_order() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        media_playlist_item_s *item = NULL;
 
@@ -466,8 +481,7 @@ int media_playlist_set_play_order(media_playlist_h playlist, int playlist_member
        content_retipm_if_fail(playlist_member_id > 0, "%d", playlist_member_id);
        content_retipm_if_fail(play_order >= 0, "%d", play_order);
 
-       item = (media_playlist_item_s *)calloc(1, sizeof(media_playlist_item_s));
-       content_retvm_if(item == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       item = g_new0(media_playlist_item_s, 1);
 
        item->playlist_member_id = playlist_member_id;
        item->function = MEDIA_PLAYLIST_UPDATE_PLAY_ORDER;
@@ -480,14 +494,14 @@ int media_playlist_set_play_order(media_playlist_h playlist, int playlist_member
 
 int media_playlist_add_media(media_playlist_h playlist, const char *media_id)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_add_media() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        media_playlist_item_s *item = NULL;
 
        content_retip_if_fail(playlist);
        content_retip_if_fail(STRING_VALID(media_id));
 
-       item = (media_playlist_item_s *)calloc(1, sizeof(media_playlist_item_s));
-       content_retvm_if(item == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       item = g_new0(media_playlist_item_s, 1);
 
        item->media_id = g_strdup(media_id);
        item->function = MEDIA_PLAYLIST_ADD;
@@ -499,14 +513,14 @@ int media_playlist_add_media(media_playlist_h playlist, const char *media_id)
 
 int media_playlist_remove_media(media_playlist_h playlist, int playlist_member_id)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_remove_media() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        media_playlist_item_s *item = NULL;
 
        content_retip_if_fail(playlist);
        content_retipm_if_fail(playlist_member_id > 0, "%d", playlist_member_id);
 
-       item = (media_playlist_item_s *)calloc(1, sizeof(media_playlist_item_s));
-       content_retvm_if(item == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       item = g_new0(media_playlist_item_s, 1);
 
        item->playlist_member_id = playlist_member_id;
        item->function = MEDIA_PLAYLIST_REMOVE;
@@ -556,6 +570,7 @@ void __media_playlist_foreach_request(gpointer data, gpointer user_data)
 
 int media_playlist_update_to_db(media_playlist_h playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_update_to_db() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
 
@@ -576,7 +591,9 @@ static int __media_playlist_get_media_id_by_path(const char *path, char **media_
        int ret = MEDIA_CONTENT_ERROR_NONE;
        char *query = NULL;
        sqlite3_stmt *stmt = NULL;
+
        content_retip_if_fail(path);
+       content_retip_if_fail(media_id);
 
 #ifdef _USE_TVPD_MODE
        query = sqlite3_mprintf("SELECT media_id FROM '%q' WHERE media_path='%q'", DB_VIEW_MEDIA, path);
@@ -618,20 +635,17 @@ static void __media_playlist_foreach_item(gpointer item, gpointer user_data)
 
 int media_playlist_import_from_file(const char *path, const char *playlist_name, media_playlist_h *playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_import_from_file() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        GSList *item_list = NULL;
-       char repl_path[MAX_PATH_LEN] = {0, };
 
        content_retip_if_fail(STRING_VALID(path));
        content_retip_if_fail(STRING_VALID(playlist_name));
 
-       ret = _media_content_replace_path(path, repl_path);
-       content_retvm_if(!STRING_VALID(repl_path), MEDIA_CONTENT_ERROR_INVALID_OPERATION, "path replacement failed");
-
        ret = media_playlist_insert_to_db(playlist_name, playlist);
        content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "media_playlist_insert_to_db fail");
 
-       ret = __media_playlist_import_item_from_file(repl_path, &item_list);
+       ret = __media_playlist_import_item_from_file(path, &item_list);
        content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "Fail to get playlist from file");
 
        g_slist_foreach(item_list, __media_playlist_foreach_item, playlist);
@@ -644,41 +658,39 @@ int media_playlist_import_from_file(const char *path, const char *playlist_name,
 
 int media_playlist_export_to_file(media_playlist_h playlist, const char *path)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_export_to_file() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        GList *item_list = NULL;
-       unsigned int idx = 0;
-       char repl_path[MAX_PATH_LEN] = {0, };
+       GList *iter = NULL;
+       char *item = NULL;
 
        content_retip_if_fail(STRING_VALID(path));
        content_retip_if_fail(playlist);
        content_retipm_if_fail(_playlist->playlist_id > 0, "%d", _playlist->playlist_id);
 
-       ret = _media_content_replace_path(path, repl_path);
-       content_retvm_if(!STRING_VALID(repl_path), MEDIA_CONTENT_ERROR_INVALID_OPERATION, "path replacement failed");
-
        ret = _media_db_get_playlist_item(_playlist->playlist_id, NULL, __media_playlist_member_cb, &item_list);
        content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "_media_db_get_playlist_item fail");
 
-       ret = __media_playlist_reset_file(repl_path);
+       ret = __media_playlist_reset_file(path);
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
-               g_list_free_full(item_list, g_free);
                content_error("Fail to init playlist file");
-               return ret;
+               goto FINALIZE;
        }
 
-       for (idx = 0; idx < g_list_length(item_list); idx++) {
-               char *item = g_list_nth_data(item_list, idx);
-               if (STRING_VALID(item)) {
-                       ret = __media_playlist_append_to_file(repl_path, item);
-                       if (ret != MEDIA_CONTENT_ERROR_NONE) {
-                               g_list_free_full(item_list, g_free);
-                               content_error("Fail to export paths into file");
-                               return ret;
-                       }
+       for (iter = item_list; iter; iter = g_list_next(iter)) {
+               item = (char *)iter->data;
+               if (!STRING_VALID(item))
+                       continue;
+
+               ret = __media_playlist_append_to_file(path, item);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       content_error("Fail to export paths into file");
+                       goto FINALIZE;
                }
        }
 
+FINALIZE:
        g_list_free_full(item_list, g_free);
 
        return ret;
@@ -686,10 +698,10 @@ int media_playlist_export_to_file(media_playlist_h playlist, const char *path)
 
 int media_playlist_create(media_playlist_h *playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_create() is deprecated and will be removed from next release.");
        content_retip_if_fail(playlist);
 
-       media_playlist_s *_playlist = (media_playlist_s *)calloc(1, sizeof(media_playlist_s));
-       content_retvm_if(_playlist == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       media_playlist_s *_playlist = g_new0(media_playlist_s, 1);
 
        _playlist->playlist_id = -1;
        _playlist->name = NULL;
@@ -703,6 +715,7 @@ int media_playlist_create(media_playlist_h *playlist)
 
 int media_playlist_get_play_order_v2(int playlist_id, int playlist_member_id, int *play_order)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_get_play_order_v2() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
        char *query = NULL;
@@ -727,6 +740,7 @@ int media_playlist_get_play_order_v2(int playlist_id, int playlist_member_id, in
 
 int media_playlist_insert_to_db_v2(media_playlist_h playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_insert_to_db_v2() is deprecated and will be removed from next release.");
        int ret = MEDIA_CONTENT_ERROR_NONE;
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        int playlist_id = 0;
@@ -748,6 +762,7 @@ int media_playlist_insert_to_db_v2(media_playlist_h playlist)
 
 int media_playlist_update_to_db_v2(int playlist_id, media_playlist_h playlist)
 {
+       content_warn("DEPRECATION WARNING: media_playlist_update_to_db_v2() is deprecated and will be removed from next release.");
        media_playlist_s *_playlist = (media_playlist_s *)playlist;
        content_retip_if_fail(playlist);
 
@@ -755,3 +770,4 @@ int media_playlist_update_to_db_v2(int playlist_id, media_playlist_h playlist)
 
        return media_playlist_update_to_db(playlist);
 }
+// LCOV_EXCL_STOP