From: Minje Ahn Date: Thu, 20 Jun 2019 04:00:18 +0000 (+0900) Subject: Add error type when no record X-Git-Tag: submit/tizen/20190620.052708^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5cc7b23b4202bdfe93f3318ca33be8737373fb47;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Add error type when no record Change-Id: I645be2b7262098da16c615f24f383dbc25d63edc Signed-off-by: Minje Ahn --- diff --git a/include/media_controller_private.h b/include/media_controller_private.h index 5e73558..54247a0 100644 --- a/include/media_controller_private.h +++ b/include/media_controller_private.h @@ -137,7 +137,7 @@ extern "C" { #define META_COL "title TEXT, artist TEXT, album TEXT, author TEXT, genre TEXT, duration INTEGER DEFAULT 0, date TEXT, copyright TEXT, description TEXT, track_num TEXT, picture TEXT, season TEXT, episode TEXT, resolution TEXT" #define SQLITE3_SAFE_FREE(sql_string) {if (sql_string) { sqlite3_free(sql_string); sql_string = NULL; } } -#define SQLITE3_FINALIZE(x) {if (x != NULL) sqlite3_finalize(x); } +#define SQLITE3_FINALIZE(x) {if (x != NULL) { sqlite3_finalize(x); x = NULL; } } /** * @ingroup CAPI_MEDIA_CONTROLLER_MODULE diff --git a/packaging/capi-media-controller.spec b/packaging/capi-media-controller.spec index ac441ba..32161bb 100644 --- a/packaging/capi-media-controller.spec +++ b/packaging/capi-media-controller.spec @@ -1,6 +1,6 @@ Name: capi-media-controller Summary: A media controller library in Tizen Native API -Version: 0.1.90 +Version: 0.2.0 Release: 1 Group: Multimedia/API License: Apache-2.0 diff --git a/src/media_controller_db.c b/src/media_controller_db.c index 97b463c..3dff395 100644 --- a/src/media_controller_db.c +++ b/src/media_controller_db.c @@ -43,7 +43,8 @@ static int __mc_db_get_record(sqlite3 *handle, char *sql_str, sqlite3_stmt **stm if (sqlite3_step(statement) != SQLITE_ROW) { mc_error("end of row [%s]", sqlite3_errmsg(handle)); SQLITE3_FINALIZE(statement); - return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; + /* Error for server metadata. So, other functions need to change TIZEN_ERROR_NO_DATA to MEDIA_CONTROLLER_ERROR_INVALID_OPERATION. */ + return TIZEN_ERROR_NO_DATA; } *stmt = statement; @@ -234,7 +235,7 @@ int mc_db_get_playback_info(sqlite3 *handle, const char *server_name, mc_playbac MC_DB_TABLE_SERVER_INFO, server_name); ret = __mc_db_get_record(handle, sql_str, &stmt); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "__mc_db_get_record failed [%d]", ret); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret); _playback = (media_controller_playback_s *)calloc(1, sizeof(media_controller_playback_s)); if (!_playback) { @@ -267,20 +268,22 @@ static int __mc_db_get_metadata(sqlite3_stmt *stmt, int col, mc_metadata_h *meta _metadata = (media_controller_metadata_s *)calloc(1, sizeof(media_controller_metadata_s)); mc_retvm_if(_metadata == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY"); - _metadata->title = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->artist = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->album = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->author = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->genre = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->duration = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->date = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->copyright = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->description = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->track_num = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->picture = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->season = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->episode = g_strdup((const char *)sqlite3_column_text(stmt, col++)); - _metadata->resolution = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + if (stmt != NULL) { + _metadata->title = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->artist = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->album = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->author = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->genre = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->duration = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->date = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->copyright = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->description = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->track_num = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->picture = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->season = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->episode = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + _metadata->resolution = g_strdup((const char *)sqlite3_column_text(stmt, col++)); + } *metadata = (mc_metadata_h)_metadata; @@ -300,7 +303,7 @@ int mc_db_get_metadata_info(sqlite3 *handle, const char *server_name, mc_metadat sql_str = sqlite3_mprintf("SELECT %s FROM %q WHERE name=%Q", META_LIST, MC_DB_TABLE_LATEST_META, server_name); ret = __mc_db_get_record(handle, sql_str, &stmt); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "__mc_db_get_record failed [%d]", ret); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE && ret != TIZEN_ERROR_NO_DATA, ret, "__mc_db_get_record failed [%d]", ret); ret = __mc_db_get_metadata(stmt, 0, metadata); SQLITE3_FINALIZE(stmt); @@ -321,7 +324,7 @@ int mc_db_get_shuffle_mode(sqlite3 *handle, const char *server_name, mc_shuffle_ sql_str = sqlite3_mprintf("SELECT shuffle_mode FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name); ret = __mc_db_get_record(handle, sql_str, &stmt); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "__mc_db_get_record failed [%d]", ret); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret); *mode = sqlite3_column_int(stmt, 0); SQLITE3_FINALIZE(stmt); @@ -342,7 +345,7 @@ int mc_db_get_repeat_mode(sqlite3 *handle, const char *server_name, mc_repeat_mo sql_str = sqlite3_mprintf("SELECT repeat_mode FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name); ret = __mc_db_get_record(handle, sql_str, &stmt); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "__mc_db_get_record failed [%d]", ret); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret); *mode = sqlite3_column_int(stmt, 0); SQLITE3_FINALIZE(stmt); @@ -363,7 +366,7 @@ int mc_db_get_icon_uri(sqlite3 *handle, const char *server_name, char **uri) sql_str = sqlite3_mprintf("SELECT icon_uri FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name); ret = __mc_db_get_record(handle, sql_str, &stmt); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "__mc_db_get_record failed [%d]", ret); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret); *uri = g_strdup((const char *)sqlite3_column_text(stmt, 0)); SQLITE3_FINALIZE(stmt); @@ -385,7 +388,7 @@ static int __mc_db_get_ability(sqlite3 *handle, const char *server_name, unsigne sql_str = sqlite3_mprintf("SELECT ability_decided, ability_supported FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name); ret = __mc_db_get_record(handle, sql_str, &stmt); - mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "__mc_db_get_record failed [%d]", ret); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret); *decided = (unsigned long long)sqlite3_column_int64(stmt, 0); *supported = (unsigned long long)sqlite3_column_int64(stmt, 1);