📄 smbmusicaplibmwanalyzeitem.cpp
字号:
_LIT(KMusicAPLibMWAnalyzeItem26, "CSmbMusicAPLibMWAnalyzeItem::ResultError() [ErrStatus]: iStatus = %d, State = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem26, iStatus.Int(), aState);
if ((aState == ESmbMusicAPLibGetInfo) &&
(iImageType == ESmbMusicMWLibImageTypeAAA))
{ // AAA夋憸忣曬庢摼拞偺僄儔乕偼婥偵偣偢張棟懕峴
delete iInfoItem;
iInfoItem = NULL;
//師偺夋憸僞僀僾偵愝掕偱偒傞側傜偽丄偦偺夋憸僞僀僾偵懳偟偰夋憸忣曬庢摼傪峴偆
if(EFalse != NextImageType())
{
//夋憸忣曬庢摼梫媮傪弌偡
TInt ret = GetInfo();
if(KErrNone != ret)
{
//僄儔乕偑弌偨偺偱丄張棟拞偺旕摨婜梫媮傪拞巭偡傞偙偲傪捠抦偡傞
Complete(ret);
//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
DeleteObjects();
}
}
}
//僋儔僀傾儞僩偵僄儔乕傪捠抦偡傞
Complete(iStatus.Int());
//惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
DeleteObjects();
return;
}
/**
* 庢摼偟偨夋憸忣曬傪奿擺偡傞
**/
void CSmbMusicAPLibMWAnalyzeItem::AppendImageInfo()
{
//埲壓偼庢摼偟偨夋憸忣曬傪嫟捠Lib偺宍幃偱愝掕偡傞
TSmbMusicAPLibImageIndividualInfo info;
// ADD-S PTX824 k3-sugimoto
if (iImageType == ESmbMusicMWLibImageTypeLylic)
{ // 庢摼偟偨屄暿忣曬偑壧帉夋憸偺応崌
if (iAnalyzeCounter == 1)
{ // 1枃栚偺夋憸偺応崌
iLyricStoreFlag = iInfo.iStoreFlag; // 壧帉夋憸曐懚壜斲僼儔僌偵壜斲傪愝掕
}
else
{ // 偦傟埲奜偺応崌
iInfo.iStoreFlag = iLyricStoreFlag; // 1枃栚偺壧帉夋憸偺壜斲僼儔僌傪宲彸
}
}
// ADD-E PTX824 k3-sugimoto
//奿擺僼儔僌(ETrue:曐懚壜/EFalse:曐懚晄壜)傪愝掕偡傞
info.iStoreFlag = iInfo.iStoreFlag;
//夋憸僼僅乕儅僢僩傪愝掕偡傞
switch(iInfo.iContentType)
{
//JPEG偺応崌
case ESmbMusicMWLibImageFormatJpeg:
info.iContentsType = ESmbMusicAPLibJpeg;
break;
//GIF偺応崌
case ESmbMusicMWLibImageFormatGif:
info.iContentsType = ESmbMusicAPLibGif;
break;
//偦偺懠偺応崌
case ESmbMusicMWLibImageFormatOther:
info.iContentsType = ESmbMusicAPLibOther;
break;
default :
//堎忢宯
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber27;
_LIT(KMusicAPLibMWAnalyzeItem27, "CSmbMusicAPLibMWAnalyzeItem::AppendImageInfo() [Err]:Image Format(get from MW). Format = %d");
SmbMusicAPLibLog(logCode, ELogLevelHighest, KMusicAPLibMWAnalyzeItem27, iInfo.iContentType);
//枹僒億乕僩偺夋憸僼僅乕儅僢僩傪擖傟傞
info.iContentsType = ESmbMusicAPLibOther;
break;
}
//奿擺偝傟偰偄傞夋憸傪抂枛偵曐懚偟偨嵺偺僼傽僀儖柤傪愝掕偡傞
info.iFileName = iInfo.iName;
//夋憸僨乕僞僒僀僘傪愝掕偡傞
info.iImageSize = iInfo.iLength;
//SDBind忣曬傪奿擺偡傞
info.iXDcmMove = iExtensionHeaderInfo.iXDcmMove;
info.iXDcmAdditional = iExtensionHeaderInfo.iXDcmAdditional;
//庢摼偟偨屄暿夋憸忣曬傪丄夋憸僞僀僾偵墳偠偰墳摎堷悢偺Array偵捛壛偡傞
switch(iImageType)
{
//i-share TRK No.5700懳墳 ADD-S
//MW偱庢摼偟偨AAA夋憸傪墳摎堷悢偺僕儍働僢僩夋憸偵擖傟傞
case ESmbMusicMWLibImageTypeAAA:
iClientInfo->iImageJacketInfo.Append(info);
break;
//MW偱庢摼偟偨僕儍働僢僩夋憸(懸偪庴偗夋憸傪娷傓)傪墳摎堷悢偺僕儍働僢僩夋憸偵擖傟傞
case ESmbMusicMWLibImageTypeJacket:
iClientInfo->iImageJacketInfo.Append(info);
break;
case ESmbMusicMWLibImageTypeStill:
//懸庴偗夋憸偑偁傝丄僕儍働僢僩夋憸偑側偄応崌偼僟儈偺僕儍働僢僩夋憸忣曬傪擖傟偰偍偔
if(0 == iClientInfo->iImageJacketInfo.Count())
{
TSmbMusicAPLibImageIndividualInfo dummyInfo;
//奿擺僼儔僌(ETrue:曐懚壜/EFalse:曐懚晄壜)傪乽曐懚晄壜乿偵愝掕偡傞
dummyInfo.iStoreFlag = EFalse;
//夋憸僼僅乕儅僢僩傪乽偦偺懠乿偵愝掕偡傞
dummyInfo.iContentsType = ESmbMusicAPLibOther;
//僼傽僀儖柤傪愝掕偡傞
dummyInfo.iFileName = KNullDesC;
//夋憸僨乕僞僒僀僘傪僛儘偵愝掕偡傞
dummyInfo.iImageSize = 0;
//SDBind忣曬傪奿擺偡傞
info.iXDcmMove = 0;
info.iXDcmAdditional = 0;
//僕儍働僢僩夋憸忣曬傪僟儈偱Append偡傞丟僋儔僀傾儞僩偼偙偺忣曬傪巊偭偰僕儍働夋憸偺桳柍傪敾抐偱偒傞
iClientInfo->iImageJacketInfo.Append(dummyInfo);
}
iClientInfo->iImageJacketInfo.Append(info);
break;
//i-share TRK No.5700懳墳 ADD-E
//MW偱庢摼偟偨壧帉夋憸傪墳摎堷悢偺壧帉夋憸偵擖傟傞
case ESmbMusicMWLibImageTypeLylic:
iClientInfo->iImageLyricInfo.Append(info);
break;
default:
{
//偦偺懠偺夋憸僞僀僾偑側偄偨傔丄儘僌傪弌椡
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber28;
_LIT(KMusicAPLibMWAnalyzeItem28, "CSmbMusicAPLibMWAnalyzeItem::AppendImageInfo() [Err]:ImageType = %d");
SmbMusicAPLibLog(logCode, ELogLevelHighest, KMusicAPLibMWAnalyzeItem28, iImageType);
}
break;
}
}
//@@TRK8888懳墳 Add Start
/**
* 妝嬋偵娷傑傟傞夋憸僼傽僀儖偺僒僀僘傪挷傋傞
* @param[in] aItem 嬋傾僀僥儉偺嶲徠
* @param[in] aType 夋憸庬暿(僕儍働僢僩夋憸(懸庴夋憸傪娷傓)丄壧帉夋憸)
* @param[in] aIndex 夋憸斣崋巜掕
* @param[in,out] aStatus 旕摨婜墳摎
* @return 張棟寢壥
*/
TInt CSmbMusicAPLibMWAnalyzeItem::CheckImage(
CSmbMusicMWLibSongItem& aItem,
TSmbMusicMWLibImageType aType,
TInt aIndex,
TRequestStatus& aStatus
)
{
#ifdef __SMBMUSICAPLIB_ENABLEALLLOG__
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber29;
_LIT(KMusicAPLibMWAnalyzeItem29, "CSmbMusicAPLibMWAnalyzeItem::CheckImage Start");
SmbMusicAPLibLog(logCode, ELogLevelLowest, KMusicAPLibMWAnalyzeItem29);
#endif
//ESmbMusicAPLibIdle偱側偄応崌丄僄儔乕偱栠傞
if(ESmbMusicAPLibIdle != State())
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber30;
_LIT(KMusicAPLibMWAnalyzeItem30, "CSmbMusicAPLibMWAnalyzeItem::CheckImage [ErrState]:Not Idle State. State = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem30, State());
return KErrInUse;
}
//僀儊乕僕忣曬僆僽僕僃僋僩傪惗惉偡傞
TRAPD(error, iCheckInfo.iInfoItem = CSmbMusicMWLibImageInfo::NewL());
if(KErrNone != error)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber31;
_LIT(KMusicAPLibMWAnalyzeItem31, "CSmbMusicAPLibMWAnalyzeItem::CheckImage ImageInfo::NewL() Failed. error = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem31, error);
iCheckInfo.iInfoItem = NULL;
return error;
}
//嬋僆僽僕僃僋僩偺夋憸忣曬庢摼梫媮傪屇傃弌偡乮摨婜張棟乯
TInt ret = aItem.ImageInformation(aType, *iCheckInfo.iInfoItem, iStatus);
if(KErrNone != ret)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber32;
_LIT(KMusicAPLibMWAnalyzeItem32, "CSmbMusicAPLibMWAnalyzeItem::CheckImage [ErrCall]:ImageInformation() = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem32, error);
//夋憸忣曬僆僽僕僃僋僩傪嶍彍
DeleteObjects();
return ret;
}
//Index忣曬傪曐懚偡傞
iCheckInfo.iIndex = aIndex;
//僋儔僀傾儞僩僗僥乕僞僗傪曐懚偡傞
iClientStatus = &aStatus;
//嬋傾僀僥儉偺億僀儞僞傪曐懚偡傞
iCheckInfo.iItem = &aItem;
//僋儔僀傾儞僩懁AO偺梫媮傪Pending偡傞
if(NULL != iClientStatus)
{
*iClientStatus = KRequestPending;
}
//旕摨婜梫媮傪奐巒偡傞乮SetActive偡傞乯
Start();
//帠慜僠僃僢僋奐巒忬懺
SetState(ESmbMusicAPLibStartCheckImage);
return ret;
}
//@@TRK10436懳墳 Start
/**
* 妝嬋偵娷傑傟傞夋憸忣曬傪庢摼偡傞(夋憸庢摼偺帠慜僠僃僢僋梡)
* @return 張棟寢壥
**/
TInt CSmbMusicAPLibMWAnalyzeItem::GetInfoToCheckImage()
{
//僄儞僩儕悢傪庢摼偡傞
TInt imageNum = iCheckInfo.iInfoItem->EntryCount();
if(iCheckInfo.iIndex > imageNum)
{
//巜掕偝傟偨夋憸偑懚嵼偟側偄
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber33;
_LIT(KMusicAPLibMWAnalyzeItem33, "CSmbMusicAPLibMWAnalyzeItem::GetInfoToCheckImage NotFoundImage = %d");
SmbMusicAPLibLog(logCode, ELogLevelNormal, KMusicAPLibMWAnalyzeItem33, imageNum);
//僄儔乕墳摎
Complete(KErrNotFound);
//夋憸忣曬僆僽僕僃僋僩傪嶍彍
DeleteObjects();
return KErrNotFound;
}
//屄暿夋憸忣曬庢摼傪屇傃弌偡乮摨婜張棟乯
TInt ret = iCheckInfo.iInfoItem->IndividualImageInfo(iCheckInfo.iIndex, iCheckInfo.iInfo, iStatus);
if(KErrNone != ret)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber34;
_LIT(KMusicAPLibMWAnalyzeItem34, "CSmbMusicAPLibMWAnalyzeItem::GetInfoToCheckImage IndividualImageInfo error = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem34, ret);
//僄儔乕墳摎
Complete(ret);
//夋憸忣曬僆僽僕僃僋僩傪嶍彍
DeleteObjects();
return ret;
}
//旕摨婜梫媮傪奐巒偡傞乮SetActive偡傞乯
Start();
//帠慜僠僃僢僋忬懺
SetState(ESmbMusicAPLibCheckingImage);
return ret;
}
/**
* 妝嬋偵娷傑傟傞夋憸偑僒億乕僩僼傽僀儖僒僀僘偵廂傑偭偰偄傞偐傪僠僃僢僋偡傞(夋憸庢摼偺帠慜僠僃僢僋梡)
* @return 張棟寢壥
**/
TInt CSmbMusicAPLibMWAnalyzeItem::CheckSupportedSize()
{
TInt ret = KErrNone;
//夋憸僼傽僀儖偺僼傽僀儖僒僀僘偑婯掕抣傪僆乕僶乕偟偰偄側偄偐傪敾掕偡傞
if(iCheckInfo.iInfo.iLength > KSmbMusicAPLibImageFileMaxSize)
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber35;
_LIT(KMusicAPLibMWAnalyzeItem35, "CSmbMusicAPLibMWAnalyzeItem::CheckSupportedSize Size Over = %d");
SmbMusicAPLibLog(logCode, ELogLevelHigh, KMusicAPLibMWAnalyzeItem35, iCheckInfo.iInfo.iLength);
//僼傽僀儖僒僀僘僆乕僶乕
ret = KErrNotSupported;
}
//僄儔乕墳摎
Complete(ret);
//夋憸忣曬僆僽僕僃僋僩傪嶍彍
DeleteObjects();
return ret;
}
//@@TRK10436懳墳 End
//@@TRK8888懳墳 Add End
//@@TRK11656懳墳 Add Start
/**
* 夋憸忣曬偑懚嵼偟側偄応崌偺僄儔乕張棟
**/
void CSmbMusicAPLibMWAnalyzeItem::ErrorInfo()
{
//奿擺僼儔僌傪愝掕偡傞(EFalse:曐懚晄壜)
iInfo.iStoreFlag = EFalse;
//僼傽僀儖僒僀僘(0)
iInfo.iLength = 0;
//僼傽僀儖庬暿(偦偺懠)
iInfo.iContentType = ESmbMusicMWLibImageFormatOther;
//僼傽僀儖柤(NULL)
iInfo.iName = KNullDesC;
}
//@@TRK11656懳墳 Add End
// ADD-S PTX824 k3-sugimoto
/**
* 巜掕庬暿夋憸忣曬庢摼梫媮偺墳摎偵懳偡傞張棟
*
* @param[in] aResult 旕摨婜墳摎偺抣
**/
void CSmbMusicAPLibMWAnalyzeItem::HandleGetImageTypeInfoRes(TInt aResult)
{
switch(State())
{
case ESmbMusicAPLibGetExInfoforTarget: // SDBind忣曬庢摼忬懺
HandleGetExInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetAAAInfoforTarget: // AAA夋憸忣曬庢摼
HandleGetAAAInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetAAAIndivInfoforTarget: // AAA夋憸屄暿忣曬庢摼
HandleGetAAAIndivInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetJacketInfoforTarget: // 僕儍働僢僩夋憸忣曬庢摼
HandleGetJacketInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetJacketIndivInfoforTarget: // 僕儍働僢僩夋憸屄暿忣曬庢摼
HandleGetJacketIndivInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetStillInfoforTarget: // 懸庴夋憸忣曬庢摼
HandleGetStillInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetStillIndivInfoforTarget: // 懸庴夋憸屄暿忣曬庢摼
HandleGetStillIndivInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetLyricInfoforTarget: // 壧帉夋憸忣曬庢摼
HandleGetLyricInfoforTarget(aResult);
break;
case ESmbMusicAPLibGetLyricIndivInfoforTarget: // 壧帉夋憸屄暿忣曬庢摼
HandleGetLyricIndivInfoforTarget(aResult);
break;
default:
{
TUint32 logCode = EMusicAPLibClassNumber_CSmbMusicAPLibMWAnalyzeItem | EMusicAPLibLocationNumber36;
_LIT(KMusicAPLibMWAnalyzeItem36, "CSmbMusicAPLibMWAnalyzeItem::HandleGetImageTypeInfoRes Illegal Status = %d");
SmbMusicAPLibLog(logCode, ELogLevelHighest, KMusicAPLibMWAnalyzeItem36, State());
PANIC(ESmbMusicAPLibPanicNumber02);
}
break;
}
}
/**
* SDBind忣曬庢摼墳摎偵懳偡傞張棟
*
* @param[in] aResult 旕摨婜墳摎偺抣
**/
void CSmbMusicAPLibMWAnalyzeItem::HandleGetExInfoforTarget(TInt aResult)
{
TInt result(aResult);
TSmbMusicAPLibAnalyzeItemState nextState(ESmbMusicAPLibIdle);
if ((aResult == KErrNone) || (aResult == KErrNotSupported))
{ // 奼挘僿僢僟忣曬庢摼偺旕摨婜墳摎偑KErrNone偐KErrNotSupported偺応崌
// 夋憸忣曬庢摼傪宲懕偡傞
if (iTargetType == ESmbMusicAPLibImageTypeJacket)
{ // 庢摼懳徾偑僕儍働僢僩夋憸偺応崌
// 嵟弶偵庢摼偡傞夋憸庬暿傪寛掕
StartImageType();
if (iImageType == ESmbMusicMWLibImageTypeAAA)
{ // 嵟弶偵庢摼偡傞夋憸庬暿偑AAA夋憸偺応崌
nextState = ESmbMusicAPLibGetAAAInfoforTarget;
}
else
{ // 嵟弶偵庢摼偡傞夋憸庬暿偑AAA夋憸埲奜偺応崌
nextState = ESmbMusicAPLibGetJacketInfoforTarget;
}
}
else if (iTargetType == ESmbMusicAPLibImageTypeLyric)
{ // 庢摼懳徾偑壧帉夋憸偺応崌
iImageType = ESmbMusicMWLibImageTypeLylic;
nextState = ESmbMusicAPLibGetLyricInfoforTarget;
}
result = GetInfo();
if (result == KErrNone)
{ // 夋憸忣曬庢摼梫媮偵惉岟偟偨応崌
// 師偺忬懺傊慗堏偡傞
SetState(nextState);
}
}
if (result != KErrNone)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -