2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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 * @file FCnt_ContentInfoImpl.cpp
18 * @brief This is the implementation file for the %_ContentInfoImpl class.
20 * This file contains implementation of the %_ContentInfoImpl class.
23 #include <FBaseSysLog.h>
24 #include <FCntContentInfo.h>
25 #include <FCntAudioMetadata.h>
26 #include <FCntContentManagerUtil.h>
28 #include <FGrpBitmap.h>
29 #include <FMediaImage.h>
30 #include <FApp_AppInfo.h>
31 #include "FCnt_ContentInfoImpl.h"
34 using namespace Tizen::Base;
35 using namespace Tizen::Io;
36 using namespace Tizen::Locations;
37 using namespace Tizen::Graphics;
38 using namespace Tizen::Media;
39 using namespace Tizen::App;
41 namespace Tizen { namespace Content
44 static const int _THUMBNAIL_IMAGE_WIDTH = 80;
45 static const int _THUMBNAIL_IMAGE_HEIGHT = 60;
46 static const double _DEFAULT_COORDINATE = -200.0;
48 _ContentInfoImpl::_ContentInfoImpl(void)
49 : __contentId(Tizen::Base::UuId::GetInvalidUuId())
51 , __contentType(CONTENT_TYPE_UNKNOWN)
59 , __thumbnailPath(L"")
73 _ContentInfoImpl::~_ContentInfoImpl(void)
79 _ContentInfoImpl::GetInstance(ContentInfo& contentInfo)
81 return contentInfo.__pContentInfoImpl;
84 const _ContentInfoImpl*
85 _ContentInfoImpl::GetInstance(const ContentInfo& contentInfo)
87 return contentInfo.__pContentInfoImpl;
91 _ContentInfoImpl::Construct(const String& contentPath, const String& thumbnailPath, bool setGps)
97 _ContentInfoImpl::GetContentId(void) const
103 _ContentInfoImpl::GetContentType(void) const
105 return __contentType;
109 _ContentInfoImpl::GetDateTime(void) const
115 _ContentInfoImpl::GetMimeType(void) const
121 _ContentInfoImpl::GetContentSize(void) const
123 return __contentSize;
127 _ContentInfoImpl::GetContentName(void) const
129 return __contentName;
133 _ContentInfoImpl::GetContentPath(void) const
135 return __contentPath;
139 _ContentInfoImpl::GetCoordinates(void) const
141 return __coordinates;
145 _ContentInfoImpl::SetCoordinates(const Coordinates& coordinates)
147 double latitude = coordinates.GetLatitude();
148 double longitude = coordinates.GetLongitude();
149 double altitude = coordinates.GetAltitude();
151 if (!Double::IsNaN(latitude))
153 __latitude = latitude;
155 if (!Double::IsNaN(longitude))
157 __longitude = longitude;
159 if (!Double::IsNaN(altitude))
161 __altitude = altitude;
164 __coordinates = coordinates;
168 _ContentInfoImpl::SetLocationTag(const String& locationTag)
170 __locationTag = locationTag;
174 _ContentInfoImpl::GetLocationTag(void) const
176 return __locationTag;
180 _ContentInfoImpl::SetRating(const String& rating)
186 _ContentInfoImpl::GetRating(void) const
192 _ContentInfoImpl::SetCategory(const String& category)
194 __category = category;
198 _ContentInfoImpl::GetCategory(void) const
204 _ContentInfoImpl::SetDescription(const String& description)
206 __description = description;
210 _ContentInfoImpl::GetDescription(void) const
212 return __description;
216 _ContentInfoImpl::GetThumbnailN(void) const
218 result r = E_SUCCESS;
220 Bitmap* pBitmap = null;
222 SysTryReturn(NID_CNT, !__thumbnailPath.IsEmpty(), null, E_DATA_NOT_FOUND,
223 "[E_DATA_NOT_FOUND] GetThumbnailN() failed.");
225 if (__contentType == CONTENT_TYPE_IMAGE || __contentType == CONTENT_TYPE_AUDIO
226 || __contentType == CONTENT_TYPE_VIDEO)
228 r = image.Construct();
229 SysTryReturn(NID_CNT, !IsFailed(r), null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] GetThumbnailN() failed.");
231 if (_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat())
233 pBitmap = image.DecodeN(__thumbnailPath, BITMAP_PIXEL_FORMAT_ARGB8888, _THUMBNAIL_IMAGE_WIDTH, _THUMBNAIL_IMAGE_HEIGHT);
237 pBitmap = image.DecodeN(__thumbnailPath, BITMAP_PIXEL_FORMAT_ARGB8888);
244 if (r == E_OUT_OF_MEMORY)
246 SysLogException(NID_CNT, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] GetThumbnailN() failed.");
251 SysLogException(NID_CNT, E_DATA_NOT_FOUND, "[E_DATA_NOT_FOUND] GetThumbnailN() failed.");
258 SysLogException(NID_CNT, E_DATA_NOT_FOUND, "[E_DATA_NOT_FOUND] GetThumbnailN() failed.");
266 _ContentInfoImpl::IsDrmProtected(void) const
272 _ContentInfoImpl::GetKeyword(void) const
278 _ContentInfoImpl::SetContentName(const String& contentName)
280 __contentName = contentName;
284 _ContentInfoImpl::SetKeyword(const String& keyword)
290 _ContentInfoImpl::SetAuthor(const String& author)
296 _ContentInfoImpl::GetAuthor(void) const
302 _ContentInfoImpl::SetProvider(const String& provider)
304 __provider = provider;
308 _ContentInfoImpl::GetProvider(void) const
314 _ContentInfoImpl::GetMediaFormat(void) const
316 return File::GetFileExtension(__contentPath);
320 _ContentInfoImpl::SetContentId(const ContentId& contentId)
322 __contentId = contentId;
326 _ContentInfoImpl::SetContentType(const ContentType& contentType)
328 __contentType = contentType;
332 _ContentInfoImpl::SetContentSize(unsigned long contentSize)
334 __contentSize = contentSize;
338 _ContentInfoImpl::SetMimeType(const String& mimeType)
340 __mimeType = mimeType;
344 _ContentInfoImpl::SetDateTime(const DateTime& dateTime)
346 __dateTime = dateTime;
350 _ContentInfoImpl::SetContentPath(const String& contentPath)
352 __contentPath = contentPath;
356 _ContentInfoImpl::SetMediaFormat(const String& mediaFormat)
358 __mediaFormat = mediaFormat;
362 _ContentInfoImpl::SetDrmProtected(bool isDrm)
368 _ContentInfoImpl::GetLatitude(void) const
374 _ContentInfoImpl::GetLongitude(void) const
380 _ContentInfoImpl::GetAltitude(void) const
386 _ContentInfoImpl::SetLatitude(double latitude)
388 __latitude = latitude;
392 _ContentInfoImpl::SetLongitude(double longitude)
394 __longitude = longitude;
398 _ContentInfoImpl::SetAltitude(double altitude)
400 __altitude = altitude;
404 _ContentInfoImpl::GetThumbnailPath(void) const
406 return __thumbnailPath;
410 _ContentInfoImpl::SetThumbnailPath(const String& thumbnailPath)
412 __thumbnailPath = thumbnailPath;
416 _ContentInfoImpl::SetStorageType(int storageType)
418 __storageType = storageType;
422 _ContentInfoImpl::GetModifiedTime(void) const
424 return __modifiedTime;
428 _ContentInfoImpl::SetModifiedTime(const DateTime& modifiedTime)
430 __modifiedTime = modifiedTime;