From: Minje Ahn Date: Mon, 10 Jun 2019 07:00:58 +0000 (+0900) Subject: Merge server_list and client_list into app_list X-Git-Tag: submit/tizen/20190614.024153~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=91329a4173c3813f93ebf76b64b6e915c43e0e5b;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Merge server_list and client_list into app_list Change-Id: I6b2a0f1bfc25301b90f0c28dda12d966e50c5fe8 Signed-off-by: Minje Ahn --- diff --git a/include/media_controller_private.h b/include/media_controller_private.h index 8a572f7..9862d95 100644 --- a/include/media_controller_private.h +++ b/include/media_controller_private.h @@ -119,10 +119,9 @@ extern "C" { #define MC_DB_NAME ".media_controller.db" /* TABLE */ -#define MC_DB_TABLE_SERVER_LIST "server_list" +#define MC_DB_TABLE_APP_LIST "app_list" #define MC_DB_TABLE_LATEST_SERVER "latest_server" #define MC_DB_TABLE_PLAYLIST "server_playlist" -#define MC_DB_TABLE_CLIENT_LIST "client_list" /* TRIGGER */ #define MC_DB_TRIGGER_PLAYLIST "cleanup_playlist" @@ -141,15 +140,8 @@ extern "C" { #define SELECT_ITEM_FROM_PLAYLIST "SELECT * FROM %q WHERE server_name=%Q AND playlist_name=%Q AND item_index IS NOT NULL" #define SELECT_COUNT_FROM_MASTER "SELECT COUNT(*) FROM SQLITE_MASTER WHERE type='table' AND name=%Q" -#define SELECT_COUNT_FROM_CLIENT "SELECT COUNT(*) FROM '%q' WHERE client_name='%q'" -#define SELECT_COUNT_FROM_SERVER "SELECT COUNT(*) FROM '%q' WHERE server_name='%q'" -#define SELECT_NAME_FROM_SERVER "SELECT server_name FROM %Q" - #define SELECT_ALL_SERVER_LIST_EXCEPT_LATEST "SELECT name FROM SQLITE_MASTER WHERE type='table' AND (name != '%q') AND (name NOT IN (SELECT server_name FROM "MC_DB_TABLE_LATEST_SERVER"))" -#define INSERT_TO_SERVER_LIST "INSERT OR IGNORE INTO "MC_DB_TABLE_SERVER_LIST" (server_name) VALUES ('%q')" -#define INSERT_TO_CLIENT_LIST "INSERT OR IGNORE INTO "MC_DB_TABLE_CLIENT_LIST" (client_name) VALUES ('%q')" -#define DELETE_FROM_SERVER_LIST "DELETE FROM "MC_DB_TABLE_SERVER_LIST" WHERE (server_name = '%q')" -#define DELETE_FROM_CLIENT_LIST "DELETE FROM "MC_DB_TABLE_CLIENT_LIST" WHERE (client_name = '%q')" + #define UPDATE_STATE_PLAYBACK "UPDATE '%q' SET server_state=%d, playback_state=%d" #define DROP_TABLE "DROP TABLE IF EXISTS '%q'" #define META_LIST "title, artist, album, author, genre, duration, date, copyright, description, track_num, picture, season, episode, resolution" diff --git a/src/media_controller_db.c b/src/media_controller_db.c index 5b6ce62..6f9bcc6 100644 --- a/src/media_controller_db.c +++ b/src/media_controller_db.c @@ -739,7 +739,7 @@ gboolean _mc_db_is_activated_client(sqlite3 *handle, const char *client_name) mc_secure_debug("client name [%s]", client_name); - sql_str = sqlite3_mprintf(SELECT_COUNT_FROM_CLIENT, MC_DB_TABLE_CLIENT_LIST, client_name); + sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM %q WHERE name='%q' AND type=%d", MC_DB_TABLE_APP_LIST, client_name, MC_PRIV_TYPE_CLIENT); mc_retvm_if(!MC_STRING_VALID(sql_str), FALSE, "SQL string is null"); count = __mc_db_get_count(handle, sql_str); @@ -765,7 +765,7 @@ gboolean _mc_db_is_activated_server(sqlite3 *handle, const char *server_name) mc_secure_debug("server name [%s]", server_name); - sql_str = sqlite3_mprintf(SELECT_COUNT_FROM_SERVER, MC_DB_TABLE_SERVER_LIST, server_name); + sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM %q WHERE name='%q' AND type=%d", MC_DB_TABLE_APP_LIST, server_name, MC_PRIV_TYPE_SERVER); mc_retvm_if(!MC_STRING_VALID(sql_str), FALSE, "SQL string is null"); count = __mc_db_get_count(handle, sql_str); @@ -815,7 +815,7 @@ int mc_db_foreach_server_list(sqlite3 *handle, mc_activated_server_cb callback, mc_retvm_if(handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - sql_str = sqlite3_mprintf(SELECT_NAME_FROM_SERVER, MC_DB_TABLE_SERVER_LIST); + sql_str = sqlite3_mprintf("SELECT name FROM %q WHERE type=%d", MC_DB_TABLE_APP_LIST, MC_PRIV_TYPE_SERVER); mc_retvm_if(!MC_STRING_VALID(sql_str), MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "SQL string is null"); ret = sqlite3_prepare_v2(handle, sql_str, strlen(sql_str), &stmt, NULL); SQLITE3_SAFE_FREE(sql_str); @@ -865,7 +865,7 @@ int mc_db_foreach_client_list(sqlite3 *handle, mc_activated_client_cb callback, mc_retvm_if(handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - sql_str = sqlite3_mprintf("SELECT client_name FROM '%q';", MC_DB_TABLE_CLIENT_LIST); + sql_str = sqlite3_mprintf("SELECT name FROM %q WHERE type=%d", MC_DB_TABLE_APP_LIST, MC_PRIV_TYPE_CLIENT); mc_retvm_if(!MC_STRING_VALID(sql_str), MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "SQL string is null"); ret = sqlite3_prepare_v2(handle, sql_str, strlen(sql_str), &stmt, NULL); SQLITE3_SAFE_FREE(sql_str); diff --git a/svc/media_controller_db_util.c b/svc/media_controller_db_util.c index 2d0cd03..ca4d8d1 100644 --- a/svc/media_controller_db_util.c +++ b/svc/media_controller_db_util.c @@ -157,25 +157,12 @@ static int __mc_create_latest_server_table(sqlite3 *handle) return ret; } -static int __mc_create_server_list_table(sqlite3 *handle) +static int __mc_create_app_list_table(sqlite3 *handle) { int ret = MEDIA_CONTROLLER_ERROR_NONE; char *sql_str = NULL; - sql_str = sqlite3_mprintf("CREATE TABLE IF NOT EXISTS %s (server_name TEXT PRIMARY KEY);", MC_DB_TABLE_SERVER_LIST); - - ret = mc_db_util_update_db(handle, sql_str); - - SQLITE3_SAFE_FREE(sql_str); - return ret; -} - -static int __mc_create_client_list_table(sqlite3 *handle) -{ - int ret = MEDIA_CONTROLLER_ERROR_NONE; - char *sql_str = NULL; - - sql_str = sqlite3_mprintf("CREATE TABLE IF NOT EXISTS %s (client_name TEXT PRIMARY KEY);", MC_DB_TABLE_CLIENT_LIST); + sql_str = sqlite3_mprintf("CREATE TABLE IF NOT EXISTS %s(name TEXT, type INTEGER, UNIQUE(name, type))", MC_DB_TABLE_APP_LIST); ret = mc_db_util_update_db(handle, sql_str); @@ -200,8 +187,8 @@ static int __mc_create_playlist_table(sqlite3 *handle) SQLITE3_SAFE_FREE(sql_str); mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to create playlist table"); - sql_str = sqlite3_mprintf("CREATE TRIGGER IF NOT EXISTS %s DELETE ON %s BEGIN DELETE FROM %s WHERE server_name=old.server_name;END", - MC_DB_TRIGGER_PLAYLIST, MC_DB_TABLE_SERVER_LIST, MC_DB_TABLE_PLAYLIST); + sql_str = sqlite3_mprintf("CREATE TRIGGER IF NOT EXISTS %s DELETE ON %s BEGIN DELETE FROM %s WHERE server_name=old.name;END", + MC_DB_TRIGGER_PLAYLIST, MC_DB_TABLE_APP_LIST, MC_DB_TABLE_PLAYLIST); ret = mc_db_util_update_db(handle, sql_str); SQLITE3_SAFE_FREE(sql_str); @@ -345,15 +332,7 @@ static int __mc_db_insert_to_list(sqlite3 *db_handle, const char *app_id, mc_pri mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type); - if (priv_type == MC_PRIV_TYPE_SERVER) { - sql_str = sqlite3_mprintf(INSERT_TO_SERVER_LIST, app_id, app_id); - } else if (priv_type == MC_PRIV_TYPE_CLIENT) { - sql_str = sqlite3_mprintf(INSERT_TO_CLIENT_LIST, app_id, app_id); - } else { - mc_error("invalid priv_type (%d)", priv_type); - mc_debug_fleave(); - return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER; - } + sql_str = sqlite3_mprintf("INSERT OR IGNORE INTO %q VALUES ('%q', %d)", MC_DB_TABLE_APP_LIST, app_id, priv_type); mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL"); ret = mc_db_util_update_db(db_handle, sql_str); @@ -379,15 +358,7 @@ static int __mc_db_delete_from_list(sqlite3 *db_handle, const char *app_id, mc_p mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type); - if (priv_type == MC_PRIV_TYPE_SERVER) { - sql_str = sqlite3_mprintf(DELETE_FROM_SERVER_LIST, app_id); - } else if (priv_type == MC_PRIV_TYPE_CLIENT) { - sql_str = sqlite3_mprintf(DELETE_FROM_CLIENT_LIST, app_id); - } else { - mc_error("invalid priv_type (%d)", priv_type); - mc_debug_fleave(); - return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER; - } + sql_str = sqlite3_mprintf("DELETE FROM %q WHERE name=%Q AND type=%d", MC_DB_TABLE_APP_LIST, app_id, priv_type); mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL"); ret = mc_db_util_update_db(db_handle, sql_str); @@ -545,11 +516,8 @@ int mc_db_util_create_tables(sqlite3 *handle) ret = __mc_create_latest_server_table(handle); mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "create latest_server table failed!err= [%d]", ret); - ret = __mc_create_server_list_table(handle); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "create server_list table failed!err= [%d]", ret); - - ret = __mc_create_client_list_table(handle); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "create client_list table failed!err= [%d]", ret); + ret = __mc_create_app_list_table(handle); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "create app_list table failed!err= [%d]", ret); ret = __mc_create_playlist_table(handle); mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "create playlist table failed!err= [%d]", ret);