Add code for support media_info_create() 28/49128/1 accepted/tizen/mobile/20151007.081129 accepted/tizen/tv/20151007.081143 accepted/tizen/wearable/20151007.081202 submit/tizen/20151007.051823
authorHaejeong, Kim <backto.kim@samsung.com>
Wed, 7 Oct 2015 05:02:37 +0000 (14:02 +0900)
committerHaejeong, Kim <backto.kim@samsung.com>
Wed, 7 Oct 2015 05:02:37 +0000 (14:02 +0900)
Change-Id: I10867241b736f7762582f211f3cf04b11bd6516d

include/media-svc-types.h
packaging/libmedia-service.spec
src/common/media-svc-media.c
src/common/media-svc-util.c
src/common/media-svc.c
src/include/common/media-svc-env.h

index 914fd6b..ec36318 100755 (executable)
@@ -74,15 +74,22 @@ typedef struct {
        float           altitude;                               /**< altitude*/
        char            *exposure_time;         /**< exposure_time*/
        float           fnumber;                        /**< fnumber*/
-       int             iso;                            /**< iso*/
+       int             iso;                                    /**< iso*/
        char            *model;                         /**< model*/
        int             width;                          /**< width*/
        int             height;                         /**< height*/
        char            *datetaken;                     /**< datetaken*/
        int             orientation;                    /**< orientation*/
        int             rating;                         /**< user defined rating */
-       char            *weather;                               /**< weather of image */
-       int             bitpersample;                           /**< bitrate*/
+       char            *weather;                       /**< weather of image */
+       int             bitpersample;           /**< bitrate*/
+       char            *category;                      /**< category*/
+       char            *keyword;                       /**< keyword*/
+       char            *location_tag;          /**< location_tag*/
+       char            *content_name;          /**< content_name*/
+       char            *age_rating;                    /**< age_rating*/
+       char            *author;                                /**< author*/
+       char            *provider;                      /**< provider*/
 
        char            *file_name_pinyin;                              /**< pinyin for file_name*/
        char            *title_pinyin;                                  /**< pinyin for title*/
@@ -115,7 +122,7 @@ typedef struct {
        int             played_count;                           /**< played count */
        int             last_played_time;                               /**< last played time */
        int             last_played_position;                   /**< last played position */
-       int             favourate;                                      /**< favourate. o or 1 */
+       time_t  favourate;                                      /**< time favourate set */
        int             is_drm;                                         /**< is_drm. o or 1 */
        int             sync_status;                                            /**< sync_status  */
        int             storage_type;                                   /**< Storage of media file : internal/external */
@@ -134,4 +141,6 @@ typedef enum{
        MEDIA_SVC_SCAN_MAX                      = 4,    /**< Invalid status*/
 }media_svc_scan_status_type_e;
 
+#define MEDIA_SVC_DEFAULT_GPS_VALUE                    -200                    /**<  Default GPS Value*/
+
 #endif /*_MEDIA_SVC_TYPES_H_*/
index 6195d1e..fc6747d 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmedia-service
 Summary:    Media information service library for multimedia applications
-Version: 0.2.54
+Version: 0.2.55
 Release:    3
 Group:      System/Libraries
 License:    Apache-2.0 and public domain
index 5e2066d..443cfb6 100755 (executable)
@@ -218,6 +218,7 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, const char *storage_id, me
 
        const char *db_fields = "media_uuid, path, file_name, media_type, mime_type, size, added_time, modified_time, folder_uuid, \
                                        thumbnail_path, title, album_id, album, artist, album_artist, genre, composer, year, recorded_date, copyright, track_num, description, \
+                                       category, keyword, location_tag, content_name, age_rating, author, provider, last_played_time, played_count, favourite, \
                                        bitrate, bitpersample, samplerate, channel, duration, longitude, latitude, altitude, exposure_time, fnumber, iso, model, width, height, datetaken, orientation, \
                                        rating, is_drm, storage_type, burst_id, timeline, weather, sync_status, \
                                        file_name_pinyin, title_pinyin, album_pinyin, artist_pinyin, album_artist_pinyin, genre_pinyin, composer_pinyin, copyright_pinyin, description_pinyin, storage_uuid";
@@ -285,6 +286,7 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, const char *storage_id, me
 
        char *sql = sqlite3_mprintf("INSERT INTO '%s' (%s) VALUES (%Q, %Q, %Q, %d, %Q, %lld, %d, %d, %Q, \
                                                                                                        %Q, %Q, %d, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, \
+                                                                                                       %Q, %Q, %Q, %Q, %Q, %Q, %Q, %d, %d, %d, \
                                                                                                        %d, %d, %d, %d, %d, %.6f, %.6f, %.6f, %Q, %.6f, %d, %Q, %d, %d, %Q, %d, \
                                                                                                        %d, %d, %d, %Q, %d, %Q, %d, \
                                                                                                        %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q);",
@@ -297,7 +299,7 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, const char *storage_id, me
                                                                content_info->size,
                                                                content_info->added_time,
                                                                content_info->modified_time,
-                                                               content_info->folder_uuid,
+                                                               content_info->folder_uuid,              //
                                                                content_info->thumbnail_path,
                                                                content_info->media_meta.title,
                                                                content_info->album_id,
@@ -310,7 +312,17 @@ int _media_svc_insert_item_with_data(sqlite3 *handle, const char *storage_id, me
                                                                content_info->media_meta.recorded_date,
                                                                content_info->media_meta.copyright,
                                                                content_info->media_meta.track_num,
-                                                               content_info->media_meta.description,
+                                                               content_info->media_meta.description,   //
+                                                               content_info->media_meta.category,
+                                                               content_info->media_meta.keyword,
+                                                               content_info->media_meta.location_tag,
+                                                               content_info->media_meta.content_name,
+                                                               content_info->media_meta.age_rating,
+                                                               content_info->media_meta.author,
+                                                               content_info->media_meta.provider,
+                                                               content_info->last_played_time,
+                                                               content_info->played_count,
+                                                               content_info->favourate,        //
                                                                content_info->media_meta.bitrate,
                                                                content_info->media_meta.bitpersample,
                                                                content_info->media_meta.samplerate,
@@ -1192,4 +1204,4 @@ int _media_svc_insert_item_pass2(sqlite3 *handle, const char *storage_id, media_
        media_svc_debug_fleave();
 
        return MS_MEDIA_ERR_NONE;
-}
\ No newline at end of file
+}
index 649b580..e0058e5 100755 (executable)
@@ -2001,6 +2001,13 @@ void _media_svc_destroy_content_info(media_svc_content_info_s *content_info)
        SAFE_FREE(content_info->media_meta.exposure_time);
        SAFE_FREE(content_info->media_meta.model);
        SAFE_FREE(content_info->media_meta.weather);
+       SAFE_FREE(content_info->media_meta.category);
+       SAFE_FREE(content_info->media_meta.keyword);
+       SAFE_FREE(content_info->media_meta.location_tag);
+       SAFE_FREE(content_info->media_meta.content_name);
+       SAFE_FREE(content_info->media_meta.age_rating);
+       SAFE_FREE(content_info->media_meta.author);
+       SAFE_FREE(content_info->media_meta.provider);
 
        SAFE_FREE(content_info->media_meta.title_pinyin);
        SAFE_FREE(content_info->media_meta.album_pinyin);
index c74b922..c651584 100755 (executable)
@@ -1453,6 +1453,18 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
                new_content_info->media_meta.height = content_info->media_meta.height;
        }
 
+       if (content_info->added_time > 0)
+               new_content_info->added_time = content_info->added_time;
+       new_content_info->last_played_time = content_info->last_played_time;
+       new_content_info->played_count = content_info->played_count;
+       new_content_info->favourate= content_info->favourate;
+
+       if (STRING_VALID(content_info->file_name)) {
+                       ret = __media_svc_malloc_and_strncpy(&new_content_info->file_name, content_info->file_name);
+                       if (ret != MS_MEDIA_ERR_NONE)
+                               media_svc_error("strcpy file_name failed");
+       }
+
        if (STRING_VALID(content_info->media_meta.title)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.title, content_info->media_meta.title);
                if (ret != MS_MEDIA_ERR_NONE)
@@ -1516,7 +1528,49 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
        if (STRING_VALID(content_info->media_meta.weather)) {
                ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.weather, content_info->media_meta.weather);
                if (ret != MS_MEDIA_ERR_NONE)
-                       media_svc_error("strcpy description failed");
+                       media_svc_error("strcpy weather failed");
+       }
+
+       if (STRING_VALID(content_info->media_meta.category)) {
+               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.category, content_info->media_meta.category);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("strcpy category failed");
+       }
+
+       if (STRING_VALID(content_info->media_meta.keyword)) {
+               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.keyword, content_info->media_meta.keyword);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("strcpy keyword failed");
+       }
+
+       if (STRING_VALID(content_info->media_meta.location_tag)) {
+               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.location_tag, content_info->media_meta.location_tag);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("strcpy location_tag failed");
+       }
+
+       if (STRING_VALID(content_info->media_meta.content_name)) {
+               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.content_name, content_info->media_meta.content_name);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("strcpy content_name failed");
+       }
+
+       if (STRING_VALID(content_info->media_meta.age_rating)) {
+               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.age_rating, content_info->media_meta.age_rating);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("strcpy age_rating failed");
+       }
+
+       if (STRING_VALID(content_info->media_meta.author)) {
+               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.author, content_info->media_meta.author);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("strcpy author failed");
+       }
+
+       if (STRING_VALID(content_info->media_meta.provider)) {
+               ret = __media_svc_malloc_and_strncpy(&new_content_info->media_meta.provider, content_info->media_meta.provider);
+               if (ret != MS_MEDIA_ERR_NONE)
+                       media_svc_error("strcpy provider failed");
        }
 
        if (STRING_VALID(content_info->media_meta.datetaken)) {
@@ -1533,7 +1587,6 @@ static int __media_svc_copy_para_to_content(media_svc_content_info_s *content_in
                }
        }
 
-       /*category, favorite, keyword, provider, age_rating, content_name, display_name, location_tag, modified_time, played_time*/
        //new_content_info->media_meta.bitrate = content_info->media_meta.bitrate;
        //new_content_info->media_meta.samplerate = content_info->media_meta.samplerate;
        //new_content_info->media_meta.channel = content_info->media_meta.channel;
index a514c3e..13e7f2a 100755 (executable)
@@ -136,7 +136,6 @@ extern "C" {
 #define MEDIA_SVC_THUMB_EXTERNAL_PATH          tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb/mmc")            /**<  MMC thumbnail path*/
 #define MEDIA_SVC_THUMB_DEFAULT_PATH           tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb/thumb_default.png") /** default thumbnail */
 
-#define MEDIA_SVC_DEFAULT_GPS_VALUE                    -200                    /**<  Default GPS Value*/
 #define THUMB_EXT      "jpg"
 
 enum Exif_Orientation {