📄 smbmusicapsingleplayerappui.cpp
字号:
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 + -