smbmusicapmainplayerappui.cpp

来自「symbian」· C++ 代码 · 共 1,625 行 · 第 1/5 页

CPP
1,625
字号
		// 僒僽僾儗僀儎乕偱僾儗僀儎乕忬懺偺PA抣曄峏埲奜偐傜偙偺張棟偵擖偭偨応崌丄
		// 僾儗僀儎乕忬懺傪廔椆張棟拞偵愝掕偡傞
		// 堦墳丄僉儍僢僔儏抣偼曄峏偟偰偍偔
		iPlayerState = ESmbPGMusicAPPlayerStateEnding;
		SmbPGMusic::SetMusicAPPlayerStateL(iAfEnv.PropAgent(), ESmbPGMusicAPPlayerStateEnding);
		}
	else
		{
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ExitAppL(%d)[Not change ESmbPGMusicAPPlayerStateEnding]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13030, ELogLevelNormal, KLogFmt, aReason);
		}

	// 僀儀儞僩攝怣乮慡偰偺價儏乕偵懳偟偰乯
	for (TInt i = 0; i < ESmbMusicAPMainPlayerNumberOfViews; i++)
		{
		MSmbMusicAPMainPlayerEventHandler* eventHandler = iViews[i]->EventHandler();
		if (eventHandler != NULL)
			{
			eventHandler->HandleExitApp(aReason);
			}
		}

#ifdef __SMBMUSICAP_PTX824_DEF__
// Add 2007.04.13 SD_Bind儕僜乕僗嫞崌懳墳
	if(iRscMgr != NULL)
		{
		// 儕僜乕僗偺奐曻傪峴偆
		iRscMgr->ReleaseResourceL();
		}
// Add End 2007.04.13 SD_Bind儕僜乕僗嫞崌懳墳
#endif

// PTX824懳墳
// DEL-S 2007.03.07 K3拞堜 怴傾僾儕嫞崌懳墳
//	// 傾僾儕嫞崌娗棟傊偺廔椆捠抦
//DEL-S 2006.10.19 K3戝嫶 [i-keeper(TRK):11911] 攔懠婲摦偺応崌偼婛偵捠抦嵪傒側偺偱丄偙偙偱偼捠抦偟側偄
//	if (aReason != ESmbMusicAPMainPlayerExitStartFailed)
//DEL-E 2006.10.19 K3戝嫶 [i-keeper(TRK):11911] 攔懠婲摦偺応崌偼婛偵捠抦嵪傒側偺偱丄偙偙偱偼捠抦偟側偄
//ADD-S 2006.10.19 K3戝嫶 [i-keeper(TRK):11911] 攔懠婲摦偺応崌偼婛偵捠抦嵪傒側偺偱丄偙偙偱偼捠抦偟側偄
//	if ((aReason != ESmbMusicAPMainPlayerExitStartFailed) && (iExclusiveStartState != ESmbRunningExclusiveStart))
//ADD-E 2006.10.19 K3戝嫶 [i-keeper(TRK):11911] 攔懠婲摦偺応崌偼婛偵捠抦嵪傒側偺偱丄偙偙偱偼捠抦偟側偄
//		{// 傾僾儕偺婲摦偑姰椆偡傞傑偱偵廔椆偡傞埲奜丄傑偨偼攔懠婲摦埲奜偺応崌
//		TSmbRscMgrAppResult rscMgrAppResult;
//		TSmbRscMgrRes rscMgrRes;
//		//__UHEAP_FAILNEXT(1);  // UT丗NotifyStopAppL()幐攕
//		rscMgrRes = iRscMgrAppClient->NotifyStopAppL(KSmbMusicAPMainPlayerUid, rscMgrAppResult);
//
//		// 偙偺娭悢偵棃偨帪揰偱丄嫞崌僼儗乕儉儚乕僋傊偺梫媮偼壗傕峴偭偰偄側偄偼偢偱偁傝丄ESmbRscMgrResultNG偵側傜側偄偼偢
//		// delete帪偵傾僾儕働乕僔儑儞廔椆捠抦偲摨條偺張棟偑峴傢傟傞偙偲偑曐徹偝傟偰偄傞
//		if (rscMgrRes != ESmbRscMgrResultOK)
//			{
//			_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ExitAppL(%d)[failed NotifyStopAppL()]");
//			SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13076, ELogLevelHigh, KLogFmt, aReason);
//			}
//		}
//	else
//		{
//		_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ExitAppL(%d)[Not call NotifyStopAppL()]");
//		SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13031, ELogLevelNormal, KLogFmt, aReason);
//		}
// DEL-E 2007.03.07 K3拞堜 怴傾僾儕嫞崌懳墳

	// 摨婜僄儞僕儞丒摨婜僒乕僶傪夝曻
	if (iSyncEngine != NULL)
		{
		iSyncEngine->AppExit();

		// 夝曻嵪傒僼儔僌傪棫偰傞
		iSyncEngineAppExitFlag = ETrue;
		}
	iHasSyncServerFlag = EFalse;

// PTX824 APF
// Add 2007.04.12 僋儕傾僉乕墴壓偱MainMenu傊暅婣偡傞懳墳
	if (EFalse != iEndClear && ESmbMusicAPMainPlayerExitRscMgrAppReqEXit != aReason)
		{
		if (KSmbMusicAPMainPlayerStartFromMenuMsgUid     == iCustomMessageId ||	// 儊僀儞儊僯儏乕偐傜偺婲摦
		    KSmbMusicAPMainPlayerStartFromMySelectMsgUid == iCustomMessageId	// 儅僀僙儗僋僩偐傜偺婲摦
		   )
			{
			iAfEnv.ReturnViewL(KLaReturnClearUid);
			}
		}
// Add End 2007.04.12 僋儕傾僉乕墴壓偱MainMenu傊暅婣偡傞懳墳
	
	// 僼儗乕儉儚乕僋偵廔椆捠抦
#ifdef __SMBMUSICAP_PTX824_DEF__
// PTX824 APF
	CSmbAfAppUi::Exit();
#else
	CAfAppUi::Exit();
#endif
	}

/**
 * 儐乕僓妋擣廔椆
 *
 * 廔椆妋擣僟僀傾儘僌傪昞帵偟偨屻丄乽偼偄乿偑慖戰偝傟偨応崌偼捠忢廔椆偲側傞丅
 * param aClearKey ETrue:僋儕傾僉乕偵傛傞廔椆
 * param aCloseDialog ETrue:僟僀傾儘僌僋儘乕僘屻偺廔椆
 */
// Change 2007.05.29 拞堜
//void CSmbMusicAPMainPlayerAppUi::ConfirmExitAppL(TBool aClearKey/*= EFalse*/)
void CSmbMusicAPMainPlayerAppUi::ConfirmExitAppL(TBool aClearKey /*= EFalse*/, TBool aCloseDialog /*= EFalse*/)
// Change End 2007.05.29 拞堜
	{
// PTX824 APF
// 僋儕傾僉乕墴壓偱MainMenu傊暅婣偡傞懳墳
	iEndClear = aClearKey;

// Add 2007.05.29 拞堜
	// 僇儗儞僩僀儀儞僩僴儞僪儔傪庢摼
	MSmbMusicAPMainPlayerEventHandler* handler = ActiveEventHandler();
	if (EFalse == aCloseDialog)
		{
// Add End 2007.05.29 拞堜
		// 婲摦敾掕慜偵OnHook僉乕偑墴壓偝傟偨応崌偼偨偩偪偵廔椆偡傞
		if (iInternalState != ESmbRunning)
			{
			_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ConfirmExitAppL()[end while startprocessing]");
			SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13032, ELogLevelHigh, KLogFmt);

			HandleCommandL(EEikCmdExit);
			return;
			}

		// 廔椆妋擣僟僀傾儘僌偑昞帵拞偐
		if (iExitConfirmDialogFlag != EFalse)  // = ETrue
			{
			//_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ConfirmExitAppL()[end while displaying dialog]");
			//SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13033, ELogLevelNormal, KLogFmt);

			HandleCommandL(EEikCmdExit);
			}

// Delete 2007.05.29 拞堜
//		// 僇儗儞僩僀儀儞僩僴儞僪儔傪庢摼
//		MSmbMusicAPMainPlayerEventHandler* handler = ActiveEventHandler();
// Delete End 2007.05.29 拞堜
		if (handler != NULL)
			{
			if (handler->HandleExitPreprocessingL() == EFalse)
				{
				//_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ConfirmExitAppL()[HandleExitPreprocessingL() = EFalse]");
				//SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13034, ELogLevelNormal, KLogFmt);

				// 廔椆慖戰僟僀傾儘僌偑巜掕偝傟側偑傜丄曉傝抣偑EFalse偩偭偨応崌偼僋儕傾偡傞
				if (iDelayShowDialogId == R_DL_MUSIC_MAIN_BASE_CANCELEXIT_CONFIRM)
					{
					// 僐乕僨傿儞僌儈僗
					__ASSERT_DEBUG(EFalse, PANIC(9013011));

					iDelayShowDialogId = 0;
					}
				return;
				}
			}
// Add 2007.05.29 拞堜
		}
// Add End 2007.05.29 拞堜

	TInt exitDialogId = R_DL_MUSIC_MAIN_BASE_EXIT_CONFIRM;  // 捠忢廔椆慖戰僟僀傾儘僌
	if (iDelayShowDialogId == R_DL_MUSIC_MAIN_BASE_CANCELEXIT_CONFIRM)
		{// 僉儍儞僙儖廔椆僟僀傾儘僌偺応崌
		exitDialogId = iDelayShowDialogId;

		// 梡嵪傒側偺偱僋儕傾偡傞
		iDelayShowDialogId = 0;
		}

	// 嵞惗拞偱側偄応崌偐偮廔椆慖戰僟僀傾儘僌傪巜掕偝傟偰偄側偄応崌偼丄偦偺傑傑廔椆僔乕働儞僗傊
	if ((iPlayerState != ESmbPGMusicAPPlayerStatePlaying) && (exitDialogId == R_DL_MUSIC_MAIN_BASE_EXIT_CONFIRM))
		{
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ConfirmExitAppL()[end not playing]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13035, ELogLevelNormal, KLogFmt);

		HandleCommandL(EEikCmdExit);
		}

	// 嵞惗拞偵儈儏乕僕僢僋僼傽僀儖娗棟傪婲摦偡傞偲偒丄廔椆妋擣僟僀傾儘僌偑昞帵偝傟側偄傛偆偵偡傞偨傔偺忬懺曄峏
	// 攔懠婲摦拞偺応崌偼偦偺傑傑廔椆僔乕働儞僗傊
	if (iExclusiveStartState == ESmbRunningExclusiveStart)
		{
		HandleCommandL(EEikCmdExit);
		}

	//iDialogManager->ShowConfirmModelessDialogL(R_CONFIRM_MODAL_D01, this);  // UT丗摨堦儌乕僪儗僗昞帵
	//iDialogManager->ShowWarningModelessDialogL(R_WARNING_MODAL_D01, this);  // UT丗摨堦儌乕僪儗僗昞帵
	//iDialogManager->ShowSelectionModelessDialogL(R_SELECTION_MODAL_01, this);  // UT丗摨堦儌乕僪儗僗昞帵
	//return;  // UT

	// 僟僀傾儘僌僋儘乕僘屻偺CancelHoldApp()憲怣偱偼娫偵崌傢側偄偨傔丄
	// CancelHoldApp()憲怣梷惂偝傟偰偄偨応崌丄廔椆僟僀傾儘僌昞帵慜偵CancelHoldApp()傪憲怣偟偰偍偔
	if (ControlCommand() == ESmbControlCommandForcedSendCancelHoldApp)
		{
		SetControlCommand(ESmbControlCommandNone);

		CancelHoldAppEx();
		}

	// 廔椆妋擣僟僀傾儘僌傪昞帵
	iExitConfirmDialogFlag = ETrue;  // 廔椆妋擣僟僀傾儘僌昞帵僼儔僌傪棫偰傞
	//__UHEAP_FAILNEXT(1);  // ShowSelectionModalDialogL()幐攕
	//TInt result = iDialogManager->ShowConfirmModalDialogL(R_CONFIRM_MODAL_D01);  // UT丗擇廳妋擣僟僀傾儘僌昞帵
	//TInt result = iDialogManager->ShowWarningModalDialogL(R_WARNING_MODAL_D01);  // UT丗擇廳妋擣僟僀傾儘僌昞帵
	TInt result = iDialogManager->ShowSelectionModalDialogL(exitDialogId);
	if (result == MSmbMusicAPMainPlayerDialogManagerBase::ESelectKey)
		{// 乽偼偄乿偑慖戰偝傟偨応崌偺傒
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::ConfirmExitAppL()[confirm dialog = %d]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13036, ELogLevelNormal, KLogFmt, result);

		HandleCommandL(EEikCmdExit);
		}
	iExitConfirmDialogFlag = EFalse; // 廔椆妋擣僟僀傾儘僌昞帵僼儔僌傪棊偲偡

	// 廔椆妋擣僟僀傾儘僌偺僋儘乕僘傪僀儀儞僩僴儞僪儔偵捠抦
	if (handler != NULL)
		{
		handler->HandleExitPostprocessingL();
		}
	}

/**
 * 僆儞僼僢僋墴壓帪偺僐乕儖僶僢僋娭悢丅
 *
 * (CAfAppUi偱virtual偱掕媊)
 */
void CSmbMusicAPMainPlayerAppUi::HandleOnHookL()
	{
	if (iChangingViewFlag != EFalse) // == ETrue
		{// 價儏乕愗傝懼偊拞
		// 價儏乕愗傝懼偊拞偼柍帇偡傞
		return;
		}

	ConfirmExitAppL();
	}

/*
 * 僔儍僢僩僟僂儞帪偺僐乕儖僶僢僋娭悢
 *
 * (CAfAppUi偱virtual偱掕媊)
 *
 * @leave CSmbMusicAPMainPlayerAppUi::ExitAppL()
 */
void  CSmbMusicAPMainPlayerAppUi::HandleShutdownL()
	{
	ExitAppL(ESmbMusicAPMainPlayerExitShutdown);
	}

/**
 * 慡傾僾儕働乕僔儑儞廔椆帪偺僐乕儖僶僢僋娭悢
 *
 * (CAfAppUi偱virtual偱掕媊)
 *
 * @leave CSmbMusicAPMainPlayerAppUi::ExitAppL()
 */
void CSmbMusicAPMainPlayerAppUi::HandleExitAllAppsL()
	{
	ExitAppL(ESmbMusicAPMainPlayerExitAllApps);
	}

/**
 * 僶僢僥儕乕傾儔乕儉(60sec)帪偺僐乕儖僶僢僋娭悢
 *
 * (CAfAppUi偱virtual偱掕媊)
 *
 * @leave CSmbMusicAPMainPlayerAppUi::ExitAppL()
 */
void CSmbMusicAPMainPlayerAppUi::HandleBatteryAlarmLast60SecL()
	{
	ExitAppL(ESmbMusicAPMainPlayerExitBatteryAlarmLast60Sec);
	}

/**
 * 儊僀儞傑偨偼僒僽傾僾儕廔椆帪偺僐乕儖僶僢僋娭悢丅
 *
 * 僒僽僾儗僀儎乕堎忢廔椆帪偼偙偺娭悢偱張棟偡傞丅
 * 惓忢廔椆偺応崌偼丄PA曄峏捠抦傪庴偗偰張棟偡傞丅
 *
 * @leave CSmbMusicAPMainPlayerAppUi::ExitAppL()
 */
void CSmbMusicAPMainPlayerAppUi::LaAppDeadL(TUid /* aAppUid */)
	{
	// 儈儏乕僕僢僋僾儗僀儎乕偺忬懺偑"廔椆張棟拞"埲奜偱屇偽傟傞偼偢
	// 廔椆張棟拞偱傕儊僀儞僾儗僀儎乕傪廔椆偝偣偰傕栤戣側偄偺偱丄僨僶僢僌斉偺傒偺僠僃僢僋偲偡傞
	__ASSERT_DEBUG(iPlayerState != ESmbPGMusicAPPlayerStateEnding, PANIC(9013001));

	// 傾僒乕僩
	ExitAppL(ESmbMusicAPMainPlayerExitSubPlayerDead);
	}

/**
 * 儐乕僓傊偺栤偄崌傢偣柍偟偱偺傾僾儕働乕僔儑儞廔椆帪偺僐乕儖僶僢僋娭悢
 * 乮擇廳婲摦帪偵屇偽傟傞乯
 * 
 * 偙偺僐乕儖僶僢僋娭悢偼丄儐乕僓傊偺栤偄崌傢偣柍偟(妋擣夋柺傪弌偝側偄)偱偺
 * 傾僾儕働乕僔儑儞廔椆僀儀儞僩傪懸偪庴偗偐傜庴偗庢傞丅<BR>
 * 偙偺僀儀儞僩傪庴偗庢偭偨傾僾儕働乕僔儑儞偼丄捠忢廔椆妋擣僟僀傾儘僌傪
 * 昞帵偡傞応崌偱傕丄僟僀傾儘僌偺昞帵摍傪峴傢偢偵傾僾儕働乕僔儑儞偺廔椆傪
 * 峴偆傋偒偱偁傞丅
 */
void CSmbMusicAPMainPlayerAppUi::LaEndAppNonUiL()
	{
	ExitAppL(ESmbMusicAPMainPlayerExitApfReq);
	}

/**
 * 傾僾儕働乕僔儑儞屇傃弌偟帪偺僐乕儖僶僢僋娭悢丅
 *
 * (CAfAppUi偑幚尰偟偰偄傞MAfLauncherCallBackObserver偱virtual偱掕媊)
 * 
 * StartApp偱婲摦偝傟偨傾僾儕働乕僔儑儞偺婲摦寢壥傪庢摼偡傞丅
 *
 * @param[in] aViewId RLauncherSession::StartApp()偵搉偟偨價儏乕UID
 * @param[in] aCustomMessageId RLauncherSession::StartApp()偵搉偟偨儊僢僙乕僕UID
 * @param[in] aResult 婲摦寢壥丅KErrNone偱偁傟偽惓忢偵婲摦丅<BR>
 *                      偦傟埲奜偱偁傟偽僄儔乕偑敪惗偟偨偙偲傪帵偡丅
 * @leave CSmbMusicAPMainPlayerAppUi::ExitAppL()
 */
void CSmbMusicAPMainPlayerAppUi::LaAppChangeL(const TVwsViewId& aViewId, TUid /* aCustomMessageId */, TInt aResult)
	{
	//_LIT(KLogFmt, "CSmbMusicAPMainPlayerAppUi::LaAppChangeL(0x%08x)");
	//SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 13001, ELogLevelNormal, KLogFmt, aViewId.iAppUid.iUid);

⌨️ 快捷键说明

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