smbmusicaplibmwfunc.cpp

来自「索爱手机代码」· C++ 代码 · 共 1,300 行 · 第 1/4 页

CPP
1,300 行
字号
	if (result != KErrNone)
		{
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber29;
		_LIT(KMusicAPLibMWFunc29, "CSmbMusicAPLibMWFunc::GetImageTypeInfo() [ErrCall]:AnalyzeItem->GetImageTypeInfo() = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWFunc29, result);

		return result;
		}

	//旕摨婜梫媮傪僗僞乕僩偡傞乮SetActive偡傞乯
	Start();

	//巜掕夋憸庬暿夋憸忣曬庢摼懸偪忬懺傊
	SetState(ESmbMusicAPLibWaitImageTypeInfoRes);

	//aStatus傪曐懚偟丄梫媮傪Pending忬懺偵偡傞
	aStatus = KRequestPending;
	iClientStatus = &aStatus;

	return KErrNone;
	}

/**
 *  巜掕庬暿夋憸忣曬庢摼梫媮偺僉儍儞僙儖
 **/
EXPORT_C void CSmbMusicAPLibMWFunc::CancelGetImageTypeInfo()
	{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
	TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber30;
	_LIT(KMusicAPLibMWFunc30, "CSmbMusicAPLibMWFunc::CancelGetImageTypeInfo() State = %d");
	SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibMWFunc30, State());
#endif
	if (State() == ESmbMusicAPLibWaitImageTypeInfoRes)
		{
		ASSERT(iAnalyzeItem != NULL);
		iAnalyzeItem -> CancelGetImageTypeInfo();
		}
	else
		{
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber31;
		_LIT(KMusicAPLibMWFunc31, "CSmbMusicAPLibMWFunc::CancelGetImageTypeInfo() Illegal Status = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWFunc31, State());

		return;
		}

	Cancel();

	//惗惉偟偨僆僽僕僃僋僩傪嶍彍偟丄旕摨婜梫媮偺僉儍儞僙儖傪姰椆偡傞
 	DeleteObjectsAndComplete(KErrCancel);
	}

/**
 *  巜掕偟偨庬暿偺夋憸悢傪庢摼偡傞
 *  @param[in]		aItem		庢摼懳徾偺嬋傾僀僥儉
 *	@param[in]		aTargetType	庢摼偟偨偄夋憸忣曬偺庬暿(僕儍働僢僩/壧帉)
 *  @param[out]		aImageCount	庢摼偝傟偨夋憸悢
 *	@param[in,out]	aStatus		旕摨婜墳摎梡偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗
 *  @param[in]		aExType		奼挘僼儔僌(僨僼僅儖僩:AAA夋憸庢摼)
 *  @return	張棟寢壥
 **/
EXPORT_C TInt CSmbMusicAPLibMWFunc::GetTargetImageCount(
		CSmbMusicMWLibSongItem& aItem,
		TSmbMusicAPLibImageType& aTargetType,
		TInt& aImageCount,
		TRequestStatus& aStatus,
		TInt aExType/*=ESmbMusicAPLibExTypeEnableAAA*/
		)
	{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
	TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber32;
	_LIT(KMusicAPLibMWFunc32, "CSmbMusicAPLibMWFunc::GetTargetImageCount(ImageType:%d)");
	SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibMWFunc32, aTargetType);
#endif
	if (State() != ESmbMusicAPLibIdle)
		{	//  壗偐張棟拞偩偭偨応崌
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber33;
		_LIT(KMusicAPLibMWFunc33, "CSmbMusicAPLibMWFunc::GetTargetImageCount() [ErrState]:Not Idle State. State = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWFunc33, State());

		return KErrInUse;
		}

	if ((aTargetType != ESmbMusicAPLibImageTypeJacket) &&
		(aTargetType != ESmbMusicAPLibImageTypeLyric))
		{	//  夋憸庬暿偑僕儍働僢僩丒壧帉偺偳偪傜偱傕側偐偭偨
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber34;
		_LIT(KMusicAPLibMWFunc34, "CSmbMusicAPLibMWFunc::GetTargetImageCount() [ErrArg]:Illegal ImageType = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWFunc34, aTargetType);

		return KErrArgument;
		}

	TInt result = iAnalyzeItem -> GetTargetImageCount(aItem, aTargetType, aExType, aImageCount, iStatus);
	if (result != KErrNone)
		{
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber35;
		_LIT(KMusicAPLibMWFunc35, "CSmbMusicAPLibMWFunc::GetTargetImageCount() [ErrCall]:AnalyzeItem->GetTargetImageCount() = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWFunc35, result);

		return result;
		}

	//旕摨婜梫媮傪僗僞乕僩偡傞乮SetActive偡傞乯
	Start();

	//巜掕夋憸庬暿夋憸忣曬庢摼懸偪忬懺傊
	SetState(ESmbMusicAPLibWaitImageTypeCountRes);

	//aStatus傪曐懚偟丄梫媮傪Pending忬懺偵偡傞
	aStatus = KRequestPending;
	iClientStatus = &aStatus;

	return KErrNone;
	}

/**
 *  巜掕庬暿夋憸悢庢摼梫媮偺僉儍儞僙儖
 **/
EXPORT_C void CSmbMusicAPLibMWFunc::CancelGetTargetImageCount()
	{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
	TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber36;
	_LIT(KMusicAPLibMWFunc36, "CSmbMusicAPLibMWFunc::CancelGetTargetImageCount() State = %d");
	SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibMWFunc36, State());
#endif
	if (State() == ESmbMusicAPLibWaitImageTypeCountRes)
		{	//  巜掕夋憸庬暿夋憸忣曬悢庢摼忬懺偺応崌
		ASSERT(iAnalyzeItem != NULL);
		iAnalyzeItem -> CancelGetTargetImageCount();
		}
	else
		{	//  偦傟埲奜偺忬懺偺応崌
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber37;
		_LIT(KMusicAPLibMWFunc37, "CSmbMusicAPLibMWFunc::CancelGetTargetImageCount() Illegal Status = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWFunc37, State());

		return;
		}

	Cancel();

	//惗惉偟偨僆僽僕僃僋僩傪嶍彍偟丄旕摨婜梫媮偺僉儍儞僙儖傪姰椆偡傞
 	DeleteObjectsAndComplete(KErrCancel);
	}
//  ADD-E PTX824 k3-sugimoto


/**
 *  傾僋僥傿僽僆僽僕僃僋僩偺RunL娭悢傪幚憰偡傞
 **/
void CSmbMusicAPLibMWFunc::RunL()
	{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
	TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber38;
	_LIT(KMusicAPLibMWFunc38, "CSmbMusicAPLibMWFunc::RunL() = %d");
	SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibMWFunc38, iStatus.Int());
#endif
	//尰嵼偺忬懺傪庢摼
	TSmbMusicAPLibMWFuncState curState = State();

	//忬懺偵傛偭偰張棟傪暘偗傞
	switch(curState)
		{
		case ESmbMusicAPLibWaitCreateFile:
			{
			//夋憸僼傽僀儖惗惉姰椆捠抦傪梫媮懁偵搳偘傞
			CompleteCreateFile();
			break;
			}
		case ESmbMusicAPLibWaitCreateFileNextConvertResize:
			{
			//夋憸僼傽僀儖惗惉屻丄夋憸曄姺乮Decode乯傪峴偆
			CompleteCreateFileNextConvertResize();
			break;
			}
		case ESmbMusicAPLibWaitConvertResizeRes:
			{
			//夋憸曄姺姰椆捠抦傪梫媮懁偵搳偘傞
			CompleteConvertResize();
			break;
			}
		case ESmbMusicAPLibWaitImageInfoRes:
			{
			//夋憸忣曬庢摼姰椆捠抦傪梫媮懁偵搳偘傞
			CompleteGetImageInfo();
			break;
			}

//  ADD-S PTX824 k3-sugimoto
		//  巜掕夋憸庬暿夋憸忣曬庢摼忬懺
		case ESmbMusicAPLibWaitImageTypeInfoRes:
			//  惗惉偟偨僆僽僕僃僋僩傪嶍彍偟丄旕摨婜梫媮傪姰椆偡傞
			//  僄儔乕僐乕僪偼偦偺傑傑僋儔僀傾儞僩偵搉偡
		 	DeleteObjectsAndComplete(iStatus.Int());
			break;

		//  巜掕夋憸庬暿夋憸忣曬悢庢摼忬懺
		case ESmbMusicAPLibWaitImageTypeCountRes:
			//  惗惉偟偨僆僽僕僃僋僩傪嶍彍偟丄旕摨婜梫媮傪姰椆偡傞
			//  僄儔乕僐乕僪偼偦偺傑傑僋儔僀傾儞僩偵搉偡
		 	DeleteObjectsAndComplete(iStatus.Int());
			break;
//  ADD-E PTX824 k3-sugimoto

		default:
			//儘僌傪弌椡
			break;
		}
	}

/**
 *  傾僋僥傿僽僆僽僕僃僋僩偺DoCancel張棟傪峴偆
 **/
void CSmbMusicAPLibMWFunc::DoCancel()
	{
//i-share TRK No.8003懳墳 ADD-S
	TSmbMusicAPLibMWFuncState curState = State();
	//尰嵼偺忬懺偵傛偭偰丄張棟偑堎側傞
	switch(curState)
		{
		//ESmbMusicAPLibWaitImageInfoRes偺応崌
		case ESmbMusicAPLibWaitImageInfoRes:
			{
			iAnalyzeItem->CancelImageInfo();
			break;
			}
		//忬懺偑ESmbMusicAPLibWaitCreateFileNextConvertResize庒偟偔偼ESmbMusicAPLibWaitCreateFile偺応崌
		case ESmbMusicAPLibWaitCreateFileNextConvertResize:
		case ESmbMusicAPLibWaitCreateFile:
			{
			//嬋傾僀僥儉偺CancelImage傪屇傃弌偡
			iSongItem->CancelImage();
			break;
			}
		//忬懺偑ESmbMusicAPLibWaitConvertResizeRes偺夋憸曄姺偺応崌
		case ESmbMusicAPLibWaitConvertResizeRes:
			{
			//夋憸曄姺偺僉儍儞僙儖梫媮傪屇傃弌偡
			iImageFunc->CancelConvertImage();
 			break;
			}

		//夋憸庢摼慜偺帠慜僠僃僢僋拞偩偭偨応崌
		case ESmbMusicAPLibCheckBeforeCreateFile:
		case ESmbMusicAPLibCheckBeforeCreateFileNextConvertResize:
			//僉儍儞僙儖梫媮傪弌偡丄傕偟旕摨婜張棟偑姰椆偟偨傜丄偦偺巪傪僋儔僀傾儞僩偵曉偡
			iAnalyzeItem->CancelCheckImage();
			break;

//  ADD-S PTX824 k3-sugimoto
		//  巜掕夋憸庬暿夋憸忣曬庢摼墳摎懸偪
		case ESmbMusicAPLibWaitImageTypeInfoRes:
			ASSERT(iAnalyzeItem != NULL);
			iAnalyzeItem -> CancelGetImageTypeInfo();
			break;

		//  巜掕夋憸庬暿夋憸忣曬悢庢摼墳摎懸偪
		case ESmbMusicAPLibWaitImageTypeCountRes:
			ASSERT(iAnalyzeItem != NULL);
			iAnalyzeItem -> CancelGetTargetImageCount();
			break;
//  ADD-E PTX824 k3-sugimoto

		default:
			break;
		}

	//惗惉偟偨僆僽僕僃僋僩傪嶍彍偟丄旕摨婜梫媮偺僉儍儞僙儖傪姰椆偡傞
	DeleteObjectsAndComplete(KErrCancel);
//i-share TRK No.8003懳墳 ADD-E
	}

/**
 *  夋憸僼傽僀儖惗惉姰椆捠抦傪梫媮懁偵搳偘傞
 **/
void CSmbMusicAPLibMWFunc::CompleteCreateFile()
	{
	TInt result(iStatus.Int());
	if (iImageType == ESmbMusicMWLibImageTypeAAA)
		{	//  尰嵼庢摼拞偺夋憸偑AAA夋憸偩偭偨応崌
		if (result != KErrNone)
			{	//  AAA夋憸偺庢摼偑僄儔乕偩偭偨応崌
			//  僕儍働僢僩夋憸庢摼傪帋傒傞
			iImageType = ESmbMusicMWLibImageTypeJacket;

			result = GetImageAfterCheck();
			if (result == KErrNone)
				{
				//  旕摨婜梫媮傪僗僞乕僩偡傞乮SetActive偡傞乯
				Start();
				//  夋憸僼傽僀儖惗惉懸偪忬懺偵擖傞
				SetState(ESmbMusicAPLibWaitCreateFile);

				return;
				}
			}
		}

	//惗惉偟偨僆僽僕僃僋僩傪嶍彍偟丄旕摨婜梫媮傪姰椆偡傞丟僄儔乕僐乕僪偼偦偺傑傑僋儔僀傾儞僩偵搉偡
 	DeleteObjectsAndComplete(result);

	//嬋傾僀僥儉偵夋憸偑側偄丄旕懳墳夋憸僼僅乕儅僢僩丄嵟戝僼傽僀儖僒僀僘僆乕僶乕偺応崌
	if ((result == KErrNotFound) ||
		(result == KErrNotSupported) ||
		(result == KErrOverflow))
		{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber39;
		_LIT(KMusicAPLibMWFunc39, "CSmbMusicAPLibMWFunc::CompleteCreateFile() [Image Not Found or Not Supported or Overflow]: iStatus = %d");
//  MODIFY-S PTX824 k3-sugimoto
		//  PTX824偐傜丄帠慜僠僃僢僋傪峴傢側偔側偭偨偺偱丄
		//  偙傟傜偺僄儔乕偼弨惓忢宯偲偟偰偁傝偊傞偨傔儘僌儗儀儖傪堷偒壓偘傞丅
		SmbMusicAPLibLog(logCode, ELogLevelNormal, KMusicAPLibMWFunc39, result);
//  MODIFY-E PTX824 k3-sugimoto
#endif
		}
	else if(result != KErrNone)
		{
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWFunc | EMusicAPLibLocationNumber40;
		_LIT(KMusicAPLibMWFunc40, "CSmbMusicAPLibMWFunc::CompleteCreateFile() [ErrStatus]: iStatus = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWFunc40, result);
		}
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?