📄 smbmusicapsyncservercontentsservicegetitemfromlist.cpp
字号:
// MODIFY-E 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
return ETrue;
}
else
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber17;
_LIT(KContentsServiceGetItemFromList17, "SyncServerContentsServiceGetItemFromList::SetSongItem() iTempItem is Null");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList17);
return EFalse;
}
}
/**
* 庢摼偟偨傾僀僥儉傪儕僗僩偵搊榐偡傞(Meta傾僀僥儉)
* @param[in] aIndex 搊榐偡傞僀儞僨僢僋僗
* @return 搊榐偺惉斲
**/
TBool CSmbMusicAPSyncServerContentsServiceGetItemFromList::SetMetaItemL(TInt aIndex)
{
TBuf<KSmbMusicMWLibSongTitle> dispString;
// 昞帵暥帤楍傪庢摼偡傞
const TSmbMusicMWLibCommonInfo* commonInfo = iTempItem->CommonInformation();
if (commonInfo != NULL)
{
dispString = commonInfo->iDispString;
}
// 庢摼偟偨傾僀僥儉偵懳偡傞懳墳
TBuf<KSmbMusicAPSyncEngineMaxDispString> buffString;
buffString = dispString;
if (iTempItem -> ItemType() != ESmbMusicMWLibItemTypePL)
{ // 僾儗僀儕僗僩偱側偄応崌(嬋偼忋偱敾暿嵪傒)
// 僀儞億乕僩僾儗僀儕僗僩偼"側偟"昞帵懳徾奜
if (dispString.Length() > 0)
{ // 昞帵暥帤楍桳
buffString.Trim();
if (buffString.Length() > 0)
{ // Trim偺寢壥丄暥帤楍挿偑0埲忋(嬻敀偩偗偱偼側偐偭偨)偺応崌
buffString = dispString;
}
}
}
delete iTempItem;
iTempItem = NULL;
MakeResponseData(aIndex, buffString);
TBool result = iScreenData.SetItem(iParamListHandle, aIndex, dispString);
if(result == EFalse)
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber18;
_LIT(KContentsServiceGetItemFromList18, "SyncServerContentsServiceGetItemFromList::GetItemInfoL() iScreenData.SetItem() Err");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList18);
return result;
}
return ETrue;
}
/**
* 墳摎僨乕僞傪嶌惉偡傞
* @param[in] aIndex 僀儞僨僢僋僗(MWLib忋偺Index)
* @param[in] aDispString 昞帵暥帤楍
* @param[in] aAvailable 傾僀僥儉偺棙梡壜斲忣曬(僨僼僅儖僩:棙梡壜擻)
* @param[in] aLimitatioin 嵞惗惂尷忣曬(僨僼僅儖僩:惂尷柍偟)
*/
// MODIFY-S PTX824 k3-sugimoto
void CSmbMusicAPSyncServerContentsServiceGetItemFromList::MakeResponseData(
TInt aIndex,
const TDesC& aDispString,
TInt aAvailable/*=ESmbMusicAPSyncEngineOK*/,
TSmbMusicAPSyncEngineLimitation aLimitatioin/*=ESmbMusicAPSyncEngineLimitNone*/
)
// MODIFY-E PTX824 k3-sugimoto
{
iResponseArray[aIndex-iParamIndex].iDispString = aDispString; // 昞帵梡暥帤楍
iResponseArray[aIndex-iParamIndex].iIndex = aIndex - 1; // Index斣崋(MWLib偱偼Index偑1乣偺偨傔丄0乣偵曄姺偡傞)
iResponseArray[aIndex-iParamIndex].iAvailable = aAvailable; // 傾僀僥儉偺棙梡壜斲忣曬
iResponseArray[aIndex-iParamIndex].iLimitation = aLimitatioin; // 嵞惗惂尷忣曬
}
/**
* 僒乕價僗傪惓忢偵姰椆偡傞
**/
void CSmbMusicAPSyncServerContentsServiceGetItemFromList::Complete()
{
if(ESmbMusicAPSyncServerContentsServiceGetItemFromListState_End != iServiceState)
{
TPtrC8 arrayData((const TUint8*)iResponseArray, sizeof(TSmbMusicAPSyncEngineListItemInfo)*iParamCount);
TInt err = iRMessage.Write(1, arrayData);
if (KErrNone == err)
{
MessageComplete(iParamCount);
}
else
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber19;
_LIT(KContentsServiceGetItemFromList19, "SyncServerContentsServiceGetItemFromList::Complete() Write() Err %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList19, err);
MessageComplete(err);
}
iServiceState = ESmbMusicAPSyncServerContentsServiceGetItemFromListState_End;
}
else
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber20;
_LIT(KContentsServiceGetItemFromList20, "SyncServerContentsServiceGetItemFromList::Complete() Invalid State %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList20, iServiceState);
}
}
/**
* 僒乕價僗傪僄儔乕偱姰椆偡傞
* @param[in] aResult 僒乕價僗廔椆帪偺寢壥
*/
void CSmbMusicAPSyncServerContentsServiceGetItemFromList::CompleteErr(TInt aResult)
{
if(ESmbMusicAPSyncServerContentsServiceGetItemFromListState_End != iServiceState)
{
if(KErrNone == aResult)
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList|EMusicAPSyncServerLocationNumber21;
_LIT(KContentsServiceGetItemFromList21, "SyncServerContentsServiceGetItemFromList::CompleteErr() ErrCode Is KErrNone");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList21);
MessageComplete(KErrServiceFailure);
}
else
{
MessageComplete(aResult);
}
iServiceState = ESmbMusicAPSyncServerContentsServiceGetItemFromListState_End;
}
}
// ADD-S 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
/**
* 嵞惗惂尷忣曬庢摼梡偺傾僀僥儉攝楍偺弶婜壔
**/
void CSmbMusicAPSyncServerContentsServiceGetItemFromList::ClearLimitationArray()
{
while(iLimitationArray.Count() > 0)
{
TLimitationItem* limitationItem = iLimitationArray[0];
iLimitationArray.Remove(0);
if (limitationItem != NULL)
{
delete limitationItem -> iSongItem;
}
delete limitationItem;
}
}
/**
* 嵞惗惂尷忣曬庢摼
* @return 僒乕價僗張棟忬懺
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetItemFromList::GetLimitInformation()
{
if (iLimitationArray.Count() == 0)
{
Complete();
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
iLimitationItem = iLimitationArray[0] -> iSongItem;
TInt result(KErrNone);
result = iLimitationItem -> LimitInformation(iSongLimit, iStatus);
if (result != KErrNone)
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList | EMusicAPSyncServerLocationNumber22;
_LIT(KContentsServiceGetItemFromList22, "SyncServerContentsServiceGetItemFromList::GetLimitInformation() LimitInformation Error = %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList22, result);
CompleteErr(result);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
// 惂尷忣曬庢摼梫媮懸偪忬懺傊
iServiceState = ESmbMusicAPSyncServerContentsServiceGetItemFromListState_WaitLimitation;
Start();
return ESmbMusicAPSyncServerContetnsServiceStateContinue;
}
// MODIFY-S 尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
/**
* 僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺嵞惗婜尷忬懺偺敾掕
* @param[in] aSongLimit 敾掕傪峴偆偨傔偺嵞惗惂尷忣曬
* @return 嵞惗婜尷忬懺
**/
TSmbMusicAPSyncServerContentsServiceGetItemFromListJudgeResult CSmbMusicAPSyncServerContentsServiceGetItemFromList::JudgeLimitCondition(
TSmbMusicMWLibSongLimit aSongLimit
)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList | EMusicAPSyncServerLocationNumber23;
_LIT(KContentsServiceGetItemFromList23, "SyncServerContentsServiceGetItemFromList::JudgePeriodOver() Limitation:%d RTCErrHist:%d ExpireDate:%ld GracePeriod:%d IsExistCpInfo:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KContentsServiceGetItemFromList23,
aSongLimit.iLimitation,
aSongLimit.iRtcErrHistory,
aSongLimit.iExpireDate.Int64(),
aSongLimit.iGracePeriod,
aSongLimit.iIsExistCpInfo);
#endif // __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
if (aSongLimit.iLimitation != ESmbMusicMWLibLimitSubscription)
{ // 僒僽僗僋儕僾僔儑儞僐儞僥儞僣偱側偄応崌
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList | EMusicAPSyncServerLocationNumber24;
_LIT(KContentsServiceGetItemFromList24, "SyncServerContentsServiceGetItemFromList::JudgePeriodOver() Not Subscription [Limitation = %d]");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList24, aSongLimit.iLimitation);
return ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoLimit;
}
if (aSongLimit.iIsExistCpInfo == EFalse)
{ // 堏摦婡撪偵尃棙忣曬偑側偄応崌
// 尃棙忣曬側偟傪曉媝
return ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoCpInfo;
}
else if ((aSongLimit.iIsExistCpInfo != EFalse) && (aSongLimit.iExpireDate == 0) && (aSongLimit.iGracePeriod == 0))
{ // 堏摦婡撪偵偼尃棙忣曬偑側偔SD忋偵尃棙忣曬偑懚嵼偡傞応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList | EMusicAPSyncServerLocationNumber25;
_LIT(KContentsServiceGetItemFromList25, "SyncServerContentsServiceGetItemFromList::JudgePeriodOver() CRinfo on SD Exist:%d Expire:%ld Grace:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KContentsServiceGetItemFromList25,
aSongLimit.iIsExistCpInfo, aSongLimit.iExpireDate.Int64(), aSongLimit.iGracePeriod);
#endif // __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
// 尃棙忣曬柍偟傪曉媝
return ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoCpInfo;
}
TSmbMusicMWLibLimitCondition condition(ESmbMusicMWLibLimitAnythingGoes);
TInt result = aSongLimit.LimitCondition(condition);
if (result != KErrNone)
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList | EMusicAPSyncServerLocationNumber26;
_LIT(KContentsServiceGetItemFromList26, "SyncServerContentsServiceGetItemFromList::JudgePeriodOver() LimitCondition Error = %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KContentsServiceGetItemFromList26, result);
// 婜尷愗傟敾掕偱偒側偄偨傔婜尷撪偲敾掕
return ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoLimit;
}
if (condition != ESmbMusicMWLibLimitPeriodOver)
{ // 婜尷愗傟埲奜偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetItemFromList | EMusicAPSyncServerLocationNumber27;
_LIT(KContentsServiceGetItemFromList27, "SyncServerContentsServiceGetItemFromList::JudgePeriodOver() Not PeriodOver [conditin = %d]");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KContentsServiceGetItemFromList27, condition);
#endif // __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
return ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoLimit;
}
return ESmbMusicAPSyncServerContentsServiceGetItemFromListResultPeriodOver;
}
// MODIFY-E 尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
/**
* 嵞惗惂尷忣曬峏怴
* @return 僒乕價僗張棟忬懺
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetItemFromList::UpdateSongLimit()
{
TLimitationItem* limitationItem(iLimitationArray[0]);
TInt itemIndex(limitationItem -> iIndex);
// 庢摼嵪傒偺傾僀僥儉偼嶍彍
iLimitationArray.Remove(0);
delete limitationItem -> iSongItem;
delete limitationItem;
iLimitationItem = NULL;
// 庢摼偟偨嵞惗惂尷忣曬偺昁梫忣曬傪僉儍僢僔儏偵曐帩
CSmbMusicAPSyncServerContentsItem* cacheItem(NULL);
cacheItem = iList -> GetItem(itemIndex);
if (cacheItem != NULL)
{
cacheItem -> SetSongLimit(iSongLimit);
}
// MODIFY-S 尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
TSmbMusicAPSyncServerContentsServiceGetItemFromListJudgeResult judgeResult(JudgeLimitCondition(iSongLimit));
// 婜尷愗傟敾掕
if (judgeResult == ESmbMusicAPSyncServerContentsServiceGetItemFromListResultPeriodOver)
{ // 嵞惗婜尷愗傟偺応崌
// 僋儔僀傾儞僩偵曉偡棙梡僼儔僌偵婜尷愗傟傪愝掕
iResponseArray[itemIndex - iParamIndex].iAvailable |= ESmbMusicAPSyncEngineOverTimeLimit;
}
else if (judgeResult == ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoCpInfo)
{ // 尃棙忣曬側偟
iResponseArray[itemIndex - iParamIndex].iAvailable |= ESmbMusicAPSyncEngineNoCpInfo;
}
// MODIFY-E 尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
return GetLimitInformation();
}
// ADD-E 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
// end of SmbMusicAPSyncServerContentsServiceGetItemFromList.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -