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

📄 smbmusicaplibmwanalyzeitem.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	//夋憸悢奿擺椞堟傪曐懚偡傞
	aImageCount = 0;
	iImageCount = &aImageCount;

	//僋儔僀傾儞僩僗僥乕僞僗傪曐懚偟丄梫媮傪Pending偡傞
	iClientStatus = &aStatus;
	aStatus = KRequestPending;

	return KErrNone;
	}


/**
 *  巜掕庬暿夋憸悢庢摼梫媮偺僉儍儞僙儖
 **/
void CSmbMusicAPLibMWAnalyzeItem::CancelGetTargetImageCount()
	{
	switch(State())
		{
		case ESmbMusicAPLibGetAAACountforTarget:	//  AAA夋憸悢庢摼
		case ESmbMusicAPLibGetJacketCountforTarget:	//  僕儍働僢僩夋憸悢庢摼
		case ESmbMusicAPLibGetStillCountforTarget:	//  懸庴夋憸悢庢摼
		case ESmbMusicAPLibGetLyricCountforTarget:	//  壧帉夋憸悢庢摼
			ASSERT(iClientItem != NULL);
			//  嬋傾僀僥儉偵懳偟偰忣曬庢摼梫媮偺僉儍儞僙儖傪偡傞
			iClientItem -> CancelGetInfo();
			break;
		default:
			{
			TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber09;
			_LIT(KMusicAPLibMWAnalyzeItem09, "CSmbMusicAPLibMWAnalyzeItem::CancelGetTargetImageCount() illegal Status = %d");
			SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem09, State());

			return;
			}
//			break;
		}

	Cancel();

	Complete(KErrCancel);

	DeleteObjects();
	}
//  ADD-E PTX824 k3-sugimoto


/**
 *  傾僋僥傿僽僆僽僕僃僋僩偺RunL娭悢
 **/
void CSmbMusicAPLibMWAnalyzeItem::RunL()
	{
	TSmbMusicAPLibAnalyzeItemState curState = State();
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
	TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber10;
	_LIT(KMusicAPLibMWAnalyzeItem10, "CSmbMusicAPLibMWAnalyzeItem::RunL() iStatus= %d, iState = %d");
	SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibMWAnalyzeItem10, iStatus.Int(), curState);
#endif

//  ADD-S PTX824 k3-sugimoto
	switch(curState)
		{
		//  巜掕夋憸庬暿夋憸忣曬庢摼偺張棟偼偦傟偱暵偠傞偙偲偲偡傞
		case ESmbMusicAPLibGetExInfoforTarget:			//  SDBind忣曬庢摼忬懺
		case ESmbMusicAPLibGetAAAInfoforTarget:			//  AAA夋憸忣曬庢摼
		case ESmbMusicAPLibGetAAAIndivInfoforTarget:	//  AAA夋憸屄暿忣曬庢摼
		case ESmbMusicAPLibGetJacketInfoforTarget:		//  僕儍働僢僩夋憸忣曬庢摼
		case ESmbMusicAPLibGetJacketIndivInfoforTarget:	//  僕儍働僢僩夋憸屄暿忣曬庢摼
		case ESmbMusicAPLibGetStillInfoforTarget:		//  懸庴夋憸忣曬庢摼
		case ESmbMusicAPLibGetStillIndivInfoforTarget:	//  懸庴夋憸屄暿忣曬庢摼
		case ESmbMusicAPLibGetLyricInfoforTarget:		//  壧帉夋憸忣曬庢摼
		case ESmbMusicAPLibGetLyricIndivInfoforTarget:	//  壧帉夋憸屄暿忣曬庢摼
			{
			HandleGetImageTypeInfoRes(iStatus.Int());
			return;
			}
//			break;
		//  巜掕夋憸庬暿夋憸悢庢摼偺張棟偼偦傟偱暵偠傞偙偲偲偡傞
		case ESmbMusicAPLibGetAAACountforTarget:	//  AAA夋憸悢庢摼
		case ESmbMusicAPLibGetJacketCountforTarget:	//  僕儍働僢僩夋憸悢庢摼
		case ESmbMusicAPLibGetStillCountforTarget:	//  懸庴夋憸悢庢摼
		case ESmbMusicAPLibGetLyricCountforTarget:	//  壧帉夋憸悢庢摼
			{
			HandleGetImageTypeCountRes(iStatus.Int());
			return;
			}
//			break;
		default:
			break;
		}
//  ADD-E PTX824 k3-sugimoto

	//旕摨婜墳摎偺撪梕偵偭偰暘婒偝偣傞
	TInt res = iStatus.Int();
	switch(res)
		{
	//惓忢宯
	case KErrNone:
		ResultKErrNone(curState);
		break;

	//弨惓忢宯
	case KErrNotSupported:
		ResultKErrNotSupport(curState);
		break;

//@@TRK11656懳墳	Add	Start
	//弨惓忢宯
	case KErrNotFound:
		ResultKErrNotFound(curState);
		break;
//@@TRK11656懳墳	Add	End

	//堎忢宯
	default:
		ResultError(curState);
		break;
		}
	}


/**
 *  傾僋僥傿僽僆僽僕僃僋僩偺DoCancel張棟傪峴偆
 **/
void CSmbMusicAPLibMWAnalyzeItem::DoCancel()
	{
	//尰嵼偺抜奒偱丄摿偵張棟側偟
	}


/**
 *  旕摨婜梫媮傪奐巒偡傞(AO傪Active偵僙僢僩偡傞)
 **/
void CSmbMusicAPLibMWAnalyzeItem::Start()
	{
	//AO傪僉儍儞僙儖偡傞
	Cancel();

	//Active偵僙僢僩偡傞
	SetActive();
	}


/**
 *  忬懺傪愝掕偡傞
 *  @param[in]	aState	愝掕偡傞忬懺抣
 **/
void CSmbMusicAPLibMWAnalyzeItem::SetState(TSmbMusicAPLibAnalyzeItemState aState)
	{
	iState = aState;
	}


/**
 *  忬懺傪庢摼偡傞
 *  @return	尰嵼偺忬懺抣
 **/
CSmbMusicAPLibMWAnalyzeItem::TSmbMusicAPLibAnalyzeItemState CSmbMusicAPLibMWAnalyzeItem::State()
	{
	return iState;
	}


/**
 *  屄暿夋憸忣曬偑偁傟偽丄屄暿夋憸忣曬庢摼傪奐巒丟偦偆偱側偄応崌丄傕偟懠偺僞僀僾偺夋憸偑偁傟偽丄夋憸忣曬庢摼梫媮傪屇傃弌偡
 **/
void CSmbMusicAPLibMWAnalyzeItem::StartAnalyzeInfo()
	{
	//僄儞僩儕悢傪iHasInfoMax偵曐懚偟丄iAnalyzeCounter傪"1"(MW偑"1"僆儕僕儞)偵弶婜壔偡傞
	iHasInfoMax = iInfoItem->EntryCount();
	if(iHasInfoMax < 0)
		{
		//儘僌弌椡
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber11;
		_LIT(KMusicAPLibMWAnalyzeItem11, "CSmbMusicAPLibMWAnalyzeItem::StartAnalyzeInfo() [Err]:iHasInfoMax = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem11, iHasInfoMax);

		//僄儔乕偑弌偨偺偱丄張棟拞偺旕摨婜梫媮傪拞巭偡傞偙偲傪捠抦偡傞
		Complete(KErrGeneral);

		//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
		DeleteObjects();

		return;
		}

	iAnalyzeCounter = 1;

	//iHasInfoMax 偑 0 偺応崌乮偮傑傝丄僕儍働僢僩夋憸偑側偄応崌乯
	if(0 == iHasInfoMax)
		{
		//僀儊乕僕忣曬僆僽僕僃僋僩傪嶍彍
		delete iInfoItem;
		iInfoItem = NULL;

		//師偺夋憸偵愝掕偱偒傞側傜偽丄嵞傃懠庬椶偺僀儊乕僕忣曬庢摼傪峴偆
		if(EFalse != NextImageType())
			{
			//懠偺僞僀僾偺夋憸偵懳偟偰丄僀儊乕僕忣曬庢摼梫媮傪弌偡
			TInt ret = GetInfo();
			if(KErrNone != ret)
				{
				TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber12;
				_LIT(KMusicAPLibMWAnalyzeItem12, "CSmbMusicAPLibMWAnalyzeItem::StartAnalyzeInfo() [ErrCall]:GetInfo() = %d");
				SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem12, ret);

				//僄儔乕偑弌偨偺偱丄張棟拞偺旕摨婜梫媮傪拞巭偡傞偙偲傪捠抦偡傞
				Complete(ret);

				//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
				DeleteObjects();
				}
			}
		else
			{
			//夋憸忣曬偺強桳尃傪僋儔僀傾儞僩偵搉偡
			iClientInfo = NULL;

			//僋儔僀傾儞僩偵懳偟偰夋憸忣曬庢摼姰椆傪捠抦偡傞
			Complete(KErrNone);
			}
		}
	else	//僕儍働僢僩夋憸偑偁傞応崌丄夋憸庢摼傪奐巒偡傞
		{
		//奺夋憸庬暿偵傛傞僒億乕僩偡傞嵟戝枃悢傪挷傋傞
		CheckMaxImageCount(iImageType, iHasInfoMax);

		//屄暿夋憸忣曬庢摼傪屇傃弌偡
		TInt ret = iInfoItem->IndividualImageInfo(iAnalyzeCounter, iInfo, iStatus);
		if(KErrNone != ret)
			{
			//儘僌弌椡
			TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber13;
			_LIT(KMusicAPLibMWAnalyzeItem13, "CSmbMusicAPLibMWAnalyzeItem::StartAnalyzeInfo() [ErrCall]:IndividualImageInfo() = %d");
			SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem13, ret);

			//僄儔乕偑弌偨偺偱丄張棟拞偺旕摨婜梫媮傪拞巭偡傞偙偲傪捠抦偡傞
			Complete(ret);

			//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
			DeleteObjects();

			return;
			}

		//旕摨婜梫媮傪奐巒偡傞
		Start();

		//忬懺傪ESmbMusicAPLibAnalyzeInfo偵僙僢僩偡傞
		SetState(ESmbMusicAPLibAnalyzeInfo);
		}
	}


/**
 *  慡晹偺屄暿夋憸庢摼張棟傪懕偗傞丟慡晹庢摼偟偨応崌丄傾僾儕偵姰椆捠抦傪搳偘傞
 **/
void CSmbMusicAPLibMWAnalyzeItem::AnalyzeInfo()
	{
	//偁傞夋憸僞僀僾偵懳偟偰丄屄暿夋憸忣曬偑傑偩巆偭偰偄傞応崌
	if(iHasInfoMax != iAnalyzeCounter)
		{
		//僀儊乕僕忣曬偺僀儞僨僢僋僗傪僀儞僋儕儊儞僩偡傞
		iAnalyzeCounter++;

		//屄暿夋憸忣曬庢摼傪屇傃弌偡
		TInt ret = iInfoItem->IndividualImageInfo(iAnalyzeCounter, iInfo, iStatus);
		if(KErrNone != ret)
			{
			//儘僌弌椡
			TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber14;
			_LIT(KMusicAPLibMWAnalyzeItem14, "CSmbMusicAPLibMWAnalyzeItem::AnalyzeInfo() [ErrCall]:IndividualImageInfo() = %d");
			SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem14, ret);

			//僄儔乕偑弌偨偺偱丄張棟拞偺旕摨婜梫媮傪拞巭偡傞偙偲傪捠抦偡傞
			Complete(ret);

			//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
			DeleteObjects();

			return;
			}

		//旕摨婜梫媮傪奐巒偡傞
		Start();
		}
	else	//偁傞夋憸僞僀僾偵懳偟偰丄慡晹偺夋憸忣曬庢摼偑姰椆偟偨応崌
		{
		delete iInfoItem;
		iInfoItem = NULL;

		//師偺夋憸僞僀僾偺愝掕偑ETrue側傜偽丄師偺僞僀僾偺夋憸忣曬庢摼傪峴偆
		if(EFalse != NextImageType())
			{
			//懠偺僞僀僾偺夋憸偵懳偟偰丄僀儊乕僕忣曬庢摼梫媮傪弌偡
			TInt ret = GetInfo();
			if(KErrNone != ret)
				{
				TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber15;
				_LIT(KMusicAPLibMWAnalyzeItem15, "CSmbMusicAPLibMWAnalyzeItem::AnalyzeInfo() [ErrCall]:GetInfo() = %d");
				SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem15, ret);

				//僄儔乕偑弌偨偺偱丄張棟拞偺旕摨婜梫媮傪拞巭偡傞偙偲傪捠抦偡傞
				Complete(ret);

				//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
				DeleteObjects();
				}
			}
		else	//慡晹偺僞僀僾偵懳偟偰丄夋憸忣曬傪姰椆偟偨応崌
			{
			//夋憸忣曬偺強桳尃傪僋儔僀傾儞僩偵搉偡
			iClientInfo = NULL;

			//僋儔僀傾儞僩偵懳偟偰夋憸忣曬庢摼姰椆傪捠抦偡傞
			Complete(KErrNone);
			}
		}
	}


