⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicaplibimagefunc.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	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 + -