📄 smbmusicapmainplayerplayview.cpp
字号:
ChangeState(ESmbMusicAPMainPlayerPlayInitial); // TRK:10282 2006.09.30
TBool drawDecideKey = EFalse; //寛掕僉乕昞帵偣偢
TBool isPlaying = EFalse; //嵞惗拞偱偼側偄
iDrawer->DrawIdlePictureL(drawDecideKey, isPlaying);
}
}
}
// 僇儗儞僩儊僢僙乕僕ID偵懳墳偟偨張棟傪峴偆丅
switch (iCurMessageID.iUid)
{
case KSmbMusicAPMainPlayerChangeViewMsgUidValue:
// 價儏乕愗懼偊張棟
iState->ChangeViewFromFilterViewL(); //Y: State偵埾忳
break;
case KSmbMusicAPMainPlayerPlayListMsgUidValue:
// 儕僗僩嵞惗張棟
{
changeFilterView = iState->PlaySelectedListL(); //Y: State偵埾忳
break;
}
case KSmbMusicAPMainPlayerPlaySongListMsgUidValue:
// 嬋堦棗儕僗僩嵞惗張棟
{
changeFilterView = iState->PlaySelectedSongL();
break;
}
case KSmbMusicAPMainPlayerPlayResumeMsgUidValue:
// 儗僕儏乕儉嵞惗張棟
changeFilterView = iState->StartPlayResumeL();
break;
// case KSmbMusicAPMainPlayerPlayContMsgUidValue:
// // 宲懕嵞惗
// {
// changeFilterView = ContinuousPlayL();
// break;
// }
case KSmbMusicAPMainPlayerUpdateInfoUidValue:
// 夋柺曄峏捠抦
{
const TSmbMusicAPSyncEngineAppSyncInfo* param = reinterpret_cast<const TSmbMusicAPSyncEngineAppSyncInfo*>(aCustomMessage.Ptr());
UpdatePictureInfoL(*param);
break;
}
default:
if (ESmbMusicAPMainPlayerPlayDispNone != iDrawer->DispStatus())
{
//Y:夋柺昞帵偑壗傕昞帵偝傟偰偄側偄応崌埲奜偺偲偒丄
//Y:偡側傢偪嵞惗丄億乕僘夋柺側偳偑昞帵偝傟偰偄傞偲偒
//Y:嵞昤夋傪峴偆丅
if (ESmbMusicAPMainPlayerPlayProcNone == iProc)
{
//Y: 張棟梫媮偑敪峴偝傟偰偄側偄応崌(敪峴偝傟偰偄傞応崌偼嵞昤夋偼峴傢側偄
// 夋柺旕昞帵忬懺偺応崌丄昤夋峏怴傪奐巒偡傞丅
iDrawer->DoMusicEnableL(ETrue);
if (EFalse != iPlayerEnv.IsAccessSyncEngine())
{
// 摨婜僄儞僕儞巊梡尃偁傝偺応崌
//Y:僾儗僀儕僗僩偺崁栚悢偺庢摼
if (NULL != iReqPlayList.iListHandle)
{
iReqPlayList.iCount = iCmd->GetItemCount(iReqPlayList.iListHandle);
}
else
{
iReqPlayList.iCount = 0;
}
if (0 == iReqPlayList.iCount)
{
// 嬻儕僗僩偺応崌偼嬻夋柺傪昞帵偡傞丅
iDrawer->DrawIdlePictureL(EFalse, EFalse);
ChangeState(ESmbMusicAPMainPlayerPlayInitial);
// Add 2007.09.11
ChangeFuncKeyState(ETrue); // 婡擻僉乕傪桳岠偵偡傞
// Add End 2007.09.11
}
else
{
iProc = ESmbMusicAPMainPlayerPlayProcEngUse;
// PTX824懳墳
// Change 2007.03.07
// // 夋憸枃悢傪庢摼
// iCmd->GetImageNumber(iPlayList);
// 嵞惗嬋忣曬傪庢摼
ReqGetPlayInfoL();
// Change End 2007.03.07
}
}
else
{
// 摨婜僄儞僕儞巊梡尃側偟偺応崌
iState->RedrawL(ETrue); // 嵞昤夋張棟
}
}
}
break;
}
//Y: 働乕僗僋儘乕僘偺応崌偺張棟
if (EFalse != changeFilterView)
{
// 張棟拞偵働乕僗僋儘乕僘偝傟偨偲偒偺張棟
iViewTop = EFalse; // TRK:10795 2006.10.13
iDrawer->DoMusicEnableL(EFalse); // TRK:11398 2006.10.16
iPlayerEnv.SetMannerModePlayingStateL(EFalse); // 2006.10.25
// 僼傿儖僞乕價儏乕傊愗懼偊傞丅
iPlayerEnv.BasisPartFuncInterface().ChangeViewL(ESmbMusicAPMainPlayerFilterViewId,
KSmbMusicAPMainPlayerChangeViewMsgUid, KNullDesC8);
}
else if (IsSendingUpdateDisplayInfo() != EFalse)
{
// 抂枛奐忬懺偺応崌丄夋柺曄峏捠抦
TInt ret = iCmd->UpdateDisplayInfo(ESmbMusicAPPlayerChangePlayViewEvent, iPlayList, iReqPlayList.iShuffle);
if (KErrNone != ret)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayView::UpdateDisplayInfo err=%d");
SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 201007, ELogLevelHigh, KLogFmt, ret);
User::Leave(ret);
}
}
}
/**
* 宲懕嵞惗傪梫媮偝傟偨偲偒偺張棟
* @retval ETrue 張棟拞偵働乕僗僋儘乕僘偝傟偨
* @retval EFalse 偦偺懠
*/
TBool CSmbMusicAPMainPlayerPlayView::ContinuousPlayL()
{
TBool ret(EFalse);
// 嵞惗奐巒慜偵働乕僗僋儘乕僘偝傟偨応崌
if (IsCaseClosedL() != EFalse)
{
ret = ETrue;
}
// 嵞惗壜擻偺応崌丄尰嵼嬋偺嵞惗奐巒
if (EFalse != iCmd->PlayStart(iPlayerEnv.MannerModePlayingState()))
{
// 宲懕嵞惗張棟忬懺
iProc = ESmbMusicAPMainPlayerPlayProcPlay;
}
return ret;
}
/**
* 僒僽僾儗僀儎乕偐傜偺夋柺曄峏捠抦傪梫媮偝傟偨偲偒偺張棟
* @param aInfo 夋柺曄峏捠抦忣曬
*/
void CSmbMusicAPMainPlayerPlayView::UpdatePictureInfoL(const TSmbMusicAPSyncEngineAppSyncInfo& aInfo)
{
iJacketIndex = KSmbMusicAPMainPlayerPlayDefaaultJaket;
iSongInfoIndex = KSmbMusicAPMainPlayerPlayDefaaultJaket;
iPlayList.iListHandle = aInfo.iParam2;
iReqPlayList.iListHandle = aInfo.iParam2;
if (NULL != iReqPlayList.iListHandle)
{
iReqPlayList.iCount = iCmd->GetItemCount(iReqPlayList.iListHandle);
}
else
{
iReqPlayList.iCount = 0;
}
TSmbMusicAPSyncEngineListType listType;
iCmd->GetListType(iPlayList.iListHandle, listType);
switch (listType)
{
case ESmbMusicAPSyncEngineTypeOriginalPlaylist:
case ESmbMusicAPSyncEngineTypeImportPlaylist:
case ESmbMusicAPSyncEngineTypeWMAPlaylist:
// 僾儗僀儕僗僩
iReqPlayList.iListType = ESmbMusicAPMainPlayerPlayListTypePlaylist;
break;
case ESmbMusicAPSyncEngineTypeGenre:
case ESmbMusicAPSyncEngineTypeArtist:
case ESmbMusicAPSyncEngineTypeAlbum:
case ESmbMusicAPSyncEngineTypeSonglist:
// 専嶕儕僗僩
iReqPlayList.iListType = ESmbMusicAPMainPlayerPlayListTypeFilterlist;
break;
default:
break;
}
// Add 2006.11.13 TRK:12476(PTX824 TRK:661)
// 師婡庬懳墳(仸懳墳屻偼娭悢柤偑'L'晅偵曄峏偲側傞)
if (EFalse != iPlayerEnv.IsAccessSyncEngine())
{
RedrawByChangeViewL();
}
// Add 2007.04.05 PTX824 TRK:636懳墳
else
{
iState->RedrawL(ETrue);
}
// Add End 2007.04.05 PTX824 TRK:636懳墳
// Add End 2006.11.13 TRK:12476
}
/**
* 價儏乕旕傾僋僥傿僽屻偺僐乕儖僶僢僋
*/
void CSmbMusicAPMainPlayerPlayView::ViewDeactivated()
{
TRAPD(err, TrappedViewDeactivatedL());
if (KErrNone != err)
{
// ViewDeactivated()幐攕.
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayView::ViewDeactivated Fail");
SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 202007, ELogLevelHigh, KLogFmt);
PANIC(9202007);
}
}
/**
* 價儏乕旕傾僋僥傿僽屻偺僐乕儖僶僢僋乮幚懱乯
*/
void CSmbMusicAPMainPlayerPlayView::TrappedViewDeactivatedL()
{
// 嵞惗壜擻忬懺峏怴
SetDrawableL();
#ifdef __SMBMUSICAP_PTX824_DEF__
// PTX824 APF
CSmbAfView::ViewDeactivated();
#else
CAfView::ViewDeactivated();
#endif
if (EFalse == iPlayerEnv.IsCaseClosedL())
{
// 抂枛奐忬懺偺応崌
if (iAfEnv.ActiveView() != this)
{
iViewTop = EFalse; // 嵟慜柺價儏乕偱偁傞偙偲傪夝彍偡傞
}
}
}
/**
* 僀儀儞僩僴儞僪儔傪曉偡丅\n
* 攈惗僋儔僗偼丄僀儀儞僩僴儞僪儔偺億僀儞僞傪曉偡傛偆偵幚憰偡傞丅
*
* @return 僀儀儞僩僴儞僪儔乮NULL偑曉偝傟傞壜擻惈桳傝乯
*/
MSmbMusicAPMainPlayerEventHandler* CSmbMusicAPMainPlayerPlayView::EventHandler() const
{
return iCmd;
}
/**
* 僉乕僀儀儞僩庴怣張棟
* @param[in] aKeyEvent 僉乕僀儀儞僩
* @param[in] aType 僀儀儞僩僐乕僪
* @return 僉乕偺徚旓(EKeyWasConsumed)丒旕徚旓(EKeyWasNotConsumed)傪曉媝偡傞丅
*/
TKeyResponse CSmbMusicAPMainPlayerPlayView::OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode aType)
{
TKeyResponse ret(EKeyWasNotConsumed);
if (EEventKey == aType || EEventKeyUp == aType)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayView::OfferKeyEventImplL iCode=%d Type=%d iStatus=%d iProc=%d");
SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 203007, ELogLevelNormal, KLogFmt, aKeyEvent.iCode, aType, iStatus, iProc);
}
//Change 2007.4.20 [i-keeper(TRK):384] 僉乕梷惂拞偼柍帇偡傞
// if (EFalse != iRejectKeyEvent)
// {
// return EKeyWasNotConsumed;
if (EFalse == iRejectKeyEvent)
{
ret = iState->OfferKeyEventImplL(aKeyEvent, aType);
//Change End 2007.4.20 [i-keeper(TRK):384] 僉乕梷惂拞偼柍帇偡傞
}
return ret;
}
// 2006.10.02
/**
* 僉儍儞僙儖偟偨張棟偺嵞奐
*
*/
void CSmbMusicAPMainPlayerPlayView::DoCancelProc(CSmbMusicAPMainPlayerPlayView& aKeyFunc)
{
// PTX824懳墳
// Change 2007.03.07
// aKeyFunc.iCmd->GetImageNumber(aKeyFunc.iPlayList);
// 嵞惗嬋忣曬傪庢摼
aKeyFunc.ReqGetPlayInfoL();
// Change End 2007.03.07
}
/**
* 僜僼僩1僉乕偑桳岠側忬懺傪敾掕偡傞
* @param[in] aKeyFunc 僉乕僀儀儞僩張棟僋儔僗
* @retval ETrue 桳岠
* @retval EFalse 柍岠
*/
TBool CSmbMusicAPMainPlayerPlayView::IsDisableSoft1Key()
{
iCmd->GetRequestKind(iProckind, iInfokind);
return ((ESmbMusicAPMainPlayerPlayProcNone != iProc) &&
((ESmbMusicAPMainPlayerReqNone != iProckind &&
ESmbMusicAPMainPlayerReqGetPlayTime != iProckind &&
ESmbMusicAPMainPlayerReqGetSoundLevel != iProckind &&
ESmbMusicAPMainPlayerReqSetVolume != iProckind
) ||
ESmbMusicAPMainPlayerReqGetImageNum == iInfokind
)
);
}
/**
* 僜僼僩1僉乕張棟\n
* 僒僽儊僯儏乕傪昞帵偡傞丅
* @param[in] aKeyFunc 僉乕僀儀儞僩張棟僋儔僗
*/
void CSmbMusicAPMainPlayerPlayView::ShowSubMenuL()
{
// PTX824懳墳
// 婡擻僉乕柍岠忬懺 2007.03.09
if (EFalse == iEnableFuncKey)
{
return;
}
if (ESmbMusicAPMainPlayerPlayProcStartPlay == iProc &&
ESmbMusicAPMainPlayerPlayDispIdle == iDrawer->DispStatus()
)
{
// 嵞惗奐巒拞偱嬻夋柺偺応崌偼僉乕柍岠偲偡傞丅
return;
}
if (IsDisableSoft1Key() != EFalse)
{
return;
}
// 僒僽儊僯儏乕傪惗惉偡傞丅
CSkonSubMenu* subMenu = new(ELeave) CSkonSubMenu;
CleanupStack::PushL(subMenu);
TResourceReader controlResource;
// 僾儗僀儕僗僩嵞惗帪偺僒僽儊僯儏乕曄峏
if (ESmbMusicAPMainPlayerPlayListTypePlaylist == iReqPlayList.iListType)
{
// 僾儗僀儕僗僩嵞惗帪
CEikonEnv::Static()->CreateResourceReaderLC(controlResource, R_SB_MUSIC_MAIN_PLAY_PLAYLIST_SUBMENU);
}
else
{
// 専嶕儕僗僩嵞惗帪
CEikonEnv::Static()->CreateResourceReaderLC(controlResource, R_SB_MUSIC_MAIN_PLAY_SUBMENU);
}
subMenu->ConstructFromResourceL(controlResource);
CleanupStack::PopAndDestroy(); // controlResource
// 僒僽儊僯儏乕崁栚偺婸搙乛敿婸搙愝掕
ModefySubMenuL(*subMenu);
// 僒僽儊僯儏乕昞帵
CleanupStack::Pop(); // subMenu
iSubMenu = subMenu;
TInt retCode = iSubMenu->ShowLD(ESkonTargetLeft);
iSubMenu = NULL;
if (CSkonSubMenu::EClearKey != retCode)
{
// 慖戰偝傟偨僒僽儊僯儏乕偵懳墳偟偨張棟傪峴偆丅
TSmbMusicAPMainPlayerPlayViewKGCommand func = static_cast<TSmbMusicAPMainPlayerPlayViewKGCommand>(retCode);
switch (func)
{
case EMainPlayerPlayKGCmdMusicSetting:
// 儈儏乕僕僢僋愝掕
SMenuMusicSettingL();
break;
case EMainPlayerPlayKGCmdPlayList:
case EMainPlayerPlayKGCmdPlayListOne:
case EMainPlayerPlayKGCmdPlayListSelect:
case EMainPlayerPlayKGCmdPlayListAll:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -