From a0b188723e9a0c1d55c667e667d3808fcaa6c80a Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Thu, 16 May 2024 08:16:44 +0900 Subject: [PATCH] Move table creation function to media-svc-db-utils Function related to table creation have been moved to more appropriate locations. Change-Id: Ic35913ee33853016cf83167a5ec838fae4f11abb Signed-off-by: Minje Ahn --- include/media-svc-db-utils.h | 5 +- include/media-svc-env.h | 15 ----- packaging/libmedia-service.spec | 2 +- src/media-svc-db-utils.c | 135 ++++++++++++++++++++++++++++++++++------ src/media-svc.c | 91 +-------------------------- 5 files changed, 120 insertions(+), 128 deletions(-) diff --git a/include/media-svc-db-utils.h b/include/media-svc-db-utils.h index 6a63ac5..ea83fbd 100755 --- a/include/media-svc-db-utils.h +++ b/include/media-svc-db-utils.h @@ -33,9 +33,7 @@ static inline void __sqlfree(void *p) } #define sql_autoptr __attribute__((cleanup(__sqlfree))) char * -int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid); -int _media_svc_init_table_query(void); -void _media_svc_destroy_table_query(void); +int _media_svc_create_table(uid_t uid); int _media_svc_sql_query(const char *sql_str, uid_t uid); int _media_svc_sql_query_direct(const char *sql_str, uid_t uid); int _media_svc_check_table_exist(sqlite3 *db_handle, bool *exist); @@ -44,6 +42,5 @@ int _media_svc_get_result(sqlite3 *handle, const char *sql_str, sqlite3_stmt **s int _media_svc_sql_query_list(GList **query_list, uid_t uid); int _media_svc_sql_query_list_direct(GList **query_list, uid_t uid); void _media_svc_sql_query_add(GList **query_list, char **query); -void _media_svc_sql_query_release(GList **query_list); #endif /*_MEDIA_SVC_DB_UTILS_H_*/ diff --git a/include/media-svc-env.h b/include/media-svc-env.h index 0ea3629..e8693d9 100755 --- a/include/media-svc-env.h +++ b/include/media-svc-env.h @@ -105,21 +105,6 @@ typedef enum { MEDIA_SVC_QUERY_UPDATE_COMMON, } media_svc_query_type_e; -typedef enum { - DB_LIST_MEDIA = 0, - DB_LIST_FOLDER, - DB_LIST_PLAYLIST_MAP, - DB_LIST_PLAYLIST, - DB_LIST_ALBUM, - DB_LIST_TAG_MAP, - DB_LIST_TAG, - DB_LIST_BOOKMARK, - DB_LIST_STORAGE, - DB_LIST_FACE_SCAN_LIST, - DB_LIST_FACE, - DB_LIST_MAX, -} media_svc_table_slist_e; - #ifdef __cplusplus } #endif diff --git a/packaging/libmedia-service.spec b/packaging/libmedia-service.spec index 6be4817..e44cdbc 100644 --- a/packaging/libmedia-service.spec +++ b/packaging/libmedia-service.spec @@ -1,6 +1,6 @@ Name: libmedia-service Summary: Media information service library for multimedia applications -Version: 0.6.5 +Version: 0.6.6 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/media-svc-db-utils.c b/src/media-svc-db-utils.c index 9c3ecb9..c3f7c14 100755 --- a/src/media-svc-db-utils.c +++ b/src/media-svc-db-utils.c @@ -27,6 +27,21 @@ #include "media-svc-db-utils.h" #include "media-svc-media.h" +typedef enum { + DB_LIST_MEDIA = 0, + DB_LIST_FOLDER, + DB_LIST_PLAYLIST_MAP, + DB_LIST_PLAYLIST, + DB_LIST_ALBUM, + DB_LIST_TAG_MAP, + DB_LIST_TAG, + DB_LIST_BOOKMARK, + DB_LIST_STORAGE, + DB_LIST_FACE_SCAN_LIST, + DB_LIST_FACE, + DB_LIST_MAX, +} media_svc_table_slist_e; + static GHashTable *table; static GSList *column_list[DB_LIST_MAX]; @@ -205,7 +220,7 @@ static int __create_tag_view(uid_t uid) return _media_svc_sql_query(q, uid); } -int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid) +static int __media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid) { int ret = MS_MEDIA_ERR_NONE; GSList *iter = NULL; @@ -327,10 +342,8 @@ static void __media_svc_column_free(gpointer data) g_free(col); } -int _media_svc_init_table_query(void) +static void __media_svc_init_table_query(void) { - int ret = MS_MEDIA_ERR_NONE; - /*variable initialize.. */ table = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, __media_svc_table_free); @@ -453,11 +466,9 @@ int _media_svc_init_table_query(void) __add_column_info(&column_list[DB_LIST_FACE], "face_rect_h", DB_TYPE_INT, "DEFAULT 0", true, false, false); __add_column_info(&column_list[DB_LIST_FACE], "face_orientation", DB_TYPE_INT, "DEFAULT 0", false, false, false); __add_column_info(&column_list[DB_LIST_FACE], "media_face_tag", DB_TYPE_TEXT, NULL, false, false, false); - - return ret; } -void _media_svc_destroy_table_query(void) +static void __media_svc_destroy_table_query(void) { int i = 0; @@ -472,6 +483,94 @@ void _media_svc_destroy_table_query(void) } } +int _media_svc_create_table(uid_t uid) +{ + int ret = MS_MEDIA_ERR_NONE; + media_svc_debug_fenter(); + __media_svc_init_table_query(); + + /*create media table*/ + ret = __media_svc_make_table_query(DB_TABLE_MEDIA, DB_LIST_MEDIA, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create media table"); + goto ERROR; + } + + /*create folder table*/ + ret = __media_svc_make_table_query(DB_TABLE_FOLDER, DB_LIST_FOLDER, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create folder table"); + goto ERROR; + } + + /*create playlist_map table*/ + ret = __media_svc_make_table_query(DB_TABLE_PLAYLIST_MAP, DB_LIST_PLAYLIST_MAP, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create playlist_map table"); + goto ERROR; + } + + /*create playlist table*/ + ret = __media_svc_make_table_query(DB_TABLE_PLAYLIST, DB_LIST_PLAYLIST, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create playlist table"); + goto ERROR; + } + + /* create album table*/ + ret = __media_svc_make_table_query(DB_TABLE_ALBUM, DB_LIST_ALBUM, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create album table"); + goto ERROR; + } + + /*create tag_map table*/ + ret = __media_svc_make_table_query(DB_TABLE_TAG_MAP, DB_LIST_TAG_MAP, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create tag_map table"); + goto ERROR; + } + + /*create tag table*/ + ret = __media_svc_make_table_query(DB_TABLE_TAG, DB_LIST_TAG, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create tag table"); + goto ERROR; + } + + /*create bookmark table*/ + ret = __media_svc_make_table_query(DB_TABLE_BOOKMARK, DB_LIST_BOOKMARK, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create bookmark table"); + goto ERROR; + } + + /*create storage table from tizen 2.4 */ + ret = __media_svc_make_table_query(DB_TABLE_STORAGE, DB_LIST_STORAGE, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create storage table"); + goto ERROR; + } + + /*create face table. from tizen 3.0*/ + ret = __media_svc_make_table_query(DB_TABLE_FACE_SCAN_LIST, DB_LIST_FACE_SCAN_LIST, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create face_scan_list table"); + goto ERROR; + } + + ret = __media_svc_make_table_query(DB_TABLE_FACE, DB_LIST_FACE, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("failed to create face table"); + goto ERROR; + } +ERROR: + __media_svc_destroy_table_query(); + media_svc_debug_fleave(); + + return ret; +} + int _media_svc_sql_query(const char *sql_str, uid_t uid) { return media_db_request_update_db(sql_str, uid); @@ -592,6 +691,14 @@ int _media_svc_get_result(sqlite3 *handle, const char *sql_str, sqlite3_stmt **s return __media_svc_get_result(handle, sql_str, stmt); } +static void __media_svc_sql_query_release(GList **query_list) +{ + if (*query_list) { + g_list_free(*query_list); + *query_list = NULL; + } +} + int _media_svc_sql_query_list(GList **query_list, uid_t uid) { int ret = MS_MEDIA_ERR_NONE; @@ -612,7 +719,7 @@ int _media_svc_sql_query_list(GList **query_list, uid_t uid) sqlite3_free(q); } - _media_svc_sql_query_release(query_list); + __media_svc_sql_query_release(query_list); return MS_MEDIA_ERR_NONE; } @@ -655,7 +762,7 @@ int _media_svc_sql_query_list_direct(GList **query_list, uid_t uid) if (SQLITE_OK != ret) { media_svc_error("Commit failed"); media_db_disconnect(handle); - _media_svc_sql_query_release(query_list); + __media_svc_sql_query_release(query_list); return MS_MEDIA_ERR_DB_INTERNAL; } } @@ -663,7 +770,7 @@ int _media_svc_sql_query_list_direct(GList **query_list, uid_t uid) media_db_disconnect(handle); ZERO_LEN: - _media_svc_sql_query_release(query_list); + __media_svc_sql_query_release(query_list); return MS_MEDIA_ERR_NONE; } @@ -672,11 +779,3 @@ void _media_svc_sql_query_add(GList **query_list, char **query) { *query_list = g_list_append(*query_list, *query); } - -void _media_svc_sql_query_release(GList **query_list) -{ - if (*query_list) { - g_list_free(*query_list); - *query_list = NULL; - } -} diff --git a/src/media-svc.c b/src/media-svc.c index 7555644..b1db172 100755 --- a/src/media-svc.c +++ b/src/media-svc.c @@ -45,96 +45,7 @@ int media_svc_check_table_exist(sqlite3 *handle, bool *exist) int media_svc_create_table(uid_t uid) { - int ret = MS_MEDIA_ERR_NONE; - media_svc_debug_fenter(); - - ret = _media_svc_init_table_query(); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_init_table_query fail."); - goto ERROR; - } - - /*create media table*/ - ret = _media_svc_make_table_query(DB_TABLE_MEDIA, DB_LIST_MEDIA, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create folder table*/ - ret = _media_svc_make_table_query(DB_TABLE_FOLDER, DB_LIST_FOLDER, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create playlist_map table*/ - ret = _media_svc_make_table_query(DB_TABLE_PLAYLIST_MAP, DB_LIST_PLAYLIST_MAP, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create playlist table*/ - ret = _media_svc_make_table_query(DB_TABLE_PLAYLIST, DB_LIST_PLAYLIST, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /* create album table*/ - ret = _media_svc_make_table_query(DB_TABLE_ALBUM, DB_LIST_ALBUM, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create tag_map table*/ - ret = _media_svc_make_table_query(DB_TABLE_TAG_MAP, DB_LIST_TAG_MAP, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create tag table*/ - ret = _media_svc_make_table_query(DB_TABLE_TAG, DB_LIST_TAG, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create bookmark table*/ - ret = _media_svc_make_table_query(DB_TABLE_BOOKMARK, DB_LIST_BOOKMARK, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create storage table from tizen 2.4 */ - ret = _media_svc_make_table_query(DB_TABLE_STORAGE, DB_LIST_STORAGE, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - /*create face table. from tizen 3.0*/ - ret = _media_svc_make_table_query(DB_TABLE_FACE_SCAN_LIST, DB_LIST_FACE_SCAN_LIST, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } - - ret = _media_svc_make_table_query(DB_TABLE_FACE, DB_LIST_FACE, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query fail."); - goto ERROR; - } -ERROR: - _media_svc_destroy_table_query(); - - media_svc_debug_fleave(); - - return ret; + return _media_svc_create_table(uid); } int media_svc_check_item_exist_by_path(sqlite3 *handle, const char *storage_id, const char *path) -- 2.7.4