smbmusicapmainplayerfilterprocessgetlistfromsearchtop.cpp

来自「symbian」· C++ 代码 · 共 413 行

CPP
413
字号
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPMainPlayerFilterProcessGetListFromSearchTop.cpp
//
// Description:
//	儈儏乕僕僢僋儊僀儞僾儗僀儎
//	儕僗僩庢摼乮Top偐傜乯張棟僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/08/14		|SDNA壀嶳		|怴婯嶌惉

#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
#include "SmbMusicAPMainPlayerFilterProcessGetListFromSearchTop.h"


USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN

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

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

	if(EFilterProcessGetListFromSearchTopStateGetList == iState)
		{
		iSyncServer.CancelRequest(iRequestId, EFalse);
		}
	}


/**
 僷儔儊乕僞愝掕
 * @param[in]	aSearchCondition	専嶕忦審
 * @param[in]	aRequestListType	梫媮儕僗僩庬暿
 * @return							愝掕偺惉斲
 */
TBool CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::SetParam(TSmbMusicAPSyncEngineSearchCondition	aSearchCondition,
																	  TSmbMusicAPSyncEngineRequestListType	aRequestListType)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 20;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::SetParam(aSearchCondition:%d,aRequestListType:%d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, aSearchCondition, aRequestListType);
#endif

	if( EFilterProcessGetListFromSearchTopStateIdle					== iState || 
		EFilterProcessGetListFromSearchTopStateWaitStart			== iState ||
		EFilterProcessGetListFromSearchTopStateWaitStartForInsert	== iState )
		{
		iSearchCondition = aSearchCondition;
		iRequestListType = aRequestListType;
		
		iState = EFilterProcessGetListFromSearchTopStateWaitStart;
		return ETrue;
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 21;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::SetParam() Cannot Set in This State %d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
		return EFalse;
		}
	}

/**
 儌乕僪愝掕乮僾儗僀儕僗僩捛壛愭慖戰儌乕僪傊乯
 * @param	側偟
 * @return	儌乕僪愝掕偺惉斲
 */
TBool CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::SetInsertSelectMode()
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 30;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::SetInsertSelectMode()");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
	
	if( EFilterProcessGetListFromSearchTopStateIdle				== iState || 
		EFilterProcessGetListFromSearchTopStateWaitStart			== iState ||
		EFilterProcessGetListFromSearchTopStateWaitStartForInsert	== iState )
		{
		iState = EFilterProcessGetListFromSearchTopStateWaitStartForInsert;
		return ETrue;
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 31;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::SetInsertSelectMode() Cannot Set in This State %d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
		return EFalse;
		}
	}

/**
 儕僗僩僴儞僪儖庢摼
 * @param[out]	aListHandle		儕僗僩僴儞僪儖 奿擺応強偺嶲徠
 * @return						庢摼偺惉斲乮張棟偑廔椆偟偰偄傞偐偳偆偐乯
 */
TBool CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::GetListHandle(TInt& aListHandle)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 40;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::GetListHandle() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif

	if(EFilterProcessGetListFromSearchTopStateEnd == iState)
		{
		aListHandle = iListHandle;
		return ETrue;
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 41;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::GetListHandle() Process Not Complete %d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState);

		aListHandle = 0;
		return EFalse;
		}
	}

/**
 儕僗僩偺傾僀僥儉悢傪庢摼
 * @param[out]	aCount			儕僗僩傾僀僥儉悢 奿擺応強偺嶲徠
 * @return						庢摼偺惉斲乮張棟偑廔椆偟偰偄傞偐偳偆偐乯
 */
TBool CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::GetCount(TInt& aCount)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 50;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::GetCount() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif

	if(EFilterProcessGetListFromSearchTopStateEnd == iState)
		{
		aCount = iItemCount;
		return ETrue;
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 51;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::GetCount() Process Not Complete  %d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState);

		aCount = 0;
		return EFalse;
		}
	}


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

	if(ESearchRequestGetListFromSearchTop == aKind
	|| ESearchRequestGetOriginalPlayListForInsert == aKind)
		{
		if(KErrNone == aResult)
			{
			TSmbMusicAPSyncEngineListInfo& listInfo = aResponse.GetResultListInfo();
			iListHandle = listInfo.iListHandle;
			iItemCount	= listInfo.iCount;
			
			iEvent	= EFilterProcessGetListFromSearchTopEventSyncServerComplete;
			}
		else
			{
			iResult	= aResult;
			iEvent	= EFilterProcessGetListFromSearchTopEventSyncServerErr;
			}

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


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

	if(ESearchRequestGetListFromSearchTop == aKind
	|| ESearchRequestGetOriginalPlayListForInsert == aKind)
		{
		iEvent = EFilterProcessGetListFromSearchTopEventSyncServerCancel;
		DoSequence();
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 71;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::RequestCancel() Unknown Event :%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
		}
	}



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

	switch(iState)
		{
	case EFilterProcessGetListFromSearchTopStateWaitStart:				// 張棟奐巒懸偪
	case EFilterProcessGetListFromSearchTopStateWaitStartForInsert:		// 張棟奐巒懸偪(僾儗僀儕僗僩捛壛愭慖戰梡)
		{
		if(EFilterProcessGetListFromSearchTopEventStart == iEvent)
			{
			TInt result = KErrNone;
			if(EFilterProcessGetListFromSearchTopStateWaitStart == iState)
				{
				result = iSyncServer.GetListFromSearchTop(iSearchCondition, iRequestListType, EOwnerType_Filter, iRequestId, *this);
				if(KErrNone != result)
					{
					TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 81;
					_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::DoSequence() GetListFromSearchTop() Error :%d");
					SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);
					}
				}
			else
				{
				result = iSyncServer.GetOriginalPlayListForInsert(EOwnerType_Filter, iRequestId, *this);
				if(KErrNone != result)
					{
					TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 82;
					_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::DoSequence() GetOriginalPlayListForInsert() Error :%d");
					SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);
					}
				}

			if(KErrNone == result)
				{
				iState	= EFilterProcessGetListFromSearchTopStateGetList;
				}
			else
				{
				iResult	= result;
				iState	= EFilterProcessGetListFromSearchTopStateErr;
				NextState();
				}
			}
		else
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 83;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			}
		}
		break;

	case EFilterProcessGetListFromSearchTopStateGetList:	// 儕僗僩庢摼拞
		{
		
		switch(iEvent)
			{
		
		case EFilterProcessGetListFromSearchTopEventSyncServerComplete:
			{
			iResult	= KErrNone;
			iState	= EFilterProcessGetListFromSearchTopStateEnd;
			NextState();
			}
			break;
			
		case EFilterProcessGetListFromSearchTopEventSyncServerCancel:
			{
			iResult	= KErrCancel;
			iState	= EFilterProcessGetListFromSearchTopStateErr;
			NextState();
			}
			break;

		case EFilterProcessGetListFromSearchTopEventSyncServerErr:
			{
			iState	= EFilterProcessGetListFromSearchTopStateErr;
			NextState();
			}
			break;

		default:
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 85;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			}
			break;
			}
		}
		break;

	case EFilterProcessGetListFromSearchTopStateIdle:		// 枹張棟
	case EFilterProcessGetListFromSearchTopStateEnd:		// 張棟廔椆
	case EFilterProcessGetListFromSearchTopStateErr:		// 僄儔乕廔椆
	default:
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 86;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::DoSequence() Invaild State iState:%d iEvent:%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
		}
		break;
		}
	}

/**
 * 偡傋偰偺僐儅儞僪幚峴偑廔傢偭偨偐偳偆偐妋擣偡傞
 * @param	側偟
 * @return	廔椆敾掕(ETrue:姰椆嵪 EFalse丗枹姰椆)
 */
TBool CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::IsSequenceFinished()
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop | 90;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop::IsSequenceFinished() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif

	TBool finish = EFalse;

	switch(iState)
		{
	case EFilterProcessGetListFromSearchTopStateEnd:
	case EFilterProcessGetListFromSearchTopStateErr:
		finish = ETrue;
		break;

	default:
		break;
		}
	
	return finish;
	}


SEMCJ_NAMESPACE_END

// end of SmbMusicAPMainPlayerFilterProcessGetListFromSearchTop.cpp
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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