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

📄 smbmusicapsingleplayerappui.cpp

📁 symbian代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	TBool ret = ETrue;
	if(KSmbMusicAPSinglePlayerUid != frontApp)
		{
		ret = EFalse;
		}
	return ret;
	}

/**
 *	僋儔儉僔僃儖偑暵偠偰偄傞偐偳偆偐
 *
 *	@return TBool EFalse:奐/ETrue:暵
 */
TBool CSmbMusicAPSinglePlayerAppUi::IsCaseClosedL()
	{
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	return PGPropAgentStatus::IsCaseClosedL(propAgent);
	}

/**
 *	僶僢僋儔僀僩偑徚偊偰偄傞偐偳偆偐
 *	@TODO	嶍彍
 *	@return TBool EFalse:揰摂/ETrue:徚摂
 */
TBool CSmbMusicAPSinglePlayerAppUi::IsLcdBackLightOffL()
	{
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	TSmbPGLcdBackLightStatus status = SmbPGStatus::LcdBackLightStatusL(propAgent);
	
	TInt ret = EFalse;
	if(ESmbPGLcdBackLightStatusOff == status)
		{
		ret = ETrue;
		}
	return ret;
	}

/**
 *
 *	Disconnect偺昁梫偑偁傞偐偳偆偐
 *	
 *	@return ETrue:Disconnect偟側偔偰偼偄偗側偄/EFalse:偟側偔偰傕傛偄
 *	@memo	奐暵/Menu弌尰側偳偵懳偡傞Play偺僞僀儈儞僌惂屼偺偨傔
 */
TBool CSmbMusicAPSinglePlayerAppUi::IsNeedDisconnectRscL()
	{
	TBool foreground = IsForegroundL();
	TBool closed = IsCaseClosedL();
	TBool lightOFF =  IsLcdBackLightOffL();
	
	TInt ret = EFalse;
	if(EFalse == foreground || EFalse != closed || EFalse != lightOFF)
		{
		ret = ETrue;
		}
	return ret;
	}

/**
 *	儊儌儕憓敳張棟拞偐偳偆偐
 *
 *	@return TBool
 *	@param 側偟
 */
 TBool CSmbMusicAPSinglePlayerAppUi::ChangingExtMemState() const
	{
	return iChangingExtMemState;
	}

/**
 *	嬫娫嵞惗摢弌偟拞偐偳偆偐
 *
 *	@param 側偟
 *	@return TBool
 */
TBool CSmbMusicAPSinglePlayerAppUi::IsSetSongHeadRequestInCpPlay() const
	{
	return iAsyncState->IsSetSongHeadRequestInCpPlay();
	}

	//	</Is...>
//	</etc PublicAPI>

//	<HandleResourceEventL Impl>
/**
 *	嵞惗儕僜乕僗庢摼帪張棟
 *
 *	@param 	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::RscForPlayOKL()
	{
	iAsyncState->SetResourceRequestComplete();	//	梫媮拞丒奐曻拞偺儕僜乕僗偼側偄
	if(0 != iAsyncState->GetRscRequestCache())
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("WaitForReleaseRsc END.AndReleaseRscCompleted" ));
		DisconnectRscCompletedL();
		}
	else
		{
		SetSilentKeys(EFalse);	//	儕僜乕僗偑庢摼偱偒偨僞僀儈儞僌偱丄僉乕壒傪僨僼僅儖僩偵栠偡

		if(EFalse != iAsyncState->IsUserPlayConfirm())	//	儐乕僓嵞惗妋擣屻
			{
			iAsyncState->SetUserPlayConfirm(EFalse);
			iModel->SetConfirmPlay();
			}
		else	//	捠忢嵞惗奐巒
			{	
			HandleCommandL(ESmbMusicAPSinglePlayerCmdPlayStart);
			}
		}
	}

/**
 *	儕僜乕僗庢摼晄壜帪張棟
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::RscNGL()
	{
	iAsyncState->SetResourceRequestComplete();	//	梫媮拞丒奐曻拞偺儕僜乕僗偼側偄
	if(0 != iAsyncState->GetRscRequestCache())
		{
		iAsyncState->SetInitialPlayerControlComplete();
		DisconnectRscCompletedL();
		}
	else
		{
		HandleCommandL(ESmbMusicAPSinglePlayerCmdRscErr);
		}
	}

//	</HandleResourceEventL Impl>

//	<HandleCommandL Impl>

//	ExitL()仺<etc privateAPI>

/**
 *	僄儔乕廔椆帪張棟
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::ErrExitPlayerL()
	{
	TInt ret = iModel->DisconnectPlayerControlForce();
		
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelNormal,_L("PlayerErrExit DisconnectErr:%d"), ret);
		}

	SetExitL(KLaReturnErrUid);	//	曉抣偑偁傞偑丄propAgent偵愝掕偟偨偐偳偆偐偩偗側偺偱柍帇
	DisconnectRscCompletedL();	
	}


/**
 *	儕僜乕僗奐曻拞偵丄ListEnd廔椆偑棃偨応崌偺張棟
 *	
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::ExitPlayerForListEndInDisconnectRsc()
	{
	SetExitL(KLaReturnErrNoneUid);	//	曉抣偑偁傞偑丄propAgent偵愝掕偟偨偐偳偆偐偩偗側偺偱柍帇
	//	儕僜乕僗奐曻拞偵ListEnd偲偄偆偙偲偼丄忬懺偼堦帪掆巭偱偔傞
	//	弶婜壔拞偵堦帪掆巭偑棃偨応崌偼丄CleaPlayContext傪峴偭偰偄傞
	//	ClearPlayContext傪峴偄Disconnect張棟傪拞抐偟偰丄ListEnd張棟傪憓擖偟偨
	//	偩偐傜丄ClearPlayContextCompleteL傪屇傫偱丄巆傝偺弶婜壔張棟(廔椆張棟)偵栠偟偰傗傞
	ClearPlayContextCompleteL();
	}

/**
 *	僾儗僀儎奐巒弨旛<br>
 *	儅僫乕儌乕僪忬懺庢摼
 *	@memo	堦嬋嵞惗僾儗僀儎乕奐巒帪偵丄堦搙偩偗屇偽傟傞
 *	@param	側偟
 *	@return	void
 */
void CSmbMusicAPSinglePlayerAppUi::PrepareToPlayerL()
	{
	if(EFalse != iChangingExtMemState)	//	儊儌儕憓敳偁傝
		{
		//	iChangingExtMemState偺抣偑ETrue偵側偭偰偄傞偲偄偆偙偲偼丄偡偱偵廔椆張棟偵擖偭偰偄傞
		//	偦偺偨傔丄偙偙偱偼壗傕偟側偄
		return;
		}
	
	//	僾儘僷僥傿僄乕僕僃儞僩傪庢摼
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	
	//	儅僫乕儌乕僪丒僀儎儂儞敳嫀忬懺偱愝掕
	TPGMannerMode	manner;	//  儅僫乕儌乕僪忬懺
	MEtWcdmaExtDevice::TEtEarphoneStatus earphone;
	PGPropAgentMannerMode::GetDataL(propAgent, manner);
	earphone = PGPropAgentStatus::GetEarphoneStatusL(propAgent);
	
	if(	manner.iMannerModeSetting == EPGMannerModeOn 
	&& 	earphone == MEtWcdmaExtDevice::EEtEarphoneNotConnection)
		{
		iPlayConfirm = ENeed;
		View()->DrawMuteSpeaker(ETrue);
		}
	else
		{
		iPlayConfirm = ENeedless;
		}
	iPropAgentWatcher->RequestNotifyEventL();

	if(earphone != MEtWcdmaExtDevice::EEtEarphoneNotConnection)
		{
		View()->DrawMuteSpeaker(ETrue);
		}
		
	//	墘憈奐巒
	iModel->CreateSongItemL();
	}

//	StartDisconnectRscL()仺<etc privateAPI>
//	ClearPlayContextComplete()仺<etc privateAPI>
//	DisconnectRscCompleted()仺<etc PrivateAPI>

/**
 *	CreatesongItem姰椆帪張棟
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::CreateSongItemCompleteL()
	{
	iModel->DispSongInfoL();
	if(EFalse == IsNeedDisconnectRscL())
		{
		HandleCommandL(ESmbMusicAPSinglePlayerCmdPlayStart);
		}
	else
		{
		HandleCommandL(ESmbMusicAPSinglePlayerCmdRedrawPauseViewForce);
		}
	}

/**
 *	SetPlayContext傪峴偆
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::SetPlayContextL()
	{
//	埲壓妋擣晄梫(偙偺娭悢偑屇偽傟傞宊婡偼昁偢埲壓偑ETrue偺偨傔)
//	if(	EFalse == iAsyncState->IsFinishedCreateSongItem()
//	||	EFalse == IsAllocatedResourceForPlay())
	if( EFalse != IsNeedDisconnectRscL()	//	屻傠偵夞偭偨
	 && EFalse != iModel->IsConnectRsc()			//	偦傕偦傕儕僜乕僗偵愙懕偟偰偄側偄側傜偽丄Disconnect偡傞昁梫偼側偄
	 && EFalse == iAsyncState->IsReleaseResource())	//	Disconnect張棟拞側傜偽偄偮偐廔傢傞
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("SetSongItem NeedDisconnect:%d IsConnectRsc:%d IsDIsconnectionRsc:%d"), IsNeedDisconnectRscL(), iModel->IsConnectRsc(), iAsyncState->IsReleaseResource());
		DisconnectAllRscL();
		return;	//	Disconnect傪峴偭偨応崌偼偙傟埲忋張棟傪偍偙側傢側偄
		}
	
	iModel->SetPlayContextL();
	}

/**
 *	嵞惗棜楌婰榐姰椆
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::RecordPlayReportCompleteL()
	{
	if(EFalse == LibRequestCompleteL())	
		{
		RPGPropAgent& propAgent = iAfEnv.PropAgent();
		TSmbPGMusicAPSinglePlayerState state = SmbPGMusic::SinglePlayerStateL(propAgent);

		if(ESmbPGMusicAPSinglePlayerStateEnding == state && EFalse == iModel->IsConnectRsc())	
			{
			DisconnectRscCompletedAndExitL();
			}
		}
	}
//	LibRequestCompleteL()仺<etc PrivateAPI>
//			</HandleCommandL Impl>

//			<OnChange ImpL>
/**
 *	僀儎儂儞僗僥乕僞僗曄峏帪張棟偺幚憰
 *	
 *	@memo	see OnChangeL()
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::ChangeEarphoneStatusL()
	{
	//	僾儘僷僥傿僄乕僕僃儞僩傪庢摼
	RPGPropAgent& propAgent = iAfEnv.PropAgent();

	//	儅僫乕儌乕僪丒僀儎儂儞敳嫀忬懺偱愝掕
	TPGMannerMode	manner;	//  儅僫乕儌乕僪忬懺
	MEtWcdmaExtDevice::TEtEarphoneStatus earphone;
	PGPropAgentMannerMode::GetDataL(propAgent, manner);
	earphone = PGPropAgentStatus::GetEarphoneStatusL(propAgent);

	if(earphone == MEtWcdmaExtDevice::EEtEarphoneNotConnection)
		{
		if(manner.iMannerModeSetting == EPGMannerModeOn)
			{
			if(EFalse == iModel->Mute() && EAlready != iPlayConfirm)
				{
				iView->DrawMuteSpeaker(ETrue);
				SetMuteL(ETrue);
				}
			else
				{
				iView->DrawMuteSpeaker(EFalse);
				}
				
			if(EAlready != iPlayConfirm)
				{
				iPlayConfirm = ENeed;
				}
			}
		else
			{
			iView->DrawMuteSpeaker(EFalse);
			}
		}
	else
		{
		iView->DrawMuteSpeaker(ETrue);
		if(manner.iMannerModeSetting == EPGMannerModeOn)
			{
			if(EFalse != iModel->Mute())
				{
				DelayTimerStart();			//	SetMuteEFalse();
				}
			if(EAlready != iPlayConfirm)
				{
				iPlayConfirm = ENeedless;				//	嵞惗妋擣晄昁梫
				}
			}
		}
	}

/**
 *	儅僫乕儌乕僪曄峏帪張棟偺幚憰
 *
 *	@memo	see OnChangeL()
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::ChangeMannerModeStatusL()
	{
	//	僾儘僷僥傿僄乕僕僃儞僩傪庢摼
	RPGPropAgent& propAgent = iAfEnv.PropAgent();

	//	儅僫乕儌乕僪丒僀儎儂儞敳嫀忬懺偱愝掕
	TPGMannerMode	manner;	//  儅僫乕儌乕僪忬懺
	MEtWcdmaExtDevice::TEtEarphoneStatus earphone;
	PGPropAgentMannerMode::GetDataL(propAgent, manner);
	earphone = PGPropAgentStatus::GetEarphoneStatusL(propAgent);

	if(manner.iMannerModeSetting == EPGMannerModeOn)
		{
		if(earphone == MEtWcdmaExtDevice::EEtEarphoneNotConnection && EAlready != iPlayConfirm)
			{
			iView->DrawMuteSpeaker(ETrue);
			iPlayConfirm = ENeed;
			}
		}
	else
		{
		iView->DrawMuteSpeaker(EFalse);	//TRK10237
		iPlayConfirm = ENeedless;
		SetMuteSpeakerAndConfirmL();	//	僀儎儂儞僗僥乕僞僗偺Adjust
		}
	}

/**
 *	UsimRefresh
 *
 *	@param TInt aData
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::UsimRefreshL(TInt aData)
	{
	if(KUsimIdUidValue == aData)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelNormal,_L("UsimRefresh"));
		LaCancelAppNonUiL();
		}
	else if(KUsimImodeproUidValue == aData)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelNormal,_L("UsimImodepro"));
		}
	}

/**
 *	MWLibDB嵞峔抸帪張棟幚憰
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::MWLibDBRecoverL()
	{
	//	僾儘僷僥傿僄乕僕僃儞僩傪庢摼
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	if(EFalse != SmbPGMusic::DBRecoverL(propAgent))
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelNormal,_L("RecoverMWLibDB"));
		LaCancelAppNonUiL();
		}
	}

/**
 *	僐儞僥儞僣娗棟儈儏乕僕僢僋僨乕僞嵞峔抸帪張棟幚憰
 *
 *	@param 側偟
 *	@return void

⌨️ 快捷键说明

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