⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicapmainplayerstatepause.cpp

📁 symbian
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		ProcNotifyLowBattery();
		return;
		}

	if (EFalse != iPlayerEnv.MannerModePlayingState())		// 2006.09.26
		{//儅僫乕儌乕僪偱偺嵞惗偺応崌
		
		//夋柺昞帵傪儅僫乕儌乕僪偐傜嵞惗壜偵愗傝懼偊傞
		TInt ret = iView->iCmd->UpdateDisplayInfo(ESmbMusicAPPlayerMannerModePlayEvent, iView->iPlayList, EFalse);
		
		if (KErrNone != ret)
			{//夋柺昞帵偺峏怴僄儔乕帪
			
			_LIT(KLogFmt2, "CSmbMusicAPMainPlayerPlayView::NotifyStartPlayL UpdateDisplayInfo err=%d");
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, 202012, ELogLevelHigh, KLogFmt2, ret);
			
			User::Leave(ret);
			}
		}

	//曐棷偵側偭偰偄傞掆巭梫媮偑偁傟偽偦傟傪張棟
	
	TBool pausePending = iView->iPauseWaiting;
	iView->iPauseWaiting = EFalse;
	if (EFalse != pausePending)
		{//掆巭梫媮敪峴偑曐棷偵側偭偰偄傞応崌(嵞惗奐巒拞偵乽掆巭乿偑墴偝傟偨応崌)
		
		//掆巭梫媮偺敪峴傪峴偆丅
		ProcNotifyChangePlaySongToPlayStopL();
		return;
		}
	
	// Music傾僾儕忬懺傪嵞惗拞偵偡傞丅
	SmbPGMusic::SetMusicAPPlayerStateL(iPropAgent, ESmbPGMusicAPPlayerStatePlaying);

	// 嵞惗奐巒捈屻1昩偺僞僀儅乕傪奐巒偡傞丅 2006.09.27
// Change 2007.09.06
//	iView->StartPlayTimerL();
	TInt curTime = iView->iDrawer->PlayTime();		// 2006.10.09
	if (!(ESmbMusicAPMainPlayerPlayProcPlayAction && curTime != 0))
		{
		iView->StartPlayTimerL();
		}
// Change End 2007.09.06

	//忬懺傪掆巭偐傜嵞惗偵曄峏
	iView->ChangeState(ESmbMusicAPMainPlayerPlayPlaying);
	iView->iReqCancel = EFalse;

	if (ESmbMusicAPMainPlayerPlayProcNone == iView->iProc)
		{//懠偺張棟梫媮偑敪峴偝傟偰偄側偄応崌
		
		iView->iProc = ESmbMusicAPMainPlayerPlayProcStartPlay;
		
		}
	else if (ESmbMusicAPMainPlayerPlayProcPlaySongHead == iView->iProc)
		{//摢弌偟偵敽偆嵞惗奐巒偺応崌(FR忬懺偱PlayStop僐儅儞僪偑敪峴偝傟偰掆巭忬懺偵慗堏偟偰偒偰偄傞応崌)
		
		if (iView->iPlayList.iIndex != iView->iIndex)
			{// 摢弌偟偱捠抦偝傟偨僀儞僨僢僋僗偑師嬋偵側偭偰偄傞応崌
			 //  (摢弌偟偺僞僀儈儞僌偱師嬋偵堏偭偰偄傞偙偲偑偁傞)
			 
			 //嬋憲傝偲偟偰張棟偡傞
			iView->iProc = ESmbMusicAPMainPlayerPlayProcNextSong;
			NotifyChangePlaySongL();
			
			return;
			}
		}
	
	iView->ProcCancelAction();		// TRK:10513

	if (iView->IsChangeProcStartPlay() != EFalse)
		{//張棟庬暿傪PlayAction偐傜StartPlay偵曄峏偡傞昁梫偑偁傞応崌
		 //偡側傢偪丄儕僗僩嵞惗拞偺堦帪掆巭偐傜偺嵞奐偱丄張棟娫偵師嬋傊偺堏摦偑敪惗偟偨応崌
		
		iView->iProc = ESmbMusicAPMainPlayerPlayProcStartPlay;
		}
		
	iView->iPlayList.iIndex = iView->iIndex;

	//儕僗僩嵞惗廔椆偺僼儔僌傪僋儕傾
	iView->iPlayComplete = EFalse;		// 2006.08.05

	if (iView->IsStartPlayOfIniitialPicture() != EFalse)
		{//夋柺偺弶婜壔偑昁梫側応崌(StartPlay,PlayResume,PlayFFEnd)偺応崌
		
		// 嵞惗奐巒帪偺昞帵傪曄峏
		ProcClearSongInfoOfPlayPictureL();
		}
		
	//嵞惗夋柺偺昞帵
	iView->iDrawer->DrawPlayPictureNoVssL(EFalse, EFalse);
	
	#ifndef __SKIP_ASSERT__
	__ASSERT_ALWAYS((iView->iIndex >= 0 && iView->iIndex < iView->iReqPlayList.iCount), PANIC(9200001));
	#endif

// PTX824懳墳
// Change End 2007.03.07
//	// 夋憸枃悢傪庢摼
//	iView->iCmd->GetImageNumber(iView->iPlayList);
	// 嵞惗嬋忣曬傪庢摼
	iView->ReqGetPlayInfoL();
// Change End 2007.03.07

	if (ESmbMusicAPMainPlayerPlayProcEngUse == iView->iProc)
		{//僄儞僕儞偺巊梡嫋戻妉摼捠抦偺張棟偺応崌
		
		iView->ChangeState(ESmbMusicAPMainPlayerPlayPlaying);
		}
	else
		{//僄儞僕儞偺巊梡嫋戻妉摼捠抦偱偼側偄応崌
		
		if (ESmbMusicAPMainPlayerPlayProcPlayFFEnd == iView->iProc)
			{//憗憲傝拞偺嬋廔抂摓払張棟偺応崌(掆巭忬懺偱偺張棟偲側傞)
			
			iView->iProc = ESmbMusicAPMainPlayerPlayProcChangeSong;
			}
		
		// 僼傿儖僞乕價儏乕傊嵞惗嬋曄峏傪捠抦偡傞丅
		iView->iFilterView.HandleChangedPlaySong(iView->iPlayList);
		}
		
	}//end of NotifyStartPlayL()


/**
 * 堦帪掆巭捠抦張棟
 *
 * Y: public
 *
 */
void CSmbMusicAPMainPlayerStatePause::NotifyStopPlayL()
	{
	iView->iFailState = EFalse;

	delete iView->iPeriodic;
	iView->iPeriodic = NULL;

	TBool startPause = iView->iStartPause;
	iView->iStartPause = EFalse;

	if (EFalse != iView->iDisplayedPopup)
		{
		// 嵞惗夞悢惂尷晅偒妋擣億僢僾傾僢僾昞帵拞偼僋儘乕僘偡傞
		iPlayerEnv.DialogManager().CloseModelessDialog(R_DL_MUSIC_MAIN_PLAY_LIMIT_COUNT);
		}

	if (ESmbMusicAPMainPlayerPlayProcStartPlay != iView->iProc)
		{//嵞惗奐巒張棟偵敽偆掆巭偱偼側偄応崌
		
		//儅僫乕儌乕僪嵞惗僼儔僌傪儕僙僢僩偡傞
		iPlayerEnv.SetMannerModePlayingStateL(EFalse);	// 2006.10.18  TRK:11757
		}

	if (EFalse != iView->iExtMemory)
		{// 奜晹儊儌儕乕憓敳偑偁偭偨応崌
		
		return;
		}

	if (iView->IsResumeCancelOnPause() != EFalse)
		{//掆巭帪偺儕僕儏乕儉攋婞僼儔僌偑僙僢僩偝傟偰偄傞偐丄嵞惗晄壜嬋張棟偐傜嬻偺儕僗僩偺嵞惗偑梫媮偝傟偨応崌
		// 儗僕儏乕儉忣曬傪攑婞偡傞丅
		ProcNotifyStopPlayInEmptyListL();
		return;
		}
	
	iView->iBeforeIndex = iView->iPlayList.iIndex;
	if (ESmbMusicAPMainPlayerPlayProcStartPlay != iView->iProc)
		{
		iView->iPlayList.iIndex = iView->iIndex;
		}
	
	if (iView->IsProcFailSong() != EFalse)
		{// 嵞惗晄壜嬋張棟忬懺偺応崌
		ProcNotifyStopPlayInFailSongL();
		return;
		}
	
	if (ESmbMusicAPMainPlayerPlayProcListEnd == iView->iProc)
		{// 儕僗僩嵞惗姰椆張棟忬懺(嵞惗嬋偑嵞惗晄壜)
		NotifyCompletePlayListL();
		return;
		}
	
	if (ESmbMusicAPMainPlayerPlayProcStartPlay == iView->iProc)
		{// 嵞惗奐巒張棟偵敽偆掆巭偺応崌
		ProcNotifyStopPlayInProcStartL(startPause);
		}

	else if (ESmbMusicAPMainPlayerPlayProcPlayLowBattery == iView->iProc)
		{// 傾僾儕掅揹埑偵傛傞掆巭
		ProcNotifyStopPlayInLowBatteryL();
		}
	else
		{// 偦偺懠偺応崌
		ProcNotifyStopPlayInOtherL(iView->iPauseState/*pauseState*/);
		}
	iView->iPlayCancel = EFalse;		// TRK9304  2006.09.18
	
	}//end of NotifyStopPlayL()
	

/**
 * 嵞惗晄壜捠抦張棟
 *   捠抦偝傟偨嵞惗晄壜忣曬偵懳墳偟偨僟僀傾儘僌傪昞帵偟偰丄憖嶌寢壥偵廬偭偰張棟傪峴偆丅
 *
 * Y: public
 *
 */
void CSmbMusicAPMainPlayerStatePause::NotifyPlayFailL()
	{
	delete iView->iPeriodicTime;
	iView->iPeriodicTime = NULL;

	// 奺庬忬懺僼儔僌傪儕僙僢僩
	ResetAnyStatusFlags();

// PTX824懳墳
	// 婡擻僉乕柍岠  2007.03.09
	iView->ChangeFuncKeyState(EFalse);		// 2007.04.23

	iView->iPlayList.iIndex = iView->iIndex;
	iView->iFailEvent = iView->iPlayEvent;

	if (EFalse != iView->iNotifyFial2Idle)
		{//嵞惗晄壜嬋張棟拞偵嬻偺儕僗僩偺嵞惗傪梫媮偝傟偨応崌
		
		// 傾僀僪儖忬懺傊堏峴偡傞丅乮嬻儕僗僩偑巜掕偝傟偨応崌偺張棟乯
		ProcNotifyChangePlaySongToIdleL();
		return;
		}

	if (EFalse != iView->iLowBattery)
		{// 掅揹埑偵傛傞掆巭梫媮傪庴偗晅偗偰偄傞応崌
		
		ProcNotifyLowBattery();
		return;
		}

// Add 2007.04.06 PTX824 TRK:757
	if (EFalse != iView->iStartPause)
		{
		return;
		}
// Add End 2007.04.06 PTX824 TRK:757

// Delete 2007.04.06 PTX824 TRK:755
//	iView->iNumJacket = 0;
//	iView->iNumLyric = 0;
// Delete End 2007.04.06 PTX824 TRK:755

	iView->iCmd->GetRequestKind(iView->iProckind, iView->iInfokind);

	_LIT(KLogFmt, "CSmbMusicAPMainPlayerStatePause::NotifyPlayFailL UnPlayable song index=%d cause=%d iStatus=%d, iProc=%d iProckind=%d iInfokind=%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, 200017, ELogLevelNormal, KLogFmt, iView->iIndex, iView->iFailEvent.iInfo.iCause, iView->ViewStatus(), iView->iProc, iView->iProckind, iView->iInfokind);

// Change 2007.08.29
//	if (iView->IsProcStartPlayWithFailSongCheck() != EFalse &&
//	    ESmbMusicAPMainPlayerPlayProcNone == iView->iInfokind		// TRK:11747
//	   )
	if ((iView->IsProcStartPlayWithFailSongCheck() != EFalse ||
	     iView->iProc == ESmbMusicAPMainPlayerPlayProcEngUse ||
	     iView->iProc == ESmbMusicAPMainPlayerPlayProcNone
	    ) &&
	    ESmbMusicAPMainPlayerPlayProcNone == iView->iInfokind		// TRK:11747
	   )
// Change End 2007.08.29
		{//嵞惗奐巒偺張棟偵敽偆Fail偱忣曬宯偺梫媮偑敪峴偝傟偰偄側偄応崌
		
		//張棟庬暿傪嵞惗晄壜嬋偺張棟偵愗傝懼偊傞丅
		iView->iProc = ESmbMusicAPMainPlayerPlayProcFailSong;
		
		//掆巭梫媮偺敪峴
		iView->iCmd->PlayStop();
		}
	else if (EFalse != iView->iReqCancel)
		{//嬋憲傝偺僉儍儞僙儖偑偐偐偭偰偄傞応崌
		
		// 嬋憲傝拞偺嵞惗晄壜僗僉僢僾偺僉儍儞僙儖
		ProcNotifyPlayFailToCancel();
		}
	else
		{// 偦偺懠偺応崌(儕僗僩嵞惗偺搑拞偱嵞惗晄壜嬋偵憳嬾偟偨応崌
		
		// 嵞惗晄壜嬋僗僉僢僾張棟傪峴偆
		ProcNotifyPlayFailToSkipL();
		}
	}//end of NotifyPlayFailL()

// PTX824懳墳
// Add 2007.03.23
/**
 * 僆乕僩儗僕儏乕儉嵞惗壜擻捠抦張棟
 */
void CSmbMusicAPMainPlayerStatePause::NotifyEnableAuteResumeL()
	{
	// 儅僫乕儌乕僪敾掕丄傾僾儕掅揹埑僠僃僢僋
	if (EFalse != iPlayerEnv.BasisPartFuncInterface().PreCheckWhenStartPlayL(iView->iPlayList.iListHandle, iView->iPlayList.iIndex))
		{//儅僫乕儌乕僪嵞惗偺敾掕偱嵞惗OK偺応崌
		// 嵞惗壜擻 仺 嵞惗傪奐巒偡傞丅
		if (ESmbMusicAPMainPlayerPlayProcNone != iView->iProc)
			{//懠偺張棟梫媮敪峴拞偺応崌偵偼偦偺梫媮傪僉儍儞僙儖偡傞
			iView->ProcCancelAction();		// 2006.10.23  TRK:12007
			}
		//嵞惗奐巒梫媮偺敪峴
// Change 2007.09.04
//		if (EFalse == iView->iCmd->PlayStart(iPlayerEnv.MannerModePlayingState()))
		if (EFalse == iView->iCmd->PlayStart(iPlayerEnv.MannerModePlayingState(), ETrue))
// Change End 2007.09.04
			{//梫媮敪峴偺僄儔乕帪
			iView->iPlay2Start = ETrue;
			return;
			}
		iView->iProc = ESmbMusicAPMainPlayerPlayProcPlayAction;
			
		iView->iPlay2Start = ETrue;
		iView->iStartingAutoResume = ETrue;		// 2007.08.20
		}
	else 
		{//儅僫乕儌乕僪嵞惗偺敾掕偱嵞惗NG偺応崌
		
		//掆巭夋柺傪昞帵偡傞丅
		iView->iDrawer->DrawStopPictureL(EFalse);
		}
	}
// Add End 2007.03.23

// Add End 2007.09.26
/**
 * 儕僗僩嵞惗姰椆張棟\n
 *   嵞惗儕僗僩偺愭摢嬋偺嬋忣曬偱掆巭拞夋柺傪昞帵偡傞丅
 *   仸嵞惗奐巒偵懳偟偰儕僗僩嵞惗姰椆偑捠抦偝傟偨偲偒偺張棟
 * Y: public
 *
 */
void CSmbMusicAPMainPlayerStatePause::NotifyCompletePlayListL()
	{
	//忬懺傪嵞惗忬懺偵曄峏
	iView->ChangeState(ESmbMusicAPMainPlayerPlayPlaying);
	iView->iState->NotifyCompletePlayListL();
	}
// Add End 2007.09.26

//==============================================================================================
//
//  偦偺懠
//
//
//==============================================================================================

/**
 * 掆巭忬懺夋柺偺昤夋傪峴偆丅
 *
 * Y: public
 *
 * @param[in] aInit 弶婜夋柺昞帵乮ETrue:價僕儏傾儔僀僓乕夋柺昞帵乯
 */ 
void CSmbMusicAPMainPlayerStatePause::RedrawL(TBool aInit)
	{
	iView->iDrawer->DrawStopPictureL(aInit);
	}


SEMCJ_NAMESPACE_END

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

⌨️ 快捷键说明

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