📄 smbmusicaplibimagefunc.cpp
字号:
DeleteObjects();
//梫媮懁偵懳偟偰丄旕摨婜梫媮偺僉儍儞僙儖姰椆傪捠抦偡傞
Complete(KErrCancel);
return KErrNone;
}
/**
* Bitmap傪儕僒僀僘偡傞
*
* @param[in] aSrcBitmap 儕僒僀僘偡傞尦夋憸Bitmap
* @param[in] aSize 巜掕偟偨僒僀僘
* @param[in,out] aDstBitmap 儕僒僀僘屻偺夋憸Bitmap
* @param[in,out] aStatus 旕摨婜墳摎梡偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗
* @param[in] aBeSpread 奼戝幚峴僼儔僌(僨僼僅儖僩:EFalse=奼戝偟側偄)
*
* @return 張棟寢壥
**/
// MODIFY-S PTX824 k3-sugimoto
EXPORT_C TInt CSmbMusicAPLibImageFunc::ResizeBitmap(
TSmbMusicAPLibImageBitmap& aSrcBitmap,
TSize aSize,
TSmbMusicAPLibImageBitmap& aDstBitmap,
TRequestStatus& aStatus,
TBool aBeSpread/*=EFalse*/
)
// MODIFY-E PTX824 k3-sugimoto
{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber14;
_LIT(KMusicAPLibImageFunc14, "CSmbMusicAPLibImageFunc::ResizeBitmap(aSize.iHeight:%d, aSize.iWidth:%d Spread:%d)");
SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibImageFunc14, aSize.iHeight, aSize.iWidth, aBeSpread);
#endif
//忬懺偑ESmbMusicAPLibIdle偱側偄応崌丄僄儔乕傪曉偡
if(ESmbMusicAPLibIdle != State())
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber15;
_LIT(KMusicAPLibImageFunc15, "CSmbMusicAPLibImageFunc::ResizeBitmap() [ErrState]: Not Idle State. State = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc15, State());
return KErrInUse;
}
//堷悢傪僠僃僢僋
if(NULL == aSrcBitmap.iMainBitmap)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber16;
_LIT(KMusicAPLibImageFunc16, "CSmbMusicAPLibImageFunc::ResizeBitmap() [ErrArg]: SrcBitmap is Empty. ret = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc16, KErrArgument);
return KErrArgument;
}
//憊仐2005/07/12-S
//憊仐2005/07/14-S
//aDstBitmap堷悢偵娷傑傟傞CFbsBitmap億僀儞僞偵Bitmap僆僽僕僃僋僩偑愝掕偝傟偰偄傞応崌丄僄儔乕傪曉偡
if(NULL != aDstBitmap.iMainBitmap || NULL != aDstBitmap.iMaskedBitmap)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber17;
_LIT(KMusicAPLibImageFunc17, "CSmbMusicAPLibImageFunc::ResizeBitmap() [ErrArg]: DstBitmap Not Empty. ret = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc17, KErrArgument);
return KErrArgument;
}
//憊仐2005/07/14-E
//巜掕偟偨弌椡夋憸僒僀僘偺崅偝偲暆傪庢摼偡傞
TInt width = aSize.iWidth;
TInt height = aSize.iHeight;
// ADD-S PTX824 k3-sugimoto
//巜掕偟偨弌椡夋憸僒僀僘偑640x480 or 480x640偺斖埻傪挻偊傞応崌偼僄儔乕傪曉偡
if((height > KSmbMusicAPLibVGALongLength) || (width > KSmbMusicAPLibVGALongLength) ||
((height > KSmbMusicAPLibVGAShortLength) && (width > KSmbMusicAPLibVGAShortLength)))
// ADD-E PTX824 k3-sugimoto
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber18;
_LIT(KMusicAPLibImageFunc18, "CSmbMusicAPLibImageFunc::ResizeBitmap() [ErrArg]: Size bigger than VGA. height = %d, width = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc18, height, width);
return KErrNotSupported;
}
//憊仐2005/07/12-E
//忋埵傛傝搉偝傟偨堷悢偵偮偄偰aStatus埲奜偼偦偺傑傑Resizer僋儔僗傊搉偡丄aStatus偵偼iStatus傪搉偡
// MODIFY-S PTX824 k3-sugimoto
TInt ret = iResizer->ResizeBitmap(aSrcBitmap, aSize, aDstBitmap, iStatus, aBeSpread);
// MODIFY-E PTX824 k3-sugimoto
if(KErrNone != ret)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber19;
_LIT(KMusicAPLibImageFunc19, "CSmbMusicAPLibImageFunc::ResizeBitmap() [ErrCall]: ResizeBitmap() = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc19, ret);
//憊仐2005/07/02
//Bitmap偺儕僒僀僘傪僉儍儞僙儖偡傞
// CancelResizeBitmap();
//憊仐2005/07/02
return ret;
}
//旕摨婜張棟傪奐巒偡傞乮SetActive偡傞乯
Start();
//忬懺傪ESmbMusicAPLibWaitResizeBitmap偵僙僢僩偡傞
SetState(ESmbMusicAPLibWaitResizeBitmap);
//aStatus傪儊儞僶乕曄悢偵曐懚偟丄梫媮傪Pending偡傞
aStatus = KRequestPending;
iClientStatus = &aStatus;
return KErrNone;
}
/**
Bitmap偺儕僒僀僘傪拞巭偡傞
* @param 側偟
* @return 張棟寢壥
*/
EXPORT_C TInt CSmbMusicAPLibImageFunc::CancelResizeBitmap()
{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber20;
_LIT(KMusicAPLibImageFunc20, "CSmbMusicAPLibImageFunc::CancelResizeBitmap() State = %d");
SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibImageFunc20, State());
#endif
TSmbMusicAPLibImageFuncState curState = State();
//忬懺偑ESmbMusicAPLibIdle偺応崌丄旕摨婜張棟偑婛偵姰椆偟偨働乕僗偑偁傞
if(ESmbMusicAPLibIdle == curState)
{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber21;
_LIT(KMusicAPLibImageFunc21, "CSmbMusicAPLibImageFunc::CancelResizeBitmap() [In Idle State]: ret = %d");
SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibImageFunc21, KErrCompletion);
#endif
return KErrCompletion;
}
//ESmbMusicAPLibWaitResizeBitmap埲奜偺応崌丄僄儔乕傪曉偡
if(ESmbMusicAPLibWaitResizeBitmap != curState)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber22;
_LIT(KMusicAPLibImageFunc22, "CSmbMusicAPLibImageFunc::CancelResizeBitmap() [ErrState]: State Not Supported. State = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc22, curState);
return KErrNotSupported;
}
TInt ret = KErrNone;
//ResizeBitmap傪僉儍儞僙儖偡傞
ret = iResizer->CancelResizeBitmap();
if(KErrNone != ret)
{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber23;
_LIT(KMusicAPLibImageFunc23, "CSmbMusicAPLibImageFunc::CancelResizeBitmap(): iResizer->CancelResizeBitmap() = %d");
SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibImageFunc23, ret);
#endif
ret = KErrCompletion;
}
//AO偺僉儍儞僙儖傪屇傃弌偡
Cancel();
//梫媮懁偵懳偟偰丄旕摨婜梫媮僉儍儞僙儖偺姰椆傪捠抦偡傞
Complete(KErrCancel);
return ret;
}
/**
傾僋僥傿僽僆僽僕僃僋僩偺RunL娭悢傪幚憰偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPLibImageFunc::RunL()
{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber24;
_LIT(KMusicAPLibImageFunc24, "CSmbMusicAPLibImageFunc::RunL() = %d");
SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibImageFunc24, iStatus.Int());
#endif
//尰嵼偺忬懺傪庢摼
TSmbMusicAPLibImageFuncState curState = State();
switch(curState)
{
//忬懺偑ESmbMusicAPLibWaitResizeRes偺応崌
case ESmbMusicAPLibWaitResizeRes:
//Bitmap儕僒僀僘梫媮乮暋悢巜掕壜乯傪慡晹姰椆偡傞傑偱張棟傪懕偗傞
CompleteResize();
break;
//忬懺偑ESmbMusicAPLibWaitConvertRes偺応崌
case ESmbMusicAPLibWaitConvertRes:
//Bitmap偵曄姺張棟廔椆屻丄Bitmap偺儕僒僀僘張棟傪奐巒偡傞
CompleteConvert();
break;
//忬懺偑ESmbMusicAPLibWaitResizeBitmap偺応崌
case ESmbMusicAPLibWaitResizeBitmap:
//扨悢偺Bitmap儕僒僀僘張棟姰椆捠抦傪梫媮懁偵搳偘傞
CompleteResizeBitmap();
break;
default:
//儘僌傪弌椡
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber25;
_LIT(KMusicAPLibImageFunc25, "CSmbMusicAPLibImageFunc::RunL() [ErrState]: Invalid State. State = %d");
SmbMusicAPLibLog(logCode, ELogLevelHighest, KMusicAPLibImageFunc25, curState);
//僋儔僀傾儞僩偵僄儔乕傪捠抦偡傞
Complete(KErrGeneral);
break;
}
}
/**
傾僋僥傿僽僆僽僕僃僋僩偺DoCancel張棟傪峴偆
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPLibImageFunc::DoCancel()
{
//i-share TRK No.8003懳墳 ADD-S
TSmbMusicAPLibImageFuncState curState = State();
switch(curState)
{
//忬懺偑ESmbMusicAPLibWaitConvertRes偺応崌
case ESmbMusicAPLibWaitConvertRes:
{
// MODIFY-S PTX824 k3-sugimoto
//夋憸曄姺張棟傪僉儍儞僙儖偡傞
#ifdef __SMBMUSICAPLIB_ENABLE_PTX810__
iDecoder->Cancel();
#else
if ((iFileFormat == ESmbMusicAPLibFileFormatExif) ||
(iFileFormat == ESmbMusicAPLibFileFormatJfif) ||
(iFileFormat == ESmbMusicAPLibFileFormatJpeg))
{
iJpgDecoder -> DecodeStop();
}
else if (iFileFormat == ESmbMusicAPLibFileFormatGif)
{
iDecoder->Cancel();
}
#endif
// MODIFY-E PTX824 k3-sugimoto
break;
}
//忬懺偑ESmbMusicAPLibWaitResizeRes偺応崌
case ESmbMusicAPLibWaitResizeRes:
//忬懺偑ESmbMusicAPLibWaitResizeBitmap偺応崌
case ESmbMusicAPLibWaitResizeBitmap:
{
//Resizer僋儔僗偵懳偟偰丄Bitmap儕僒僀僘張棟偺僉儍儞僙儖傪屇傃弌偡
iResizer->CancelResizeBitmap();
break;
}
default:
//壗傕偟側偄
break;
}
//梫媮懁偵懳偟偰丄旕摨婜梫媮僉儍儞僙儖偺姰椆傪捠抦偡傞
Complete(KErrCancel);
//i-share TRK No.8003懳墳 ADD-E
}
/**
Bitmap偵曄姺張棟廔椆屻丄Bitmap偺儕僒僀僘張棟傪奐巒偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPLibImageFunc::CompleteConvert()
{
//旕摨婜墳摎偺姰椆僐乕僪偑僄儔乕偺応崌丄張棟拞巭捠抦傪僋儔僀傾儞僩偵搳偘傞
if(KErrNone != iStatus.Int())
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber26;
_LIT(KMusicAPLibImageFunc26, "CSmbMusicAPLibImageFunc::CompleteConvert() [ErrStatus]: iStatus = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc26, iStatus.Int());
//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
DeleteObjects();
//梫媮懁偵懳偟偰丄旕摨婜梫媮偺姰椆傪捠抦偡傞
Complete(iStatus.Int());
return;
}
//姰惉僇僂儞僞乕傪僛儘偵僙僢僩偡傞
iCompleteCounter = 0;
// MODIFY-S PTX824 k3-sugimoto
TSize dstSize = iDstSize[iCompleteCounter].iSize;
TBool beSpread = iDstSize[iCompleteCounter].iSpread;
// aSrcBitmap = iSrcBitmap丄aSize = iDstSize(iCompleteCounter).iSize丄
// aDstBitmap = iWrokBitmap丄aStatus = iStatus丄aBeSpread = iDstSize(iCompleteCounter).iSpread偦傟偧傟傪搉偡
TInt ret = iResizer->ResizeBitmap(iTmpBitmap, dstSize, iWorkBitmap, iStatus, beSpread);
// MODIFY-E PTX824 k3-sugimoto
if(KErrNone != ret)
{
//儘僌傪弌椡
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibImageFunc | EMusicAPLibLocationNumber27;
_LIT(KMusicAPLibImageFunc27, "CSmbMusicAPLibImageFunc::CompleteConvert() [ErrCall]: ResizeBitmap() = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibImageFunc27, ret);
//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
DeleteObjects();
//梫媮懁偵懳偟偰丄旕摨婜梫媮偺姰椆傪捠抦偡傞丟僄儔乕僐乕僪傪曉偡
Complete(ret);
return;
}
//僨僐乕僟僆僽僕僃僋僩傪嶍彍偡傞
delete iDecoder;
iDecoder = NULL;
// ADD-S PTX824 k3-sugimoto
#ifndef __SMBMUSICAPLIB_ENABLE_PTX810__
// G2PF儔僢僷乕僋儔僗僆僽僕僃僋僩傪嶍彍
delete iJpgDecoder;
iJpgDecoder = NULL;
#endif
// ADD-E PTX824 k3-sugimoto
//僼傽僀儖僙僢僔儑儞傪僋儘乕僘偡傞
iFs.Close();
//旕摨婜張棟傪奐巒偡傞乮SetActive偡傞乯
Start();
//忬懺傪ESmbMusicAPLibWaitResizeRes偵僙僢僩
SetState(ESmbMusicAPLibWaitResizeRes);
}
/**
Bitmap儕僒僀僘梫媮乮暋悢巜掕壜乯傪慡晹姰椆偡傞傑偱張棟傪懕偗傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPLibImageFunc::CompleteResize()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -