📄 smbmusicapsingleplayerview.cpp
字号:
}
}
if(EEventKey != aType) // EEvent埲奜偼偲傜側偄.
{
return res;
}
if(aKeyEvent.iModifiers & EWcdmaMpModifierShortPress) // 抁墴偟
{
if(EWcdmaMpKeyLeft == aKeyEvent.iCode)
{
//ADD-S D_82400009861
if(EFalse == IsSetSongHeadInCpPlay())
{
//ADD-E D_82400009861
ProcessCommandL(ESmbMusicAPSinglePlayerCmdSetSongHead);
//ADD-S D_82400009861
}
//ADD-E D_82400009861
}
//DEL-S D_82400009859
// switch(aKeyEvent.iCode)
// {
// case EWcdmaMpKeyLeft:
// {
// // 嬫娫嵞惗偱側偄応崌丄嬫娫嵞惗偺摢弌偟偱側偄応崌
// // 忦審傪丄暿応強偵堏摦
// // state偺傂偲偵乽嬫娫嵞惗摢弌偟乿傪傕偭偰傕傜偆偺偱丄偙偙偼僐儅儞僪傪棳偡偩偗偵偡傞
// SmbMusicAPSinglePlayerLog::OutputLog(KView, EView, ELogLevelLow,_L("OfferKey LeftEvent IsSetSOngHeadCpPlay():%d"), IsSetSongHeadInCpPlay());
// if(EFalse == IsSetSongHeadInCpPlay())
// {
// ProcessCommandL(ESmbMusicAPSinglePlayerCmdSetSongHead);
// }
// res = EKeyWasConsumed;
// break;
// }
//
// case EWcdmaMpKeyClear:
// {
// ReturnPrevStatusL();
// res = EKeyWasConsumed;
// break;
// }
// }
//DEL-E D_82400009859
}
//ADD-S D_82400009859
else if(aKeyEvent.iModifiers & EWcdmaMpModifierLongPress)
//ADD-E D_82400009859
//DEL-S D_82400009859
// else if(aKeyEvent.iModifiers & EWcdmaMpModifierLongPress && EFalse == IsCpPlay()) // 挿墴偟
//DEL-E D_82400009859
{
if(ESmbMusicAPSinglePlayerPlay == iState)
{
switch (aKeyEvent.iCode)
{
// 嵍塃偟偐丄挿墴偟僀儀儞僩偼側偄丅偩偐傜丄GenerateExtraKeyUpEvent偵懳偡傞僈乕僪偼偐偗偰偄側偄
case EWcdmaMpKeyLeft:
{
SetLCDPowerSaveOffL(ETrue);
static_cast<CSmbMusicAPSinglePlayerAppUi*>(iEikonEnv->EikAppUi())->GenerateExtraKeyUpEvent(aKeyEvent.iScanCode);
ProcessCommandL(ESmbMusicAPSinglePlayerCmdPlayFR);
res = EKeyWasConsumed;
break;
}
case EWcdmaMpKeyRight:
{
SetLCDPowerSaveOffL(ETrue);
static_cast<CSmbMusicAPSinglePlayerAppUi*>(iEikonEnv->EikAppUi())->GenerateExtraKeyUpEvent(aKeyEvent.iScanCode);
ProcessCommandL(ESmbMusicAPSinglePlayerCmdPlayFF);
res = EKeyWasConsumed;
break;
}
}
}
}
else
{
//ADD-S D_82400009859
if( ESmbMusicAPSinglePlayerPlay == iState
&& EWcdmaMpKeyClear != aKeyEvent.iCode
&& EFalse == IsCpPlay())
{
//ADD-E D_82400009859
static_cast<CSmbMusicAPSinglePlayerAppUi*>(iEikonEnv->EikAppUi())->GenerateExtraKeyEvent(CSmbAfAppUi::EExtraKeyEventLongShort);
//ADD-S D_82400009859
}
else
{
if(ESmbMusicAPSinglePlayerPlayFF != iState && ESmbMusicAPSinglePlayerPlayFR != iState)
{
switch(aKeyEvent.iCode)
{
case EWcdmaMpKeyClear:
{
ReturnPrevStatusL();
res = EKeyWasConsumed;
//ADD-S D_82400015332
break;
//ADD-E D_82400015332
}
case EWcdmaMpKeyLeft:
{
if(EFalse == IsSetSongHeadInCpPlay())
{
ProcessCommandL(ESmbMusicAPSinglePlayerCmdSetSongHead);
}
res = EKeyWasConsumed;
//ADD-S D_82400015332
break;
//ADD-E D_82400015332
}
}
}
}
//ADD-E D_82400009859
}
if (EKeyWasConsumed != res)
{
res = CSmbAfView::OfferKeyEventL (aKeyEvent, aType);
}
return res;
}
///////// 夋柺昤夋 /////////////////
/**
* 憖嶌帪偺夋柺曄峏張棟
*
* @param TSmbMusicAPSinglePlayerViewState aViewState 慗堏偡傞忬懺
* @return void
*/
void CSmbMusicAPSinglePlayerView::SetPlayPrepareViewL(TSmbMusicAPSinglePlayerViewState aViewState)
{
iState = aViewState;
//ADD-S D_82400014729
// 仯偺愝掕
if(ESmbMusicAPSinglePlayerPlay == iState)
{
iCurrentRightLeftArrowState |= ESkonKeyGuidanceArrowLeft; // 嵍傪弌偡
if(EFalse == IsCpPlay())
{
iCurrentRightLeftArrowState |= ESkonKeyGuidanceArrowRight; // 嬫娫偱側偗傟偽塃傪弌偡
}
}
else if(ESmbMusicAPSinglePlayerPlayPause == iState) // Pause偼堷悢Plus
{
iCurrentRightLeftArrowState &= ~ESkonKeyGuidanceArrowRight; // 塃傪徚偡
}
//ADD-E D_82400014729
TInt keyGuidanceId = 0;
for(TInt i = 0; i < ESmbMusicAPSinglePlayerNumberOfPlayState; i++)
{
if(KViewState[KState][i] == aViewState)
{
keyGuidanceId = KViewState[KKeyguidance][i];
}
}
__ASSERT_DEBUG( 0 != keyGuidanceId, User::Panic(KPanicCategory, EInvalidViewState));
// 忬懺曄壔
DrawStateIcon();
// 僾儘僷僥傿僄乕僕僃儞僩偵丄忬懺傪愝掕
if(aViewState == ESmbMusicAPSinglePlayerPlay
|| aViewState == ESmbMusicAPSinglePlayerPlayPause)
{
TSmbPGMusicAPSinglePlayerState state;
state = (ESmbMusicAPSinglePlayerPlay == aViewState) ? ESmbPGMusicAPSinglePlayerStatePlaying : ESmbPGMusicAPSinglePlayerStateNotPlaying;
RPGPropAgent& propAgent = iAfEnv.PropAgent();
SmbPGMusic::SetSinglePlayerStateL(propAgent, state);
}
TBool err = EFalse;
SetNewKeyGuidanceL(keyGuidanceId, err);
if(EFalse != err)
{
KeyGuidance()->DrawNow();
}
}
/**
* 柭摦屻偺夋柺曄峏張棟
*
* @param TSmbMusicAPSinglePlayerViewState aViewState 慗堏偡傞忬懺
* @param TInt aVolume 壒検
* @param TInt aPlayTime 嵞惗宱夁帪娫
* @param void
*/
void CSmbMusicAPSinglePlayerView::SetPlayStartView(TSmbMusicAPSinglePlayerViewState aViewState, TUint aVolume, TUint32 aPlayTime, TDrawNow aDrawNow)
{
if(iState != aViewState)
{
SmbMusicAPSinglePlayerLog::OutputLog(KView, EView, ELogLevelLow,_L("iState%d, aViewState:%d"), iState, aViewState);
}
if(iVolume != aVolume)
{
SetVolume(aVolume);
}
if( iPlayTime != aPlayTime
|| EDrawNow == aDrawNow) // 嫮惂嵞昤夋
{
iPlayTime = aPlayTime;
DrawPlayTime();
}
}
/**
* 怴偟偄壒検傪昤夋偟丄嵞昤夋傪峴偆
* @memo 儐乕僓乕憖嶌偱曄峏偡傞傕偺側偺偱丄僆僼僗僋儕乕儞偼巊梡偟側偄偱昤夋
* @memo 昁偢丄Model僋儔僗偺SetVolume偱僄儔乕偑曉傜側偐偭偨抣(斖埻撪偺抣)傪愝掕偡傞偙偲
* @param TInt aVolume 壒検
* @param TDrawNow aDrawNow 偡偖偵嵞昤夋偡傞偐偳偆偐
* @return void
*/
void CSmbMusicAPSinglePlayerView::SetVolume(TInt aVolume, TDrawNow aDrawNow)
{
//仯愝掕(偙傟傪屇傫偩帪揰偱婛偵iVolume偲aVolume偑堘偭偰偄偨偙偲偑傢偐偭偰偄傞偺偱)
//ADD-S D_82400014729
if(KMinVolume == aVolume)
{
iCurrentUpDownArrowState &= ~ESkonKeyGuidanceArrowDown;
KeyGuidance()->DrawNow();
}
else if(KMaxVolume == aVolume)
{
iCurrentUpDownArrowState &= ~ESkonKeyGuidanceArrowUp;
KeyGuidance()->DrawNow();
}
else if(iVolume == KMinVolume || iVolume == KMaxVolume || EFalse == iStartPlay)
{
iCurrentUpDownArrowState |= ESkonKeyGuidanceArrowDown
| ESkonKeyGuidanceArrowUp;
KeyGuidance()->DrawNow();
}
//ADD-E D_82400014729
iVolume = aVolume;
// 僾儘僌儗僗僶乕嵞昤夋
CSkonProgressBar* bar = static_cast<CSkonProgressBar*>(ComponentControl(EVolumeBar));
bar->SetAndDraw(iVolume);
CWindowGc& gc = iEikonEnv->SystemGc();
ActivateGc();
// gc.SetBrushOrigin(MakePoint(KAdjustBrush));
SkonUtils::DrawBackGround(gc,
SmbMusicAPSinglePlayerIconUtils::AdjustRect(TRectOrg::MakeRect(KVolumeRect), TPointOrg::MakePoint(KAdjustBrush)));
//ADD-S D_82400014729
if(0 < (iVolume/10))
{
//ADD-E D_82400014729
gc.BitBltMasked(SmbMusicAPSinglePlayerIconUtils::AdjustPoint(TPoint(KVolumeRect.iPointX, KVolumeRect.iPointY), TPointOrg::MakePoint(KAdjustBrush)), iVolumeIcon[iVolume/10]->Bitmap(),
TRect(TPoint(0,0), TSize(KVolumeRect.iWidth, KVolumeRect.iHeight)),
iVolumeIcon[iVolume/10]->Mask(),
EFalse);
//ADD-S D_82400014729
}
//ADD-E D_82400014729
gc.BitBltMasked(SmbMusicAPSinglePlayerIconUtils::AdjustPoint(TPoint(KVolumeRect.iPointX + KVolumeRect.iWidth, KVolumeRect.iPointY), TPointOrg::MakePoint(KAdjustBrush)),
iVolumeIcon[iVolume%10]->Bitmap(),
TRect(TPoint(0,0), TSize(KVolumeRect.iWidth, KVolumeRect.iHeight)),
iVolumeIcon[iVolume%10]->Mask(),
EFalse);
DeactivateGc();
if(EDrawNow == aDrawNow) // 抣偑摨偠偱傕丄僾儘僌儗僗僶乕傪嵞昤夋偡傞
{
bar->DrawNow();
}
}
/**
* 嵞惗宱夁帪娫傪枮椆偱嵞昤夋
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerView::DrawPlayTimeFull()
{
iPlayTime = iDuration;
DrawPlayTime();
}
/**
* 嵞惗宱夁帪娫嵞昤夋
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerView::DrawPlayTime() const
{
CSmbMusicAPSinglePlayerDispPlayTimeCtrl* number = static_cast<CSmbMusicAPSinglePlayerDispPlayTimeCtrl*>(ComponentControl(EPlayTimeNumber));
number->SetNewTime(iPlayTime);
// 僾儘僌儗僗僶乕嵞昤夋
if(iDuration > 0)
{
CSkonProgressBar* playTimeBar = static_cast<CSkonProgressBar*>(ComponentControl(EPlayTimeBar));
playTimeBar->SetAndDraw(iPlayTime / KSecToMSec);
}
}
/**
* 僕儍働僢僩昞帵梡僀儊乕僕儔儀儖昤夋傪峴偆
*
* @param CFbsBitmap* aImage 僕儍働僢僩夋憸
* @param CFbsBitmap* aImage_m 僕儍働僢僩夋憸儅僗僋
* @return void
*/
void CSmbMusicAPSinglePlayerView::SetImage(CFbsBitmap* aImage, CFbsBitmap* aImage_m)
{
__ASSERT_DEBUG(NULL != aImage, User::Panic(KPanicCategory, EIImageIsNULL));
// __ASSERT_DEBUG(NULL != iImage_m, User::Panic(KPanicCategory, EIImageMIsNULL)); // 儅僗僋夋憸偼側偄偙偲傕偁傞
CSkonImageLabel* label = static_cast<CSkonImageLabel*>(ComponentControl(EPicture));
// 僙儞僞儕儞僌張棟
TSize jacketSize = TSize(KJacketImageRect.iWidth, KJacketImageRect.iHeight);
TSize imageSize = aImage->SizeInPixels();
// 杮棃側傜偽廲墶斾偑昁梫丅
// 偩偑丄庢摼帪偵嵟戝僒僀僘傪愝掕偟偰偄傞偺偱丄偦偺僒僀僘傪挻偊偰偔傞偲偄偆偺偼僐儗偼柧傜偐偵堎忢宯丅巄掕
// 仸noImage偺夋憸偑偍偍偒偡偓傞偨傔昁梫
if(imageSize.iWidth > KJacketImageRect.iWidth)
{
imageSize.iWidth = KJacketImageRect.iWidth;
}
if(imageSize.iHeight > KJacketImageRect.iHeight)
{
imageSize.iHeight = KJacketImageRect.iHeight;
}
TInt adjustX = (jacketSize.iWidth - imageSize.iWidth) / 2;
TInt adjustY = (jacketSize.iHeight - imageSize.iHeight) / 2;
label->SetPicture(aImage, aImage_m);
label->SetExtent(SmbMusicAPSinglePlayerIconUtils::AdjustPoint(TPoint(KJacketImageRect.iPointX + adjustX, KJacketImageRect.iPointY + adjustY), TPointOrg::MakePoint(KAdjustBrush)), imageSize);
label->DrawDeferred();
}
/**
* 嬋忣曬昞帵晹偵丄儊儞僶偺僨乕僞傪愝掕偟丄嵞昤夋傪峴偆
*
* @param CSmbMusicMWLibPlayingDispInfo* aDispInfo 昞帵偡傞嬋忣曬傊偺億僀儞僞
* @return void
*/
void CSmbMusicAPSinglePlayerView::SetDispInfoL(CSmbMusicMWLibPlayingDispInfo* aDispInfo)
{
// 僨乕僞偑幚偼庢傟偰偄側偄応崌丄埲崀偺張棟傪峴傢側偄
if(NULL == aDispInfo)
{
SetInfoTextL(ESongName, KNullText);
SetInfoTextL(EAlbumName, KNullText);
SetInfoTextL(EArtistName, KNullText);
SetDuration(KErrDuration);
return;
}
const TSmbMusicMWLibPlayingDispInfo* dispInfo = aDispInfo->PlayingDispInfo();
// 憤帪娫(摨偠側傜愝掕偟側偄)
if(NULL != dispInfo)
{
if(dispInfo->iDuration != iDuration)
{ // 晧抣側傜丄堎忢抣偲偟偰偦偺傑傑愝掕偡傞
SetDuration(dispInfo->iDuration);
}
SetInfoTextL(ESongName, dispInfo->iMusicTitle); // 嬋柤
SetInfoTextL(EAlbumName, dispInfo->iMusicAlbum); // 傾儖僶儉柤
SetInfoTextL(EArtistName, dispInfo->iMusicArtist); // 傾乕僥傿僗僩柤
}
else
{ // 伀if偱彍偐傟傞傕偺埲奜OK
if(KErrDuration != iDuration && iDuration <= 0)
{
SetDuration(KErrDuration);
}
SetInfoTextL(ESongName, KNullText); // 嬋柤
SetInfoTextL(EAlbumName, KNullText); // 傾儖僶儉柤
SetInfoTextL(EArtistName, KNullText); // 傾乕僥傿僗僩柤
}
}
/**
* 憤嵞惗帪娫傪愝掕偡傞
*
* @param TInt aDuration 憤嵞惗帪娫
* @memo 憤嵞惗帪娫偑庢摼偱偒側偐偭偨応崌偼丄晧抣傪愝掕偡傞
* @return void
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -