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

📄 smbmusicapsingleplayerappui.cpp

📁 symbian代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
 */
 void CSmbMusicAPSinglePlayerAppUi::MusicContentsRecoverL()
	 {
	//	僾儘僷僥傿僄乕僕僃儞僩傪庢摼
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	if(EFalse !=PGPropAgentContents::MusicRecoveryL(propAgent))
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelNormal,_L("RecoverContentsDB"));
		LaCancelAppNonUiL();
		}
	 }
	 
/**
 *	徻嵶忣曬曄峏帪張棟(嵞惗梡嬋忣曬嵞庢摼)
 *
 *	@memo see OnChangeL()
 *	@memo ADD824 newImpl!!
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::GetDispSongInfoL(TSmbPGMusicAPSongInfoEditInd aInfo)
	{
	TUint64 songId = iModel->SongId();

	if(aInfo.iSongId != songId)
		{	//	嵞惗拞偱偼側偄嬋偺徻嵶忣曬偑曄峏偝傟偨偨傔側偵傕偟側偄
		return;
		}
	iModel->DispSongInfoL();	//	嵞庢摼傪峴偆(埲崀旕摨婜張棟)
	}

/**
 *	儈儏乕僕僢僋嫞崌捠抦(SDBind儕僜乕僗嫞崌帪張棟)
 *
 *	@memo see OnChangeL
 *	@memo ADD824 newImpl
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::CompNotificationL(TSmbPGMusicAPCompNotification aInfo)
	{
	if(ESmbPGMusicAPCompSDBind == aInfo)
		{
		HandleCommandL(ESmbMusicAPSinglePlayerCmdExitPlayer);
//		HandleCommandL(ESmbMusicAPSinglePlayerCmdExitForSDVideo);
		}
	}

//			</OnChange ImpL>	

//			<ChangeExtMem Impl>
/**
 *	奜晹儊儌儕憓敳帪張棟幚憰
 *
 *	@param	CSmbExtMemWatcher::TType aType	曄壔偺偁偭偨奜晹儊儌儕偺庬椶
 *	@param	TBool aMount	憓擖偝傟偨偐偳偆偐(ETrue:憓擖/EFalse:敳嫀)
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::ChangeExtMemStateL(CSmbExtMemWatcher::TType aType, TBool aMount)
	{
	if(EFalse != iChangingExtMemState)
		{
		return;
		}
		
	iChangingExtMemState = ETrue;
	ReleaseRscForPauseL();
	
	TInt command = ESmbMusicAPSinglePlayerCmdMountExtMem;			//	resId = R_SMB_AF_STR_MSG2032;
	if(CSmbExtMemWatcher::ESd == aType)
		{
		if(EFalse == aMount)
			{
			//	resId = R_SMB_AF_STR_MSG2033;
			command = ESmbMusicAPSinglePlayerCmdUnMountExtMem;
			}
		}
	else
		{
		//	miniSD埲奜
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelNormal,_L("UnkownMemoryErr:%d" ), aType);
		User::Leave(1);
		}	

	iModel->SetExitErrCode(KErrSessionClosed);	
	HandleCommandL(command);
	}

//			</ChangeExtMem Impl>

//			<etc privateAPI>
/**
 *	偡傋偰偺儕僜乕僗偲偺愙懕傪愗傞偨傔偵丄儕僜乕僗嫞崌娗棟僋儔僗偵偡傋偰Disconnect拞傪愝掕偡傞
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::DisconnectAllRscL()
	{
	SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("ReleaseResourceReqL call! IsResourceRequestComplete:%d IsReleaseResource:%d"), iAsyncState->IsResourceRequestComplete(), iAsyncState->IsReleaseResource());

	if(EFalse != iAsyncState->SetReleaseResource())
		{
		//	儕僜乕僗庢摼拞丒妶摦偟偰偄側偄応崌
		//	儕僜乕僗庢摼拞偺応崌傕丄偡偱偵乽奐曻拞乿偵忋彂偒偝傟偰偄傞
//DEL-S D_82400014940
//		iAsyncState->ClearResourceRequestCache();
//DEL-E D_82400014940
		iRscController->Cancel();
//ADD-S D_82400014940
		iAsyncState->ClearResourceRequestCache();	//	弴斣傪擖傟懼偊偨偩偗

		//	Cancel張棟偱丄庢摼偟偰偄傞儕僜乕僗偑側偔側偭偨偐傕偟傟側偄
		//	奐曻梫媮偵奩摉偟側偄儕僜乕僗偱傕丄張棟傪娙扨偵偡傞偨傔慡奐曻丅偩偐傜丄帩偭偰偄傞偐偳偆偐偩偗専嵏
		//	帩偭偰偄傟偽奐曻張棟偺懕偒
		if(EFalse != iRscController->IsAllocatedSomeResource())
			{
			SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("DisconnectRscStart" ));
//ADD-E D_82400014940
			iModel->DisconnectAllL();
//ADD-S D_82400014940
			}
		else	//	庢摼偟偰偄傞儕僜乕僗偑側偔側偭偨側傜偽丄婛偵奐曻捠抦傪偁偘偰偄傞偺偱忬懺傪奐曻拞偐傜妶摦柍偟偵曄峏
			{
			SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("ResourceReqCanceled! and ReleaseResourceComplete" ));
			iAsyncState->SetResourceRequestComplete();
			}
//ADD-E D_82400014940
		}
	}

/**
 *	廔椆帪撈帺張棟慜敿晹
 *
 *	@memo	僾儘僷僥傿僄乕僕僃儞僩傊偺搊榐側偳丄Disconnect偵擖傞慜偺張棟傪峴偆
 *	@param	 TUid aUid
 *	@return TBool	EFalse:張棟幐攕(婛偵廔椆張棟拞)/ETrue:張棟惉岟
 */
TBool CSmbMusicAPSinglePlayerAppUi::SetExitL(TUid aUid)
	{
	iExitUid = aUid;
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	TSmbPGMusicAPSinglePlayerState state = SmbPGMusic::SinglePlayerStateL(propAgent);

	if(ESmbPGMusicAPSinglePlayerStateEnding == state)	//	偡偱偵廔椆張棟拞偺応崌偼丄壗傕偟側偄
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("AlreadyExitStatus" ));
		return EFalse;
		}
		
	//	僾儘僷僥傿僄乕僕僃儞僩偵丄廔椆張棟拞傪愝掕
	SmbPGMusic::SetSinglePlayerStateL(propAgent, ESmbPGMusicAPSinglePlayerStateEnding);
	return ETrue;
	}

/**
 *	Disconnect奐巒張棟
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::StartDisconnectRscL()
	{	
	if(EFalse != iModel->IsConnectRsc())	//	儕僜乕僗僐僱僋僩嵪
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("DisconnectAllRsc Start"));
		DisconnectAllRscL();
		}
	else if(EFalse != iRscController->IsAllocatedSomeResource())	//	壗偐儕僜乕僗傪庢摼偟偰偄傞丅偩偑丄奐曻偵壓弨旛偺偄傞MWPlayer惂屼偺Connection偼挘傜傟偰偄側偄
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("Disconnect AllResource Complete!"));
		DisconnectRscCompletedL();
		}
	else if(EFalse == iAsyncState->SetReleaseResource())
		{
		//			iWaitReleaseRsc = ETrue;仼僉儍僢僔儏偵擖傟傞偙偲偱戙懼
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("SetWaitForReleaseRsc(DisconnectRsc)" ));
		//僉儍僢僔儏偵擖偭偨
		}
	else
		{
		iAsyncState->SetResourceRequestComplete();	//	忋偺if偱愝掕偝傟偰偄偨偺偱尦偵栠偡
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("Disconnect AllResource Complete! Already"));
		}		
	//	else	幚偼DisconnectComplete張棟傑偱傕廔椆偟偰偄傞僷僞乕儞偑偁傞丅偦偺応崌偼壗傕偟側偄(偡偱偵丄怓乆廔傢偭偨屻偩偐傜)
	}

/**
 *	ClearPlayContext姰椆張棟
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::ClearPlayContextCompleteL()
	{
	//	僾儗僀儎乕惂屼傪弶婜壔偟偆傞忬懺偼3偮
	//	1.Disconnect拞
	//	2.偦傟埲奜(嬫娫嵞惗摢弌偟拞)
	//	810偱偼丄ListEnd張棟拞偑偁偭偨偑丄宱楬偺曄峏偱側偔側偭偨(Disconnect拞偱偼側偔丄ListEnd張棟拞偲偄偆宱楬)
	if(TSmbMusicAPSinglePlayerStateController::EComplete != iAsyncState->InitialCondition())
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("DisconnectPlayerControl"));
		iModel->DisconnectPlayerControlL();	//	僾儗僀儎乕惂屼偲偺Disconnect傪峴偭偰偄傞嵟拞側偺偱奐曻儕僜乕僗偺桳柍偩偗偱敾抐壜擻.
		}
	else
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("SetSongHead"));
		HandleCommandL(ESmbMusicAPSinglePlayerCmdSetSongHead);
		}	
	}

/**
 *	DisconnectComplete張棟
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::DisconnectRscCompletedL()
	{
	if(TSmbMusicAPSinglePlayerStateController::EComplete == iAsyncState->InitialCondition())
		{
		iAsyncState->ClearResourceRequestCache();
		SetMuteSpeakerAndConfirmL();
		iModel->SetConnectRsc(EFalse);
		RPGPropAgent& propAgent = iAfEnv.PropAgent();
		TSmbPGMusicAPSinglePlayerState state = SmbPGMusic::SinglePlayerStateL(propAgent);
		
		iRscController->ReleaseRscForExitPlayer();
		iAsyncState->SetResourceRequestComplete();

		if(ESmbPGMusicAPSinglePlayerStateEnding == state)	//	廔椆張棟拞側傜偽Exit傪屇傇
			{
			DisconnectRscCompletedAndExitL();
			}
		else
			{
			SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("DisconnectComplete And NotExit"));
			if(EFalse == View()->IsShowDialog())
				{
				SetSilentKeys(ETrue);	//	僉乕壒傪OFF偵偡傞
				}
			HandleCommandL(ESmbMusicAPSinglePlayerCmdBackGround);	//	偦偆偱側偄側傜偽丄夋柺傪掆巭忬懺偵堏峴	//	儕僜乕僗奐曻梫媮偱傕丄夋柺傪掆巭仺僞僀儅傕巭傔傞偱OK
			}
		}
	//	奐曻拞偺儕僜乕僗偑傑偩偁傞偺側傜偽丄旕摨婜張棟偑廔傢偭偰偄側偄偺偱壗傕偟側偄
	}


/**
 *	儕僜乕僗夝曻屻偺堦嬋嵞惗僾儗僀儎乕廔椆張棟
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::DisconnectRscCompletedAndExitL()
	{
	if(EFalse != iAsyncState->IsExecRecordPlayReportRequest())
		{
		return;
		}
//Add-S D_82400016111
	iModel->CancelInfoRequestAndRecordPlayReportForceL();	//	棜楌婰榐偑昁梫偱偼側偄偐妋擣丒昁梫側傜偽幚峴丒廔椆偟偰偟傑偆
//Add-E D_82400016111

//	壒検曐帩
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	SmbPGMusic::SetMusicAPVolumeSettingForSinglePlayerL(propAgent, 	static_cast<TInt>(iModel->Volume()));
	
	TSmbMusicAPSinglePlayerReturnParam param;
	param.iErrCode = iModel->ExitErrCode();
	TSmbMusicAPSinglePlayerReturnParamBuf buffer(param);
	iAfEnv.ReturnViewL(iExitUid, buffer);
	
	SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelLowest,_L("DisconnectComplete And Exit"));

	//	擮偺偨傔僟僀傾儘僌傪暵偠傞
	CloseSakDialogsL();

	Exit();
	}
	
/**
 *	Lib傊偺梫媮姰椆帪偺張棟
 *
 *	@memo PTX824ADD
 *	@param 側偟
 *	@return TBool	EFalse:張棟偑側偄/ETrue:張棟偑偁傞
 */
