smbmusicapmainplayerfilterprocessdeleteone.cpp

来自「symbian」· C++ 代码 · 共 629 行 · 第 1/2 页

CPP
629
字号
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPMainPlayerFilterProcessDeleteOne.cpp
//
// Description:
//	儈儏乕僕僢僋儊僀儞僾儗僀儎
//	儕僗僩庢摼乮儕僗僩偐傜乯張棟僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/08/14		|SDNA壀嶳		|怴婯嶌惉
//2006/09/05		|SDNA壀嶳		|TRK8000懳墳 僐儞僥儞僣ID庢摼僄儔乕帪偵丄嶍彍僔乕働儞僗傪宲懕偡傞傛偆廋惓
//2006/09/12		|SDNA壀嶳		|TRK6892懳墳
//2006/10/13		|SDNA壀嶳		|TRK11419懳墳
//2006/10/18		|SDNA壀嶳		|TRK11810懳墳

#include <FjAfEnv.h>

#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerCommonDef.h"

#include "SmbMusicAPMainPlayerUtility.h"
#include "SmbMusicAPMainPlayerFilterProcessDeleteOne.h"


USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN

/**
 僐儞僗僩儔僋僞
 * @param[in]	aObserver				僆僽僓乕僶偺億僀儞僞
 * @param[in]	aSyncServerController	摨婜僒乕僶惂屼偺嶲徠
 * @return	側偟
 */
CSmbMusicAPMainPlayerFilterProcessDeleteOne::CSmbMusicAPMainPlayerFilterProcessDeleteOne(
																MSmbMusicAPMainPlayerFilterProcessObserver&			aObserver,
																CSmbMusicAPMainPlayerFilterSyncServerController&	aSyncServerController)
	:CSmbMusicAPMainPlayerFilterProcess(aObserver)
	, iEvent(EFilterProcessDeleteOneEventStart)
	, iState(EFilterProcessDeleteOneStateIdle)
	, iSyncServer(aSyncServerController)
	, iLog(CAfEnv::Static()->Log())
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 00;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::CSmbMusicAPMainPlayerFilterProcessDeleteOne()");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
	
	}

/**
 僨僗僩儔僋僞
 * @param	側偟
 * @return	側偟
 */
CSmbMusicAPMainPlayerFilterProcessDeleteOne::~CSmbMusicAPMainPlayerFilterProcessDeleteOne()
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 10;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::~CSmbMusicAPMainPlayerFilterProcessDeleteOne()");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif

	//2006.10.01 TRK#7270
	iObserver.HandleDialogCommandL( ECloseModelessDialog, 
									R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_SINGULAR);
	if( EFilterProcessDeleteOneStateGetContentsId	== iState ||
		EFilterProcessDeleteOneStateDeleteItem		== iState )
		{
		iSyncServer.CancelRequest(iRequestId, EFalse);
		}

	iIndexArray.Close();
	}


/**
 僷儔儊乕僞愝掕
 * @param[in]	aListHandle		儕僗僩僴儞僪儖
 * @param[in]	aIndex			僀儞僨僢僋僗
 * @param[in]	aText			嶍彍懳徾偺僞僀僩儖暥帤楍
 * @param[in]	aKind			嶍彍張棟偺庬椶
 * @return						愝掕偺惉斲
 */
TBool CSmbMusicAPMainPlayerFilterProcessDeleteOne::SetParam(TInt aListHandle, TInt aIndex, const TDesC& aText, TSmbMusicAPMainPlayerDeleteSongKind aKind)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 20;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::SetParam(aListHandle:0x%08x,aIndex:%d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, aListHandle, aIndex);
#endif

	if( EFilterProcessDeleteOneStateIdle		== iState ||
		EFilterProcessDeleteOneStateWaitStart	== iState )
		{
		iListHandle	 = aListHandle;
		iIndex		 = aIndex;
		iText		 = aText;
		iKind		 = aKind;
		
		iState = EFilterProcessDeleteOneStateWaitStart;

		return ETrue;
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 21;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::SetParam() Cannot Set in This State %d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
		return EFalse;
		}
	}

/**
 儕僗僩僴儞僪儖庢摼
 * @param	側偟
 * @return	儕僗僩僴儞僪儖
 */
TInt CSmbMusicAPMainPlayerFilterProcessDeleteOne::GetParamListHandle()
	{
	return iListHandle;
	}

/**
 僀儞僨僢僋僗傪庢摼
 * @param	側偟
 * @return	僀儞僨僢僋僗
 */
TInt CSmbMusicAPMainPlayerFilterProcessDeleteOne::GetParamIndex()
	{
	return iIndex;
	}

/**
 師偺僔乕働儞僗傪幚峴偡傞
 * @param[in]	aEvent		僀儀儞僩斣崋
 * @return					側偟
 */
void CSmbMusicAPMainPlayerFilterProcessDeleteOne::NextSequence(TFilterProcessDeleteOneEvent aEvent)
	{
	iEvent	= aEvent;
	DoSequence();
	}

