Multiuser features
[platform/core/api/media-content.git] / src / media_info.c
index 5c86af6..298c5f4 100755 (executable)
@@ -31,6 +31,7 @@ static int __media_info_insert_batch(media_batch_insert_e insert_type, const cha
 static int __media_info_get_media_info_from_db(char *path, media_info_h media)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
+       int ret_view = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
        char *select_query = NULL;
        media_info_s *_media = (media_info_s*)media;
@@ -69,6 +70,7 @@ static int __media_info_get_media_info_from_db(char *path, media_info_h media)
 static int __media_info_get_media_path_by_id_from_db(const char *media_id, char **path)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
+       int ret_view = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
        char *select_query = NULL;
 
@@ -95,7 +97,6 @@ static int __media_info_get_media_path_by_id_from_db(const char *media_id, char
        }
 
        SQLITE3_FINALIZE(stmt);
-
        return ret;
 }
 
@@ -247,6 +248,9 @@ void _media_info_item_get_detail(sqlite3_stmt* stmt, media_info_h media)
        _media->latitude = (double)sqlite3_column_double(stmt, 22);
        _media->altitude = (double)sqlite3_column_double(stmt, 23);
 
+       if(STRING_VALID((const char *)sqlite3_column_text(stmt, 28)))
+               _media->title = strdup((const char *)sqlite3_column_text(stmt, 28));
+
        if(_media->media_type == MEDIA_CONTENT_TYPE_IMAGE) {
                _media->image_meta = (image_meta_s *)calloc(1, sizeof(image_meta_s));
                if(_media->image_meta) {
@@ -261,6 +265,9 @@ void _media_info_item_get_detail(sqlite3_stmt* stmt, media_info_h media)
                
                        _media->image_meta->orientation = sqlite3_column_int(stmt, 27);
 
+                       if(STRING_VALID((const char *)sqlite3_column_text(stmt, 28)))
+                               _media->image_meta->title = strdup((const char *)sqlite3_column_text(stmt, 28));
+
                        if(STRING_VALID((const char *)sqlite3_column_text(stmt, 44)))
                                _media->image_meta->burst_id = strdup((const char *)sqlite3_column_text(stmt, 44));
                }
@@ -399,7 +406,7 @@ int media_info_insert_to_db (const char *path, media_info_h *info)
                }
 
                media_content_debug("media_svc_insert_item_immediately: %s", _path);
-               ret = media_svc_insert_item_immediately(_content_get_db_handle(), storage_type, _path);
+               ret = media_svc_insert_item_immediately(_content_get_db_handle(), storage_type, _path, tzplatform_getuid(TZ_USER_NAME));
 
                if (ret < 0) {
                        media_content_error("media_svc_insert_item_immediately failed : %d (%s)", ret, _path);
@@ -505,9 +512,9 @@ static int __media_info_insert_batch(media_batch_insert_e insert_type, const cha
        _cb_data->insert_list_path = strdup(list_path);
 
        if(insert_type == MEDIA_BATCH_INSERT_NORMAL)
-               ret = media_files_register(list_path, __media_info_insert_completed_cb, _cb_data);
+               ret = media_files_register(list_path, __media_info_insert_completed_cb, _cb_data, tzplatform_getuid(TZ_USER_NAME));
        else if(insert_type == MEDIA_BATCH_INSERT_BURSTSHOT)
-               ret = media_burstshot_register(list_path, __media_info_insert_completed_cb, _cb_data);
+               ret = media_burstshot_register(list_path, __media_info_insert_completed_cb, _cb_data, tzplatform_getuid(TZ_USER_NAME));
        else
                ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
 
@@ -589,7 +596,7 @@ int media_info_delete_from_db(const char *media_id)
                return ret;
        }
 
-       ret = media_svc_delete_item_by_path(_content_get_db_handle(), path);
+       ret = media_svc_delete_item_by_path(_content_get_db_handle(), path, tzplatform_getuid(TZ_USER_NAME));
        SAFE_FREE(path);
 
        return _content_error_capi(ret,MEDIA_CONTENT_TYPE);
@@ -669,6 +676,7 @@ int media_info_destroy(media_info_h media)
                SAFE_FREE(_media->location_tag);
                SAFE_FREE(_media->age_rating);
                SAFE_FREE(_media->keyword);
+               SAFE_FREE(_media->title);
 
                if(_media->image_meta) {
                        SAFE_FREE(_media->image_meta->media_id);
@@ -793,6 +801,16 @@ int media_info_clone(media_info_h *dst, media_info_h src)
                                return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
                        }
                }
+               if(STRING_VALID(_src->title))
+               {
+                       _dst->title = strdup(_src->title);
+                       if(_dst->title == NULL)
+                       {
+                               media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
+                               media_info_destroy((media_info_h)_dst);
+                               return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
+                       }
+               }
                if(STRING_VALID(_src->author))
                {
                        _dst->author = strdup(_src->author);
@@ -1327,6 +1345,10 @@ int media_info_get_image(media_info_h media, image_meta_h *image)
                _image->date_taken = strdup(_media->image_meta->date_taken);
        }
 
+       if(STRING_VALID(_media->image_meta->title)) {
+               _image->title = strdup(_media->image_meta->title);
+       }
+
        if(STRING_VALID(_media->image_meta->burst_id)) {
                _image->burst_id = strdup(_media->image_meta->burst_id);
        }
@@ -1719,6 +1741,37 @@ int media_info_get_thumbnail_path(media_info_h media, char **path)
        return ret;
 }
 
+int media_info_get_title(media_info_h media, char **title)
+{
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_info_s *_media = (media_info_s*)media;
+
+       if(_media && title)
+       {
+               if(STRING_VALID(_media->title))
+               {
+                       *title = strdup(_media->title);
+                       if(*title == NULL)
+                       {
+                               media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
+                               return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
+                       }
+               }
+               else
+               {
+                       *title = NULL;
+               }
+               ret = MEDIA_CONTENT_ERROR_NONE;
+       }
+       else
+       {
+               media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+       }
+
+       return ret;
+}
+
 int media_info_get_description(media_info_h media, char **description)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
@@ -2103,6 +2156,7 @@ int media_info_get_storage_type(media_info_h media, media_content_storage_e *sto
 int media_info_get_media_from_db(const char *media_id, media_info_h *media)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
+       int ret_view = MEDIA_CONTENT_ERROR_NONE;
        char select_query[DEFAULT_QUERY_SIZE];
        sqlite3_stmt *stmt = NULL;
 
@@ -2135,7 +2189,6 @@ int media_info_get_media_from_db(const char *media_id, media_info_h *media)
        }
 
        SQLITE3_FINALIZE(stmt);
-
        return ret;
 }
 
@@ -2612,7 +2665,7 @@ int media_info_refresh_metadata_to_db(const char *media_id)
                return ret;
        }
 
-       ret = media_svc_refresh_item(_content_get_db_handle(), storage_type, file_path);
+       ret = media_svc_refresh_item(_content_get_db_handle(), storage_type, file_path, tzplatform_getuid(TZ_USER_NAME));
 
        SAFE_FREE(file_path);
        media_info_destroy(media);
@@ -2640,7 +2693,7 @@ int media_info_move_to_db(media_info_h media, const char* dst_path)
        ret = _media_util_get_store_type_by_path(dst_path, &dst_storage_type);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
-       ret = media_svc_move_item(_content_get_db_handle(), src_storage_type, _media->file_path, dst_storage_type, dst_path);
+       ret = media_svc_move_item(_content_get_db_handle(), src_storage_type, _media->file_path, dst_storage_type, dst_path, tzplatform_getuid(TZ_USER_NAME));
        return _content_error_capi(MEDIA_CONTENT_TYPE, ret);
 }
 
@@ -2656,7 +2709,7 @@ int media_info_create_thumbnail(media_info_h media, media_thumbnail_completed_cb
                _thumb_cb->user_data = user_data;
                _thumb_cb->thumbnail_completed_cb = callback;
 
-               ret = thumbnail_request_from_db_async(_media->file_path, (ThumbFunc)__media_info_thumbnail_completed_cb, (void *)_thumb_cb);
+               ret = thumbnail_request_from_db_async(_media->file_path, (ThumbFunc)__media_info_thumbnail_completed_cb, (void *)_thumb_cb, tzplatform_getuid(TZ_USER_NAME));
                ret = _content_error_capi(MEDIA_THUMBNAIL_TYPE, ret);
        }
        else
@@ -2675,7 +2728,7 @@ int media_info_cancel_thumbnail(media_info_h media)
 
        if(_media != NULL && STRING_VALID(_media->media_id) && STRING_VALID(_media->file_path))
        {
-               ret = thumbnail_request_cancel_media(_media->file_path);
+               ret = thumbnail_request_cancel_media(_media->file_path, tzplatform_getuid(TZ_USER_NAME));
                ret = _content_error_capi(MEDIA_THUMBNAIL_TYPE, ret);
        }
        else