TBool  CSmbMusicAPSinglePlayerAppUi::LibRequestCompleteL()
	{
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	TSmbPGMusicAPSinglePlayerState state = SmbPGMusic::SinglePlayerStateL(propAgent);
	
	TInt count(0);	//	棜楌婰榐偑暋悢夞偁偭偨応崌偺夞悢
	TSmbMusicAPSinglePlayerLibRequestState::TLibRequest request(TSmbMusicAPSinglePlayerLibRequestState::ENone);
	
	TInt err = iAsyncState->GetCachedRequest((state == ESmbPGMusicAPSinglePlayerStateEnding), request, count);

	if(KErrNone != err)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KAppUi, EAppUi, ELogLevelHigh,_L("BadLibRequestCache:%d"),request);
		User::Leave(err);	
		}
		
	TBool ret(ETrue);
//ADD-S D_82400016111
	if(TSmbMusicAPSinglePlayerLibRequestState::EDeleteItem == request)
		{
		iModel->CancelInfoRequestAndRecordPlayReportForceL();
		iModel->DeleteItemL();
		}
//ADD-E D_82400016111
	else if(TSmbMusicAPSinglePlayerLibRequestState::EGetInfo == request)	//MOD- For D_82400016111
		{
		iModel->DispSongInfoL();
		}
	else if(TSmbMusicAPSinglePlayerLibRequestState::EPlayReport == request)
		{
		if(state == ESmbPGMusicAPSinglePlayerStateEnding)
			{
			iModel->RecordPlayReportForceL(count);	//MOD For D_82400016111
			iAsyncState->SetRecordPlayReportComplete(ETrue);
			ret = EFalse;	//	摨婜偱梫媮偑廔椆偡傞偨傔
			}
		else
			{
			iModel->RecordPlayReportL();	//Leave偼傗偭偰偄側偄偑宱楬偼捠偭偨
			}
		}
	else
		{
		ret = EFalse;
		}
			
	return ret;
	}

/**
 *	僉乕壒傪徚偡愝掕傪峴偆
 *
 *	@param	TBool aBool ETrue:徚偡/EFalse:徚偝側偄
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::SetSilentKeys(TBool /* aBool */)
	{
	//	尰忬僉乕壒偼偼偭偒傝偲柭傜偡愝掕
	/*
	if(iSetSilentKeys == aBool)
		{
		return;
		}
	iSetSilentKeys = aBool;
	CSmbAfAppUi::SetSilentKeys(aBool, NULL);
	*/
	}

/**
 *	Mute僞僀儅奐巒
 *
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::DelayTimerStart()
	{
	iTimer->Cancel();
	iTimer->Start(	TTimeIntervalMicroSeconds32(KDelay)
					,TTimeIntervalMicroSeconds32(KDelay) 
					,TCallBack(TimerCallBackL, this));
	}

/**
 *	Mute帪幚張棟
 *
 *	@param TAny* aAny
 *	@return TInt
 */
TInt CSmbMusicAPSinglePlayerAppUi::TimerCallBackL(TAny* aAny)
	{
	CSmbMusicAPSinglePlayerAppUi* self = static_cast<CSmbMusicAPSinglePlayerAppUi*>(aAny);
	self->CancelTimer();
	self->SetMuteL(EFalse);
	return KErrNone;
	}

/**
 *	僞僀儅偺僉儍儞僙儖
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::CancelTimer()
	{
	iTimer->Cancel();
	}

/**
 *	儗僕儏乕儉忣曬偺攋婞傪愝掕偡傞
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::SetAPResumeInfoDeleteIndicationL()
	{
	RPGPropAgent& propAgent = iAfEnv.PropAgent();
	SmbPGMusic::SetAPResumeInfoDeleteIndicationL(propAgent, ETrue);
	SmbPGMusic::SetAPResumeInfoDeleteIndicationL(propAgent, EFalse);
	}

/**
 *	妋擣柍偟廔椆
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerAppUi::LaCancelAppNonUiL()
	{
	HandleCommandL(ESmbMusicAPSinglePlayerCmdClearExitPlayer);
	}
//			</etc privateAPI>

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

⌨️ 快捷键说明

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