2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <media_content_type.h>
18 #include <AppCommon.h>
19 #include "mediainfo.h"
31 CMediaInfo::CMediaInfo(void)
35 _ERR("MediaInfo Create Failed");
39 memset(m, 0, sizeof(*m));
42 CMediaInfo::~CMediaInfo(void)
44 media_info_destroy(m->media_h);
46 delete[] m->location_tag;
52 bool CMediaInfo::Update(void)
55 unsigned long long val;
57 if (media_info_get_media_id(m->media_h, &buf) !=
58 MEDIA_CONTENT_ERROR_NONE) {
59 _ERR("Media ID Fetch error");
64 if (media_info_get_display_name(m->media_h, &buf) !=
65 MEDIA_CONTENT_ERROR_NONE) {
66 _ERR("Media display nam))e Fetch error");
71 if (media_info_get_size(m->media_h, &val) !=
72 MEDIA_CONTENT_ERROR_NONE) {
73 _ERR("Media size Fetch error");
78 if (media_info_get_file_path(m->media_h, &buf)
79 != MEDIA_CONTENT_ERROR_NONE) {
80 _ERR("Media file path Fetch error");
85 if (media_info_get_thumbnail_path(m->media_h, &buf) !=
86 MEDIA_CONTENT_ERROR_NONE) {
87 _ERR("Media thumbnail path Fetch error");
90 SetThumbnailPath(buf);
92 if (media_info_get_modified_time(m->media_h, (time_t *)&val) !=
93 MEDIA_CONTENT_ERROR_NONE) {
94 _ERR("Media modified time Fetch error");
99 if (media_info_get_modified_time(m->media_h, (time_t *)&val) !=
100 MEDIA_CONTENT_ERROR_NONE) {
101 _ERR("Media created time Fetch error");
104 m_SetCreatedTime(val);
106 if (media_info_get_location_tag(m->media_h, &buf) !=
107 MEDIA_CONTENT_ERROR_NONE) {
108 _ERR("Media location tag Fetch error");
111 m_SetLocationTag(buf);
113 if (media_info_get_storage_type(m->media_h,
114 (media_content_storage_e *)&val) !=
115 MEDIA_CONTENT_ERROR_NONE) {
116 _ERR("Media location tag Fetch error");
124 bool CMediaInfo::GetImageHandle(image_meta_h *image_h)
128 r = media_info_get_image(m->media_h, image_h);
129 if (r != MEDIA_CONTENT_ERROR_NONE) {
130 _ERR("Media Image Handle Fetch Error");
137 bool CMediaInfo::GetVideoHandle(video_meta_h *video_h)
141 r = media_info_get_video(m->media_h, video_h);
142 if (r != MEDIA_CONTENT_ERROR_NONE) {
143 _ERR("Media Video Handle Fetch Error");
150 char *CMediaInfo::LocationTag(void)
155 return m->location_tag;
158 time_t CMediaInfo::CreatedTime(void)
163 return m->created_time;
166 time_t CMediaInfo::Time(void)
173 timeval = CreatedTime();
175 timeval = ModifiedTime();
180 int CMediaInfo::Source(void)
182 int source = E_SOURCE_ALL;
187 if (m->source == MEDIA_CONTENT_STORAGE_EXTERNAL)
188 source = E_SOURCE_USB;
193 media_info_h CMediaInfo::MediaInfo(void)
201 bool CMediaInfo::m_SetLocationTag(const char *location_tag)
206 delete[] m->location_tag;
207 m->location_tag = NULL;
210 m->location_tag = t_Clone(location_tag);
211 if (!m->location_tag)
218 bool CMediaInfo::m_SetCreatedTime(time_t created_time)
223 m->created_time = created_time;
228 bool CMediaInfo::m_SetSource(int source)
238 bool CMediaInfo::SetMediaInfo(media_info_h media_h)
243 if (media_info_clone(&(m->media_h), media_h)
244 != MEDIA_CONTENT_ERROR_NONE) {
245 _ERR("Media info clone error");
252 bool CMediaInfo::Duplicate(CNameInfo *obj)
257 CMediaInfo *dst = (CMediaInfo *)obj;
259 if (!CExtNameInfo::Duplicate(obj))
262 if (!m_SetLocationTag(dst->LocationTag()))
264 if (!m_SetCreatedTime(dst->CreatedTime()))
266 if (!m_SetSource(dst->Source()))
268 if (!SetMediaInfo(dst->MediaInfo()))
274 bool CMediaInfo::UpdateDb(void)
278 media_info_get_media_id(m->media_h, &media_id);
280 if (media_info_refresh_metadata_to_db(media_id)
281 != MEDIA_CONTENT_ERROR_NONE)