From 0babf0d92ee661854e256fd1f3f3b4ef82be754f Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Tue, 12 Jul 2016 15:16:02 +0900 Subject: [PATCH] Add patch(uhd, pvr table, and bug fix, etc) Change-Id: I6e5cea9f45ef1f90897f4d8c9282bd8e09c86fbc Signed-off-by: Minje Ahn --- include/media-svc-types.h | 3 + src/common/media-svc-db-utils.c | 138 +++++++++++++++++++++++++++++ src/common/media-svc-storage.c | 18 ++-- src/common/media-svc-util.c | 3 + src/common/media-svc.c | 56 ++++++++++-- src/include/common/media-svc-env.h | 7 +- src/include/common/media-svc-localize_tw.h | 68 +++++++------- 7 files changed, 245 insertions(+), 48 deletions(-) diff --git a/include/media-svc-types.h b/include/media-svc-types.h index dd9729a..32548da 100755 --- a/include/media-svc-types.h +++ b/include/media-svc-types.h @@ -48,6 +48,9 @@ typedef enum { MEDIA_SVC_MEDIA_TYPE_SOUND = 2, /**< Sound Content like Ringtone*/ MEDIA_SVC_MEDIA_TYPE_MUSIC = 3, /**< Music Content like mp3*/ MEDIA_SVC_MEDIA_TYPE_OTHER = 4, /**< Not media Content*/ + MEDIA_SVC_MEDIA_TYPE_PVR = 5, /**< PVR Content*/ + MEDIA_SVC_MEDIA_TYPE_UHD = 6, /**< UHD Content*/ + MEDIA_SVC_MEDIA_TYPE_SCSA = 7, /**< SCSA Content*/ } media_svc_media_type_e; /** diff --git a/src/common/media-svc-db-utils.c b/src/common/media-svc-db-utils.c index 4b18d63..ae745da 100755 --- a/src/common/media-svc-db-utils.c +++ b/src/common/media-svc-db-utils.c @@ -589,6 +589,10 @@ int _media_svc_init_table_query(const char *event_table_name) media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TRIGGER_FACE, MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_FACE, NULL); media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_UHD, MEDIA_SVC_DB_TRIGGER_UHD, event_table_name, MEDIA_SVC_DB_TABLE_UHD, NULL); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_PVR, MEDIA_SVC_DB_TRIGGER_PVR, event_table_name, MEDIA_SVC_DB_TABLE_PVR, NULL); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); /*insert column info.. */ /*media*/ @@ -872,6 +876,132 @@ int _media_svc_init_table_query(const char *event_table_name) ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_tag", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V3, NULL, false, false, false); media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + /*uhd*/ + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "media_uuid", MEDIA_SVC_DB_TYPE_TEXT, "PRIMARY KEY", USER_V4, NULL, true, true, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "storage_uuid", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, "uhd_storage_id_idx", true, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "path", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "size", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "content_id", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "content_title", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "file_name", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "folder_uuid", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "release_date", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "modified_time", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "played_position", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "sub_type", MEDIA_SVC_DB_TYPE_INT, "DEFAULT -1", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "played_count", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + + /*pvr*/ + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "media_uuid", MEDIA_SVC_DB_TYPE_TEXT, "PRIMARY KEY", USER_V4, NULL, false, true, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "storage_uuid", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, "pvr_storage_id_idx", true, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "path", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, NULL, true, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "size", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "duration", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "timezone", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "ptc", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "major", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "minor", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "channel_type", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "channel_name", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "channel_num", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "program_title", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "program_num", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "program_crid", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "guidance", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "synopsis", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "genre", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "language", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "embargo_time", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "expiry_time", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "start_time", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "program_start_time", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "program_end_time", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "program_date", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "parental_rating", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "timer_record", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "series_record", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "hd", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "subtitle", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "ttx", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "ad", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "hard_of_hearing_radio", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "data_service", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "content_lock", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "content_watch", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "has_audio_only", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "is_local_record", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "resolution", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "aspectratio", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "modified_date", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "sports_type", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "guidance_length", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "tvmode", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "play_count", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "private_data", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "highlight", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_PVR], "folder_uuid", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + return ret; } void __media_svc_table_free(table_info_s *tb) @@ -936,6 +1066,14 @@ void _media_svc_destroy_table_query() __media_svc_table_free(tb); g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_STORAGE); + tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_UHD); + __media_svc_table_free(tb); + g_hash_table_remove (table, MEDIA_SVC_DB_TABLE_UHD); + + tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_PVR); + __media_svc_table_free(tb); + g_hash_table_remove (table, MEDIA_SVC_DB_TABLE_PVR); + g_hash_table_destroy(table); /* Column Free */ diff --git a/src/common/media-svc-storage.c b/src/common/media-svc-storage.c index 5c9e78b..1610cba 100755 --- a/src/common/media-svc-storage.c +++ b/src/common/media-svc-storage.c @@ -305,20 +305,24 @@ int _media_svc_get_storage_scan_status(sqlite3 *handle, const char *storage_id, char *sql = NULL; if (!STRING_VALID(storage_id)) { - media_svc_error("Not found valid storage id"); - ret = MS_MEDIA_ERR_INVALID_PARAMETER; + media_svc_error("Invalid storage_id"); + return MS_MEDIA_ERR_INVALID_PARAMETER; } sql = sqlite3_mprintf("SELECT scan_status FROM '%s' WHERE (storage_uuid=%Q AND validity=1)", MEDIA_SVC_DB_TABLE_STORAGE, storage_id); - ret = _media_svc_sql_prepare_to_step_simple(handle, sql, &sql_stmt); - - media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt); + if (ret != MS_MEDIA_ERR_NONE) { + if (ret == MS_MEDIA_ERR_DB_NO_RECORD) + media_svc_debug("there is no storage."); + else + media_svc_error("error when _media_svc_get_storage_scan_status. err = [%d]", ret); - while (sqlite3_step(sql_stmt) == SQLITE_ROW) { - *scan_status = sqlite3_column_int(sql_stmt, 0); + return ret; } + *scan_status = sqlite3_column_int(sql_stmt, 0); + SQLITE3_FINALIZE(sql_stmt); return ret; diff --git a/src/common/media-svc-util.c b/src/common/media-svc-util.c index 69924af..d0c3421 100755 --- a/src/common/media-svc-util.c +++ b/src/common/media-svc-util.c @@ -66,6 +66,9 @@ #define MEDIA_SVC_CATEGORY_VIDEO 0x00000004 /**< Video category */ #define MEDIA_SVC_CATEGORY_MUSIC 0x00000008 /**< Music category */ #define MEDIA_SVC_CATEGORY_SOUND 0x00000010 /**< Sound category */ +#define MEDIA_SVC_CATEGORY_PVR 0x00000020 /**< PVR category */ +#define MEDIA_SVC_CATEGORY_UHD 0x00000040 /**< UHD category */ +#define MEDIA_SVC_CATEGORY_SCSA 0x00000080 /**< SCSA category */ #define CONTENT_TYPE_NUM 5 #define MUSIC_MIME_NUM 29 diff --git a/src/common/media-svc.c b/src/common/media-svc.c index 5e4e18c..d1a9edb 100755 --- a/src/common/media-svc.c +++ b/src/common/media-svc.c @@ -185,13 +185,26 @@ int media_svc_create_table(uid_t uid) goto ERROR; } - /*create storage table. from tizen 2.4*/ + /*create storage table from tizen 2.4 */ ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid); if (ret != MS_MEDIA_ERR_NONE) { media_svc_error("_media_svc_make_table_query fail."); goto ERROR; } + /*create uhd table from tizen 3.0 */ + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_UHD, MEDIA_SVC_DB_LIST_UHD, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_make_table_query fail."); + goto ERROR; + } + + /*create pvr table from tizen 3.0 */ + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_PVR, MEDIA_SVC_DB_LIST_PVR, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("_media_svc_make_table_query fail."); + goto ERROR; + } #if 0 /*init storage table*/ ret = _media_svc_init_storage(db_handle, uid); @@ -351,7 +364,10 @@ int media_svc_insert_item_bulk(MediaSvcHandle *handle, const char *storage_id, m if (ret != MS_MEDIA_ERR_NONE) return ret; - if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) { + if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER + ||(media_type == MEDIA_SVC_MEDIA_TYPE_PVR) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_UHD) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_SCSA)) { /*Do nothing.*/ } else if (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) { ret = _media_svc_extract_image_metadata(db_handle, &content_info); @@ -440,7 +456,10 @@ int media_svc_insert_item_immediately(MediaSvcHandle *handle, const char *storag return ret; } - if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) { + if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER + ||(media_type == MEDIA_SVC_MEDIA_TYPE_PVR) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_UHD) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_SCSA)) { /*Do nothing.*/ } else if (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) { ret = _media_svc_extract_image_metadata(db_handle, &content_info); @@ -934,7 +953,10 @@ int media_svc_refresh_item(MediaSvcHandle *handle, const char *storage_id, media media_type = noti_item->media_type; content_info.media_type = media_type; - if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) { + if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER + ||(media_type == MEDIA_SVC_MEDIA_TYPE_PVR) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_UHD) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_SCSA)) { /*Do nothing.*/ } else if (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) { ret = _media_svc_extract_image_metadata(db_handle, &content_info); @@ -1199,7 +1221,13 @@ int media_svc_send_dir_update_noti(MediaSvcHandle *handle, const char *storage_i if (folder_id != NULL) { uuid = strndup(folder_id, strlen(folder_id)); } else { - uuid = strndup(noti_item->media_uuid, strlen(noti_item->media_uuid)); + if (noti_item->media_uuid != NULL) { + uuid = strndup(noti_item->media_uuid, strlen(noti_item->media_uuid)); + } else { + _media_svc_destroy_noti_item(noti_item); + media_svc_error("folder uuid is wrong"); + return MS_MEDIA_ERR_DB_INTERNAL; + } } ret = _media_svc_publish_dir_noti(MS_MEDIA_ITEM_DIRECTORY, MS_MEDIA_ITEM_UPDATE, dir_path, -1, noti_item->media_uuid, NULL, pid); @@ -2170,7 +2198,10 @@ int media_svc_insert_item_pass2(MediaSvcHandle *handle, const char *storage_id, _media_svc_set_default_value(&content_info, FALSE); - if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER) { + if (media_type == MEDIA_SVC_MEDIA_TYPE_OTHER + ||(media_type == MEDIA_SVC_MEDIA_TYPE_PVR) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_UHD) + ||(media_type == MEDIA_SVC_MEDIA_TYPE_SCSA)) { /*Do nothing.*/ } else if (media_type == MEDIA_SVC_MEDIA_TYPE_IMAGE) { ret = _media_svc_extract_image_metadata(db_handle, &content_info); @@ -2196,6 +2227,19 @@ int media_svc_insert_item_pass2(MediaSvcHandle *handle, const char *storage_id, ret = _media_svc_create_noti_list(idx); } } + + while (db_data_array->len != 0) { + db_data = NULL; + db_data = g_array_index(db_data_array, media_svc_item_info_s*, 0); + g_array_remove_index (db_data_array, 0); + + if(db_data) { + SAFE_FREE(db_data->path); + free(db_data); + db_data = NULL; + } + } + g_array_free(db_data_array, FALSE); db_data_array = NULL; diff --git a/src/include/common/media-svc-env.h b/src/include/common/media-svc-env.h index 53b493d..e640107 100755 --- a/src/include/common/media-svc-env.h +++ b/src/include/common/media-svc-env.h @@ -67,6 +67,8 @@ extern "C" { #define MEDIA_SVC_DB_TABLE_TMP_TABLE "tmp" /**< tmp table for backup*/ #define MEDIA_SVC_DB_TABLE_FACE "face" /**< face table*/ #define MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST "face_scan_list" /**< face_scan_list table*/ +#define MEDIA_SVC_DB_TABLE_UHD "uhd" /**< uhd table*/ +#define MEDIA_SVC_DB_TABLE_PVR "pvr" /**< pvr table*/ /** * View Name @@ -88,7 +90,8 @@ extern "C" { #define MEDIA_SVC_DB_TRIGGER_STORAGE "storage_folder_cleanup" #define MEDIA_SVC_DB_TRIGGER_FACE_SCAN_LIST "face_scan_list_cleanup" #define MEDIA_SVC_DB_TRIGGER_FACE "face_cleanup" - +#define MEDIA_SVC_DB_TRIGGER_PVR "pvr_item_cleanup" +#define MEDIA_SVC_DB_TRIGGER_UHD "uhd_item_cleanup" /** * Trigger Name @@ -171,6 +174,8 @@ typedef enum { MEDIA_SVC_DB_LIST_TAG, MEDIA_SVC_DB_LIST_BOOKMARK, MEDIA_SVC_DB_LIST_STORAGE, + MEDIA_SVC_DB_LIST_UHD, + MEDIA_SVC_DB_LIST_PVR, MEDIA_SVC_DB_LIST_FACE_SCAN_LIST, MEDIA_SVC_DB_LIST_FACE, MEDIA_SVC_DB_LIST_MAX, diff --git a/src/include/common/media-svc-localize_tw.h b/src/include/common/media-svc-localize_tw.h index de01d3c..fb6de6d 100755 --- a/src/include/common/media-svc-localize_tw.h +++ b/src/include/common/media-svc-localize_tw.h @@ -1,35 +1,35 @@ -/* - * Contacts Service - * - * Copyright (c) 2010 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef __MEDIA_SERVICE_LOCALIZE_TW_H__ -#define __MEDIA_SERVICE_LOCALIZE_TW_H__ - -#define MAX_BPMF_NAME_LENGTH 30 -typedef struct { - char *bpmf_initial; - char *bpmf_name; -} media_svc_bpmf_name_s; - -int _media_svc_get_bopomofo(const char *src, char **dest); -int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **dest); -void _media_svc_bpmf_name_destroy(media_svc_bpmf_name_s *bpmf); -bool _media_svc_bpmf_is_bpmf(const char *src); -char _media_svc_bpmf_get_fuzzy_number(const char *src); - +/* + * Contacts Service + * + * Copyright (c) 2010 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __MEDIA_SERVICE_LOCALIZE_TW_H__ +#define __MEDIA_SERVICE_LOCALIZE_TW_H__ + +#define MAX_BPMF_NAME_LENGTH 30 +typedef struct { + char *bpmf_initial; + char *bpmf_name; +} media_svc_bpmf_name_s; + +int _media_svc_get_bopomofo(const char *src, char **dest); +int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **dest); +void _media_svc_bpmf_name_destroy(media_svc_bpmf_name_s *bpmf); +bool _media_svc_bpmf_is_bpmf(const char *src); +char _media_svc_bpmf_get_fuzzy_number(const char *src); + #endif /*__MEDIA_SERVICE_LOCALIZE_TW_H__ */ \ No newline at end of file -- 2.7.4