smbmusicapmainplayerfilterprocessduplicateplaylist.cpp

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

CPP
678
字号
#endif

	if(EEditRequestDuplicatePlaylist == aKind
	|| ESearchRequestGetListItems == aKind)
		{
		iEvent = EFilterProcessDuplicatePlaylistEventSyncServerCancel;
		DoSequence();
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist | 81;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::RequestCancel() Unknown Event :%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
		}
	}

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


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

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

			TInt result = iSyncServer.DuplicatePlaylist(iPlaylistTitle, iListHandle, iIndex, EOwnerType_Filter, iRequestId, *this);
			if(KErrNone == result)
				{
				iState	= EFilterProcessDuplicatePlaylistStateDuplicatePlaylist;
				return;
				}
			else
				{
				TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |101;
				_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() DuplicatePlaylist() Error :%d");
				SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

				iResult	= result;
				iState	= EFilterProcessDuplicatePlaylistStateErr;
//				NextState();
				}
			}
		else
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |102;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			iState	= EFilterProcessDuplicatePlaylistStateErr;
//			__ASSERT_DEBUG(EFalse, PANIC(9100044));
			}
		}
		break;

	case EFilterProcessDuplicatePlaylistStateDuplicatePlaylist:	// 僾儗僀儕僗僩暋惢拞
		{
		switch(iEvent)
			{
		
		case EFilterProcessDuplicatePlaylistEventSyncServerComplete:
			{
//			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	= EFilterProcessDuplicatePlaylistStateGetListItems;
						return;
						}
					else
						{
						TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle |103;
						_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::DoSequence() GetListItemsFromList() Error :%d");
						SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

						iResult	= result;
						iState	= EFilterProcessDuplicatePlaylistStateErr;
//						NextState();
						}
//					}
//				else
//					{
//					TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |103;
//					_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Illeagal Index :%d");
//					SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iResultIndex);
//
//					iResult = KErrGeneral;
//					iState	= EFilterProcessDuplicatePlaylistStateErr;
//					NextState();
//					}
//				}
//			else
//				{
//				iState	= EFilterProcessDuplicatePlaylistStateWaitResult;	// 寢壥捠抦懸偪
//				}
			}
			break;
			
		case EFilterProcessDuplicatePlaylistEventSyncServerCancel:
			{
			iResult	= KErrCancel;
			iState	= EFilterProcessDuplicatePlaylistStateErr;
//			NextState();
			}
			break;

		case EFilterProcessDuplicatePlaylistEventSyncServerErr:
			{
			iState	= EFilterProcessDuplicatePlaylistStateErr;
//			NextState();
			}
			break;

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

//		case EFilterProcessDuplicatePlaylistEventSyncServerNotify:
//			{
//			// 壗傕偟側偄
//			}
//			break;
		
		default:
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |104;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			iState	= EFilterProcessDuplicatePlaylistStateErr;
//			__ASSERT_DEBUG(EFalse, PANIC(9100045));
			}
			break;
			}
		}
		break;

//	case EFilterProcessDuplicatePlaylistStateWaitResult:	// 嶌惉寢壥捠抦懸偪
//		{
//		if(EFilterProcessDuplicatePlaylistEventSyncServerNotify == 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	= EFilterProcessDuplicatePlaylistStateGetListItems;
//					}
//				else
//					{
//					TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |105;
//					_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() GetListItemsFromList() Error :%d");
//					SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);
//
//					iResult	= result;
//					iState	= EFilterProcessDuplicatePlaylistStateErr;
//					NextState();
//					}
//				}
//			else
//				{
//				TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |106;
//				_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Illeagal Index :%d");
//				SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iResultIndex);
//
//				iResult = KErrGeneral;
//				iState	= EFilterProcessDuplicatePlaylistStateErr;
//				NextState();
//				}
//			}
//		else
//			{
//			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |107;
//			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Unmatch Event iState:%d iEvent:%d");
//			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
//			}
//		}
//		break;

	case EFilterProcessDuplicatePlaylistStateGetListItems:	// 傾僀僥儉庢摼拞
		{
		
		switch(iEvent)
			{
		
		case EFilterProcessDuplicatePlaylistEventSyncServerComplete:
			{
			iResult	= KErrNone;
			iState	= EFilterProcessDuplicatePlaylistStateEnd;
//			NextState();
			}
			break;
			
		case EFilterProcessDuplicatePlaylistEventSyncServerCancel:
			{
			iResult	= KErrCancel;
			iState	= EFilterProcessDuplicatePlaylistStateErr;
//			NextState();
			}
			break;

		case EFilterProcessDuplicatePlaylistEventSyncServerErr:
			{
			iState	= EFilterProcessDuplicatePlaylistStateErr;
//			NextState();
			}
			break;

		default:
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |105;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			iState	= EFilterProcessDuplicatePlaylistStateErr;
//			__ASSERT_DEBUG(EFalse, PANIC(9100046));
			}
			break;
			}
		}
		break;
	case EFilterProcessDuplicatePlaylistStateErr:		// 僄儔乕廔椆
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |106;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Invaild State iState:%d iEvent:%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, iEvent);
		}
		break;
	case EFilterProcessDuplicatePlaylistStateIdle:	// 枹張棟
	case EFilterProcessDuplicatePlaylistStateEnd:		// 張棟廔椆
	default:
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist |107;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessDuplicatePlaylist::DoSequence() Invaild State iState:%d iEvent:%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
		}
		break;
		}
	NextState();
	}

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

	TBool finish = EFalse;

	switch(iState)
		{
	case EFilterProcessDuplicatePlaylistStateEnd:
	case EFilterProcessDuplicatePlaylistStateErr:
		finish = ETrue;
		break;

	default:
		break;
		}
	
	return finish;
	}

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

SEMCJ_NAMESPACE_END

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

⌨️ 快捷键说明

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