📄 smbmusicapsyncservercontentsservicegetitemfromlist.cpp
字号:
case ESmbMusicAPSyncServerContentsServiceGetItemFromListState_WaitItem: // 僒乕價僗傾僀僥儉庢摼懸偪忬懺
// 傾僀僥儉惗惉張棟傪僉儍儞僙儖偡傞
iList->CancelCreateNewItem();
break;
case ESmbMusicAPSyncServerContentsServiceGetItemFromListState_WaitLimitation: // 惂尷忣曬庢摼懸偪忬懺
{
ASSERT(iLimitationItem != NULL);
// 嵞惗惂尷忣曬庢摼偺僉儍儞僙儖
iLimitationItem -> CancelGetInfo();
// ADD-S 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
CSmbMusicAPSyncServerContentsServiceBase::Cancel();
iLimitationItem = NULL;
while(iLimitationArray.Count() > 0)
{
TLimitationItem* limitationItem(iLimitationArray[0]);
TInt itemIndex(limitationItem -> iIndex);
// 庢摼幐攕偺傾僀僥儉偼嶍彍
iLimitationArray.Remove(0);
delete limitationItem -> iSongItem;
delete limitationItem;
// 僄儔乕帪偼僉儍僢僔儏傪嶍彍偟嵞搙MW偐傜庢傝捈偟傪峴偆偙偲偲偡傞
iList -> DeleteCacheItem(itemIndex);
}
// ADD-E 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
}
break;
default :
break;
}
Cancel();
CompleteErr(KErrCancel);
}
/**
* 傾僀僥儉傪惗惉偡傞
* @return 僒乕價僗張棟忬懺
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetItemFromList::CreateItemsL()
{
TBool toDo = EFalse;
TInt searchTop = 0;
TInt searchLast = 0;
// 庢摼偟偨偄Index偺愭摢偐傜嵟屻傑偱
for(TInt i = iParamIndex; i < (iParamIndex + iParamCount); i++)
{
CSmbMusicAPSyncServerContentsItem* item = iList->GetItem(i);
if (item != NULL)
{
// 棙梡壜斲僼儔僌庢摼
TInt available(item -> GetAvailable());
// 嵞惗惂尷忣曬庢摼
TSmbMusicAPSyncEngineLimitation limitation(item -> Limitation());
// ADD-S 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
#ifndef __SMBMUSICAPSYNCSERVER_DISABLE_SUBSCRIPTIONGRAYOUT__
// 婜尷愗傟僌儗僀傾僂僩昞帵敾掕
if (limitation == ESmbMusicAPSyncEngineLimitSubscription)
{ // 僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺応崌
// 嵞惗惂尷忬懺庢摼
TSmbMusicMWLibSongLimit songLimit;
TInt result = item -> GetSongLimit(songLimit);
if (result == KErrNone)
{ // 嵞惗惂尷忬懺庢摼惉岟
// MODIFY-S 尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
TSmbMusicAPSyncServerContentsServiceGetItemFromListJudgeResult judgeResult(JudgeLimitCondition(songLimit));
if (judgeResult == ESmbMusicAPSyncServerContentsServiceGetItemFromListResultPeriodOver)
{ // 婜尷愗傟偺応崌
available |= ESmbMusicAPSyncEngineOverTimeLimit;
}
else if (judgeResult == ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoCpInfo)
{ // 尃棙忣曬側偟
available |= ESmbMusicAPSyncEngineNoCpInfo;
}
// MODIFY-E 尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
}
}
#endif // __SMBMUSICAPSYNCSERVER_DISABLE_SUBSCRIPTIONGRAYOUT__
// ADD-E 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
HBufC* string = item->GetDispString();
if(string != NULL)
{
// ADD-S [iKeeper(TRK):9001] SS偵傛傞枹擖椡崁栚懳墳
// 僉儍僢僔儏偝傟偨忣曬偵懳偡傞懳墳
TBuf<KSmbMusicAPSyncEngineMaxDispString> tmpString;
tmpString = *string; // Trim梡偺僥儞億儔儕僨傿僗僋儕僾僞偵僐僺乕
TSmbMusicAPSyncEngineListType itemType(iList->GetListType()); // 尰嵼偺儕僗僩偺儕僗僩庬暿庢摼
if ((itemType != ESmbMusicAPSyncEngineTypeSonglist) &&
(itemType != ESmbMusicAPSyncEngineTypeImportPlaylist) &&
// ADD-S PTX824 k3-sugimoto
(itemType != ESmbMusicAPSyncEngineTypeWMAPlaylist) &&
// ADD-E PTX824 k3-sugimoto
(itemType != ESmbMusicAPSyncEngineTypeOriginalPlaylist)) // 僆儕僕僫儖僾儗僀儕僗僩偵偼側偄偼偢偩偑堦墳
{ // 僾儗僀儕僗僩丒嬋傾僀僥儉偱側偄応崌(PL丒嬋偼懳徾奜)
if (string -> Length() > 0)
{ // 昞帵暥帤楍桳
tmpString.Trim();
if (tmpString.Length() == 0)
{ // Trim偺寢壥丄暥帤挿偑0(嬻敀偺傒偺昞帵暥帤楍偩偭偨応崌)
*string = KNullDesC; // 傾僾儕偵偼NULL搉偟
}
}
}
// ADD-E [iKeeper(TRK):9001] SS偵傛傞枹擖椡崁栚懳墳
// MODIFY-S PTX824 k3-sugimoto
MakeResponseData(i, *string, available, limitation);
// MODIFY-E PTX824 k3-sugimoto
delete string;
string = 0;
}
else
{
// MODIFY-S PTX824 k3-sugimoto
MakeResponseData(i, KNullDesC, available, limitation);
// MODIFY-E PTX824 k3-sugimoto
}
}
else
{
if(EFalse == toDo){
toDo = ETrue;
searchTop = i;
searchLast = i;
}
else
{
searchLast = i;
}
}
}
if(EFalse != toDo)
{
iGetItemsTopIndex = searchTop; // 庢摼偡傞傾僀僥儉偺愭摢僀儞僨僢僋僗
iGetItemsCount = searchLast - searchTop + 1; // 庢摼偡傞傾僀僥儉偺傾僀僥儉偺悢
// 傾僀僥儉攝楍傪惗惉偡傞
iTempItemArray = CSmbMusicMWLibItemArray::NewL(iGetItemsCount);
// 傾僀僥儉傪惗惉偡傞
TInt result = iList->CreateNewItem(*iTempItemArray, iGetItemsTopIndex, iGetItemsCount, iStatus);
if(KErrNone == result)
{
// 僒乕價僗僋儔僗傪傾僋僥傿僽偵偡傞
Start();
// 傾僀僥儉庢摼懸偪忬懺偵偡傞
iServiceState = ESmbMusicAPSyncServerContentsServiceGetItemFromListState_WaitItem;
return ESmbMusicAPSyncServerContetnsServiceStateContinue;
}
else
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber12;
_LIT(KContentsServiceGetItemFromList12, "SyncServerContentsServiceGetItemFromList::CreateItemsL() CreateNewItem() Err %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList12, result);
// 僒乕價僗幐攕偵偰姰椆偡傞
CompleteErr();
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
Complete();
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
}
/**
* 傾僀僥儉偺忣曬傪庢摼偡傞
* @return 僒乕價僗張棟忬懺
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetItemFromList::GetItemInfoL()
{
for(TInt i = 0; i < iGetItemsCount; i++)
{
// 傾僀僥儉傪庢摼偡傞
delete iTempItem;
iTempItem = NULL;
iTempItem = iTempItemArray -> GetMusicItemL(i);
if(iTempItem != NULL)
{
TBool result(ETrue);
if(iTempItem -> ItemType() == ESmbMusicMWLibItemTypeSong)
{
result = SetSongItemL(iGetItemsTopIndex + i);
}
else
{
result = SetMetaItemL(iGetItemsTopIndex + i);
}
if(EFalse == result)
{
CompleteErr(KErrNotReady);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber13;
_LIT(KContentsServiceGetItemFromList13, "SyncServerContentsServiceGetItemFromList::GetItemInfoL() GetMusicItemL() Err");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList13);
// 僒乕價僗幐攕偵偰姰椆偡傞
CompleteErr();
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
/**
* 庢摼偟偨傾僀僥儉傪儕僗僩偵搊榐偡傞
* @param[in] aIndex 搊榐偡傞僀儞僨僢僋僗
* @return 搊榐偺惉斲
**/
TBool CSmbMusicAPSyncServerContentsServiceGetItemFromList::SetSongItemL(TInt aIndex)
{
if(iTempItem != NULL)
{
// ADD-S PTX824 k3-sugimoto
CSmbMusicMWLibSongItem* songItem = static_cast<CSmbMusicMWLibSongItem*>(iTempItem);
// ADD-E PTX824 k3-sugimoto
// 昞帵暥帤楍傪庢摼偡傞
TBuf<KSmbMusicMWLibSongTitle> dispString;
const TSmbMusicMWLibCommonInfo* commonInfo = iTempItem->CommonInformation();
if(commonInfo != NULL)
{
dispString = commonInfo->iDispString;
}
// 傾僀僥儉偺棙梡壜斲忣曬傪媮傔傞
TInt available = ESmbMusicAPSyncEngineOK;
// MODIFY-S 儘僌捛壛
TBool isOnline(songItem->IsOnline());
if(isOnline == EFalse)
// MODIFY-E 儘僌捛壛
{
available |= ESmbMusicAPSyncEngineOffLine; ///<僆僼儔僀儞忬懺 捛壛
}
TSmbMusicMWLibUimConformity uim;
TInt result = songItem->UimConformation(uim);
if(KErrNone == result)
{
if(ESmbMusicMWLibNotConform == uim || ESmbMusicMWLibNotInserted == uim)
{// UIM斲揔崌偐UIM枹憓擖偺応崌
available |= ESmbMusicAPSyncEngineUIMLimit; ///<UIM惂尷 捛壛
}
}
else
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber14;
_LIT(KContentsServiceGetItemFromList14, "SyncServerContentsServiceGetItemFromList::SetSongItem() UimConformation() Err %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList14, result);
// 忣曬庢摼僄儔乕偺応崌偼丄擮偺偨傔UIM惂尷埖偄偲偟傑偡丅
available |= ESmbMusicAPSyncEngineUIMLimit; ///<UIM惂尷 捛壛
}
// ADD-S PTX824 k3-sugimoto
TSmbMusicAPSyncEngineLimitation limitation(ESmbMusicAPSyncEngineLimitInvalidation);
const TSmbMusicMWLibDispSongInfo* dispInfo = songItem -> DispInformation();
if (dispInfo != NULL)
{
limitation = TSmbMusicAPSyncServerConverter::ConvertLimitation(dispInfo -> iLimitation, &iRLog);
}
else
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList | EMusicAPSyncServerLocationNumber15;
_LIT(KContentsServiceGetItemFromList15, "SyncServerContentsServiceGetItemFromList::SetSongItem() DispInformation is Null");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList15);
}
// ADD-E PTX824 k3-sugimoto
// ADD-S 儘僌捛壛
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber16;
_LIT(KContentsServiceGetItemFromList16, "SyncServerContentsServiceGetItemFromList::SetSongItem(%d) online:%d UIM:%d available:%08x");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KContentsServiceGetItemFromList16,
aIndex, isOnline, uim, available);
#endif // __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
// ADD-E 儘僌捛壛
MakeResponseData(aIndex, dispString, available, limitation);
TBool res = iScreenData.SetItem(iParamListHandle, aIndex, dispString, available, limitation);
if (res == EFalse)
{
return EFalse;
}
// MODIFY-S 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
#ifndef __SMBMUSICAPSYNCSERVER_DISABLE_SUBSCRIPTIONGRAYOUT__
if (limitation == ESmbMusicAPSyncEngineLimitSubscription)
{ // 僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺応崌
// 嵞惗惂尷忣曬傪庢摼丒愝掕偡傞偨傔偵昁梫忣曬傪惗惉
TLimitationItem* limitationItem = new(ELeave)TLimitationItem;
limitationItem -> iIndex = aIndex;
limitationItem -> iSongItem = static_cast<CSmbMusicMWLibSongItem*>(iTempItem);
User::LeaveIfError(iLimitationArray.Append(limitationItem));
iTempItem = NULL;
}
else
#endif // __SMBMUSICAPSYNCSERVER_DISABLE_SUBSCRIPTIONGRAYOUT__
{
delete iTempItem;
iTempItem = NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -