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

📄 smbmusicaplibmwanalyzeitem.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		}
	return result;
	}


/**
 *  嵟弶偺夋憸僞僀僾偵愝掕偡傞
 */
void CSmbMusicAPLibMWAnalyzeItem::StartImageType()
	{
	iImageType = ESmbMusicMWLibImageTypeJacket;
	if (iExType == ESmbMusicAPLibExTypeEnableAAA)
		{	//  AAA夋憸庢摼懳徾偺応崌
		//  嬋傾僀僥儉偐傜僐儞僥儞僣偺僼傽僀儖僼僅乕儅僢僩傪庢摼
		TSmbMusicMWLibFileFormat mwFormat(ESmbMusicMWLibFileFormatOther);
		TInt result = iClientItem -> Format(mwFormat);
		if (result == KErrNone)
			{
			if ((mwFormat == ESmbMusicMWLibFileFormatMtpModeWMA) ||		//  WMA僼傽僀儖(MTP儌乕僪揮憲)
				(mwFormat == ESmbMusicMWLibFileFormatMemoryModeWMA))	//  WMA僼傽僀儖(儊儌儕儌乕僪揮憲)
				{	//  僐儞僥儞僣偺僼傽僀儖僼僅乕儅僢僩偑WMA偺応崌
				//  AAA夋憸庢摼傪幚峴
				iImageType = ESmbMusicMWLibImageTypeAAA;
				}
			}
		else
			{	//  僼傽僀儖僼僅乕儅僢僩偺庢摼偵幐攕
			//  儘僌
			//  AAA夋憸偑偁傞壜擻惈傕偁傞偺偱1枃栚巜掕側傜
			//  AAA夋憸庢摼偵挧愴偟偰傒傞丅
			iImageType = ESmbMusicMWLibImageTypeAAA;
			}
		}
	}


/**
 *  梫媮懁偵懳偟偰丄旕摨婜梫媮偺姰椆捠抦傪偡傞
 *  @param[in]	aCode	姰椆僐乕僪
 **/
void CSmbMusicAPLibMWAnalyzeItem::Complete(TInt aCode)
	{
	if(NULL != iClientStatus)
		{
		//僋儔僀傾儞僩偺AO偵姰椆傪捠抦偡傞
		User::RequestComplete(iClientStatus, aCode);
		//梫媮懁偐傜傕傜偭偨Status傪NULL偵僙僢僩偡傞
		iClientStatus = NULL;
		}

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


/**
 *  惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
 *  @param[in]	aClearArray	奿擺椞堟偺攝楍傪僋儕傾偡傞偐偳偆偐(僨僼僅儖僩:ETrue=僋儕傾偡傞)
 */
//  MODIFY-S PTX824 k3-sugimoto
void CSmbMusicAPLibMWAnalyzeItem::DeleteObjects(TBool aClearArray/*=ETrue*/)
//  MODIFY-E PTX824 k3-sugimoto
	{
	//夋憸忣曬僆僽僕僃僋僩傪嶍彍偡傞
	delete iInfoItem;
	iInfoItem = NULL;

	//婛偵庢摼偟偨屄暿忣曬傪僨儕乕僩偡傞
	if(NULL != iClientInfo)
		{
//  MODIFY-S PTX824 k3-sugimoto
		if (aClearArray != EFalse)
			{
			iClientInfo->iImageJacketInfo.Close();
			iClientInfo->iImageLyricInfo.Close();
			}
//  MODIFY-E PTX824 k3-sugimoto
		iClientInfo = NULL;
		}

//  ADD-S PTX824 k3-sugimoto
	iClientItem = NULL;

	if (iClientTypeInfo != NULL)
		{
		if (aClearArray != EFalse)
			{
			iClientTypeInfo -> iImageInfo.Close();
			}
		iClientTypeInfo = NULL;
		}

	if (iImageCount != NULL)
		{
		if (aClearArray != EFalse)
			{
			*iImageCount = 0;
			}
		iImageCount = NULL;
		}
//  ADD-E PTX824 k3-sugimoto

	delete iCheckInfo.iInfoItem;
	iCheckInfo.iInfoItem = NULL;

	iCheckInfo.iItem = NULL;
	}


/**
 *  妝嬋偵奿擺偝傟偰偄傞夋憸僼傽僀儖偺嵟戝悢傪僠僃僢僋偡傞
 *  @param[in]		aType		夋憸庬暿
 *  @param[in,out]	aImageCount	夋憸偺嵟戝悢
 **/
void CSmbMusicAPLibMWAnalyzeItem::CheckMaxImageCount(TSmbMusicMWLibImageType aType, TInt& aImageCount)
	{
	TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber19;
	_LIT(KMusicAPLibMWAnalyzeItem19, "CSmbMusicAPLibMWAnalyzeItem::CheckMaxImageCount Start Type = %d, Count = %d");
	SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibMWAnalyzeItem19, aType, aImageCount);

	switch(aType)
		{
		//AAA夋憸偺応崌
		case ESmbMusicMWLibImageTypeAAA:
			//夋憸枃悢傪挷傋傞
			if(aImageCount > KSmbMusicAPLibImageAAAMax)
				{
				//婯掕偺枃悢傪挻偊偰偄傞応崌偼嵟戝悢傑偱僒億乕僩偡傞
				aImageCount = KSmbMusicAPLibImageAAAMax;
				}
			break;

		//僕儍働僢僩夋憸偺応崌
		case ESmbMusicMWLibImageTypeJacket:
			//夋憸枃悢傪挷傋傞
			if(aImageCount > KSmbMusicAPLibImageJacketMax)
				{
				//婯掕偺枃悢傪挻偊偰偄傞応崌偼嵟戝悢傑偱僒億乕僩偡傞
				aImageCount = KSmbMusicAPLibImageJacketMax;
				}
			break;

		//懸偪庴偗夋憸偺応崌
		case ESmbMusicMWLibImageTypeStill:
			//夋憸枃悢傪挷傋傞
			if(aImageCount > KSmbMusicAPLibImageStillMax)
				{
				//婯掕偺枃悢傪挻偊偰偄傞応崌偼嵟戝悢傑偱僒億乕僩偡傞
				aImageCount = KSmbMusicAPLibImageStillMax;
				}
			break;

		//壧帉夋憸偺応崌
		case ESmbMusicMWLibImageTypeLylic:
			//夋憸枃悢傪挷傋傞
			if(aImageCount > KSmbMusicAPLibImageLylicMax)
				{
				//婯掕偺枃悢傪挻偊偰偄傞応崌偼嵟戝悢傑偱僒億乕僩偡傞
				aImageCount = KSmbMusicAPLibImageLylicMax;
				}
			break;

		default:
			{
			//偦偺懠偺応崌偼丄儘僌傪弌椡偡傞
			logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber20;
			_LIT(KMusicAPLibMWAnalyzeItem20, "CSmbMusicAPLibMWAnalyzeItem::CheckMaxImageCount illegal Image Type = %d");
			SmbMusicAPLibLog(logCode, ELogLevelHighest, KMusicAPLibMWAnalyzeItem20,	aType);
			}
			break;
		}
	}


/**
 *  旕摨婜墳摎偑惓忢廔椆偺応崌
 *  @param[in]	aState	夋憸忣曬夝愅僋儔僗偺僗僥乕僩
 **/
void CSmbMusicAPLibMWAnalyzeItem::ResultKErrNone(TSmbMusicAPLibAnalyzeItemState aState)
	{
	//忬懺偵傛偭偰張棟傪暘婒偝偣傞
	switch(aState)
		{
		//奼挘忣曬庢摼忬懺
		case ESmbMusicAPLibGetExInfo:
			{
			//庢摼偡傞僀儊乕僕僞僀僾傪愝掕偡傞
			StartImageType();
			//嬋傾僀僥儉偵懳偟偰丄僀儊乕僕忣曬庢摼梫媮傪弌偡
			TInt ret = GetInfo();
			if(KErrNone != ret)
				{
				//僄儔乕偑敪惗偟偨偺偱儘僌傪弌椡偟傑偡
				TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber21;
				_LIT(KMusicAPLibMWAnalyzeItem21, "CSmbMusicAPLibMWAnalyzeItem::ResultKErrNone() [ErrCall]:GetInfo() = %d");
				SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem21, ret);

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

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

		//夋憸忣曬庢摼忬懺
		case ESmbMusicAPLibGetInfo:
			{
			//屄暿夋憸忣曬庢摼傪奐巒
			StartAnalyzeInfo();
			break;
			}

		//夋憸忣曬夝愅忬懺
		case ESmbMusicAPLibAnalyzeInfo:
			{
			//庢摼偟偨夋憸忣曬傪奿擺偡傞
			AppendImageInfo();
			//夋憸庢摼傪懕偗傞丟偁傞僞僀僾偺庢摼偑廔傢偭偨傜丄師偺僞僀僾偺夋憸庢摼張棟弨旛傪峴偆
			AnalyzeInfo();
			break;
			}

//@@TRK10436懳墳	Start
		//夋憸庢摼偺帠慜僠僃僢僋奐巒忬懺
		case ESmbMusicAPLibStartCheckImage:
			GetInfoToCheckImage();
			break;

		//夋憸庢摼偺帠慜僠僃僢僋奐巒忬懺
		case ESmbMusicAPLibCheckingImage:
			CheckSupportedSize();
			break;
//@@TRK10436懳墳	End

		default:
			{
			//偦偺懠偺応崌偼丄儘僌傪弌椡
			TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber22;
			_LIT(KMusicAPLibMWAnalyzeItem22, "CSmbMusicAPLibMWAnalyzeItem::ResultKErrNone() [ErrState]:Invalid State = %d");
			SmbMusicAPLibLog(logCode, ELogLevelHighest, KMusicAPLibMWAnalyzeItem22,	aState);
			}
			break;
		}
	return;
	}
//@@TRK6868懳墳	End


//i-share TRK No.5700懳墳 ADD-S
/**
 *  旕摨婜墳摎偑弨惓忢廔椆偺応崌
 *  @param[in]	aState	夋憸忣曬夝愅僋儔僗偺僗僥乕僩
 **/
void CSmbMusicAPLibMWAnalyzeItem::ResultKErrNotSupport(TSmbMusicAPLibAnalyzeItemState aState)
	{
	//忬懺偵傛偭偰張棟偑暘偐傟傞
	switch(aState)
		{
//@@TRK10436懳墳	Start
	//夋憸庢摼偺帠慜僠僃僢僋奐巒忬懺
	case ESmbMusicAPLibCheckingImage:
	//夋憸庢摼偺帠慜僠僃僢僋忬懺
	case ESmbMusicAPLibStartCheckImage:
		//僄儔乕偑弌偨偺偱張棟傪拞巭偡傞
		Complete(KErrNotSupported);
		//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
		DeleteObjects();
		//廔椆偟傑偡
		return;
//		break;
//@@TRK10436懳墳	End

	//奼挘僿僢僟庢摼忬懺偺応崌
	case ESmbMusicAPLibGetExInfo:
		{
		//庢摼偡傞僀儊乕僕僞僀僾傪愝掕偡傞
		StartImageType();
		//嬋傾僀僥儉偵懳偟偰丄僀儊乕僕忣曬庢摼梫媮傪弌偡
		TInt ret = GetInfo();
		if(KErrNone != ret)
			{
			//僄儔乕偑敪惗偟偨偺偱儘僌傪弌椡偟傑偡
			TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber23;
			_LIT(KMusicAPLibMWAnalyzeItem23, "CSmbMusicAPLibMWAnalyzeItem::ResultKErrNotSupport() [ErrCall]:GetInfo() = %d");
			SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem23, ret);

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

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

//ImageInfomation()偺応崌偼枹僒億乕僩僐儞僥儞僣偩偭偨応崌偼弨惓忢宯偲偟偰桳傝摼傞
//IndividualImageInfo()偺応崌偼桳傝摼側偄

	//僀儊乕僕忣曬僆僽僕僃僋僩傪嶍彍
	delete iInfoItem;
	iInfoItem = NULL;

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

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

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

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

	return;
	}
//i-share TRK No.5700懳墳 ADD-E


//i-share TRK No.11656懳墳 ADD-S
/**
 *  旕摨婜墳摎偑弨惓忢廔椆偺応崌
 *  @param[in]	aState	夋憸忣曬夝愅僋儔僗偺僗僥乕僩
 **/
void CSmbMusicAPLibMWAnalyzeItem::ResultKErrNotFound(TSmbMusicAPLibAnalyzeItemState aState)
	{
	//忬懺偵傛偭偰張棟偑暘偐傟傞
	switch(aState)
		{
	//夋憸忣曬夝愅忬懺
	case ESmbMusicAPLibAnalyzeInfo:
		//IndividualImageInfo()偺応崌偼弨惓忢宯偲偟偰張棟偡傞

		//僟儈乕偺抣傪戙擖偡傞
		ErrorInfo();
		//庢摼偟偨夋憸忣曬傪奿擺偡傞
		AppendImageInfo();
		//夋憸庢摼傪懕偗傞丟偁傞僞僀僾偺庢摼偑廔傢偭偨傜丄師偺僞僀僾偺夋憸庢摼張棟弨旛傪峴偆
		AnalyzeInfo();
		break;

	case ESmbMusicAPLibGetInfo:
		{
		if (iImageType == ESmbMusicMWLibImageTypeAAA)
			{	//  AAA夋憸忣曬庢摼拞偺僄儔乕偼婥偵偣偢張棟懕峴
			delete iInfoItem;
			iInfoItem = NULL;

			//師偺夋憸僞僀僾偵愝掕偱偒傞側傜偽丄偦偺夋憸僞僀僾偵懳偟偰夋憸忣曬庢摼傪峴偆
			if(EFalse != NextImageType())
				{
				//夋憸忣曬庢摼梫媮傪弌偡
				TInt ret = GetInfo();
				if(KErrNone != ret)
					{
					//僄儔乕偑弌偨偺偱丄張棟拞偺旕摨婜梫媮傪拞巭偡傞偙偲傪捠抦偡傞
					Complete(ret);

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

	//偦偺懠偺忬懺偱偁傟偽僄儔乕廔椆偡傞
	default:
		TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber25;
		_LIT(KMusicAPLibMWAnalyzeItem25, "CSmbMusicAPLibMWAnalyzeItem::ResultKErrNotFound() [ErrStatus]: iStatus = %d, State = %d");
		SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem25, iStatus.Int(), aState);

		//僋儔僀傾儞僩偵僄儔乕傪捠抦偡傞
		Complete(iStatus.Int());
		//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
		DeleteObjects();
		break;
		}

	return;
	}
//i-share TRK No.11656懳墳 ADD-E


/**
 *  旕摨婜墳摎偑僄儔乕偺応崌
 *  @param[in]	aState	夋憸忣曬夝愅僋儔僗偺僗僥乕僩
 **/
void CSmbMusicAPLibMWAnalyzeItem::ResultError(TSmbMusicAPLibAnalyzeItemState aState)
	{
	TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber26;

⌨️ 快捷键说明

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