X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmedia_playlist.c;h=40be502adaf7cfa489850a9c1827b5db2fb9cb41;hb=323c1d4fff03eb0cdf841ff3494d723de4578177;hp=5131e16a240acf278ad542c25969d886f8aab4f9;hpb=e56787b79239f527a999d0fa3a50917288bf2a3d;p=platform%2Fcore%2Fapi%2Fmedia-content.git diff --git a/src/media_playlist.c b/src/media_playlist.c index 5131e16..40be502 100755 --- a/src/media_playlist.c +++ b/src/media_playlist.c @@ -84,11 +84,11 @@ static int __media_playlist_insert_playlist_record(const char *playlist_name, in select_query = sqlite3_mprintf(SELECT_PLAYLIST_ID_FROM_PLAYLIST, playlist_name); - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); + ret = _content_get_result(select_query, &stmt); SQLITE3_SAFE_FREE(select_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - while (sqlite3_step(stmt) == SQLITE_ROW) + if (sqlite3_step(stmt) == SQLITE_ROW) *playlist_id = (int)sqlite3_column_int(stmt, 0); SQLITE3_FINALIZE(stmt); @@ -109,21 +109,20 @@ static int __media_playlist_insert_item_to_playlist(int playlist_id, const char snprintf(select_query, sizeof(select_query), SELECT_MAX_PLAY_ORDER_FROM_PLAYLIST_VIEW, playlist_id); /* get the max play_order */ - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); + ret = _content_get_result(select_query, &stmt); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - while (sqlite3_step(stmt) == SQLITE_ROW) + if (sqlite3_step(stmt) == SQLITE_ROW) play_order = (int)sqlite3_column_int(stmt, 0); SQLITE3_FINALIZE(stmt); ++play_order; - query_str = sqlite3_mprintf("INSERT INTO %q (playlist_id, media_uuid, play_order) values (%d, '%q', %d);", - DB_TABLE_PLAYLIST_MAP, playlist_id, media_id, play_order); - ret = media_svc_append_query(query_str, tzplatform_getuid(TZ_USER_NAME)); + query_str = sqlite3_mprintf(INSERT_PLAYLIST_ITEM_TO_PLAYLIST_MAP, playlist_id, media_id, play_order); + ret = media_svc_append_query(query_str, _content_get_uid()); - return _content_error_capi(MEDIA_CONTENT_TYPE, ret); + return _content_error_capi(ret); } static int __media_playlist_remove_item_from_playlist(int playlist_id, int playlist_member_id) @@ -132,9 +131,9 @@ static int __media_playlist_remove_item_from_playlist(int playlist_id, int playl char *query_str = NULL; query_str = sqlite3_mprintf(REMOVE_PLAYLIST_ITEM_FROM_PLAYLIST_MAP, playlist_id, playlist_member_id); - ret = media_svc_append_query(query_str, tzplatform_getuid(TZ_USER_NAME)); + ret = media_svc_append_query(query_str, _content_get_uid()); - return _content_error_capi(MEDIA_CONTENT_TYPE, ret); + return _content_error_capi(ret); } static int __media_playlist_update_playlist_name(int playlist_id, const char *playlist_name) @@ -143,9 +142,9 @@ static int __media_playlist_update_playlist_name(int playlist_id, const char *pl char *query_str = NULL; query_str = sqlite3_mprintf(UPDATE_PLAYLIST_NAME_FROM_PLAYLIST, playlist_name, playlist_id); - ret = media_svc_append_query(query_str, tzplatform_getuid(TZ_USER_NAME)); + ret = media_svc_append_query(query_str, _content_get_uid()); - return _content_error_capi(MEDIA_CONTENT_TYPE, ret); + return _content_error_capi(ret); } static int __media_playlist_update_thumbnail_path(int playlist_id, const char *path) @@ -154,9 +153,9 @@ static int __media_playlist_update_thumbnail_path(int playlist_id, const char *p char *query_str = NULL; query_str = sqlite3_mprintf(UPDATE_PLAYLIST_THUMBNAIL_FROM_PLAYLIST, path, playlist_id); - ret = media_svc_append_query(query_str, tzplatform_getuid(TZ_USER_NAME)); + ret = media_svc_append_query(query_str, _content_get_uid()); - return _content_error_capi(MEDIA_CONTENT_TYPE, ret); + return _content_error_capi(ret); } static int __media_playlist_update_play_order(int playlist_id, int playlist_member_id, int play_order) @@ -165,9 +164,9 @@ static int __media_playlist_update_play_order(int playlist_id, int playlist_memb char *query_str = NULL; query_str = sqlite3_mprintf(UPDATE_PLAYLIST_ORDER_FROM_PLAYLIST_MAP, play_order, playlist_id, playlist_member_id); - ret = media_svc_append_query(query_str, tzplatform_getuid(TZ_USER_NAME)); + ret = media_svc_append_query(query_str, _content_get_uid()); - return _content_error_capi(MEDIA_CONTENT_TYPE, ret); + return _content_error_capi(ret); } static bool __media_playlist_media_info_cb(media_info_h media, void *user_data) @@ -241,16 +240,24 @@ static int __media_playlist_import_item_from_file(const char* playlist_path, cha fp = fopen(playlist_path, "rb"); media_content_retvm_if(fp == NULL, MEDIA_CONTENT_ERROR_INVALID_OPERATION, "fopen fail"); - fseek(fp, 0, SEEK_END); + if (fseek(fp, 0, SEEK_END) < 0) { + media_content_stderror("fseek failed"); + fclose(fp); + return MEDIA_CONTENT_ERROR_INVALID_OPERATION; + } file_size = ftell(fp); - fseek(fp, 0 , SEEK_SET); - if (file_size == 0) { media_content_debug("file is empty."); fclose(fp); return MEDIA_CONTENT_ERROR_NONE; } + if (fseek(fp, 0, SEEK_SET) < 0) { + media_content_stderror("fseek failed"); + fclose(fp); + return MEDIA_CONTENT_ERROR_INVALID_OPERATION; + } + *item_list = calloc(current_max_size, sizeof(char*)); if (*item_list == NULL) { fclose(fp); @@ -499,15 +506,12 @@ int media_playlist_get_playlist_from_db(int playlist_id, media_playlist_h *playl snprintf(select_query, sizeof(select_query), SELECT_PLAYLIST_FROM_PLAYLIST, playlist_id); - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); + ret = _content_get_result(select_query, &stmt); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); media_playlist_s *_playlist = NULL; - while (sqlite3_step(stmt) == SQLITE_ROW) { - if (_playlist) - media_playlist_destroy((media_playlist_h)_playlist); - + if (sqlite3_step(stmt) == SQLITE_ROW) { _playlist = (media_playlist_s*)calloc(1, sizeof(media_playlist_s)); if (_playlist == NULL) { media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY); @@ -515,11 +519,14 @@ int media_playlist_get_playlist_from_db(int playlist_id, media_playlist_h *playl return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY; } - _playlist->playlist_id = (int)sqlite3_column_int(stmt, 0); - _playlist->name = g_strdup((const char *)sqlite3_column_text(stmt, 1)); - _playlist->thumbnail_path = g_strdup((const char *)sqlite3_column_text(stmt, 3)); + _playlist->playlist_id = playlist_id; + _playlist->name = g_strdup((const char *)sqlite3_column_text(stmt, 0)); + _playlist->thumbnail_path = g_strdup((const char *)sqlite3_column_text(stmt, 1)); *playlist = (media_playlist_h)_playlist; + } else { + media_content_error("Nonexistent playlist id[%d]", playlist_id); + ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER; } SQLITE3_FINALIZE(stmt); @@ -608,10 +615,10 @@ int media_playlist_get_play_order(media_playlist_h playlist, int playlist_member snprintf(select_query, sizeof(select_query), SELECT_PLAY_ORDER_FROM_PLAYLIST_VIEW, playlist_id, playlist_member_id); - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); + ret = _content_get_result(select_query, &stmt); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - while (sqlite3_step(stmt) == SQLITE_ROW) + if (sqlite3_step(stmt) == SQLITE_ROW) *play_order = (int)sqlite3_column_int(stmt, 0); SQLITE3_FINALIZE(stmt); @@ -819,13 +826,17 @@ int media_playlist_update_to_db(media_playlist_h playlist) default: break; } + + if (ret != MEDIA_CONTENT_ERROR_NONE) + media_content_error("Failed some operation[%d]", _playlist_item->function); } + } - ret = media_svc_send_query(tzplatform_getuid(TZ_USER_NAME)); + ret = media_svc_send_query(_content_get_uid()); __media_playlist_item_release(_playlist); - return _content_error_capi(MEDIA_CONTENT_TYPE, ret); + return _content_error_capi(ret); } int media_playlist_import_from_file(const char *path, const char *playlist_name, media_playlist_h *playlist) @@ -867,7 +878,7 @@ int media_playlist_import_from_file(const char *path, const char *playlist_name, media_content_error("error media_filter_create"); return ret; } - condition = sqlite3_mprintf("path = '%q'", import_item_list[idx]); + condition = sqlite3_mprintf("media_path = '%q'", import_item_list[idx]); ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT); if (ret != MEDIA_CONTENT_ERROR_NONE) { __media_playlist_destroy_import_item(import_item_list, import_item_count); @@ -917,7 +928,6 @@ int media_playlist_export_to_file(media_playlist_h playlist, const char* path) GList *item_list = NULL; unsigned int idx = 0; char repl_path[MAX_PATH_LEN] = {0, }; - char repl_item[MAX_QUERY_SIZE] = {0, }; media_content_retvm_if(!STRING_VALID(path), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid path"); media_content_retvm_if(_playlist == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid playlist"); @@ -938,14 +948,13 @@ int media_playlist_export_to_file(media_playlist_h playlist, const char* path) for (idx = 0; idx < g_list_length(item_list); idx++) { char *item = g_list_nth_data(item_list, idx); - memset(repl_item, 0, sizeof(repl_item)); - ret = _media_content_rollback_path(item, repl_item); - - ret = __media_playlist_append_to_file(repl_path, repl_item); - if (ret != MEDIA_CONTENT_ERROR_NONE) { - g_list_free_full(item_list, __media_playlist_destroy_export_item); - media_content_error("Fail to export paths into file"); - return ret; + 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, __media_playlist_destroy_export_item); + media_content_error("Fail to export paths into file"); + return ret; + } } } @@ -988,10 +997,10 @@ int media_playlist_get_play_order_v2(int playlist_id, int playlist_member_id, in snprintf(select_query, sizeof(select_query), SELECT_PLAY_ORDER_FROM_PLAYLIST_VIEW, playlist_id, playlist_member_id); - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); + ret = _content_get_result(select_query, &stmt); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - while (sqlite3_step(stmt) == SQLITE_ROW) + if (sqlite3_step(stmt) == SQLITE_ROW) *play_order = (int)sqlite3_column_int(stmt, 0); SQLITE3_FINALIZE(stmt); @@ -1027,7 +1036,6 @@ int media_playlist_update_to_db_v2(int playlist_id, media_playlist_h playlist) media_playlist_s *_playlist = (media_playlist_s*)playlist; media_content_retvm_if(_playlist == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid playlist"); - media_content_retvm_if(!STRING_VALID(_playlist->name), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid playlist name"); _playlist->playlist_id = playlist_id;