Add patch(uhd, pvr table, and bug fix, etc) 26/79626/2 accepted/tizen/common/20160719.172013 accepted/tizen/ivi/20160718.104842 accepted/tizen/mobile/20160718.104916 accepted/tizen/tv/20160718.104655 accepted/tizen/wearable/20160718.104802 submit/tizen/20160718.052709
authorMinje Ahn <minje.ahn@samsung.com>
Tue, 12 Jul 2016 06:16:02 +0000 (15:16 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Tue, 12 Jul 2016 08:22:50 +0000 (17:22 +0900)
Change-Id: I6e5cea9f45ef1f90897f4d8c9282bd8e09c86fbc
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
include/media-svc-types.h
src/common/media-svc-db-utils.c
src/common/media-svc-storage.c
src/common/media-svc-util.c
src/common/media-svc.c
src/include/common/media-svc-env.h
src/include/common/media-svc-localize_tw.h

index dd9729a..32548da 100755 (executable)
@@ -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;
 
 /**
index 4b18d63..ae745da 100755 (executable)
@@ -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 */
index 5c9e78b..1610cba 100755 (executable)
@@ -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;
index 69924af..d0c3421 100755 (executable)
@@ -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
index 5e4e18c..d1a9edb 100755 (executable)
@@ -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;
 
index 53b493d..e640107 100755 (executable)
@@ -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,
index de01d3c..fb6de6d 100755 (executable)
@@ -1,35 +1,35 @@
-/*\r
- * Contacts Service\r
- *\r
- * Copyright (c) 2010 - 2012 Samsung Electronics Co., Ltd. All rights reserved.\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- *\r
- */\r
-\r
-#ifndef __MEDIA_SERVICE_LOCALIZE_TW_H__\r
-#define __MEDIA_SERVICE_LOCALIZE_TW_H__\r
-\r
-#define MAX_BPMF_NAME_LENGTH 30\r
-typedef struct {\r
-       char *bpmf_initial;\r
-       char *bpmf_name;\r
-} media_svc_bpmf_name_s;\r
-\r
-int _media_svc_get_bopomofo(const char *src, char **dest);\r
-int _media_svc_convert_chinese_to_bpmf(const char *src, media_svc_bpmf_name_s **dest);\r
-void _media_svc_bpmf_name_destroy(media_svc_bpmf_name_s *bpmf);\r
-bool _media_svc_bpmf_is_bpmf(const char *src);\r
-char _media_svc_bpmf_get_fuzzy_number(const char *src);\r
-\r
+/*
+ * 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