smbmusicapmainplayerfilterprocesscreateplaylist.cpp

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

CPP
657
字号
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist | 80;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::RequestCancel() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif

	if(EEditRequestCreatePlaylist == aKind
	|| ESearchRequestGetListItems == aKind)
		{
		iEvent = EFilterProcessCreatePlaylistEventSyncServerCancel;
		DoSequence();
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist | 81;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::RequestCancel() Unknown Event :%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
		}
	}

/**
 * 僐儞僥儞僣宯僀儀儞僩捠抦
 *
 * @param[in]		aEvent				僐儞僥儞僣宯僀儀儞僩
 */
void CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::NotifyContentsEventL(TSmbMusicAPSyncEngineContentsEvent& aEvent)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist | 90;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::NotifyContentsEventL() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
	if(ESmbMusicAPSyncEngineUpdateCreateInList == aEvent.iType)
		{
		SetResultIndex(aEvent.iInfo.iParam2);
		iEvent = EFilterProcessCreatePlaylistEventSyncServerNotify;
		DoSequence();
		}
	}


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

	switch(iState)
		{
	case EFilterProcessCreatePlaylistStateWaitStart:	// 張棟奐巒懸偪
		{
		if(EFilterProcessCreatePlaylistEventStart == iEvent)
			{
			// SyncServerController偵捠抦僆僽僓乕僶搊榐傪峴偆
			iSyncServer.SetSyncServerNotifyContentsObserver(this);

			TInt result = iSyncServer.CreatePlaylist(iPlaylistTitle, iListHandle, EOwnerType_Filter, iRequestId, *this);
			if(KErrNone == result)
				{
				iState	= EFilterProcessCreatePlaylistStateCreatePlaylist;
				}
			else
				{
				TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |101;
				_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() CreatePlaylist() Error :%d");
				SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

				iResult	= result;
				iState	= EFilterProcessCreatePlaylistStateErr;
				NextState();
				}
			}
		else
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |102;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			}
		}
		break;

	case EFilterProcessCreatePlaylistStateCreatePlaylist:	// 僾儗僀儕僗僩嶌惉拞
		{
		switch(iEvent)
			{
		
		case EFilterProcessCreatePlaylistEventSyncServerComplete:
			{
			if(EFalse != iSetResultIndex)
				{
				if(0 <= iResultIndex)
					{
					iTopIndex = 0;
					iCount = iSyncServer.GetItemCount(iListHandle);
					TInt result = iSyncServer.GetListItemsFromList(iListHandle, iTopIndex, iCount, EOwnerType_Filter, iRequestId, *this);

					if(KErrNone == result)
						{
						iState	= EFilterProcessCreatePlaylistStateGetListItems;
						}
					else
						{
						TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle |102;
						_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::DoSequence() GetListItemsFromList() Error :%d");
						SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

						iResult	= result;
						iState	= EFilterProcessCreatePlaylistStateErr;
						NextState();
						}
					}
				else
					{
					TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |103;
					_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() Illeagal Index :%d");
					SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iResultIndex);

					iResult = KErrGeneral;
					iState	= EFilterProcessCreatePlaylistStateErr;
					NextState();
					}
				}
			else
				{
				iState	= EFilterProcessCreatePlaylistStateWaitResult;	// 寢壥捠抦懸偪
				}
			}
			break;
			
		case EFilterProcessCreatePlaylistEventSyncServerCancel:
			{
			iResult	= KErrCancel;
			iState	= EFilterProcessCreatePlaylistStateErr;
			NextState();
			}
			break;

		case EFilterProcessCreatePlaylistEventSyncServerErr:
			{
			iState	= EFilterProcessCreatePlaylistStateErr;
			NextState();
			}
			break;

// Add-S PTX-824懳墳懳墳(TRK-828)丂暯壀
		case EFilterProcessCreatePlaylistEventSyncServerErrDiskFull:
			{
			iObserver.HandleDialogCommandL(EShowWarningModelessDialog, 
										   R_DL_MUSIC_MAIN_FLT_DISK_FULL_ERR);
			iState	= EFilterProcessCreatePlaylistStateErr;
			NextState();
			}
			break;
// Add-E PTX-824懳墳懳墳(TRK-828)丂暯壀

		case EFilterProcessCreatePlaylistEventSyncServerNotify:
			{
			// 壗傕偟側偄
			}
			break;
		
		default:
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |104;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			}
			break;
			}
		}
		break;

	case EFilterProcessCreatePlaylistStateWaitResult:	// 嶌惉寢壥捠抦懸偪
		{
		if(EFilterProcessCreatePlaylistEventSyncServerNotify == iEvent)
			{
			if(0 <= iResultIndex)
				{
				iTopIndex = 0;
				iCount = iSyncServer.GetItemCount(iListHandle);
				TInt result = iSyncServer.GetListItemsFromList(iListHandle, iTopIndex, iCount, EOwnerType_Filter, iRequestId, *this);

				if(KErrNone == result)
					{
					iState	= EFilterProcessCreatePlaylistStateGetListItems;
					}
				else
					{
					TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |105;
					_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() GetListItemsFromList() Error :%d");
					SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

					iResult	= result;
					iState	= EFilterProcessCreatePlaylistStateErr;
					NextState();
					}
				}
			else
				{
				TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |106;
				_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() Illeagal Index :%d");
				SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iResultIndex);

				iResult = KErrGeneral;
				iState	= EFilterProcessCreatePlaylistStateErr;
				NextState();
				}
			}
		else
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |107;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			}
		}
		break;

	case EFilterProcessCreatePlaylistStateGetListItems:	// 傾僀僥儉庢摼拞
		{
		
		switch(iEvent)
			{
		
		case EFilterProcessCreatePlaylistEventSyncServerComplete:
			{
			iResult	= KErrNone;
			iState	= EFilterProcessCreatePlaylistStateEnd;
			NextState();
			}
			break;
			
		case EFilterProcessCreatePlaylistEventSyncServerCancel:
			{
			iResult	= KErrCancel;
			iState	= EFilterProcessCreatePlaylistStateErr;
			NextState();
			}
			break;

		case EFilterProcessCreatePlaylistEventSyncServerErr:
			{
			iState	= EFilterProcessCreatePlaylistStateErr;
			NextState();
			}
			break;

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

	case EFilterProcessCreatePlaylistStateIdle:	// 枹張棟
	case EFilterProcessCreatePlaylistStateEnd:		// 張棟廔椆
	case EFilterProcessCreatePlaylistStateErr:		// 僄儔乕廔椆
	default:
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |109;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::DoSequence() Invaild State iState:%d iEvent:%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
		}
		break;
		}
	}

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

	TBool finish = EFalse;

	switch(iState)
		{
	case EFilterProcessCreatePlaylistStateEnd:
	case EFilterProcessCreatePlaylistStateErr:
		finish = ETrue;
		break;

	default:
		break;
		}
	
	return finish;
	}

/**
 * 張棟寢壥偺僀儞僨僢僋僗傪曐懚偡傞
 * @param[in]	aIndex	僀儞僨僢僋僗
 * @return				側偟
 */
void CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::SetResultIndex(TInt aIndex)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessCreatePlaylist |120;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessCreatePlaylist::SetResultIndex() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
	iResultIndex	= aIndex;
	iSetResultIndex = ETrue;
	}

SEMCJ_NAMESPACE_END

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

⌨️ 快捷键说明

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