From 32ab3b12677e6c00f406e6887f642879832205e0 Mon Sep 17 00:00:00 2001 From: Haejeong Kim Date: Fri, 9 Jun 2017 15:21:12 +0900 Subject: [PATCH] Code refactoring regarding DB attribute handle Change-Id: Ib3a0e927468d37609ac4bdb4c32ceecaf46a0cd9 --- src/media_content.c | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 265 insertions(+), 2 deletions(-) diff --git a/src/media_content.c b/src/media_content.c index 2d6a107..b6b35fb 100755 --- a/src/media_content.c +++ b/src/media_content.c @@ -26,11 +26,195 @@ static int ref_count = 0; static GMutex db_mutex; static __thread media_noti_cb_s *g_noti_info = NULL; +#if 0 static int __media_content_create_attr_handle(void); static int __media_content_create_alias_attr_handle(void); static int __media_content_create_attribute_handle(void); +#endif +static int __media_content_create_attribute_handles(void); static int __media_content_destroy_attribute_handle(void); +typedef struct { + char *user_attr; + char *platform_attr; + char *platform_alias_attr; +} media_content_attribute_info_s; + +static media_content_attribute_info_s g_content_attrs_info[] = { + /* Media Info */ + {MEDIA_ID, DB_FIELD_MEDIA_ID, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ID}, + {MEDIA_PATH, DB_FIELD_MEDIA_PATH, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_PATH}, + {MEDIA_DISPLAY_NAME, DB_FIELD_MEDIA_DISPLAY_NAME, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_DISPLAY_NAME}, + {MEDIA_TYPE, DB_FIELD_MEDIA_TYPE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_TYPE}, + {MEDIA_MIME_TYPE, DB_FIELD_MEDIA_MIME_TYPE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_MIME_TYPE}, + {MEDIA_SIZE, DB_FIELD_MEDIA_SIZE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_SIZE}, + {MEDIA_ADDED_TIME, DB_FIELD_MEDIA_ADDED_TIME, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ADDED_TIME}, + {MEDIA_MODIFIED_TIME, DB_FIELD_MEDIA_MODIFIED_TIME, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_MODIFIED_TIME}, + {MEDIA_TIMELINE, DB_FIELD_MEDIA_TIMELINE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_TIMELINE}, + {MEDIA_THUMBNAIL_PATH, DB_FIELD_MEDIA_THUMBNAIL_PATH, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_THUMBNAIL_PATH}, + {MEDIA_TITLE, DB_FIELD_MEDIA_TITLE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_TITLE}, + {MEDIA_ALBUM, DB_FIELD_MEDIA_ALBUM, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ALBUM}, + {MEDIA_ARTIST, DB_FIELD_MEDIA_ARTIST, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ARTIST}, + {MEDIA_ALBUM_ARTIST, DB_FIELD_MEDIA_ALBUM_ARTIST, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ALBUM_ARTIST}, + {MEDIA_GENRE, DB_FIELD_MEDIA_GENRE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_GENRE}, + {MEDIA_COMPOSER, DB_FIELD_MEDIA_COMPOSER, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_COMPOSER}, + {MEDIA_YEAR, DB_FIELD_MEDIA_YEAR, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_YEAR}, + {MEDIA_RECORDED_DATE, DB_FIELD_MEDIA_RECORDED_DATE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_RECORDED_DATE}, + {MEDIA_COPYRIGHT, DB_FIELD_MEDIA_COPYRIGHT, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_COPYRIGHT}, + {MEDIA_TRACK_NUM, DB_FIELD_MEDIA_TRACK_NUM, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_TRACK_NUM}, + {MEDIA_DESCRIPTION, DB_FIELD_MEDIA_DESCRIPTION, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_DESCRIPTION}, + {MEDIA_BITRATE, DB_FIELD_MEDIA_BITRATE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_BITRATE}, + {MEDIA_BITPERSAMPLE, DB_FIELD_MEDIA_BITPERSAMPLE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_BITPERSAMPLE}, + {MEDIA_SAMPLERATE, DB_FIELD_MEDIA_SAMPLERATE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_SAMPLERATE}, + {MEDIA_CHANNEL, DB_FIELD_MEDIA_CHANNEL, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_CHANNEL}, + {MEDIA_DURATION, DB_FIELD_MEDIA_DURATION, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_DURATION}, + {MEDIA_LONGITUDE, DB_FIELD_MEDIA_LONGITUDE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_LONGITUDE}, + {MEDIA_LATITUDE, DB_FIELD_MEDIA_LATITUDE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_LATITUDE}, + {MEDIA_ALTITUDE, DB_FIELD_MEDIA_ALTITUDE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ALTITUDE}, + {MEDIA_WIDTH, DB_FIELD_MEDIA_WIDTH, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_WIDTH}, + {MEDIA_HEIGHT, DB_FIELD_MEDIA_HEIGHT, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_HEIGHT}, + {MEDIA_DATETAKEN, DB_FIELD_MEDIA_DATETAKEN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_DATETAKEN}, + {MEDIA_ORIENTATION, DB_FIELD_MEDIA_ORIENTATION, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ORIENTATION}, + {MEDIA_BURST_ID, DB_FIELD_MEDIA_BURST_ID, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_BURST_ID}, + {MEDIA_PLAYED_COUNT, DB_FIELD_MEDIA_PLAYED_COUNT, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_PLAYED_COUNT}, + {MEDIA_LAST_PLAYED_TIME, DB_FIELD_MEDIA_LAST_PLAYED_TIME, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_LAST_PLAYED_TIME}, + {MEDIA_LAST_PLAYED_POSITION, DB_FIELD_MEDIA_LAST_PLAYED_POSITION, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_LAST_PLAYED_POSITION}, + {MEDIA_RATING, DB_FIELD_MEDIA_RATING, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_RATING}, + {MEDIA_FAVOURITE, DB_FIELD_MEDIA_FAVOURITE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_FAVOURITE}, + {MEDIA_AUTHOR, DB_FIELD_MEDIA_AUTHOR, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_AUTHOR}, + {MEDIA_PROVIDER, DB_FIELD_MEDIA_PROVIDER, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_PROVIDER}, + {MEDIA_CONTENT_NAME, DB_FIELD_MEDIA_CONTENT_NAME, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_CONTENT_NAME}, + {MEDIA_CATEGORY, DB_FIELD_MEDIA_CATEGORY, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_CATEGORY}, + {MEDIA_LOCATION_TAG, DB_FIELD_MEDIA_LOCATION_TAG, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_LOCATION_TAG}, + {MEDIA_AGE_RATING, DB_FIELD_MEDIA_AGE_RATING, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_AGE_RATING}, + {MEDIA_KEYWORD, DB_FIELD_MEDIA_KEYWORD, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_KEYWORD}, + {MEDIA_WEATHER, DB_FIELD_MEDIA_WEATHER, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_WEATHER}, + {MEDIA_IS_DRM, DB_FIELD_MEDIA_IS_DRM, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_IS_DRM}, + {MEDIA_STORAGE_TYPE, DB_FIELD_MEDIA_STORAGE_TYPE, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_STORAGE_TYPE}, + {MEDIA_360, DB_FIELD_MEDIA_360, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_360}, + + /* Pinyin */ + {MEDIA_FILE_NAME_PINYIN, DB_FIELD_MEDIA_FILE_NAME_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_FILE_NAME_PINYIN}, + {MEDIA_TITLE_PINYIN, DB_FIELD_MEDIA_TITLE_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_TITLE_PINYIN}, + {MEDIA_ALBUM_PINYIN, DB_FIELD_MEDIA_ALBUM_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ALBUM_PINYIN}, + {MEDIA_ARTIST_PINYIN, DB_FIELD_MEDIA_ARTIST_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ARTIST_PINYIN}, + {MEDIA_ALBUM_ARTIST_PINYIN, DB_FIELD_MEDIA_ALBUM_ARTIST_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_ALBUM_ARTIST_PINYIN}, + {MEDIA_GENRE_PINYIN, DB_FIELD_MEDIA_GENRE_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_GENRE_PINYIN}, + {MEDIA_COMPOSER_PINYIN, DB_FIELD_MEDIA_COMPOSER_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_COMPOSER_PINYIN}, + {MEDIA_COPYRIGHT_PINYIN, DB_FIELD_MEDIA_COPYRIGHT_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_COPYRIGHT_PINYIN}, + {MEDIA_DESCRIPTION_PINYIN, DB_FIELD_MEDIA_DESCRIPTION_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_DESCRIPTION_PINYIN}, + {MEDIA_AUTHOR_PINYIN, DB_FIELD_MEDIA_AUTHOR_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_AUTHOR_PINYIN}, + {MEDIA_PROVIDER_PINYIN, DB_FIELD_MEDIA_PROVIDER_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_PROVIDER_PINYIN}, + {MEDIA_CONTENT_NAME_PINYIN, DB_FIELD_MEDIA_CONTENT_NAME_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_CONTENT_NAME_PINYIN}, + {MEDIA_CATEGORY_PINYIN, DB_FIELD_MEDIA_CATEGORY_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_CATEGORY_PINYIN}, + {MEDIA_LOCATION_TAG_PINYIN, DB_FIELD_MEDIA_LOCATION_TAG_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_LOCATION_TAG_PINYIN}, + {MEDIA_AGE_RATING_PINYIN, DB_FIELD_MEDIA_AGE_RATING_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_AGE_RATING_PINYIN}, + {MEDIA_KEYWORD_PINYIN, DB_FIELD_MEDIA_KEYWORD_PINYIN, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_KEYWORD_PINYIN}, + + /* Folder */ + {FOLDER_ID, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_ID}, + {FOLDER_PATH, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_PATH}, + {FOLDER_NAME, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_NAME}, + {FOLDER_MODIFIED_TIME, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_MODIFIED_TIME}, + {FOLDER_STORAGE_TYPE, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_STORAGE_TYPE}, + {FOLDER_NAME_PINYIN, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_NAME_PINYIN}, + {FOLDER_ORDER, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_ORDER}, + {FOLDER_PARENT_FOLDER_ID, NULL, DB_TABLE_ALIAS_FOLDER"."DB_FIELD_FOLDER_PARENT_FOLDER_ID}, + + /* Playlist */ + {MEDIA_PLAYLIST_ID, DB_FIELD_PLAYLIST_ID, NULL}, + {PLAYLIST_NAME, DB_FIELD_PLAYLIST_NAME, DB_TABLE_ALIAS_PLAYLIST"."DB_FIELD_PLAYLIST_NAME}, + {PLAYLIST_MEMBER_ORDER, DB_FIELD_PLAYLIST_MEMBER_ORDER, DB_TABLE_ALIAS_PLAYLIST_MAP"."DB_FIELD_PLAYLIST_MEMBER_ORDER}, + + /* Playlist View */ + {PLAYLIST_MEDIA_COUNT, DB_FIELD_PLAYLIST_MEDIA_COUNT, NULL}, + + /* Tag */ + {MEDIA_TAG_ID, DB_FIELD_TAG_ID, NULL}, + {TAG_NAME, DB_FIELD_TAG_NAME, DB_TABLE_ALIAS_TAG"."DB_FIELD_TAG_NAME}, + + /* Tag View */ + {TAG_MEDIA_COUNT, DB_FIELD_TAG_MEDIA_COUNT, NULL}, + + /* Bookmark */ + {MEDIA_BOOKMARK_ID, DB_FIELD_BOOKMARK_ID, DB_TABLE_ALIAS_BOOKMARK"."DB_FIELD_BOOKMARK_ID}, + {BOOKMARK_MARKED_TIME, DB_FIELD_BOOKMARK_MARKED_TIME, DB_TABLE_ALIAS_BOOKMARK"."DB_FIELD_BOOKMARK_MARKED_TIME}, + {BOOKMARK_NAME, DB_FIELD_BOOKMARK_NAME, DB_TABLE_ALIAS_BOOKMARK"."DB_FIELD_BOOKMARK_NAME}, + + /* Storage */ + {MEDIA_STORAGE_ID, DB_FIELD_STORAGE_ID, NULL}, + {MEDIA_STORAGE_PATH, DB_FIELD_STORAGE_PATH, NULL}, + + /* Face */ + {MEDIA_FACE_ID, DB_FIELD_FACE_ID, DB_TABLE_ALIAS_FACE"."DB_FIELD_FACE_ID}, + {MEDIA_FACE_TAG, DB_FIELD_FACE_TAG, DB_TABLE_ALIAS_FACE"."DB_FIELD_FACE_TAG}, + +#ifdef _USE_SENIOR_MODE + {MEDIA_CONTACT, DB_FIELD_MEDIA_CONTACT, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_CONTACT}, + {MEDIA_APP_DATA, DB_FIELD_MEDIA_APP_DATA, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_APP_DATA}, +#endif +#ifdef _USE_TV_PROFILE + {MEDIA_FOLDER_ID, DB_FIELD_MEDIA_FOLDER_ID, DB_TABLE_ALIAS_MEDIA"."DB_FIELD_MEDIA_FOLDER_ID}, + {MEDIA_STITCHED_INFO, DB_FIELD_MEDIA_STITCHED_INFO, NULL}, + {MEDIA_MODIFIED_MONTH, DB_FIELD_MEDIA_MODIFIED_MONTH, NULL}, + {MEDIA_MODIFIED_DATE, DB_FIELD_MEDIA_MODIFIED_DATE, NULL}, + + /* PVR */ + {PVR_DURATION, DB_FIELD_PVR_DURATION, NULL}, + {PVR_TIME_ZONE, DB_FIELD_PVR_TIME_ZONE, NULL}, + {PVR_PTC, DB_FIELD_PVR_PTC, NULL}, + {PVR_MAJOR, DB_FIELD_PVR_MAJOR, NULL}, + {PVR_MINOR, DB_FIELD_PVR_MINOR, NULL}, + {PVR_CHANNEL_TYPE, DB_FIELD_PVR_CHANNEL_TYPE, NULL}, + {PVR_CHANNEL_NAME, DB_FIELD_PVR_CHANNEL_NAME, NULL}, + {PVR_CHANNEL_NUM, DB_FIELD_PVR_CHANNEL_NUM, NULL}, + {PVR_PROGRAM_TITLE, DB_FIELD_PVR_PROGRAM_TITLE, NULL}, + {PVR_PROGRAM_NUM, DB_FIELD_PVR_PROGRAM_NUM, NULL}, + {PVR_PROGRAM_CRID, DB_FIELD_PVR_PROGRAM_CRID, NULL}, + {PVR_GUIDANCE, DB_FIELD_PVR_GUIDANCE, NULL}, + {PVR_SYNOPSIS, DB_FIELD_PVR_SYNOPSIS, NULL}, + {PVR_GENRE, DB_FIELD_PVR_GENRE, NULL}, + {PVR_LANGUAGE, DB_FIELD_PVR_LANGUAGE, NULL}, + {PVR_EMBARGO_TIME, DB_FIELD_PVR_EMBARGO_TIME, NULL}, + {PVR_EXPIRY_TIME, DB_FIELD_PVR_EXPIRY_TIME, NULL}, + {PVR_START_TIME, DB_FIELD_PVR_START_TIME, NULL}, + {PVR_PROGRAM_START_TIME, DB_FIELD_PVR_PROGRAM_START_TIME, NULL}, + {PVR_PROGRAM_END_TIME, DB_FIELD_PVR_PROGRAM_END_TIME, NULL}, + {PVR_PROGRAM_DATE, DB_FIELD_PVR_PROGRAM_DATE, NULL}, + {PVR_PARENTAL_RATING, DB_FIELD_PVR_PARENTAL_RATING, NULL}, + {PVR_TIMER_RECORD, DB_FIELD_PVR_TIMER_RECORD, NULL}, + {PVR_SERIES_RECORD, DB_FIELD_PVR_SERIES_RECORD, NULL}, + {PVR_HD, DB_FIELD_PVR_HD, NULL}, + {PVR_SUBTITLE, DB_FIELD_PVR_SUBTITLE, NULL}, + {PVR_TTX, DB_FIELD_PVR_TTX, NULL}, + {PVR_AD, DB_FIELD_PVR_AD, NULL}, + {PVR_TTX, DB_FIELD_PVR_TTX, NULL}, + {PVR_DATA_SERVICE, DB_FIELD_PVR_DATA_SERVICE, NULL}, + {PVR_CONTENT_LOCK, DB_FIELD_PVR_CONTENT_LOCK, NULL}, + {PVR_CONTENT_WATCH, DB_FIELD_PVR_CONTENT_WATCH, NULL}, + {PVR_CONTENT_HAS_AUDIO_ONLY, DB_FIELD_PVR_HAS_AUDIO_ONLY, NULL}, + {PVR_CONTENT_IS_LOCAL_RECORD, DB_FIELD_PVR_IS_LOCAL_RECORD, NULL}, + {PVR_CONTENT_RESOLUTION, DB_FIELD_PVR_RESOLUTION, NULL}, + {PVR_CONTENT_ASPECTRATIO, DB_FIELD_PVR_ASPECTRATIO, NULL}, + {PVR_MODIFIED_MONTH, DB_FIELD_PVR_MODIFIED_DATE, NULL}, + {PVR_MODIFIED_DATE, DB_FIELD_PVR_MODIFIED_DATE, NULL}, + {PVR_SPORTS_TYPE, DB_FIELD_PVR_SPORTS_TYPE, NULL}, + {PVR_GUIDANCE_LENGTH, DB_FIELD_PVR_GUIDANCE_LENGTH, NULL}, + {PVR_TVMODE, DB_FIELD_PVR_TVMODE, NULL}, + {PVR_PLAY_COUNT, DB_FIELD_PVR_PLAY_COUNT, NULL}, + {PVR_PRIVATE_DATA, DB_FIELD_PVR_PRIVATE_DATA, NULL}, + + /* UHD */ + {UHD_CONTENT_TITLE, DB_FIELD_UHD_CONTENT_TITLE, NULL}, + {UHD_RELEASE_DATE, DB_FIELD_UHD_RELEASE_DATE, NULL}, + {UHD_SUB_TYPE, DB_FIELD_UHD_SUB_TYPE, NULL}, + {UHD_FILE_NAME, DB_FIELD_UHD_FILE_NAME, NULL}, + {UHD_FOLDER_ID, DB_FIELD_FOLDER_ID, NULL}, + {UHD_PLAYED_COUNT, DB_FIELD_UHD_PLAYED_COUNT, NULL}, +#endif +}; + +#if 0 static int __media_content_create_attr_handle(void) { int ret = MEDIA_CONTENT_ERROR_NONE; @@ -303,7 +487,7 @@ static int __media_content_create_attr_handle(void) ret = _media_filter_attribute_add(g_attr_handle, MEDIA_STITCHED_INFO, DB_FIELD_MEDIA_STITCHED_INFO); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - ret = _media_filter_attribute_add(g_attr_handle, MEDIA_MODIFIED_MONTH, DB_FIELD_MEDIA_MODIFIED_DATE); + ret = _media_filter_attribute_add(g_attr_handle, MEDIA_MODIFIED_MONTH, DB_FIELD_MEDIA_MODIFIED_MONTH); media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); ret = _media_filter_attribute_add(g_attr_handle, MEDIA_MODIFIED_DATE, DB_FIELD_MEDIA_MODIFIED_DATE); @@ -751,6 +935,85 @@ static int __media_content_create_attribute_handle(void) return ret; } +#endif + +static int __media_content_create_attribute_handles(void) +{ + int ret = MEDIA_CONTENT_ERROR_NONE; + int idx = 0; + int count = 0; + char *_attr_user = NULL; + char *_attr_platform = NULL; + char *_alias_attr_user = NULL; + char *_alias_attr_platform = NULL; + + ret = _media_filter_attribute_create(&g_attr_handle); + media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); + + ret = _media_filter_attribute_create(&g_alias_attr_handle); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + goto ERROR; + } + + attribute_s *_attr = (attribute_s*)g_attr_handle; + attribute_s *_alias_attr = (attribute_s*)g_alias_attr_handle; + + count = sizeof(g_content_attrs_info) / sizeof((g_content_attrs_info)[0]); + + for (idx = 0; idx < count; idx++) { + _attr_user = NULL; + _attr_platform = NULL; + _alias_attr_user = NULL; + _alias_attr_platform = NULL; + + if (STRING_VALID(g_content_attrs_info[idx].user_attr)) { + /*attribute*/ + if (STRING_VALID(g_content_attrs_info[idx].platform_attr)) { + _attr_user = g_strdup(g_content_attrs_info[idx].user_attr); + _attr_platform = g_strdup(g_content_attrs_info[idx].platform_attr); + + if (_attr_user == NULL || _attr_platform == NULL) { + SAFE_G_FREE(_attr_user); + SAFE_G_FREE(_attr_platform); + media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY); + ret = MEDIA_CONTENT_ERROR_OUT_OF_MEMORY; + goto ERROR; + } + + g_hash_table_insert(_attr->attr_map, _attr_user, _attr_platform); + + } + + /*alias attribute*/ + if (STRING_VALID(g_content_attrs_info[idx].platform_alias_attr)) { + _alias_attr_user = g_strdup(g_content_attrs_info[idx].user_attr); + _alias_attr_platform = g_strdup(g_content_attrs_info[idx].platform_alias_attr); + + if (_alias_attr_user == NULL || _alias_attr_platform == NULL) { + SAFE_G_FREE(_alias_attr_user); + SAFE_G_FREE(_alias_attr_platform); + media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY); + ret = MEDIA_CONTENT_ERROR_OUT_OF_MEMORY; + goto ERROR; + } + + g_hash_table_insert(_alias_attr->attr_map, _alias_attr_user, _alias_attr_platform); + } + } else { + media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER); + ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER; + goto ERROR; + } + } + + return ret; + +ERROR: + media_content_error("Fail media_content_create_attribute_handles"); + __media_content_destroy_attribute_handle(); + + return ret; +} static int __media_content_destroy_attribute_handle(void) { @@ -945,7 +1208,7 @@ int media_content_connect(void) if (ref_count == 0) { if (db_handle == NULL) { - ret = __media_content_create_attribute_handle(); + ret = __media_content_create_attribute_handles(); if (ret == MEDIA_CONTENT_ERROR_NONE) { ret = media_svc_connect(&db_handle, tzplatform_getuid(TZ_USER_NAME), false); ret = _content_error_capi(MEDIA_CONTENT_TYPE, ret); -- 2.7.4