smbmusicapmainplayerfilterprocesseditplaylisttitle.cpp

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

CPP
637
字号
 * @param[in]		aResponse			墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
 */
void CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::RequestCancel( TSmbMusicAPMainPlayerRequest 							aKind, 
																	MSmbMusicAPMainPlayerFilterSyncServerProcessResponse&	/*aResponse*/)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle | 80;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::RequestCancel() iState:%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif

	if(EEditRequestEditPlaylistTitle == aKind
	|| ESearchRequestGetListItems == aKind)
		{
		iEvent = EFilterProcessEditPlaylistTitleEventSyncServerCancel;
		DoSequence();
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle | 81;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::RequestCancel() Unknown Event :%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
		}
	}

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


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

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

			TInt result = iSyncServer.EditPlaylistTitle(iPlaylistTitle, iListHandle, iIndex, EOwnerType_Filter, iRequestId, *this);
			if(KErrNone == result)
				{
				iState	= EFilterProcessEditPlaylistTitleStateRename;
				}
			else
				{
				TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle |100;
				_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::DoSequence() EditPlaylistTitle() Error :%d");
				SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

				iResult	= result;
				iState	= EFilterProcessEditPlaylistTitleStateErr;
				NextState();
				}
			}
		else
			{
			TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle |101;
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::DoSequence() Unmatch Event iState:%d iEvent:%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
			}
		}
		break;

	case EFilterProcessEditPlaylistTitleStateRename:	// 僾儗僀儕僗僩僞僀僩儖曄峏拞
		{
		switch(iEvent)
			{
		
		case EFilterProcessEditPlaylistTitleEventSyncServerComplete:
			{
			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	= EFilterProcessEditPlaylistTitleStateGetListItems;
						}
					else
						{
						TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle |102;
						_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::DoSequence() GetListItemsFromList() Error :%d");
						SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

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

					iResult = KErrGeneral;
					iState	= EFilterProcessEditPlaylistTitleStateErr;
					NextState();
					}
				}
			else
				{
				iState = EFilterProcessEditPlaylistTitleStateWaitResult;	// 寢壥捠抦懸偪
				}
			}
			break;
			
		case EFilterProcessEditPlaylistTitleEventSyncServerCancel:
			{
			iResult	= KErrCancel;
			iState	= EFilterProcessEditPlaylistTitleStateErr;
			NextState();
			}
			break;

		case EFilterProcessEditPlaylistTitleEventSyncServerErr:
			{
			iState	= EFilterProcessEditPlaylistTitleStateErr;
			NextState();
			}
			break;

		case EFilterProcessEditPlaylistTitleEventSyncServerNotify:
			{
			// 壗傕偟側偄
			}
			break;

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

	case EFilterProcessEditPlaylistTitleStateWaitResult:	// 嶌惉寢壥捠抦懸偪
		{
		if(EFilterProcessEditPlaylistTitleEventSyncServerNotify == 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	= EFilterProcessEditPlaylistTitleStateGetListItems;
					}
				else
					{
					TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle |105;
					_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::DoSequence() GetListItemsFromList() Error :%d");
					SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);

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

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

	case EFilterProcessEditPlaylistTitleStateGetListItems:	// 傾僀僥儉庢摼拞
		{
		
		switch(iEvent)
			{
		
		case EFilterProcessEditPlaylistTitleEventSyncServerComplete:
			{
			iResult	= KErrNone;
			iState	= EFilterProcessEditPlaylistTitleStateEnd;
			NextState();
			}
			break;
			
		case EFilterProcessEditPlaylistTitleEventSyncServerCancel:
			{
			iResult	= KErrCancel;
			iState	= EFilterProcessEditPlaylistTitleStateErr;
			NextState();
			}
			break;

		case EFilterProcessEditPlaylistTitleEventSyncServerErr:
			{
			iState	= EFilterProcessEditPlaylistTitleStateErr;
			NextState();
			}
			break;

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

	case EFilterProcessEditPlaylistTitleStateIdle:		// 枹張棟
	case EFilterProcessEditPlaylistTitleStateEnd:		// 張棟廔椆
	case EFilterProcessEditPlaylistTitleStateErr:		// 僄儔乕廔椆
	default:
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle |109;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessEditPlaylistTitle::DoSequence() Unmatch Event iState:%d iEvent:%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
		}
		break;
		}
	}

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

	switch(iState)
		{
	case EFilterProcessEditPlaylistTitleStateEnd:
	case EFilterProcessEditPlaylistTitleStateErr:
		finish = ETrue;
		break;

	default:
		break;
		}
	
	return finish;
	}

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


SEMCJ_NAMESPACE_END

⌨️ 快捷键说明

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