/**
 *  偁傞夋憸僞僀僾偵懳偟偰丄夋憸忣曬庢摼傪峴偆
 **/
TInt CSmbMusicAPLibMWAnalyzeItem::GetInfo()
	{
	//僀儊乕僕忣曬僆僽僕僃僋僩傪惗惉偡傞
	delete iInfoItem;
	iInfoItem = NULL;

	TRAPD(error, iInfoItem = CSmbMusicMWLibImageInfo::NewL());
	if(KErrNone != error)
		{
		//儘僌弌椡
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber16;
		_LIT(KMusicAPLibMWAnalyzeItem16, "CSmbMusicAPLibMWAnalyzeItem::GetInfo() [ErrAlloc]:NewL() Failed. error = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem16, error);

		return error;
		}

	//嬋僆僽僕僃僋僩偺夋憸忣曬庢摼梫媮傪屇傃弌偡
	TInt ret = iClientItem->ImageInformation(iImageType, *iInfoItem, iStatus);
	if(KErrNone != ret)
		{
		//儘僌弌椡
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber17;
		_LIT(KMusicAPLibMWAnalyzeItem17, "CSmbMusicAPLibMWAnalyzeItem::GetInfo() [ErrCall]:ImageInformation() = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem17, error);

		//夋憸忣曬僆僽僕僃僋僩傪嶍彍
		delete iInfoItem;
		iInfoItem = NULL;

		return ret;
		}

	//旕摨婜梫媮傪奐巒偡傞(SetActive偡傞)
	Start();

	//忬懺傪ESmbMusicAPLibGetInfo偵僙僢僩偡傞
	SetState(ESmbMusicAPLibGetInfo);

	return KErrNone;
	}


/**
 *  師偺夋憸僞僀僾偵愝掕偡傞
 *  @return	懸偪庴偗夋憸/壧帉夋憸偵愝掕偟偨応崌偼ETrue傪曉偡丄偦偺埲奜偼EFalse傪曉偡
 **/
TBool CSmbMusicAPLibMWAnalyzeItem::NextImageType()
	{
	//尰嵼偺夋憸僞僀僾偵傛偭偰丄師偺夋憸僞僀僾偵愝掕偡傞
	TBool result(EFalse);
	switch(iImageType)
		{
		case ESmbMusicMWLibImageTypeAAA:
			{
			//  師偼僕儍働僢僩夋憸
			iImageType = ESmbMusicMWLibImageTypeJacket;
			result = ETrue;
			}
			break;
		case ESmbMusicMWLibImageTypeJacket:
			{
			//  師偼懸庴夋憸
			iImageType = ESmbMusicMWLibImageTypeStill;
			result = ETrue;
			}
			break;
		case ESmbMusicMWLibImageTypeStill:
			{
			//  師偼壧帉夋憸
			iImageType = ESmbMusicMWLibImageTypeLylic;
			result = ETrue;
			}
			break;
		case ESmbMusicMWLibImageTypeLylic:
			{
			//  師偼側偟
			result = EFalse;
			}
			break;
		default:
			{
			//偦偺懠偺応崌偼丄儘僌傪弌椡偡傞
			TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber18;
			_LIT(KMusicAPLibMWAnalyzeItem18, "CSmbMusicAPLibMWAnalyzeItem::NextImageType() [Err]:illegal Image Type = %d");
			SmbMusicAPLibLog(logCode, ELogLevelHighest, KMusicAPLibMWAnalyzeItem18,	iImageType);
			}
			break;

⌨️ 快捷键说明

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