From 8b744bd6a3d35ba6947ec3a6923669e7952d71db Mon Sep 17 00:00:00 2001 From: Jaesung Ku Date: Tue, 26 Mar 2013 21:08:48 +0900 Subject: [PATCH] Update for getting a bitmap resource Change-Id: I316ddf899e629196089ea4a22cd010b2d3427e0b Signed-off-by: Jaesung Ku --- src/app/FApp_AppResourceBitmap.cpp | 17 +++++++++++++---- src/app/FApp_AppResourceBitmapUtil.cpp | 19 ++++++++++++++++++- src/app/FApp_AppResourceBitmapUtil.h | 7 ++++++- 3 files changed, 37 insertions(+), 6 deletions(-) mode change 100644 => 100755 src/app/FApp_AppResourceBitmap.cpp mode change 100644 => 100755 src/app/FApp_AppResourceBitmapUtil.cpp mode change 100644 => 100755 src/app/FApp_AppResourceBitmapUtil.h diff --git a/src/app/FApp_AppResourceBitmap.cpp b/src/app/FApp_AppResourceBitmap.cpp old mode 100644 new mode 100755 index 6e340eb..8011183 --- a/src/app/FApp_AppResourceBitmap.cpp +++ b/src/app/FApp_AppResourceBitmap.cpp @@ -76,10 +76,19 @@ _AppResourceBitmap::GetBitmapN(const String& imageFileName, BitmapPixelFormat pi bool imageScaling(true); _AppResourceBitmapUtil::_Density resourceDensity = _AppResourceBitmapUtil::DENSITY_NONE; - result r = __pAppResourceBitmapUtil->GetResourcePath(imageFileName, resourcePath, resourceDensity, imageScaling); - SysTryReturn(NID_APP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r)); - SysTryReturn(NID_APP, resourcePath.IsEmpty() == false, null, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] The specified file does not exist."); - + result r = E_SUCCESS; + if(__pAppResourceBitmapUtil->GetAppResourceType() != _AppResourceBitmapUtil::APP_RESOURCE_BITMAP) + { + r = __pAppResourceBitmapUtil->GetResourcePath(imageFileName, resourcePath, resourceDensity, imageScaling); + SysTryReturn(NID_APP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r)); + SysTryReturn(NID_APP, resourcePath.IsEmpty() == false, null, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] The specified file does not exist."); + } + else + { + resourcePath = imageFileName; + imageScaling = false; + pixelFormat = BITMAP_PIXEL_FORMAT_ARGB8888; + } // GetBitmapN Bitmap* pBitmap = null; diff --git a/src/app/FApp_AppResourceBitmapUtil.cpp b/src/app/FApp_AppResourceBitmapUtil.cpp old mode 100644 new mode 100755 index 0d385b5..f1b604c --- a/src/app/FApp_AppResourceBitmapUtil.cpp +++ b/src/app/FApp_AppResourceBitmapUtil.cpp @@ -96,9 +96,13 @@ _AppResourceBitmapUtil* _AppResourceBitmapUtil::GetInstanceN(int type, const String& value) { String resourceFolder(L""); + Tizen::App::_AppResourceBitmapUtil::AppResourceBy appResourceType = _AppResourceBitmapUtil::APP_RESOURCE_DEFAULT; switch(type) { + case _AppResourceBitmapUtil::APP_RESOURCE_BITMAP: + appResourceType = _AppResourceBitmapUtil::APP_RESOURCE_BITMAP; + break; case _AppResourceBitmapUtil::APP_RESOURCE_DEFAULT: //fall through case _AppResourceBitmapUtil::APP_RESOURCE_BY_LIBRARY_NAME: @@ -112,7 +116,6 @@ _AppResourceBitmapUtil::GetInstanceN(int type, const String& value) resourceFolder.Append(L'/'); } break; - case _AppResourceBitmapUtil::APP_RESOURCE_BY_APP_ID: std::unique_ptr< PackageInfo> pPkgInfo(_PackageManagerImpl::GetInstance()->GetPackageInfoN(value)); SysTryReturn(NID_APP, pPkgInfo != null, null, E_APP_NOT_INSTALLED, "[E_APP_NOT_INSTALLED] Failed to get the package info."); @@ -128,6 +131,8 @@ _AppResourceBitmapUtil::GetInstanceN(int type, const String& value) std::unique_ptr< _AppResourceBitmapUtil > pAppResourceBitmapUtil(new (std::nothrow) _AppResourceBitmapUtil()); SysTryReturn(NID_APP, pAppResourceBitmapUtil != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient." ); + pAppResourceBitmapUtil->__resourceType = appResourceType; + result r = pAppResourceBitmapUtil->Construct(resourceFolder); SysTryReturn(NID_APP, r == E_SUCCESS, null, r, "[%s] Failed to construct _AppResourceBitmapUtil.", GetErrorMessage(r)); @@ -137,6 +142,12 @@ _AppResourceBitmapUtil::GetInstanceN(int type, const String& value) result _AppResourceBitmapUtil::Construct(const String& resourceFolder) { + if (__resourceType == _AppResourceBitmapUtil::APP_RESOURCE_BITMAP) + { + SysLog(NID_APP, "This is a BitmapUtil for getting a non-scaling bitmap resource"); + return E_SUCCESS; + } + int deviceDPI = 0; result r = Tizen::System::_SystemInfoImpl::GetSysInfo(L"http://tizen.org/feature/screen.dpi", deviceDPI); SysTryReturnResult(NID_APP, r == E_SUCCESS, r, "[%s] Failed to get Screen DPI", GetErrorMessage(r)); @@ -467,4 +478,10 @@ _AppResourceBitmapUtil::GetBitmapN(const String& resourcePath, const _Density re return pBitmap.release(); } +Tizen::App::_AppResourceBitmapUtil::AppResourceBy +_AppResourceBitmapUtil::GetAppResourceType(void) +{ + return __resourceType; +} + }} // Tizen::App diff --git a/src/app/FApp_AppResourceBitmapUtil.h b/src/app/FApp_AppResourceBitmapUtil.h old mode 100644 new mode 100755 index f8181f6..8d1da57 --- a/src/app/FApp_AppResourceBitmapUtil.h +++ b/src/app/FApp_AppResourceBitmapUtil.h @@ -62,7 +62,8 @@ public: { APP_RESOURCE_DEFAULT, APP_RESOURCE_BY_APP_ID, - APP_RESOURCE_BY_LIBRARY_NAME + APP_RESOURCE_BY_LIBRARY_NAME, + APP_RESOURCE_BITMAP }; // This is the default constructor for this class. @@ -93,6 +94,8 @@ public: static _AppResourceBitmapUtil* GetInstanceN(int type = APP_RESOURCE_DEFAULT, const Tizen::Base::String& value = L""); + Tizen::App::_AppResourceBitmapUtil::AppResourceBy GetAppResourceType(void); + private: // This is the copy constructor for this class. _AppResourceBitmapUtil(const _AppResourceBitmapUtil& rhs); @@ -120,6 +123,8 @@ private: _Density __sortedDensity[DENSITY_MAX]; Tizen::Base::String __sortedDensityDirectories[DENSITY_MAX]; + Tizen::App::_AppResourceBitmapUtil::AppResourceBy __resourceType; + }; // _AppResourceBitmapUtil }} // Tizen::App -- 2.7.4