📄 smbmusicapsingleplayercommand.cpp
字号:
}
default:
return ESmbAfCmdIdWasNotConsumed;
}
return ESmbAfCmdIdWasConsumed;
}
//<HandleCommandL Impl>
/**
* 堦帪掆巭墴壓帪偺張棟幚憰
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::RequestPauseL()
{
TInt err = iModel->Pause();
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelLowest,_L("Pause Err:%d"), err);
if(KErrNone == err) // 張棟奐巒
{
CancelTimer();
View()->SetPlayPrepareViewL(ESmbMusicAPSinglePlayerPlayPause); // 僉乕僈僀僟儞僗偺彂偒姺偊
}
else if( KErrNotReady == err) // MW僾儗僀儎乕惂屼偑KErrNotReady傪曉偟偰偔傞偙偲傕偁傞偺偱丄嶍彍偱偒側偄
{
iAsyncState->CancelPauseRequest();
}
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("Pause Err:%d"), err);
User::Leave(err);
}
}
/**
* 憗憲傝墴壓帪偺張棟幚憰
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::RequestPlayFFL()
{
TInt err = iModel->PlayFF();
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelLowest,_L("PlayFF Err:%d, PlayTime;%d"), err, PlayTimeL());
if(KErrNone == err)
{
CancelTimer();
View()->SetPlayPrepareViewL(ESmbMusicAPSinglePlayerPlayFF);
}
else if(KErrNotReady == err || KErrCancel == err) // 側偵傕偟側偐偭偨偺偱丄忬懺傪棊偲偡
{
iAsyncState->CancelPlayFFRequest();
}
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("PlayFF Err:%d"), err);
User::Leave(err);
}
}
/**
* 憗栠偟墴壓帪偺張棟幚憰
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::RequestPlayFRL()
{
TInt err = iModel->PlayFR();
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelLowest,_L("FR Err:%d PlayTime:%d"), err, PlayTimeL());
if(KErrNone == err)
{
CancelTimer();
View()->SetPlayPrepareViewL(ESmbMusicAPSinglePlayerPlayFR);
}
else if(KErrNotReady == err || KErrCancel == err)
{
iAsyncState->CancelPlayFRRequest();
}
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("PlayFR Err:%d"), err);
User::Leave(err);
}
}
/**
* 憗憲傝僉儍儞僙儖帪張棟幚憰
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::RequestCancelPlayFFL()
{
TInt err = iModel->CancelPlayFF();
if(KErrNone == err)
{
CancelTimer();
View()->SetPlayPrepareViewL(ESmbMusicAPSinglePlayerPlay);
}
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("CancelPlayFF Err:%d"), err);
User::Leave(err);
}
}
/**
* 憗栠偟僉儍儞僙儖帪張棟幚憰
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::RequestCancelPlayFRL()
{
TInt err = iModel->CancelPlayFR();
if(KErrNone == err)
{
CancelTimer();
View()->SetPlayPrepareViewL(ESmbMusicAPSinglePlayerPlay);
}
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("CancelPlayFR Err:%d"), err);
User::Leave(err);
}
}
/**
* 摢弌偟梫媮帪張棟幚憰
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::RequestSetSongHeadL()
{
if(EFalse != View()->IsStartPlay())
{
if(EFalse != iModel->IsCpPlay()) // 嬫娫嵞惗拞偺応崌偼暿僐儅儞僪偵棳偡
{
CPPlaySetSongHeadL(); // 嬫娫嵞惗偼旕摨婜張棟傪娷傓偨傔丄暋悢夞屇偽傟傞偑IsCpPlay()偱忢偵幆暿壜擻.
}
else
{
SetSongHeadL();
}
}
}
/**
* 墘憈奐巒(壒柭摦奐巒偱偼側偄)
*
* @param 側偟
* @return void
* @see StartPlayL
*/
void CSmbMusicAPSinglePlayerCommand::RequestPlayL()
{
if(EFalse != iAppUi->ChangingExtMemState()) // 儊儌儕憓敳張棟拞側傜偽埲崀張棟傪偟側偄
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelNormal,_L("RequestPlayL Err ChangingExtMemStateNow"));
return;
}
iAsyncState->SetExecListEnd(EFalse); // ListEnd+FFEnd偑棃偨応崌偺僈乕僪
// 嵞惗慜妋擣張棟
if(EFalse == ConfirmBeforePlayL())
{
return;
}
if(EFalse != iAppUi->IsAllocatedResourceForPlay())
{
//SetPlayContext偑廔傢偭偰偄側偄応崌
if(EFalse == iAsyncState->IsFinishedSetPlayContext())
{
iAppUi->HandleCommandL(ESmbMusicAPSinglePlayerCmdSetPlayContext);
return;
}
TInt err = iModel->PlayL();
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelLowest,_L("PlayL Err:%d , PlayTime:%d"), err, PlayTimeL());
// 僉乕僈僀僟儞僗偺彂偒姺偊
if(KErrNone == err) // 墘憈奐巒
{
CancelTimer();
View()->SetPlayPrepareViewL(ESmbMusicAPSinglePlayerPlay); // 僉乕僈僀僟儞僗偺彂偒姺偊
}
else if(KErrNotReady == err)
{
iAsyncState->CancelPlayRequest();
}
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("PlayL Err:%d"), err);
User::Leave(err);
}
}
else if(TSmbMusicAPSinglePlayerStateController::EComplete == iAsyncState->InitialCondition()) // 儕僜乕僗庤曻偟偰偄傞嵟拞偼丄側偵傕偟側偄(偦偺偆偪偦偭偪偑側傫偲偐偡傞)
{
iAppUi->RequestRscForPlayL();
}
}
/**
* 壒検憹壛
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::IncreaseVolumeL()
{
CSmbMusicAPSinglePlayerView* view = iAppUi->View();
TUint volume = iModel->Volume() + KVolumeIncrement;
TInt ret = iModel->SetVolume(volume);
if(KErrNone == ret) // 斖埻奜偵側傜側偄側傜偽
{
view->SetVolume(volume);
}
else if(KErrArgument != ret) // KErrNotReady偼丄Model偱KErrNone偵抲偒姺偊偰偄傞偺偱棃側偄丅乽斖埻奜乿埲奜偺僄儔乕偼Leave
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("IncreaseVolume Err:%d"), ret);
User::Leave(ret);
}
}
/**
* 壒検尭彮
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::DecreaseVolumeL()
{
CSmbMusicAPSinglePlayerView* view = iAppUi->View();
TUint volume = iModel->Volume() - KVolumeIncrement;
TInt ret = iModel->SetVolume(volume);
if(KErrNone == ret)
{
view->SetVolume(volume);
}
else if(KErrArgument != ret) // KErrNotReady偼丄Model偱KErrNone偵抲偒姺偊偰偄傞偺偱棃側偄丅乽斖埻奜乿埲奜偺僄儔乕偼Leave
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelHigh,_L("DecreaseVolume Err:%d"), ret);
User::Leave(ret);
}
}
/**
* 庢摼忣曬昞帵
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::SetDispInfoL()
{
// View偺儊儞僶傪棙梡偟偰昤夋傪峴偆丅價僢僩儅僢僾偺儘乕僪摍偵幐攕偟偨傜丄昤夋偡傞偺傪傗傔偰偟傑偆
View()->SetDispInfoL(iModel->DispInfo());
if(EFalse != iAsyncState->IsFinishedLibRequest()) // Lib傊偺梫媮偑姰椆偟偰偄傞側傜偽丄僉儍僢僔儏偝傟偰偄傞Request傪妋擣仺幚峴
{
iAppUi->LibRequestCompleteL();
}
}
/**
* 僶僢僋儔僀僩(OFF仺ON)
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::BackLightOnL()
{
CSmbMusicAPSinglePlayerView* view = iAppUi->View();
view->BackLightOn(PlayTimeL());
if((ESmbMusicAPSinglePlayerPlay == view->ViewState()) && (EFalse == view->IsShowDialog()))
{
PlayTimerStart();
}
}
/**
* 嬋廔抂捠抦帪張棟幚憰
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::ListEndImplL()
{
//ADD-S D_82400007238
iAsyncState->SetNeedUserPlayConfirm(ETrue); // 師夞嵞惗帪丄嵞惗妋擣偑偁傞側傜昁梫偱偁傞偙偲傪愝掕偡傞
//ADD-E D_82400007238
if(EFalse != iModel->IsCpPlay()) // 嬫娫嵞惗拞偺応崌偼暿僐儅儞僪偵棳偡
{
CPPlayListEndL();
}
else
{
ListEndL();
}
}
/**
* 夞悢妋擣帪張棟幚憰
*
* @memo ADD824 for ConfirmLimitCnt
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::UserConfirmLimitCntL()
{
iAsyncState->SetUserPlayConfirm(ETrue);
CSmbMusicAPSinglePlayerModel::TLimitCntInfo limitCountInfo = iModel->LimitCountInfo();
TInt ret = View()->ShowCountConfirmDialogL(limitCountInfo.iLimitCount - limitCountInfo.iPlayCount);
//ADD-S D_82400011121
if(KYes == ret)
{
// 偙偺張棟偵擖傞慜偵壒惡僷僗儕僜乕僗傪庤曻偟偰偄傞
// 嵞庢摼偺宊婡偼側偄偨傔丄偐側傜偢儕僜乕僗傪庢摼偵峴偒丄KErrArgument偑曉媝偝傟傞宊婡偼側偄偼偢
if(KErrArgument == iAppUi->RequestRscForPlayL()) // 嵞惗梡儕僜乕僗庢摼
{
// 傛偭偰丄尰忬偙偙偵偼杮棃擖偭偰偙側偄
iAsyncState->SetUserPlayConfirm(EFalse);
iModel->SetConfirmPlay();
}
}
else if(KNo == ret || CSkonDialogBase::EClearKey == ret)
{
iAppUi->HandleCommandL(ESmbMusicAPSinglePlayerCmdExitPlayer); // 廔椆
}
//ADD-E D_82400011121
//DEL-S D_82400011121
// if(KYes != ret)
// {
// iAppUi->HandleCommandL(ESmbMusicAPSinglePlayerCmdExitPlayer); // 廔椆
// }
// else // 嵞惗偡傞
// {
// // 偙偺張棟偵擖傞慜偵壒惡僷僗儕僜乕僗傪庤曻偟偰偄傞
// // 嵞庢摼偺宊婡偼側偄偨傔丄偐側傜偢儕僜乕僗傪庢摼偵峴偒丄KErrArgument偑曉媝偝傟傞宊婡偼側偄偼偢
// if(KErrArgument == iAppUi->RequestRscForPlayL()) // 嵞惗梡儕僜乕僗庢摼
// {
// // 傛偭偰丄尰忬偙偙偵偼杮棃擖偭偰偙側偄
// iAsyncState->SetUserPlayConfirm(EFalse);
// iModel->SetConfirmPlay();
// }
// }
//DEL-E D_82400011121
}
/**
* 僌儗乕僗僺儕僆僪婜娫拞捠抦張棟幚憰
*
* @memo ADD824 Show GracePeriodContents Dialog.
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::GracePeriodContentsL()
{
// SetAutoCloseTime愝掕昁梫
iAsyncState->SetUserPlayConfirm(ETrue);
//ADD-S D_82400005503
if(EFalse != iAsyncState->IsNeedUserPlayConfirm()) //MOD For D_82400007238(妋擣偑昁梫偐偳偆偐傪僼儔僌娗棟偵曄峏丅5503偱偼忬懺偐傜敾暿偟偰偄偨)
{
//ADD-E D_82400005503
//mod-S D_82400003894(儊僢僙乕僕ID傪曄峏),D_82400005942(妋擣仺寈崘)
View()->ShowWarningDialogL(R_SMB_AF_STR_MSG2722, EFalse);
//mod-E D_82400003894,D_82400005942
//ADD-S D_82400005503
}
//ADD-S D_82400005503
// 偙偺張棟偵擖傞慜偵壒惡僷僗儕僜乕僗傪庤曻偟偰偄傞
// 嵞庢摼偺宊婡偼側偄偨傔丄偐側傜偢儕僜乕僗傪庢摼偵峴偒丄KErrArgument偑曉媝偝傟傞宊婡偼側偄偼偢
if(KErrArgument == iAppUi->RequestRscForPlayL()) // 嵞惗梡儕僜乕僗庢摼
{
// 傛偭偰尰忬偙偙偵偼杮棃擖偭偰偙側偄
iAsyncState->SetUserPlayConfirm(EFalse);
iModel->SetConfirmPlay();
}
}
//</HandleCommandL Impl>
//<Etc PrivateAPI>
/**
* 壒柭摦奐巒帪偺夋柺張棟
*
* @param TSmbMusicAPSinglePlayerViewState
* @param TBool aBool 庢摼偟偨墘憈帪娫傪曗惓偡傞偐偳偆偐
* @return void
* @memo 埲壓丄屻偱徻嵶巇條偵斀塮丅<br>
* 墘憈帪偺夋柺張棟傪慜屻偵傢偗偨偲偙傠丄柭摦屻張棟偼偡傋偰摨偠偵側偭偰偟傑偭偨偨傔
*/
void CSmbMusicAPSinglePlayerCommand::StartPlayViewL(TSmbMusicAPSinglePlayerViewState aViewState, TDrawNow aDrawNow)
{
CSmbMusicAPSinglePlayerView* view = View();
TUint volume = iModel->Volume();
view->SetPlayStartView(aViewState, volume, PlayTimeL(), aDrawNow);
if(TSmbMusicAPSinglePlayerStateController::EComplete == iAsyncState->InitialCondition()) // Disconnect拞偲偄偆偙偲偼丄僞僀儅傪傑傢偡昁梫偑側偄
{
StartTimer();
}
else
{
CancelTimer(); // 擮偺偨傔
}
}
/**
* 嵞惗傪搳偘傞慜偺妋擣張棟
*
* @memo ADD824 ForAllocateAudioPath & (Allocate Resource -> Confirm) -> (Confirm -> AllocateResource)
* @param 側偟
* @return TBool EFalse:埲壓張棟偟側偄/ETrue:埲壓張棟懕峴
*/
TBool CSmbMusicAPSinglePlayerCommand::ConfirmBeforePlayL()
{
// 儅僫乕儌乕僪妋擣
CSmbMusicAPSinglePlayerCommand::TStartPlayConfirm mannerModeConfirm(EStartPlay);
CSmbMusicAPSinglePlayerCommand::TStartPlayConfirm audioRoutingConfirm(EStartPlay);
audioRoutingConfirm = AudioRoutingConfirmL(); // Show SelectionDialog
if(EStartPlay == audioRoutingConfirm)
{
mannerModeConfirm = MannerModeConfirmL(); // Show SelectionDialog
}
// 偳偪傜偐偱偄偄偊偲摎偊偨 and 僽儔僂僓婲摦 仺 僾儗僀儎廔椆
if(EStartExit == mannerModeConfirm|| EStartExit == audioRoutingConfirm)
{
iAppUi->HandleCommandL(ESmbMusicAPSinglePlayerCmdClearExitPlayer);
return EFalse;
}
// 偳偪傜偐偱偄偄偊偲摎偊偨
if(EStartPause == mannerModeConfirm || EStartPause == audioRoutingConfirm)
{
if(EAlready == iAppUi->PlayConfirm())
{
iAppUi->SetPlayConfirm(ENeed);
}
SetPauseViewL();
return EFalse;
}
return ETrue;
}
/**
* 儅僫乕儌乕僪妋擣張棟
*
* @param 側偟
* @return CSmbMusicAPSinglePlayerCommand::TStartPlayConfirm EStartExit:傾僾儕廔椆/EStartPause:掆巭夋柺偺嶌惉/EStartPlay:嵞惗奐巒
*/
CSmbMusicAPSinglePlayerCommand::TStartPlayConfirm CSmbMusicAPSinglePlayerCommand::MannerModeConfirmL()
{
CSmbMusicAPSinglePlayerView* view = View();
if(ENeed == iAppUi->IsPlayConfirm())
{
TInt ret = view->ShowSelectionDialogL(R_SMB_AF_STR_MSG919, R_SMB_AF_STR_ITM002, R_SMB_AF_STR_ITM001); // "吓坝澳迴唫艂
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -