📄 smbmusicapmainplayerfilterprocessgetlistitems.cpp
字号:
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterProcessGetListItems.cpp
//
// Description:
// 儈儏乕僕僢僋儊僀儞僾儗僀儎
// 傾僀僥儉忣曬庢摼張棟僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//---------------------------------------------------------------------------
//2006/08/14 |SDNA壀嶳 |怴婯嶌惉
//2006/08/17 |SDNA嶳壀 |GetListItems偺RequestComplete帪偺aResult偼傾僀僥儉悢
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
#include "SmbMusicAPMainPlayerFilterProcessGetListItems.h"
USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN
/**
僐儞僗僩儔僋僞
* @param[in] aObserver 僆僽僓乕僶偺億僀儞僞
* @param[in] aSyncServerController 摨婜僒乕僶惂屼偺嶲徠
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessGetListItems::CSmbMusicAPMainPlayerFilterProcessGetListItems(
MSmbMusicAPMainPlayerFilterProcessObserver& aObserver,
CSmbMusicAPMainPlayerFilterSyncServerController& aSyncServerController)
:CSmbMusicAPMainPlayerFilterProcess(aObserver)
, iEvent(EFilterProcessGetListItemsEventStart)
, iState(EFilterProcessGetListItemsStateIdle)
, iSyncServer(aSyncServerController)
, iLog(CAfEnv::Static()->Log())
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 00;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::CSmbMusicAPMainPlayerFilterProcessGetListItems()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
}
/**
僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessGetListItems::~CSmbMusicAPMainPlayerFilterProcessGetListItems()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 10;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::~CSmbMusicAPMainPlayerFilterProcessGetListItems()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
if(EFilterProcessGetListItemsStateGetItems == iState)
{
iSyncServer.CancelRequest(iRequestId, EFalse);
}
iItems.Close();
}
/**
僷儔儊乕僞愝掕
* @param[in] aListHandle 儕僗僩僴儞僪儖
* @param[in] aTopIndex 愭摢偺僀儞僨僢僋僗
* @param[in] aCount 庢摼傾僀僥儉悢
* @return 愝掕偺惉斲
*/
TBool CSmbMusicAPMainPlayerFilterProcessGetListItems::SetParam(TInt aListHandle, TInt aTopIndex, TInt aCount)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 20;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::SetParam(aListHandle:0x%08x,aTopIndex:%d,aCount:%d )");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, aListHandle, aTopIndex, aCount);
#endif
if( EFilterProcessGetListItemsStateIdle == iState ||
EFilterProcessGetListItemsStateWaitStart == iState )
{
iListHandle = aListHandle;
iTopIndex = aTopIndex;
iCount = aCount;
iState = EFilterProcessGetListItemsStateWaitStart;
return ETrue;
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 21;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::SetParam() Cannot Set in This State %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
return EFalse;
}
}
/**
儕僗僩僴儞僪儖庢摼
* @param 側偟
* @return 儕僗僩僴儞僪儖
*/
TInt CSmbMusicAPMainPlayerFilterProcessGetListItems::GetParamListHandle()
{
return iListHandle;
}
/**
愭摢僀儞僨僢僋僗庢摼
* @param 側偟
* @return 愭摢僀儞僨僢僋僗
*/
TInt CSmbMusicAPMainPlayerFilterProcessGetListItems::GetParamTopIndex()
{
return iTopIndex;
}
/**
傾僀僥儉悢傪庢摼
* @param 側偟
* @return 傾僀僥儉悢
*/
TInt CSmbMusicAPMainPlayerFilterProcessGetListItems::GetParamCount()
{
return iCount;
}
/**
傾僀僥儉忣曬庢摼
* @param[out] aItems 傾僀僥儉忣曬 奿擺応強偺嶲徠
* @return 庢摼偺惉斲乮張棟偑廔椆偟偰偄傞偐偳偆偐乯
*/
TBool CSmbMusicAPMainPlayerFilterProcessGetListItems::GetItems(RArray<TSmbMusicAPSyncEngineListItemInfo>& aItems)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 30;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::GetItems() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
if(EFilterProcessGetListItemsStateEnd == iState)
{
aItems.Reset();
TInt count = iItems.Count();
for(TInt i=0; i<count; i++)
{
TInt error = aItems.Append(iItems[i]);
if(KErrNone != error)
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 31;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::GetItems() Append Err %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHighest, KLogFmt, error);
PANIC(9100007);
}
}
return ETrue;
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 32;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::GetItems() Process Not Complete %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState);
return EFalse;
}
}
/**
* 梫媮姰椆
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResult 張棟寢壥
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessGetListItems::RequestComplete(TSmbMusicAPMainPlayerRequest aKind,
TInt aResult,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& aResponse)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 40;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::RequestComplete() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
if(ESearchRequestGetListItems == aKind)
{
//-->2006.08.17 嶳壀 GetListItems偺aResult偼傾僀僥儉悢偲偄偆巇條
// if(KErrNone == aResult)
if(0<aResult)
//<--
{
iItems.Reset();
CArrayFixFlat<TSmbMusicAPSyncEngineListItemInfo>& items = aResponse.GetResultItemInfoArray();
//-->2006.08.17 嶳壀 GetListItems偺aResult偼傾僀僥儉悢偲偄偆巇條
// TInt count = items.Count();
TInt count = aResult;
//<--
for(TInt i=0; i<count; i++ )
{
TInt error = iItems.Append(items[i]);
if(KErrNone != error)
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 41;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::RequestComplete() Append Err %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHighest, KLogFmt, error);
PANIC(9100008);
}
}
iEvent = EFilterProcessGetListItemsEventSyncServerComplete;
}
else
{
iResult = aResult;
iEvent = EFilterProcessGetListItemsEventSyncServerErr;
}
DoSequence();
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 42;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::RequestComplete() Unknown Event :%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
}
}
/**
* 梫媮僉儍儞僙儖
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessGetListItems::RequestCancel( TSmbMusicAPMainPlayerRequest aKind,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& /*aResponse*/)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 50;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::RequestCancel() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
if(ESearchRequestGetListItems == aKind)
{
iEvent = EFilterProcessGetListItemsEventSyncServerCancel;
DoSequence();
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 51;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::RequestCancel() Unknown Event :%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
}
}
/**
* 僐儅儞僪張棟傪幚峴偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcessGetListItems::DoSequence()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 60;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::DoSequence() iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, iEvent);
#endif
switch(iState)
{
case EFilterProcessGetListItemsStateWaitStart: // 張棟奐巒懸偪
{
if(EFilterProcessGetListItemsEventStart == iEvent)
{
TInt result = iSyncServer.GetListItemsFromList(iListHandle,iTopIndex,iCount, EOwnerType_Filter, iRequestId, *this);
if(KErrNone == result)
{
iState = EFilterProcessGetListItemsStateGetItems;
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 61;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::DoSequence() GetListItemsFromList() Error :%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);
iResult = result;
iState = EFilterProcessGetListItemsStateErr;
NextState();
}
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 62;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::DoSequence() Unmatch Event iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
}
}
break;
case EFilterProcessGetListItemsStateGetItems: // 傾僀僥儉庢摼拞
{
switch(iEvent)
{
case EFilterProcessGetListItemsEventSyncServerComplete:
{
iResult = KErrNone;
iState = EFilterProcessGetListItemsStateEnd;
NextState();
}
break;
case EFilterProcessGetListItemsEventSyncServerCancel:
{
iResult = KErrCancel;
iState = EFilterProcessGetListItemsStateErr;
NextState();
}
break;
case EFilterProcessGetListItemsEventSyncServerErr:
{
iState = EFilterProcessGetListItemsStateErr;
NextState();
}
break;
default:
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 63;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::DoSequence() Unmatch Event iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
}
break;
}
}
break;
case EFilterProcessGetListItemsStateIdle: // 枹張棟
case EFilterProcessGetListItemsStateEnd: // 張棟廔椆
case EFilterProcessGetListItemsStateErr: // 僄儔乕廔椆
default:
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 64;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::DoSequence() Invaild State iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
}
break;
}
}
/**
* 偡傋偰偺僐儅儞僪幚峴偑廔傢偭偨偐偳偆偐妋擣偡傞
* @param 側偟
* @return 廔椆敾掕(ETrue:姰椆嵪 EFalse丗枹姰椆)
*/
TBool CSmbMusicAPMainPlayerFilterProcessGetListItems::IsSequenceFinished()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListItems | 70;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListItems::IsSequenceFinished() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
TBool finish = EFalse;
switch(iState)
{
case EFilterProcessGetListItemsStateEnd:
case EFilterProcessGetListItemsStateErr:
finish = ETrue;
break;
default:
break;
}
return finish;
}
SEMCJ_NAMESPACE_END
// end of SmbMusicAPMainPlayerFilterProcessGetListItems.cpp
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -