From 1899ce3e55fad22cabd1fd536a2a75ae3af44210 Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Mon, 29 Apr 2019 13:28:08 +0900 Subject: [PATCH] Reinforce internal function 1. Use allocation instead of array in _media_db_get_storage_id_by_media_id() 2. Separate select query function 3. Incidental code cleanup Change-Id: I659a5e3e4e8b099afcbc9b8afca0a592885f178f Signed-off-by: Minje Ahn --- include/media_info_private.h | 5 +- include_product/media_info_private.h | 7 ++- src/media_bookmark.c | 6 +-- src/media_content.c | 82 ++++++++++++---------------- src/media_db.c | 100 ++++++++++++++++------------------- src/media_face.c | 4 +- src/media_folder.c | 2 +- src/media_group.c | 2 +- src/media_image.c | 7 ++- src/media_info.c | 27 +++++----- src/media_playlist.c | 10 ++-- src/media_pvr.c | 4 +- src/media_storage.c | 2 +- src/media_tag.c | 4 +- src/media_uhd.c | 4 +- 15 files changed, 120 insertions(+), 146 deletions(-) diff --git a/include/media_info_private.h b/include/media_info_private.h index d77ec79..f0ad5ee 100755 --- a/include/media_info_private.h +++ b/include/media_info_private.h @@ -509,7 +509,8 @@ typedef struct _media_content_cb_data { #define UPDATE_MEDIA_INFO_IN_FACE_SCAN_LIST "UPDATE "DB_TABLE_FACE_SCAN_LIST" SET modified_time = 0 WHERE media_id IN (SELECT media_id FROM "DB_TABLE_FACE" WHERE media_face_id=%d)" #define SELECT_FACE_ID "SELECT media_face_id FROM "DB_TABLE_FACE" WHERE media_id='%q' AND face_rect_x=%d AND face_rect_y=%d AND face_rect_w=%d AND face_rect_h=%d AND face_orientation=%d" -int _content_query_prepare(sqlite3_stmt **stmt, char *select_query, char *condition_query, char *option_query); +int _content_query_prepare(char *select_query, char *condition_query, char *option_query, sqlite3_stmt **stmt); +int _content_get_result(char *query, sqlite3_stmt **stmt); int _content_error_capi(int content_error); int _content_query_sql(char *query_str); sqlite3 * _content_get_db_handle(void); @@ -533,7 +534,7 @@ int _media_db_get_group_item(const char *group_name, filter_h filter, media_info int _media_db_get_media_group_item_count(const char *group_name, filter_h filter, media_group_e group, int *item_count); int _media_db_get_media_group_item(const char *group_name, filter_h filter, media_group_e group, media_info_cb callback, void *user_data); int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data); -int _media_db_get_storage_id_by_media_id(const char *media_id, char *storage_id); +int _media_db_get_storage_id_by_media_id(const char *media_id, char **storage_id); int _media_filter_attribute_generate(filter_h filter, char **generated_condition); int _media_filter_attribute_option_generate(filter_h filter, char **generated_option); diff --git a/include_product/media_info_private.h b/include_product/media_info_private.h index b51f128..f555acb 100755 --- a/include_product/media_info_private.h +++ b/include_product/media_info_private.h @@ -741,7 +741,8 @@ typedef struct _media_content_scan_cb_data_v2 { #define SELECT_UHD_FROM_UHD "SELECT * FROM "DB_TABLE_UHD" WHERE media_id='%q'" #define UPDATE_UHD_META_FROM_UHD "UPDATE "DB_TABLE_UHD" SET content_title=%Q, release_date=%Q, played_position=%d, sub_type=%d, played_count=%d WHERE media_id='%q'" -int _content_query_prepare(sqlite3_stmt **stmt, char *select_query, char *condition_query, char *option_query); +int _content_query_prepare(char *select_query, char *condition_query, char *option_query, sqlite3_stmt **stmt); +int _content_get_result(char *query, sqlite3_stmt **stmt); int _content_error_capi(int content_error); int _content_query_sql(char *query_str); sqlite3 * _content_get_db_handle(void); @@ -770,9 +771,7 @@ int _media_db_get_group_item_by_union_select(const char *group_name, filter_h fi int _media_db_get_media_group_item_count(const char *group_name, filter_h filter, media_group_e group, int *item_count); int _media_db_get_media_group_item(const char *group_name, filter_h filter, media_group_e group, media_info_cb callback, void *user_data); int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data); -int _media_db_get_storage_id_by_media_id(const char *media_id, char *storage_id); -int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data); -int _media_db_get_storage_id_by_media_id(const char *media_id, char *storage_id); +int _media_db_get_storage_id_by_media_id(const char *media_id, char **storage_id); int _media_db_get_pvr(filter_h filter, media_pvr_cb callback, void *user_data); void _media_pvr_item_get_detail(sqlite3_stmt* stmt, media_pvr_h pvr); int _media_db_get_pvr_group_item(const char *group_name, filter_h filter, media_group_e group, media_pvr_cb callback, void *user_data); diff --git a/src/media_bookmark.c b/src/media_bookmark.c index 96ae824..b252a40 100755 --- a/src/media_bookmark.c +++ b/src/media_bookmark.c @@ -17,8 +17,6 @@ #include -static int __media_bookmark_check_media_id(const char *media_id); - static int __media_bookmark_check_media_id(const char *media_id) { int ret = MEDIA_CONTENT_ERROR_NONE; @@ -29,7 +27,7 @@ static int __media_bookmark_check_media_id(const char *media_id) media_content_retvm_if(!STRING_VALID(media_id), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid media_id"); query_str = sqlite3_mprintf(SELECT_MEDIA_COUNT_FROM_MEDIA_BY_ID, media_id); - ret = _content_query_prepare(&stmt, query_str, NULL, NULL); + ret = _content_get_result(query_str, &stmt); SQLITE3_SAFE_FREE(query_str); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -346,7 +344,7 @@ int media_bookmark_insert_to_db_v2(media_bookmark_h bookmark) select_query = sqlite3_mprintf(SELECT_BOOKMARK_ID_FROM_BOOKMARK, _bookmark->media_id, _bookmark->marked_time); - 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); diff --git a/src/media_content.c b/src/media_content.c index 143df99..fe00189 100755 --- a/src/media_content.c +++ b/src/media_content.c @@ -36,14 +36,11 @@ uid_t _content_get_uid(void) return content_g_uid; } -int _content_query_prepare(sqlite3_stmt **stmt, char *select_query, char *condition_query, char *option_query) +int _content_query_prepare(char *select_query, char *condition_query, char *option_query, sqlite3_stmt **stmt) { - int len = 0; - int err = MEDIA_CONTENT_ERROR_NONE; - char query[MAX_QUERY_SIZE] = {0, }; - memset(query, '\0', sizeof(query)); + int ret = MEDIA_CONTENT_ERROR_NONE; + char *query = NULL; - media_content_retvm_if(db_handle == NULL, MEDIA_CONTENT_ERROR_DB_FAILED, "database is not connected"); media_content_retvm_if(!STRING_VALID(select_query), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid select_query"); if (!STRING_VALID(condition_query)) @@ -52,33 +49,31 @@ int _content_query_prepare(sqlite3_stmt **stmt, char *select_query, char *condit if (!STRING_VALID(option_query)) option_query = (char *)" "; - /*query = sqlite3_mprintf("%s %s %s", select_query, condition_query, option_query);*/ - len = snprintf(query, sizeof(query), "%s %s %s", select_query, condition_query, option_query); - if (len > 0 && len < sizeof(query)) - query[len] = '\0'; - else if (len >= sizeof(query)) - query[MAX_QUERY_SIZE -1] = '\0'; - else { - media_content_error("snprintf failed"); - return MEDIA_CONTENT_ERROR_INVALID_PARAMETER; - } + query = sqlite3_mprintf("%s %s %s", select_query, condition_query, option_query); + ret = _content_get_result(query, stmt); + SQLITE3_SAFE_FREE(query); - media_content_sec_debug("Query : [%s]", query); + return ret; +} + +int _content_get_result(char *query, sqlite3_stmt **stmt) +{ + int err = MEDIA_CONTENT_ERROR_NONE; + + media_content_retvm_if(db_handle == NULL, MEDIA_CONTENT_ERROR_DB_FAILED, "database is not connected"); + media_content_retvm_if(!STRING_VALID(query), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid query"); + + media_content_sec_debug("Query[%s]", query); err = sqlite3_prepare_v2(db_handle, query, strlen(query), stmt, NULL); if (err != SQLITE_OK) { - media_content_error("DB_FAILED(0x%08x) fail to sqlite3_prepare(), %s", MEDIA_CONTENT_ERROR_DB_FAILED, sqlite3_errmsg(db_handle)); - - if (err == SQLITE_BUSY) { - media_content_error(" BUSY ERROR"); + media_content_error("Failed to sqlite3_prepare_v2[%s]", sqlite3_errmsg(db_handle)); + if (err == SQLITE_BUSY) return MEDIA_CONTENT_ERROR_DB_BUSY; - } else if (err == SQLITE_PERM) { - media_content_error("PERMISSION EROR"); + else if (err == SQLITE_PERM) return MEDIA_CONTENT_ERROR_PERMISSION_DENIED; - } else { - media_content_error("OTHER ERROR"); + else return MEDIA_CONTENT_ERROR_DB_FAILED; - } } return MEDIA_CONTENT_ERROR_NONE; @@ -552,16 +547,19 @@ void _media_content_db_update_noti_cb( char *mime_type, void *user_data) { - int error_value = MEDIA_CONTENT_ERROR_NONE; - media_noti_cb_s *_noti_info = (media_noti_cb_s *)user_data; - if (_noti_info != NULL) { - if (_noti_info->update_noti_cb) - _noti_info->update_noti_cb(error_value, pid, item, update_type, content_type, uuid, path, mime_type, _noti_info->user_data); - } - - return; + if (_noti_info != NULL && _noti_info->update_noti_cb) + _noti_info->update_noti_cb( + MEDIA_CONTENT_ERROR_NONE, + pid, + item, + update_type, + content_type, + uuid, + path, + mime_type, + _noti_info->user_data); } int media_content_add_db_updated_cb(media_content_db_update_cb callback, void *user_data, media_content_noti_h *noti_handle) @@ -569,21 +567,11 @@ int media_content_add_db_updated_cb(media_content_db_update_cb callback, void *u int ret = MEDIA_CONTENT_ERROR_NONE; media_noti_cb_s *noti_info = NULL; - if (noti_handle == NULL) { - media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER); - return MEDIA_CONTENT_ERROR_INVALID_PARAMETER; - } - - if (callback == NULL) { - media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER); - return MEDIA_CONTENT_ERROR_INVALID_PARAMETER; - } + media_content_retvm_if(noti_handle == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "handle is NULL"); + media_content_retvm_if(callback == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "callback is NULL"); noti_info = (media_noti_cb_s *)calloc(1, sizeof(media_noti_cb_s)); - if (noti_info == NULL) { - media_content_error("Failed to create noti info"); - return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY; - } + media_content_retvm_if(noti_info == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "Failed to create noti info"); noti_info->update_noti_cb = callback; noti_info->user_data = user_data; diff --git a/src/media_db.c b/src/media_db.c index 8169166..8bfc59e 100755 --- a/src/media_db.c +++ b/src/media_db.c @@ -19,7 +19,6 @@ #include #include -static char * __media_db_get_group_name(media_group_e group); static int __media_db_make_query(filter_h filter, char *select_query, int select_query_size, char **condition_query, char **option_query); static char * __media_db_get_group_name(media_group_e group) @@ -301,7 +300,7 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -360,7 +359,7 @@ int _media_db_get_media_group_count(media_group_e group, filter_h filter, int *g SAFE_FREE(condition_query); SAFE_FREE(option_query); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -409,7 +408,7 @@ int _media_db_get_media_group(media_group_e group, filter_h filter, media_group_ ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -475,7 +474,7 @@ int _media_db_get_media_group_and_count(media_group_e group, filter_h filter, me else snprintf(group_query, sizeof(group_query), "GROUP BY %s", group_name); - ret = _content_query_prepare(&stmt, select_query, condition_query, group_query); + ret = _content_query_prepare(select_query, condition_query, group_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -516,7 +515,7 @@ int _media_db_get_album(filter_h filter, media_album_cb callback, void *user_dat ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -567,8 +566,7 @@ int _media_db_get_folder(filter_h filter, media_folder_cb callback, void *user_d ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); - + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -619,7 +617,7 @@ int _media_db_get_playlist(filter_h filter, media_playlist_cb callback, void *us ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -664,7 +662,7 @@ int _media_db_get_playlist_item(int playlist_id, filter_h filter, playlist_membe ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -719,7 +717,7 @@ int _media_db_get_tag(const char *media_id, filter_h filter, media_tag_cb callba SAFE_STRLCAT(select_query, QUERY_KEYWORD_SPACE, sizeof(select_query)); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -774,7 +772,7 @@ int _media_db_get_bookmark(const char *media_id, filter_h filter, media_bookmark ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -834,7 +832,7 @@ int _media_db_get_face(const char *media_id, filter_h filter, media_face_cb call ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -899,7 +897,7 @@ int _media_db_get_group_item_count_by_id(int group_id, filter_h filter, group_li ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -1003,7 +1001,7 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou SAFE_FREE(option_query); } - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); if (tmp_query != NULL) SQLITE3_SAFE_FREE(tmp_query); SAFE_FREE(condition_query); @@ -1052,7 +1050,7 @@ int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -1111,7 +1109,7 @@ int _media_db_get_group_item(const char *group_name, filter_h filter, media_info ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -1304,7 +1302,7 @@ int _media_db_get_media_group_item_count(const char *group_name, filter_h filter SAFE_FREE(condition_query); SAFE_FREE(option_query); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); if (tmp_query != NULL) SQLITE3_SAFE_FREE(tmp_query); SAFE_FREE(condition_query); @@ -1352,7 +1350,7 @@ int _media_db_get_media_group_item(const char *group_name, filter_h filter, medi return ret; } - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); if (tmp_query != NULL) SQLITE3_SAFE_FREE(tmp_query); SAFE_FREE(condition_query); @@ -1400,7 +1398,7 @@ int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -1430,6 +1428,31 @@ int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user return ret; } + +int _media_db_get_storage_id_by_media_id(const char *media_id, char **storage_id) +{ + int ret = MEDIA_CONTENT_ERROR_NONE; + sqlite3_stmt *stmt = NULL; + char *select_query = NULL; + + select_query = sqlite3_mprintf(SELECT_MEDIA_STORAGE_ID_BY_ID, media_id); + + ret = _content_get_result(select_query, &stmt); + SQLITE3_SAFE_FREE(select_query); + media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); + + if (sqlite3_step(stmt) == SQLITE_ROW) { + *storage_id = g_strdup((const char *)sqlite3_column_text(stmt, 0)); + } else { + media_content_error("Invalid media_id[%s]", media_id); + ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER; + } + + SQLITE3_FINALIZE(stmt); + + return ret; +} + #ifdef _USE_TVPD_MODE int _media_db_get_pvr_group_item(const char *group_name, filter_h filter, media_group_e group, media_pvr_cb callback, void *user_data) { @@ -1464,7 +1487,7 @@ int _media_db_get_pvr_group_item(const char *group_name, filter_h filter, media_ return ret; } - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); if (tmp_query != NULL) sqlite3_free(tmp_query); SAFE_FREE(condition_query); @@ -1680,7 +1703,7 @@ int _media_db_get_pvr(filter_h filter, media_pvr_cb callback, void *user_data) ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -1708,38 +1731,7 @@ int _media_db_get_pvr(filter_h filter, media_pvr_cb callback, void *user_data) return ret; } -#endif - -int _media_db_get_storage_id_by_media_id(const char *media_id, char *storage_id) -{ - int ret = MEDIA_CONTENT_ERROR_NONE; - sqlite3_stmt *stmt = NULL; - char *select_query = NULL; - - select_query = sqlite3_mprintf(SELECT_MEDIA_STORAGE_ID_BY_ID, media_id); - - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); - SQLITE3_SAFE_FREE(select_query); - media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - - if (sqlite3_step(stmt) == SQLITE_ROW) { - if (STRING_VALID((const char *)sqlite3_column_text(stmt, 0))) { - if (!SAFE_STRLCPY(storage_id, (const char *)sqlite3_column_text(stmt, 0), MEDIA_CONTENT_UUID_SIZE+1)) { - media_content_error("Storage id copy fail"); - ret = MEDIA_CONTENT_ERROR_INVALID_OPERATION; - } - } - } else { - media_content_error("There's no media!!"); - ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER; - } - - SQLITE3_FINALIZE(stmt); - - return ret; -} -#ifdef _USE_TVPD_MODE typedef enum { MEDIA_UHD_MEDIA_ID = 0, MEDIA_UHD_STORAGE_ID, @@ -1810,7 +1802,7 @@ int _media_db_get_uhd(filter_h filter, media_uhd_cb callback, void *user_data) ret = __media_db_make_query(filter, select_query, sizeof(select_query), &condition_query, &option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _content_query_prepare(&stmt, select_query, condition_query, option_query); + ret = _content_query_prepare(select_query, condition_query, option_query, &stmt); SAFE_FREE(condition_query); SAFE_FREE(option_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); diff --git a/src/media_face.c b/src/media_face.c index 979a92c..bc02e48 100755 --- a/src/media_face.c +++ b/src/media_face.c @@ -30,7 +30,7 @@ static int __media_face_check_media_id(const char *media_id) /* Get image count */ query_str = sqlite3_mprintf(SELECT_IMAGE_COUNT_FROM_MEDIA_BY_ID, media_id); - ret = _content_query_prepare(&stmt, query_str, NULL, NULL); + ret = _content_get_result(query_str, &stmt); SQLITE3_SAFE_FREE(query_str); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -259,7 +259,7 @@ int media_face_insert_to_db(media_face_h face) SQLITE3_SAFE_FREE(query_str); query_str = sqlite3_mprintf(SELECT_FACE_ID, _face->media_id, _face->face_rect_x, _face->face_rect_y, _face->face_rect_w, _face->face_rect_h, _face->orientation); - ret = _content_query_prepare(&stmt, query_str, NULL, NULL); + ret = _content_get_result(query_str, &stmt); SQLITE3_SAFE_FREE(query_str); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); diff --git a/src/media_folder.c b/src/media_folder.c index 6195df3..26cfd54 100755 --- a/src/media_folder.c +++ b/src/media_folder.c @@ -328,7 +328,7 @@ int media_folder_get_folder_from_db(const char *folder_id, media_folder_h *folde memset(select_query, 0x00, sizeof(select_query)); snprintf(select_query, sizeof(select_query), SELECT_FOLDER_FROM_FOLDER, folder_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); if (sqlite3_step(stmt) == SQLITE_ROW) { diff --git a/src/media_group.c b/src/media_group.c index 270e801..90350aa 100755 --- a/src/media_group.c +++ b/src/media_group.c @@ -87,7 +87,7 @@ int media_album_get_album_from_db(int album_id, media_album_h *album) snprintf(select_query, sizeof(select_query), SELECT_ALBUM_FROM_ALBUM, album_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); if (sqlite3_step(stmt) == SQLITE_ROW) { diff --git a/src/media_image.c b/src/media_image.c index 587f4ab..839fc37 100755 --- a/src/media_image.c +++ b/src/media_image.c @@ -282,17 +282,16 @@ int image_meta_update_to_db(image_meta_h image) media_content_warn("DEPRECATION WARNING: image_meta_update_to_db() is deprecated and will be removed from next release."); image_meta_s *_image = (image_meta_s*)image; char *sql = NULL; + char *storage_id = NULL; if (_image != NULL && STRING_VALID(_image->media_id)) { - char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,}; - memset(storage_id, 0x00, sizeof(storage_id)); - - ret = _media_db_get_storage_id_by_media_id(_image->media_id, storage_id); + ret = _media_db_get_storage_id_by_media_id(_image->media_id, &storage_id); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); sql = sqlite3_mprintf(UPDATE_IMAGE_META_FROM_MEDIA, storage_id, _image->orientation, _image->media_id); ret = _content_query_sql(sql); SQLITE3_SAFE_FREE(sql); + SAFE_FREE(storage_id); } else { media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER); ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER; diff --git a/src/media_info.c b/src/media_info.c index 3964849..ef2b0ba 100755 --- a/src/media_info.c +++ b/src/media_info.c @@ -47,7 +47,7 @@ static int __media_info_get_media_path_by_id_from_db(const char *media_id, char select_query = sqlite3_mprintf(SELECT_MEDIA_PATH_BY_ID, media_id); - 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); @@ -373,7 +373,7 @@ int _media_info_get_media_info_from_db(const char *path, const char *storage_id, select_query = sqlite3_mprintf(SELECT_MEDIA_BY_PATH, storage_id, path); - 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); @@ -523,7 +523,7 @@ int media_info_delete_from_db(const char *media_id) { int ret = MEDIA_CONTENT_ERROR_NONE; char *path = NULL; - char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0, }; + char *storage_id = NULL; media_content_warn("DEPRECATION WARNING: media_info_delete_from_db() is deprecated and will be removed from next release. Use media_content_scan_file() instead."); if (!STRING_VALID(media_id)) { @@ -531,8 +531,6 @@ int media_info_delete_from_db(const char *media_id) return MEDIA_CONTENT_ERROR_INVALID_PARAMETER; } - memset(storage_id, 0x00, sizeof(storage_id)); - ret = __media_info_get_media_path_by_id_from_db(media_id, &path); if (ret != MEDIA_CONTENT_ERROR_NONE) { media_content_error("__media_info_get_media_path_by_id_from_db failed : %d", ret); @@ -540,7 +538,7 @@ int media_info_delete_from_db(const char *media_id) return ret; } - ret = _media_db_get_storage_id_by_media_id(media_id, storage_id); + ret = _media_db_get_storage_id_by_media_id(media_id, &storage_id); if (ret != MEDIA_CONTENT_ERROR_NONE) { media_content_error("_media_db_get_storage_id_by_media_id failed : %d", ret); SAFE_FREE(path); @@ -549,6 +547,7 @@ int media_info_delete_from_db(const char *media_id) ret = media_svc_delete_item_by_path(_content_get_db_handle(), storage_id, path, _content_get_uid()); SAFE_FREE(path); + SAFE_FREE(storage_id); return _content_error_capi(ret); } @@ -1532,15 +1531,13 @@ int media_info_delete_item(const char *media_id) { int ret = MEDIA_CONTENT_ERROR_NONE; char *path = NULL; - char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,}; + char *storage_id = NULL; if (!STRING_VALID(media_id)) { media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER); return MEDIA_CONTENT_ERROR_INVALID_PARAMETER; } - memset(storage_id, 0x00, sizeof(storage_id)); - ret = __media_info_get_media_path_by_id_from_db(media_id, &path); if (ret != MEDIA_CONTENT_ERROR_NONE) { media_content_error("__media_info_get_media_path_by_id_from_db failed : %d", ret); @@ -1548,7 +1545,7 @@ int media_info_delete_item(const char *media_id) return ret; } - ret = _media_db_get_storage_id_by_media_id(media_id, storage_id); + ret = _media_db_get_storage_id_by_media_id(media_id, &storage_id); if (ret != MEDIA_CONTENT_ERROR_NONE) { media_content_error("_media_db_get_storage_id_by_media_id failed : %d", ret); SAFE_FREE(path); @@ -1556,6 +1553,7 @@ int media_info_delete_item(const char *media_id) } ret = media_svc_delete_item_by_path(_content_get_db_handle(), storage_id, path, tzplatform_getuid(TZ_USER_NAME)); + SAFE_FREE(storage_id); if (ret != MEDIA_CONTENT_ERROR_NONE) { media_content_error("remove from DB failed : %d", ret); SAFE_FREE(path); @@ -1791,7 +1789,7 @@ int media_info_get_media_from_db(const char *media_id, media_info_h *media) { int ret = MEDIA_CONTENT_ERROR_NONE; char select_query[DEFAULT_QUERY_SIZE] = {0, }; - char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0, }; + char *storage_id = NULL; sqlite3_stmt *stmt = NULL; if (!STRING_VALID(media_id) || (media == NULL)) { @@ -1800,14 +1798,13 @@ int media_info_get_media_from_db(const char *media_id, media_info_h *media) } memset(select_query, 0x00, sizeof(select_query)); - memset(storage_id, 0x00, sizeof(storage_id)); - ret = _media_db_get_storage_id_by_media_id(media_id, storage_id); + ret = _media_db_get_storage_id_by_media_id(media_id, &storage_id); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_MEDIA, storage_id, media_id); - - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); + ret = _content_get_result(select_query, &stmt); + SAFE_FREE(storage_id); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); media_info_s *_media = NULL; diff --git a/src/media_playlist.c b/src/media_playlist.c index 6f4c90e..40be502 100755 --- a/src/media_playlist.c +++ b/src/media_playlist.c @@ -84,7 +84,7 @@ 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); @@ -109,7 +109,7 @@ 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); if (sqlite3_step(stmt) == SQLITE_ROW) @@ -506,7 +506,7 @@ 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; @@ -615,7 +615,7 @@ 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); if (sqlite3_step(stmt) == SQLITE_ROW) @@ -997,7 +997,7 @@ 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); if (sqlite3_step(stmt) == SQLITE_ROW) diff --git a/src/media_pvr.c b/src/media_pvr.c index 04d94d4..ec3b6ab 100755 --- a/src/media_pvr.c +++ b/src/media_pvr.c @@ -264,7 +264,7 @@ int media_pvr_get_pvr_from_db(const char *media_id, media_pvr_h *pvr) select_query = sqlite3_mprintf(SELECT_PVR_FROM_PVR, media_id); - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); + ret = _content_get_result(select_query, &stmt); sqlite3_free(select_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -679,7 +679,7 @@ int media_pvr_get_program_num(media_pvr_h pvr, int *program_num) return ret; } -int media_pvr_get_service_profile(media_pvr_h pvr,unsigned int *service_profile) +int media_pvr_get_service_profile(media_pvr_h pvr, unsigned int *service_profile) { int ret = MEDIA_CONTENT_ERROR_NONE; media_pvr_s *_pvr = (media_pvr_s*)pvr; diff --git a/src/media_storage.c b/src/media_storage.c index 4198965..acb72eb 100755 --- a/src/media_storage.c +++ b/src/media_storage.c @@ -33,7 +33,7 @@ int media_storage_get_storage_info_from_db(const char *storage_id, media_storage memset(select_query, 0x00, sizeof(select_query)); snprintf(select_query, sizeof(select_query), SELECT_STORAGE_INFO_FROM_STORAGE, storage_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); if (sqlite3_step(stmt) == SQLITE_ROW) { diff --git a/src/media_tag.c b/src/media_tag.c index 0a7de21..ed74363 100755 --- a/src/media_tag.c +++ b/src/media_tag.c @@ -97,7 +97,7 @@ static int __media_tag_get_tag_info_from_db(const char *name, media_tag_h tag) select_query = sqlite3_mprintf(SELECT_TAG_BY_NAME, 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); @@ -312,7 +312,7 @@ int media_tag_get_tag_from_db(int tag_id, media_tag_h *tag) snprintf(select_query, sizeof(select_query), SELECT_TAG_FROM_TAG, tag_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_tag_s *_tag = NULL; diff --git a/src/media_uhd.c b/src/media_uhd.c index bfd857b..082f42c 100755 --- a/src/media_uhd.c +++ b/src/media_uhd.c @@ -173,8 +173,8 @@ int media_uhd_get_uhd_from_db(const char *media_id, media_uhd_h *uhd) select_query = sqlite3_mprintf(SELECT_UHD_FROM_UHD, media_id); - ret = _content_query_prepare(&stmt, select_query, NULL, NULL); - sqlite3_free(select_query); + ret = _content_get_result(select_query, &stmt); + SQLITE3_SAFE_FREE(select_query); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); media_uhd_s *_uhd = NULL; -- 2.7.4