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