📄 smbmusicapsingleplayercommand.cpp
字号:
/*----------------------------------------------------------------------------*/
// Copyright (c) 2007 Sony Ericsson Mobile Communications Japan, Inc.
// All rights reserved.
/*----------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSinglePlayerCommand.cpp
//
// Description:
// 堦嬋嵞惗僐儅儞僪僋儔僗
//
// Modify:
// 2006-07-07 僐乕僪惍棟 K3Hirono
// 2006-07-11 憗憲傝廔椆丒嬋廔椆偑摨帪偵棃偰傕戝忎晇側傛偆懳張 K3Hirono
// 2006-07-12 嵞惗婜尷慜丒帪崗枹愝掕懳墳(壖)
// SuperDuke揹尮丒壒惡僷僗惂屼偺弴斣傪曄峏 K3Hirono
// 2006-07-18 PlayTime庢摼娭悢偺曄峏偵偲傕側偆廋惓
// 壒検憹/尭娭悢偺廋惓 K3Hirono
// 2006-08-05 僞僀儅娭楢傪View僋儔僗偐傜堏摦 K3Hirono
// 2006-08-24 儈儏乕僩嵞惗娭楢偺僐乕僪傪捛壛 K3Hirono
//
// 2007-02-01 PTX824Start
// 2007-06-26 D_82400003894 僒僽僗僋儕僾僔儑儞婜尷愗傟GP撪/奜偱昞帵偡傞儊僢僙乕僕ID傪曄峏
// 2007-07-04 D_82400005942 GP婜娫拞僟僀傾儘僌傪寈崘僟僀傾儘僌偵廋惓
// 2007-07-10 D_82400005503 捠忢嵞惗拞偵摢弌偟傪峴偆偲丄忦審偵偁偭偨僐儞僥儞僣偱GP拞寈崘僟僀傾儘僌偑昞帵偝傟傞
// 2007-07-18 D_82400007605 WMAErr捠抦僟僀傾儘僌偑僞僀儉傾僂僩偡傞(偟側偄傛偆曄峏)
// 2007-07-24 D_82400007238
// 2007-07-31 D_82400008237 RequestPlayRsc偲CancelPlayFR偺CrossCase
// 2007-09-12 D_82400014729 僉乕僈僀僟儞僗仯昤夋偺曄峏偺偨傔偺廋惓
// D_82400014805 Disconnect屻偺嬫娫嵞惗摢弌偟張棟
// 2007-09-23 D_82400015651, D_82400015652
// 2007-09-28 D_82400015989
// 2007-10-02 D_82400016111
/*------------------------------------------------------------------------*/
// $NoKeywords: $
#ifndef SMBMUSICAPSINGLEPLAYERCOMMAND_H_
#include "SmbMusicAPSinglePlayerCommand.h" // 堦嬋嵞惗僾儗僀儎乕Command僋儔僗
#endif //SMBMUSICAPSINGLEPLAYERCOMMAND_H_
#ifndef SMBMUSICAPSINGLEPLAYERMODEL_H_
#include "SmbMusicAPSinglePlayerModel.h" // 堦嬋嵞惗僾儗僀儎乕Model僋儔僗
#endif //SMBMUSICAPSINGLEPLAYERMODEL_H_
#ifndef SMBMUSICAPSINGLEPLAYERVIEW_H_
#include "SmbMusicAPSinglePlayerView.h" // 堦嬋嵞惗僾儗僀儎乕View僋儔僗
#endif //SMBMUSICAPSINGLEPLAYERVIEW_H_
#ifndef SMBMUSICAPSINGLEPLAYERAPPUI_H_
#include "SmbMusicAPSinglePlayerAppUi.h" // 堦嬋嵞惗僾儗僀儎乕AppUi僋儔僗
#endif //#ifndef SMBMUSICAPSINGLEPLAYERAPPUI_H_
#ifndef __SMBMUSICMWPLAYERIF_H__
#include <SmbMusicMWPlayerIF.h> // MW僾儗僀儎乕惂屼僋儔僗僀儞僞乕僼僃乕僗
#endif // __SMBMUSICMWPLAYERIF_H__
#ifndef SMBMUSICAPSINGLEPLAYERLOG_H_
#include "SmbMusicAPSinglePlayerLog.h" // 儘僌
#endif /* SMBMUSICAPSINGLEPLAYERLOG_H_ */
SEMCJ_NAMESPACE_BEGIN
#ifndef SMBMUSICAPSINGLEPLAYER_HRH__
#include "SmbMusicAPSinglePlayer.hrh"
#endif //#ifndef SMBMUSICAPSINGLEPLAYER_HRH__
#include <SmbAfWording.rsg> // 儚乕僨傿儞僌
#ifdef _DEBUG
_LIT(KPanicCategory, "CSMBMUSICAPSINGLEPLAYERCOMMAND");
#endif //#ifdef _DEBUG
// LOG梡
_LIT(KCommand, "SmbMusicAPSinglePlayerCommand");
// 慖戰僟僀傾儘僌曉抣
const TInt KYes = 0; // 乽偼偄乿傪慖戰
const TInt KNo = 1; // 乽偄偄偊乿傪慖戰 //ADD For D_82400011121
const TInt KVolumeIncrement = 1; // 壒検憹壛抣
const TInt KPlayTimeDelay = 1*1000*1000; ///< 1昩
const TInt KStopTimeDelay = 60*1000*1000; ///< 1暘
const TInt KProgressTimeDelay = 5*100*1000; ///< 0.5昩
const TUint KPlayTimeInc = 1000; ///< 嵞惗宱夁帪娫捠忢昞帵帪憹壛暘
/**
* 僐儞僗僩儔僋僞
*
* @param CSmbMusicAPSinglePlayerAppUi* aAppUi AppUi傊偺億僀儞僞
* @param CSmbMusicAPSinglePlayerModel* amodel Model傊偺億僀儞僞
*/
CSmbMusicAPSinglePlayerCommand::CSmbMusicAPSinglePlayerCommand(CSmbMusicAPSinglePlayerAppUi* aAppUi,
CSmbMusicAPSinglePlayerModel* aModel)
: iModel(aModel),
iAppUi(aAppUi)
{
__ASSERT_DEBUG(aModel != NULL,
User::Panic(KPanicCategory, EInvalidArgument));
__ASSERT_DEBUG(aAppUi != NULL,
User::Panic(KPanicCategory, EInvalidArgument));
}
/**
* 僨僗僩儔僋僞
*
* @param 側偟
*/
CSmbMusicAPSinglePlayerCommand::~CSmbMusicAPSinglePlayerCommand()
{
// 僞僀儅
if (iTimer)
{
iTimer->Cancel();
}
delete iTimer;
}
/**
* 2nd僐儞僗僩儔僋僞
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerCommand::ConstructL()
{
// 僞僀儅乕僋儔僗偺惗惉
//DEL-S D_82400015989
// iTimer = CPeriodic::NewL(CActive::EPriorityIdle);
//DEL-E D_82400015989
//ADD-S D_82400015989
iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
//ADD-E D_82400015989
iAsyncState = iModel->SinglePlayerStateInfo();
}
/**
* 僐儅儞僪張棟
*
* @param TInt aCommand
* @return MSmbAfCommandBase::TSmbAfCmdIdResponse 僐儅儞僪ID偺徚旓寢壥
*/
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPSinglePlayerCommand::HandleCommandL(TInt aCommand)
{
CSmbMusicAPSinglePlayerView* view = View();
switch(aCommand)
{
// 掆巭墴壓
case ESmbMusicAPSinglePlayerCmdPlayPause:
{
RequestPauseL();
break;
}
// 壒柭摦掆巭
case ESmbMusicAPSinglePlayerCmdStartPlayPauseView:
{
iAsyncState->SetPause();
StartPlayViewL(ESmbMusicAPSinglePlayerPlayPause);
iAppUi->SetMuteSpeakerAndConfirmL();
break;
}
// 憗憲傝墴壓
case ESmbMusicAPSinglePlayerCmdPlayFF:
{
RequestPlayFFL();
break;
}
// 憗憲傝壒柭摦奐巒
case ESmbMusicAPSinglePlayerCmdStartPlayFFView:
{
iAsyncState->SetPlayFF();
StartPlayViewL(ESmbMusicAPSinglePlayerPlayFF);
break;
}
// 憗栠偟墴壓
case ESmbMusicAPSinglePlayerCmdPlayFR:
{
RequestPlayFRL();
break;
}
// 憗栠偟壒柭摦奐巒
case ESmbMusicAPSinglePlayerCmdStartPlayFRView:
{
iAsyncState->SetPlayFR();
StartPlayViewL(ESmbMusicAPSinglePlayerPlayFR);
break;
}
// 憗憲傝掆巭憖嶌仺捠忢嵞惗
case ESmbMusicAPSinglePlayerCmdExitPlayFF:
{
RequestCancelPlayFFL();
break;
}
// 憗栠偟掆巭憖嶌仺捠忢嵞惗
case ESmbMusicAPSinglePlayerCmdExitPlayFR:
{
//ADD-S D_82400008237
if(EFalse != iAsyncState->IsResourceRequestComplete())
{
//ADD-E D_82400008237
RequestCancelPlayFRL();
//ADD-S D_82400008237
}
//ADD-E D_82400008237
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KCommand, ECommand, ELogLevelLow,_L("CancelPlayFRL In RequestPlayResource"));
}
break;
}
// 摢弌偟憖嶌
case ESmbMusicAPSinglePlayerCmdSetSongHead:
{
RequestSetSongHeadL();
break;
}
// 嵞惗墴壓
case ESmbMusicAPSinglePlayerCmdPlayStart:
{
RequestPlayL();
break;
}
// 捠忢嵞惗壒柭摦奐巒
case ESmbMusicAPSinglePlayerCmdStartPlayView:
{
// 捠忢壒柭摦奐巒忬懺偵慗堏偝偣傞(捠忢嵞惗摢弌偟忬懺偺夝彍偼僒乕僶忬懺曄峏傪敽傢側偄偨傔偙偙偱峴偆偟偐側偄)
iAsyncState->SetPlay();
view->SetStartPlay(ETrue);
StartPlayViewL(ESmbMusicAPSinglePlayerPlay);
break;
}
// 壒検憹壛
case ESmbMusicAPSinglePlayerCmdIncreaseVolume:
{
IncreaseVolumeL();
break;
}
// 壒検尭彮
case ESmbMusicAPSinglePlayerCmdDecreaseVolume:
{
DecreaseVolumeL();
break;
}
// 夋憸庢摼嵪傒丒View傊偺愝掕
case ESmbMusicAPSinglePlayerCmdSetImage:
{
iAppUi->LibRequestCompleteL(); // 僉儍僢僔儏偝傟偰偄傞Request偑偁傟偽幚峴偡傞
view->SetImage(iModel->GetImage(), iModel->GetImage_m());
break;
}
// 昞帵忣曬庢摼嵪丒View傊偺愝掕
case ESmbMusicAPSinglePlayerCmdSetDispInfo:
{
SetDispInfoL();
break;
}
// 僶僢僋儔僀僩偑徚偊偨
case ESmbMusicAPSinglePlayerCmdBackLightOff:
{
CancelTimer();
iModel->SetPowerSaving(ETrue);
break;
}
// 僶僢僋儔僀僩偑偮偄偨
case ESmbMusicAPSinglePlayerCmdBackLightOn:
{
BackLightOnL();
break;
}
// 墘憈晄壜
//MOD824
case ESmbMusicAPSinglePlayerCmdCannotPlay:
{
ShowWarningAndErrCodeExitL(R_SMB_AF_STR_MSG1408);
break;
}
// 帪崗愝掕側偟
case ESmbMusicAPSinglePlayerCmdRTCErr:
{
ShowWarningAndExitL(R_SMB_AF_STR_MSG137);
break;
}
// 婜尷慜
case ESmbMusicAPSinglePlayerCmdBeforePeriod:
{
ShowWarningAndExitL(R_SMB_AF_STR_MSG162);// 嵞惗壜擻擔慜偱偡\n嵞惗偱偒傑偣傫
break;
}
// 婜尷挻夁
case ESmbMusicAPSinglePlayerCmdOverPeriod:
{
DeleteConfirmExitL(R_SMB_AF_STR_MSG161);
break;
}
// 婜尷挻夁(嶍彍側偟)
case ESmbMusicAPSinglePlayerCmdOverPeriodWithoutDelete:
{
ShowWarningAndExitL(R_SMB_AF_STR_MSG1410); //嵞惗壜擻婜尷偑\n愗傟傑偟偨.
break;
}
// 夞悢挻夁
case ESmbMusicAPSinglePlayerCmdOverCount:
{
DeleteConfirmExitL(R_SMB_AF_STR_MSG160);
break;
}
// 夞悢挻夁(嶍彍側偟)
case ESmbMusicAPSinglePlayerCmdOverCountWithoutDelete:
{
ShowWarningAndExitL(R_SMB_AF_STR_MSG1409); //嵞惗壜擻夞悢偑\廔椆偟傑偟偨.
break;
}
// 嬋嶍彍姰椆
case ESmbMusicAPSinglePlayerCmdDeleteItemComplete:
{
CancelTimer(); // 嬋嶍彍屻偼廔椆偡傞偺偱僞僀儅傪廔椆
view->CloseProgressDialog();
view->ShowConfirmDialogL(R_SMB_AF_STR_MSG082);
iAppUi->HandleCommandL(ESmbMusicAPSinglePlayerCmdExitPlayer);
break;
}
// 嬋嶍彍幐攕
case ESmbMusicAPSinglePlayerCmdDeleteItemFailed:
{
CancelTimer(); // 嬋嶍彍屻偼廔椆偡傞偺偱僞僀儅傪廔椆
view->CloseProgressDialog();
view->ShowConfirmDialogL(R_SMB_AF_STR_MSG1163);
iModel->SetExitErrCode(KErrPermissionDenied);
iAppUi->HandleCommandL(ESmbMusicAPSinglePlayerCmdReturnErrCodeExitPlayer);
break;
}
// 儕僜乕僗庢摼僄儔乕
case ESmbMusicAPSinglePlayerCmdRscErr:
{
SetPauseViewL();
view->ShowWarningDialogL(R_SMB_AF_STR_MSG1411); // 懠偺婡擻偑婲摦拞偺偨傔婲摦偱偒傑偣傫
break;
}
// 儕僗僩廔椆
case ESmbMusicAPSinglePlayerCmdListEnd:
{
ListEndImplL();
break;
}
// FR嬋摢廔椆
case ESmbMusicAPSinglePlayerCmdListFront:
{
RequestPlayL();
break;
}
// 徣揹椡
case ESmbMusicAPSinglePlayerCmdPowerSaving:
{
iModel->SetPowerSaving(ETrue);
break;
}
// 僶僢僋僌儔僂儞僪堏峴
case ESmbMusicAPSinglePlayerCmdBackGround:
{
view->HandleBackGroundL();
CancelTimer();
break;
}
// 嫮惂嬋摢Redraw乮摢弌偟帪偵棙梡乯
case ESmbMusicAPSinglePlayerCmdRedrawViewForce:
{
//ADD-S D_82400014729
InitialStartTime();
//ADD-E D_82400014729
view->SetPlayStartView(ESmbMusicAPSinglePlayerPlayPause, iModel->Volume(), iModel->StartTime(), EDrawNow);
CancelTimer(); // 擮偺偨傔
break;
}
// 儐乕僓妋擣(夞悢惂尷)
//ADD824
case ESmbMusicAPSinglePlayerCmdUserConfirmLimitCnt:
{
UserConfirmLimitCntL();
break;
}
// 僒僽僗僋儕僾僔儑儞僐儞僥儞僣儔僀僙儞僗婜尷愗傟廔椆
//ADD824
case ESmbMusicAPSinglePlayerCmdLicenseErr:
{
// SetAutoCloseTime愝掕昁梫
//mod-S D_82400003894
ShowWarningAndExitL(R_SMB_AF_STR_MSG2627, EFalse);
//mod-E D_82400003894
break;
}
// 儊儌儕憓擖
//MOD824
case ESmbMusicAPSinglePlayerCmdMountExtMem:
{
ShowWarningAndErrCodeExitL(R_SMB_AF_STR_MSG2032);
break;
}
// 儊儌儕敳嫀
//MOD824
case ESmbMusicAPSinglePlayerCmdUnMountExtMem:
{
ShowWarningAndErrCodeExitL(R_SMB_AF_STR_MSG2033);
break;
}
// 僌儗乕僗僺儕僆僪婜娫拞捠抦
//ADD824
case ESmbMusicAPSinglePlayerCmdGracePriodContents:
{
GracePeriodContentsL();
break;
}
// SDVideo帪廔椆捠抦張棟
// ADD824
case ESmbMusicAPSinglePlayerCmdExitForSDVideo:
{
ShowWarningAndExitL(R_SMB_AF_STR_MSG2692);
break;
}
// WMADRMErr
//ADD824
case ESmbMusicAPSinglePlayerCmdWMADRMErr:
{
//D_82400007605 MOD-S 堷悢(EFalse(僞僀儉傾僂僩偟側偄愝掕)捛壛)
ShowWarningAndExitL(R_SMB_AF_STR_MSG2694, EFalse);
//D_82400007605 MOD-E
break;
}
// CP忣曬偑側偄DataBox撪偺僐儞僥儞僣
//ADD824
case ESmbMusicAPSinglePlayerCmdNoneCpInfoDataBox:
{
DeleteConfirmExitL(R_SMB_AF_STR_MSG2695);
break;
}
// 嫮惂揑偵堦帪掆巭夋柺傪嶌傞
//ADD824
case ESmbMusicAPSinglePlayerCmdRedrawPauseViewForce:
{
SetPauseViewL();
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -