📄 smbmusicapsingleplayerview.cpp
字号:
void CSmbMusicAPSinglePlayerView::SetDuration(TInt aDuration)
{
iDuration = aDuration;
CSkonProgressBar* playTimeBar = static_cast<CSkonProgressBar*>(ComponentControl(EPlayTimeBar));
CSmbMusicAPSinglePlayerDispPlayTimeCtrl* number = static_cast<CSmbMusicAPSinglePlayerDispPlayTimeCtrl*>(ComponentControl(EPlayTimeNumber));
number->InitialPlayTimeControl(iPlayTime,iDuration);
TInt total = iDuration/KSecToMSec;
if(0 >= total)
{
total = 1;
}
playTimeBar->SetFinalValue(total);
}
/**
* 嬋柤丒傾乕僥傿僗僩柤丒傾儖僶儉柤偺僥僉僗僩傪愝掕偡傞
*
* @param TControlId 嬋柤/傾乕僥傿僗僩柤/傾儖僶儉柤偺偳偺僐儞僩儘乕儖偵愝掕偡傞偐
* @param const TDesC& 昞帵暥帤楍
* @return void
*/
void CSmbMusicAPSinglePlayerView::SetInfoTextL(TControlId aId,const TDesC& aDes)
{
CSkonTextLabel* label = static_cast<CSkonTextLabel*>(ComponentControl(aId));
TInt length(0);
if(NULL != &aDes)
{
length = aDes.Length();
if(KMaxNumberOfSongInfoChar < length || KMinDispInfoLength > length)
{
length = KMinDispInfoLength;
}
}
if(NULL == label->Text())
{
if(length > KMinDispInfoLength)
{
label->SetTextL(aDes);
}
else
{
label->SetTextL(KNullText);
}
}
else if(0 != length)
{
if(0 != (label->Text())->Compare(aDes))
{
label->SetTextL(aDes);
}
}
if(0 == (label->Text())->Length())
{
HBufC* text = CEikonEnv::Static()->AllocReadResourceLC(R_SMB_AF_STR_WRD2878);
label->SetTextL(*text);
CleanupStack::PopAndDestroy();
}
label->DrawDeferred();
}
/**
* to慜夋柺慗堏張棟
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerView::ReturnPrevStatusL()
{
if(ESmbMusicAPSinglePlayerPlayPause == iState)
{
ProcessCommandL(ESmbMusicAPSinglePlayerCmdClearExitPlayer); //TRK4549
}
else // 偦傟埲奜(嵞惗拞)
{
ProcessCommandL(ESmbMusicAPSinglePlayerCmdPlayPause);
}
}
/**
* 夋柺Active壔姰椆帪張棟
*
* @param const TVwsViewId& aViewId
* @param TUid aCustomMessageId CustomMessageID
* @param const TDesC8& aCustomMessage CustomMessage
* @return void
*/
void CSmbMusicAPSinglePlayerView::DoViewActivatedL(const TVwsViewId& /* aViewId*/,
TUid aCustomMessageId,
const TDesC8& aCustomMessage)
{
if(KSmbMusicAPSinglePlayerStartUid == aCustomMessageId)
{
TUint length = aCustomMessage.Length();
if (length >= sizeof(TSmbMusicAPSinglePlayerStartParam))
{
iAfEnv.SetReturnView(aCustomMessage);
iAfEnv.SetMessageAsParameterL(aCustomMessageId, aCustomMessage);
}
TSmbMusicAPSinglePlayerStartParamBuf param;
param.Copy(aCustomMessage);
SetInitialSettings( param().iSongID, 0,
param().iPlayStartTime, param().iPlayEndTime,
param().iCountPlayLimit, param().iPlayEnd,
param().iDeleteSong, ESongId);
ProcessCommandL(ESmbMusicAPSinglePlayerCmdStartPlayer);
}
else if(KSmbMusicAPSinglePlayerStartForContentsIdUid == aCustomMessageId)
{
TUint length = aCustomMessage.Length();
if (length >= sizeof(TSmbMusicAPSinglePlayerStartForContentsIdParam))
{
iAfEnv.SetReturnView(aCustomMessage);
iAfEnv.SetMessageAsParameterL(aCustomMessageId, aCustomMessage);
}
TSmbMusicAPSinglePlayerStartForContentsIdParamBuf param;
param.Copy(aCustomMessage);
SetInitialSettings( 0, param().iContentsID,
param().iPlayStartTime, param().iPlayEndTime,
param().iCountPlayLimit, param().iPlayEnd,
param().iDeleteSong, EContentsId);
// 儅僫乕儌乕僪傪妋擣偟偨傝怓乆偲丅嵞惗奐巒張棟
ProcessCommandL(ESmbMusicAPSinglePlayerCmdStartPlayer);
}
// iActivated = ETrue;
}
/**
* 弶婜愝掕
*
* @param TUint64 aSongId
* @param TInt aContentsId
* @param TUint aPlayStartTime
* @param TUint aPlayEndTime
* @param TBool aCountPlayLimit
* @param TBool aPlayEnd
* @param TBool aDeleteSong
* @param TInt aState
* @return void
*/
void CSmbMusicAPSinglePlayerView::SetInitialSettings( TUint64 aSongId, TInt aContentsId,
TUint aPlayStartTime, TUint aPlayEndTime,
TBool aCountPlayLimit, TBool aPlayEnd,
TBool aDeleteSong, TInt aState)
{
CSmbMusicAPSinglePlayerAppUi* appUi = static_cast<CSmbMusicAPSinglePlayerAppUi*>(iCoeEnv->AppUi());
TSmbMusicAPSinglePlayerInitialSettings initialSettings;
initialSettings.iCountPlayLimit = aCountPlayLimit;
initialSettings.iCreateSongItemState = static_cast<TCreateSongItemState>(aState);
initialSettings.iDeleteSong = aDeleteSong;
initialSettings.iPlayEnd = aPlayEnd;
initialSettings.iPlayStartTime = aPlayStartTime;
initialSettings.iPlayEndTime = aPlayEndTime;
initialSettings.iSongId = aSongId;
initialSettings.iContentsId = aContentsId;
initialSettings.iIsCpPlay = (0 != aPlayEndTime) ? ETrue: EFalse;
//ADD-S D_8240000430俈
initialSettings.iLicenseCheck = KLicenseCheck;
//ADD-E D_8240000430俈
appUi->SetInitialSettings(initialSettings);
iPlayTime = initialSettings.iPlayStartTime; // 嵞惗奐巒帪娫愝掕
}
/**
* 僶僢僋儔僀僩揰摂帪張棟
* @memo 徻嵶愝寁彂偵偁偲偱捛壛
* @param丂TUint32 aPlayTime 嵞惗宱夁帪娫
* @return void
*/
void CSmbMusicAPSinglePlayerView::BackLightOn(TUint32 aPlayTime)
{
// 掆巭仺掆巭忬懺偱偺揰摂暘偑忕挿偩偑丄尭傜偡偮傕傝偼側偄
// 僟僀傾儘僌昞帵拞偼僉乕僈僀僟儞僗傪嵞昤夋偟偰偼偄偗側偄!!!
// 帪娫摍偼丄僟僀傾儘僌偑昞帵偝傟偨偲偒偲抣偑曄傢偭偰偄傞偙偲偼側偄偺偱嵞昤夋偟側偔偰椙偄
if(ENone != iShowDialog)
{
return;
}
// 宱夁帪娫愝掕
iPlayTime = aPlayTime; // TUInt偱儈儕昩
DrawPlayTime(); // 嵞昤夋
// 僉乕僈僀僟儞僗傪嵞昤夋
KeyGuidance()->DrawNow();
// 僕儍働僢僩夋憸丒昞帵忣曬偼丄堦嬋嵞惗僾儗僀儎偱偼堦嬋偟偐嵞惗懳徾偵側傜側偄偨傔丄
// 僶僢僋儔僀僩偑徚偊偰偄傞偆偪偵曄壔偡傞偙偲偼側偄
// 壒検傕傑偨丄憖嶌側偟偱曄壔偡傞偙偲偼側偄
}
/**
* 僶僢僋僌儔僂儞僪
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerView::HandleBackGroundL()
{
// 忬懺傪掆巭偵曄壔
iState = ESmbMusicAPSinglePlayerPlayPause;
//ADD-S D_82400014729
iCurrentRightLeftArrowState &= ~ESkonKeyGuidanceArrowRight; // 塃仯傪徚偡
//ADD-S D_82400014729
// 忬懺曄壔
DrawStateIcon();
// 僾儘僷僥傿僄乕僕僃儞僩偵愝掕
RPGPropAgent& propAgent = iAfEnv.PropAgent();
SmbPGMusic::SetSinglePlayerStateL(propAgent, ESmbPGMusicAPSinglePlayerStateNotPlaying);
// 僉乕僈僀僟儞僗擖傟懼偊
TInt keyGuidanceId = KViewState[KKeyguidance][ESmbMusicAPSinglePlayerPlayPause];
TBool err = EFalse;
SetNewKeyGuidanceL(keyGuidanceId, err);
if(EFalse != err)
{
KeyGuidance()->DrawNow();
}
iSetLcdPowerSaveOff = EFalse; //FW偑彑庤偵傗偭偰偔傞偺偱
}
/**
* CBA栴報偺昞帵忬懺傪曉偡
*
* @param 側偟
* @return TInt CBA栴報忬懺
*/
TInt CSmbMusicAPSinglePlayerView::CurrentArrowState() const
{
//DEL-s D_82400014729
// TInt arrowState = 0;
//
// switch(iState)
// {
// case ESmbMusicAPSinglePlayerPlay: // 忋壓嵍塃
// {
// if(EFalse != IsCpPlay())
// {
// arrowState = ESkonKeyGuidanceArrowUp // 壒検
// | ESkonKeyGuidanceArrowDown // 壒検
// | ESkonKeyGuidanceArrowLeft; // 摢弌偟
// }
// else
// {
// arrowState = ESkonKeyGuidanceArrowUp
// | ESkonKeyGuidanceArrowDown
// | ESkonKeyGuidanceArrowLeft
// | ESkonKeyGuidanceArrowRight;
// }
// break;
// }
// case ESmbMusicAPSinglePlayerNumberOfPlayState: // 忋壓偺傒
// {
// arrowState = ESkonKeyGuidanceArrowUp
// | ESkonKeyGuidanceArrowDown;
// break;
// }
//
// case ESmbMusicAPSinglePlayerPlayPause:
// {
// arrowState = ESkonKeyGuidanceArrowUp // 壒検
// | ESkonKeyGuidanceArrowDown // 壒検
// | ESkonKeyGuidanceArrowLeft; // 摢弌偟
// break;
// }
// default:
// // 嵞惗丒掆巭夋柺峔抸慜偵屇偽傟傞偨傔丄偛偔晛捠偺僷僗)
// // 憗憲傝/栠偟拞偼CBA仮傪昞帵偟側偄
// break;
// }
//DEL-E D_82400014729
//ADD-S D_82400014729
TInt arrowState = 0;
switch(iState)
{
case ESmbMusicAPSinglePlayerPlay: // 忋壓嵍塃
case ESmbMusicAPSinglePlayerPlayPause:
{
arrowState = iCurrentUpDownArrowState | iCurrentRightLeftArrowState;
break;
}
case ESmbMusicAPSinglePlayerNumberOfPlayState: // 忋壓偺傒
{
arrowState = iCurrentUpDownArrowState;
break;
}
default:
// 嵞惗丒掆巭夋柺峔抸慜偵屇偽傟傞偨傔丄偛偔晛捠偺僷僗)
// 憗憲傝/栠偟拞偼CBA仮傪昞帵偟側偄
break;
}
//ADD-E D_82400014729
return arrowState;
}
/**
* 徣揹椡偺偨傔SuperDuke傪Off偵偡傞
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerView::PowerSavingL()
{
ProcessCommandL(ESmbMusicAPSinglePlayerCmdPowerSaving);
}
/////////////Setter Getter//////////////////
/**
* 尰忬偺View偺昞帵忬懺傪曉偡
*
* @param 側偟
* @return TSmbMusicAPSinglePlayerViewState 尰嵼偺View偺昞帵忬懺
*/
TSmbMusicAPSinglePlayerViewState CSmbMusicAPSinglePlayerView::ViewState()
{
return iState;
}
/**
* 尰嵼偺宱夁帪娫傪愝掕偡傞
*
* @param TUint 愝掕偡傞宱夁帪娫
* @return void
*/
void CSmbMusicAPSinglePlayerView::SetPlayTime(TUint aTime)
{
iPlayTime = aTime; // 晧偺抣傗丄戝偒偡偓傞抣偱傕丄偙偙偱偼愝掕偡傞丅昤夋帪偵曗惓
}
/**
* 尰嵼偺宱夁帪娫傪庢摼偡傞
*
* @param 側偟
* @return TUint 愝掕偝傟偰偄傞宱夁帪娫
*/
TUint CSmbMusicAPSinglePlayerView::PlayTime()
{
return iPlayTime;
}
/**
* 憤僾儗僀帪娫傪庢摼偡傞
*
* @param 側偟
* @return TUint 憤僾儗僀帪娫
*/
TUint CSmbMusicAPSinglePlayerView::TotalPlayTime()
{
return iDuration;
}
/**
* 尰嵼僟僀傾儘僌傪昞帵拞偐偳偆偐傪庢摼偡傞
*
* @param 側偟
* @return TBool ETrue/EFalse(昞帵偟偰偄傞/偟偰偄側偄)
*/
TBool CSmbMusicAPSinglePlayerView::IsShowDialog()
{
return (ENone != iShowDialog);
}
/**
* 尰嵼昞帵拞偺僟僀傾儘僌傪庢摼偡傞
*
* @param 側偟
* @return TShowDialogPattern
*/
CSmbMusicAPSinglePlayerView::TShowDialogPattern CSmbMusicAPSinglePlayerView::DiarogPattern()
{
return iShowDialog;
}
////////////private/////////////////////////
/**
* 嵞惗忬懺傪昞偡夋憸傪昤夋偡傞
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerView::DrawStateIcon()
{
CWindowGc& gc = iEikonEnv->SystemGc();
ActivateGc();
SkonUtils::DrawBackGround(gc,
SmbMusicAPSinglePlayerIconUtils::AdjustRect(TRectOrg::MakeRect(KPlayStateRect), TPointOrg::MakePoint(KAdjustBrush)));
gc.BitBltMasked(SmbMusicAPSinglePlayerIconUtils::AdjustPoint(TPoint(KPlayStateRect.iPointX, KPlayStateRect.iPointY), TPointOrg::MakePoint(KAdjustBrush)),
iStateIcon[iState]->Bitmap(),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -