smbmusicapmainplayerfilterprocessdeleteitems.cpp
来自「symbian」· C++ 代码 · 共 286 行
CPP
286 行
/* Copyright (C) 2005-2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterProcessDeleteItems.cpp
//
// Description:
// 儈儏乕僕僢僋儊僀儞僾儗僀儎
// 傾僀僥儉忣曬庢摼張棟僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//---------------------------------------------------------------------------
//2006/08/14 |SDNA壀嶳 |怴婯嶌惉
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
#include "SmbMusicAPMainPlayerFilterProcessDeleteItems.h"
USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN
/**
僐儞僗僩儔僋僞
* @param[in] aObserver 僆僽僓乕僶偺億僀儞僞
* @param[in] aSyncServerController 摨婜僒乕僶惂屼偺嶲徠
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessDeleteItems::CSmbMusicAPMainPlayerFilterProcessDeleteItems(
MSmbMusicAPMainPlayerFilterProcessObserver& aObserver,
CSmbMusicAPMainPlayerFilterSyncServerController& aSyncServerController)
:CSmbMusicAPMainPlayerFilterProcess(aObserver)
, iEvent(EFilterProcessDeleteItemsEventStart)
, iState(EFilterProcessDeleteItemsStateIdle)
, iSyncServer(aSyncServerController)
{
}
/**
僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessDeleteItems::~CSmbMusicAPMainPlayerFilterProcessDeleteItems()
{
if(EFilterProcessDeleteItemsStateDelete == iState)
{
iSyncServer.CancelRequest(iRequestId, EFalse);
}
}
/**
* 僷儔儊乕僞愝掕
* @param[in] aAllItem 慡審/巜掕僼儔僌
* @param[in] aListHandle 儕僗僩僴儞僪儖
* @param[in] aCount 嶍彍悢
* @param[in] aIndexArray 僀儞僨僢僋僗攝楍
*/
TBool CSmbMusicAPMainPlayerFilterProcessDeleteItems::SetParam( TBool aAllItem,
TInt aListHandle,
const RArray<TInt>* aIndexArray)
{
if( EFilterProcessDeleteItemsStateIdle == iState ||
EFilterProcessDeleteItemsStateWaitStart == iState )
{
iAllItem = aAllItem;
iListHandle = aListHandle;
iIndexArray = aIndexArray;
//2006.10.10 嶍彍慜偺傾僀僥儉憤悢偲嶍彍梫媮傾僀僥儉悢傪曐帩偟偰偍偔
iTotalCount = iSyncServer.GetItemCount(aListHandle);
if(EFalse!=aAllItem)
{
iRequestedCount = iTotalCount;
}
else
{
iRequestedCount = aIndexArray->Count();
}
iState = EFilterProcessDeleteItemsStateWaitStart;
return ETrue;
}
else
{
return EFalse;
}
}
//2006.10.10 嶍彍慜偺傾僀僥儉憤悢
/**
* 嶍彍梫媮僇僂儞僩傪庢摼偡傞
* @return 側偟
*/
TInt CSmbMusicAPMainPlayerFilterProcessDeleteItems::GetRequestedCount()
{
return iRequestedCount;
}
//2006.10.10 嶍彍偟偨傾僀僥儉悢
/**
* 嶍彍傾僀僥儉悢傪庢摼偡傞
* @return 側偟
*/
TInt CSmbMusicAPMainPlayerFilterProcessDeleteItems::GetDeletedCount()
{
TInt count = iSyncServer.GetItemCount(iListHandle);
return iTotalCount - count;
}
/**
* 梫媮姰椆
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResult 張棟寢壥
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessDeleteItems::RequestComplete(TSmbMusicAPMainPlayerRequest aKind,
TInt aResult,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& /*aResponse*/)
{
if(EEditRequestDeleteItem == aKind
|| EEditRequestDeleteItems == aKind
|| EEditRequestDeleteAllItems == aKind)
{
if(KErrNone == aResult)
{
iEvent = EFilterProcessDeleteItemsEventSyncServerComplete;
}
else
{
iResult = aResult;
iEvent = EFilterProcessDeleteItemsEventSyncServerErr;
}
DoSequence();
}
else
{
}
}
/**
* 梫媮僉儍儞僙儖
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessDeleteItems::RequestCancel( TSmbMusicAPMainPlayerRequest aKind,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& /*aResponse*/)
{
if(EEditRequestDeleteItem == aKind
|| EEditRequestDeleteItems == aKind
|| EEditRequestDeleteAllItems == aKind)
{
iEvent = EFilterProcessDeleteItemsEventSyncServerCancel;
DoSequence();
}
else
{
}
}
/**
* 嶍彍張棟傪僉儍儞僙儖偡傞乮摨婜乯
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcessDeleteItems::CancelDeleteItems()
{
if(EFilterProcessDeleteItemsStateDelete == iState)
{
iSyncServer.CancelRequest(iRequestId, EFalse);
}
iEvent = EFilterProcessDeleteItemsEventSyncServerCancel;
DoSequence();
}
/**
* 僐儅儞僪張棟傪幚峴偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcessDeleteItems::DoSequence()
{
switch(iState)
{
case EFilterProcessDeleteItemsStateWaitStart: // 張棟奐巒懸偪
{
if(EFilterProcessDeleteItemsEventStart == iEvent)
{
TInt result = iSyncServer.DeleteItems(iAllItem, iListHandle, iIndexArray, EOwnerType_Filter, iRequestId, *this);
if(KErrNone == result)
{
iState = EFilterProcessDeleteItemsStateDelete;
}
else
{
iResult = result;
iState = EFilterProcessDeleteItemsStateErr;
NextState();
}
}
else if(EFilterProcessDeleteItemsEventSyncServerCancel == iEvent)
{
iResult = KErrCancel;
iState = EFilterProcessDeleteItemsStateErr;
NextState();
}
else
{
}
}
break;
case EFilterProcessDeleteItemsStateDelete: // 傾僀僥儉嶍彍拞
{
switch(iEvent)
{
case EFilterProcessDeleteItemsEventSyncServerComplete:
{
iResult = KErrNone;
iState = EFilterProcessDeleteItemsStateEnd;
NextState();
}
break;
case EFilterProcessDeleteItemsEventSyncServerCancel:
{
iResult = KErrCancel;
iState = EFilterProcessDeleteItemsStateErr;
NextState();
}
break;
case EFilterProcessDeleteItemsEventSyncServerErr:
{
iState = EFilterProcessDeleteItemsStateErr;
NextState();
}
break;
default:
{
}
break;
}
}
break;
case EFilterProcessDeleteItemsStateIdle: // 枹張棟
case EFilterProcessDeleteItemsStateEnd: // 張棟廔椆
case EFilterProcessDeleteItemsStateErr: // 僄儔乕廔椆
default:
{
}
break;
}
}
/**
* 偡傋偰偺僐儅儞僪幚峴偑廔傢偭偨偐偳偆偐妋擣偡傞
* @param 側偟
* @return 廔椆敾掕(ETrue:姰椆嵪 EFalse丗枹姰椆)
*/
TBool CSmbMusicAPMainPlayerFilterProcessDeleteItems::IsSequenceFinished()
{
TBool finish = EFalse;
switch(iState)
{
case EFilterProcessDeleteItemsStateEnd:
case EFilterProcessDeleteItemsStateErr:
finish = ETrue;
break;
default:
break;
}
return finish;
}
SEMCJ_NAMESPACE_END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?