/**
 * 梫媮姰椆
 *
 * @param[in]		aKind				梫媮庬暿
 * @param[in]		aResult				張棟寢壥
 * @param[in]		aResponse			墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
 */
void CSmbMusicAPMainPlayerFilterProcessDeleteOne::RequestComplete(TSmbMusicAPMainPlayerRequest 							aKind, 
																  TInt 													aResult, 
																  MSmbMusicAPMainPlayerFilterSyncServerProcessResponse&	aResponse)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 30;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::RequestComplete() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif

	if(EEditRequestGetContentsId == aKind)
		{
		if(KErrNone == aResult)
			{
			iResultContentsId = aResponse.GetResultId();
			
			iEvent	= EFilterProcessDeleteOneEventSyncServerContentsIdComplete;
			}
		else
			{
			iResult	= aResult;
			iEvent	= EFilterProcessDeleteOneEventSyncServerContentsIdErr;
			}

		DoSequence();
		}
	else if(EEditRequestDeleteItem == aKind)
		{
		if(KErrNone == aResult)
			{
			iEvent	= EFilterProcessDeleteOneEventSyncServerDeleteComplete;
			}
		else
			{
			iResult	= aResult;
			iEvent	= EFilterProcessDeleteOneEventSyncServerDeleteErr;
			}

		DoSequence();
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 31;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::RequestComplete() Unknown Event :%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
		}
	}


/**
 * 梫媮僉儍儞僙儖
 *
 * @param[in]		aKind				梫媮庬暿
 * @param[in]		aResponse			墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
 */
void CSmbMusicAPMainPlayerFilterProcessDeleteOne::RequestCancel(TSmbMusicAPMainPlayerRequest 							aKind, 
																MSmbMusicAPMainPlayerFilterSyncServerProcessResponse&	/*aResponse*/)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 40;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::RequestCancel() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif

	if(EEditRequestGetContentsId == aKind)
		{
		iEvent = EFilterProcessDeleteOneEventSyncServerContentsIdCancel;
		DoSequence();
		}
	else if(EEditRequestDeleteItem == aKind)
		{
		iEvent = EFilterProcessDeleteOneEventSyncServerDeleteCancel;
		DoSequence();
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 41;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::RequestCancel() Unknown Event :%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
		}
	}

/**
 * 僐儅儞僪張棟傪幚峴偡傞
 * @param	側偟
 * @return	側偟
 */
void CSmbMusicAPMainPlayerFilterProcessDeleteOne::DoSequence()
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 50;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::DoSequence() iState:%d iEvent:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, iEvent);
#endif

	switch(iState)
		{
//-------------------------------------------------------------------- 張棟奐巒懸偪 --------------------------------------------------------------------
	case EFilterProcessDeleteOneStateWaitStart:
		{
		if(EFilterProcessDeleteOneEventStart == iEvent)
			{
			switch(iKind)
				{
			case ESmbMusicAPMainPlayerDelSongStd:
				{
				// 捠忢嶍彍帪偼丄偼偠傔偵僟僀傾儘僌傪昞帵偟側偄偨傔丄師偺張棟傊恑傓
				iEvent = EFilterProcessDeleteOneEventDeleteExecute;
				iState = EFilterProcessDeleteOneStateShowDialog;
				NextState();
				}
				break;
				
			case ESmbMusicAPMainPlayerDelSongOverCount:
				{
				iObserver.HandleDialogCommandL( EShowSelectionModelessDialog, 
												R_DL_MUSIC_MAIN_FLT_DELETESONG_OVERCOUNT_SELECT);
				iState = EFilterProcessDeleteOneStateShowDialog;
				}
				break;

			case ESmbMusicAPMainPlayerDelSongOverTimeLimit:
			case ESmbMusicAPMainPlayerDelSongOverPeriod:
				{
				iObserver.HandleDialogCommandL( EShowSelectionModelessDialog, 
												R_DL_MUSIC_MAIN_FLT_DELETESONG_OVERTIME_SELECT);
				iState = EFilterProcessDeleteOneStateShowDialog;
				}
				break;

// Add 2007.05.15 by nakai  DRM忣曬側偟偺僨乕僞BOX僐儞僥儞僣
			case ESmbMusicAPMainPlayerDelSongNoneCpInfo:
				{
				iObserver.HandleDialogCommandL( EShowSelectionModelessDialog, 
												R_DL_MUSIC_MAIN_FLT_DELETESONG_NOTHING_DRMINFO);
				iState = EFilterProcessDeleteOneStateShowDialog;
				}
				break;
// Add End 2007.05.15 by nakai  DRM忣曬側偟偺僨乕僞BOX僐儞僥儞僣

			default:
				TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 50;
				_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::DoSequence() Unmatch Event iState:%d iEvent:%d");
				SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);

				iResult	= KErrArgument;
				iState	= EFilterProcessDeleteOneStateErr;
				NextState();
				break;
				}
			}
		else
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDeleteOne | 51;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDeleteOne::DoSequence() Unknown Kind iKind:%d iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iKind, iState, iEvent);
			}
		}
		break;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?