smbmusicapmainplayerfilterlistviewmusicmenu.cpp

来自「symbian」· C++ 代码 · 共 719 行 · 第 1/2 页

CPP
719
字号
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineLatest50, ESmbMusicAPSyncEngineSongList, KSmbMusicAPMainPlayerSongListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowMemTypeList:			// 曐懚愭偐傜
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// 曐懚愭慖戰夋柺偵慗堏偡傞
			View()->ShowChildViewL(KSmbMusicAPMainPlayerMemTypeListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
//Add-S PTX-824懳墳丂暯壀				
		case ECmdFilterViewShowMusicSetting:			// 儈儏乕僕僢僋愝掕
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// 儈儏乕僕僢僋愝掕夋柺偵慗堏偡傞
			View()->ShowMusicSettingL();
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
//Add-E PTX-824懳墳丂暯壀				
		}
	return MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
	}

//////////////////////////////////////////////////////////////////////////////////////
// 旕摨婜僾儘僙僗
//////////////////////////////////////////////////////////////////////////////////////
// from MSmbMusicAPMainPlayerFilterProcessObserver
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::ProcessComplete(TInt aResult, CSmbMusicAPMainPlayerFilterProcess& aProcess)
	{
	if( NULL!=ProcessObj() && &aProcess==ProcessObj() &&
		CSmbMusicAPMainPlayerFilterProcess::EProcessTypeGetListFromSearchTop == aProcess.GetProcessType() && 
		KErrNone == aResult)
		{
		// 幚峴拞偺僐儅儞僪傪僠僃僢僋偡傞
		switch(aProcess.GetRequestOwnerInfo())
			{
			case ECmdFilterViewPlayShuffle:				// 慡嬋僔儍僢僼儖
				{
				//2006.10.20 摨婜僒乕僶強桳尃傪僠僃僢僋偟偰幚峴偡傞
				if(EFalse!=View()->IsAccessSyncEngine())
					{
					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop*>(&aProcess);
//					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop*,&aProcess);
					// 僔儍僢僼儖儌乕僪傪巜掕偟偰嵞惗夋柺傪屇傃弌偡
					// 仸嬋堦棗夋柺偼惗惉偟側偄
					TSmbMusicAPMainPlayerPrmPlayList param;
					processObj->GetListHandle(param.iListHandle);
					processObj->GetCount(param.iCount);
					param.iIndex	= 0;
					param.iShuffle	= ETrue;
					param.iListType	= ESmbMusicAPMainPlayerPlayListTypeFilterlist;
					// 僼傿儖僞價儏乕偱嵞惗奐巒傪幚峴偡傞
					View()->StartPlayViewL(KSmbMusicAPMainPlayerPlayListMsgUid, param);
					}
				else
					{
					// 僀儀儞僩梷惂夝彍偡傞
					View()->SetEventDisabled(EFalse);
					}
				}
				break;

			case ECmdFilterViewShowAlbumList:			// 傾儖僶儉偐傜
			case ECmdFilterViewShowArtistList:			// 傾乕僥傿僗僩偐傜
			case ECmdFilterViewShowGenreList:			// 僕儍儞儖偐傜
			case ECmdFilterViewShowSongListAll:			// 偡傋偰偺嬋
			case ECmdFilterViewShowSongListFavorite:	// 傛偔挳偔50嬋
			case ECmdFilterViewShowSongListRecently:	// 嵟嬤挳偄偨50嬋
			case ECmdFilterViewShowMemTypeList:			// 曐懚愭偐傜
				{
				//2006.10.20 摨婜僒乕僶強桳尃傪僠僃僢僋偟偰幚峴偡傞
				if(EFalse!=View()->IsAccessSyncEngine())
					{
					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop*>(&aProcess);
//					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop*,&aProcess);
					TInt listHandle = 0;
					TInt count = 0;
					processObj->GetListHandle(listHandle);
					processObj->GetCount(count);
					// 巕夋柺偵慗堏偡傞
					View()->ShowChildViewL(ProcessTargetViewUid(), listHandle, count);
					}
				else
					{
					// 僀儀儞僩梷惂夝彍偡傞
					View()->SetEventDisabled(EFalse);
					}
				}
				break;
			}
		}
	// 婎掙僋儔僗偱姰椆張棟偡傞
	CSmbMusicAPMainPlayerFilterListView::ProcessComplete(aResult, aProcess);
	}

//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩儃僢僋僗張棟
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 僾儗僀儎忬懺曄峏捠抦
 *
 * @param[in]		aState				僾儗僀儎忬懺
 */
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::HandlePlayerStateChangedL(TBool /*aState*/)
	{
//	AdjustListBoxL(aState);
	// 乽懕偒偐傜嵞惗乿乽嵞惗拞偺嬋傊乿傾僀僥儉傪庢摼偡傞
	CSmbMusicAPMainPlayerFilterListItem* item = static_cast<CSmbMusicAPMainPlayerFilterListItem*>(Model()->ItemByIndex(0));
//	CSmbMusicAPMainPlayerFilterListItem* item = STATIC_CAST(CSmbMusicAPMainPlayerFilterListItem*, Model()->ItemByIndex(0));
	if(NULL!=item)
		{
		// 嵞惗拞偐偳偆偐傪僠僃僢僋偡傞
		TSmbPGMusicAPPlayerState aState = SmbPGMusic::MusicAPPlayerStateL(View()->PropAgent());
		if(ESmbPGMusicAPPlayerStatePlaying==aState)	// 嵞惗拞
			{
			// 乽嵞惗拞偺嬋傊乿傪愝掕偡傞
// Mod-S PTX-824 D_82400009199 2007.08.06
//		    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2800);
		    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2839);
// Mod-E PTX-824 D_82400009199 2007.08.06
		    CleanupStack::PushL(text);
			item->SetTextL(MSkonMusicListBoxItem::ETextMain, text->Des());
		    CleanupStack::Pop();
		    delete text;
		    // 僐儅儞僪俬俢傪愝掕偡傞
			item->SetCommandID(ECmdFilterViewShowPlayView);
			// 慖戰傪桳岠偵偡傞
			item->SetIsDisabled(EFalse);
			}
		else
			{
			//乽懕偒偐傜嵞惗乿傪愝掕偡傞
		    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2842);
		    CleanupStack::PushL(text);
			item->SetTextL(MSkonMusicListBoxItem::ETextMain, text->Des());
		    CleanupStack::Pop();
		    delete text;
		    // 僐儅儞僪俬俢傪愝掕偡傞
			item->SetCommandID(ECmdFilterViewPlayResume);
			// 儗僕儏乕儉忣曬傪僠僃僢僋偡傞
			TBool disableFlag = EFalse;
			TSmbMusicAPSyncEngineResumeInfo	aInfo;
			if(KErrNone!=View()->SyncModel().GetResumeInfo(aInfo))
				{
				//儗僕儏乕儉忣曬偑側偄応崌
				disableFlag = ETrue;
				}
			// 敿婸搙挷惍
			item->SetIsDisabled(disableFlag);
			}

// Add-S PTX-824 D_82400013717懳墳 暯壀 2007.09.01
		// 儕僗僩儃僢僋僗偺僉乕僈僀僟儞僗傪愝掕偡傞
		CSakKeyGuidance* keyGuidance = static_cast<CSkonKeyGuidance*>(View()->KeyGuidance());
		if(NULL!=keyGuidance)
			{
			// 偦傟偧傟偺夋柺偵墳偠偨僉乕僈僀僟儞僗傪愝掕偡傞
			SetupKeyGuidanceL(keyGuidance);
			}
// Add-E PTX-824 D_82400013717懳墳 暯壀 2007.09.01

// Add-S PTX-824 D_82400000686 2007.07.16 暯壀
		if(EFalse!=View()->IsCaseClosedL()		//抂枛僋儘乕僘
		|| EFalse==View()->IsViewForeground()	//嵟慜柺傾僾儕
		|| EFalse==View()->IsViewActivated())	//嵟慜柺價儏乕
			{
			return;
			}
// Add-E PTX-824 D_82400000686 2007.07.16 暯壀
		// 儕僗僩昞帵傪峏怴偡傞
		//2006.10.13 TRK#11267,11448
		ListBox()->HandleControlStatusUpdatedL();
		}
	}

void CSmbMusicAPMainPlayerFilterListViewMusicMenu::HandlePlayerStatePauseL()
	{
	// 傾僀僥儉傪庢摼偡傞
	CSmbMusicAPMainPlayerFilterListItem* item = static_cast<CSmbMusicAPMainPlayerFilterListItem*>(Model()->ItemByIndex(0));
//	CSmbMusicAPMainPlayerFilterListItem* item = STATIC_CAST(CSmbMusicAPMainPlayerFilterListItem*, Model()->ItemByIndex(0));
	if(NULL!=item)
		{
		//乽懕偒偐傜嵞惗乿傪愝掕偡傞
	    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2842);
	    CleanupStack::PushL(text);
		item->SetTextL(MSkonMusicListBoxItem::ETextMain, text->Des());
	    CleanupStack::Pop();
	    delete text;
	    // 僐儅儞僪俬俢傪愝掕偡傞
		item->SetCommandID(ECmdFilterViewPlayResume);
		// 儗僕儏乕儉忣曬傪僠僃僢僋偡傞
		TBool disableFlag = EFalse;
		TSmbMusicAPSyncEngineResumeInfo	aInfo;
		if(KErrNone!=View()->SyncModel().GetResumeInfo(aInfo))
			{
			//儗僕儏乕儉忣曬偑側偄応崌
			disableFlag = ETrue;
			}
		// 敿婸搙挷惍
		item->SetIsDisabled(disableFlag);
		// 儕僗僩昞帵傪峏怴偡傞
		//2006.10.13 TRK#11267,11448
		ListBox()->HandleControlStatusUpdatedL();
		}
	}

// Del-S PTX-824 枹巊梡偺偨傔嶍彍丂2007.08.06 暯壀
/*
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::HandlePlayerStatePlayL()
	{
	// 乽懕偒偐傜嵞惗乿乽嵞惗拞偺嬋傊乿傾僀僥儉傪庢摼偡傞
	CSmbMusicAPMainPlayerFilterListItem* item = static_cast<CSmbMusicAPMainPlayerFilterListItem*>(Model()->ItemByIndex(0));
//	CSmbMusicAPMainPlayerFilterListItem* item = STATIC_CAST(CSmbMusicAPMainPlayerFilterListItem*, Model()->ItemByIndex(0));
	if(NULL!=item)
		{
		// 乽嵞惗拞偺嬋傊乿傪愝掕偡傞
// Mod-S PTX-824 D_82400009199 2007.08.06
//	    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2800);
	    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2839);
// Mod-E PTX-824 D_82400009199 2007.08.06
	    CleanupStack::PushL(text);
		item->SetTextL(MSkonMusicListBoxItem::ETextMain, text->Des());
	    CleanupStack::Pop();
	    delete text;
	    // 僐儅儞僪俬俢傪愝掕偡傞
		item->SetCommandID(ECmdFilterViewShowPlayView);
		// 慖戰傪桳岠偵偡傞
		item->SetIsDisabled(EFalse);
		// 儕僗僩昞帵傪峏怴偡傞
		//2006.10.13 TRK#11267,11448
		ListBox()->HandleControlStatusUpdatedL();
		}
	}
*/
// Del-E PTX-824 枹巊梡偺偨傔嶍彍丂2007.08.06 暯壀


/**
 * 儕僗僩儃僢僋僗偺敿婸搙挷惍
 *
 * @param aState       [in] FilterView
 */
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::AdjustListBoxL(TBool /*aState*/)
	{
	// 乽懕偒偐傜嵞惗乿乽嵞惗拞偺嬋傊乿傾僀僥儉傪庢摼偡傞
	CSmbMusicAPMainPlayerFilterListItem* item = static_cast<CSmbMusicAPMainPlayerFilterListItem*>(Model()->ItemByIndex(0));
//	CSmbMusicAPMainPlayerFilterListItem* item = STATIC_CAST(CSmbMusicAPMainPlayerFilterListItem*, Model()->ItemByIndex(0));
	if(NULL!=item)
		{
		// 嵞惗拞偐偳偆偐傪僠僃僢僋偡傞
		TSmbPGMusicAPPlayerState aState = SmbPGMusic::MusicAPPlayerStateL(View()->PropAgent());
		if(ESmbPGMusicAPPlayerStatePlaying==aState)	// 嵞惗拞
			{
			// 乽嵞惗拞偺嬋傊乿傪愝掕偡傞
// Mod-S PTX-824 D_82400009199 2007.08.06
//		    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2800);
		    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2839);
// Mod-E PTX-824 D_82400009199 2007.08.06
		    CleanupStack::PushL(text);
			item->SetTextL(MSkonMusicListBoxItem::ETextMain, text->Des());
		    CleanupStack::Pop();
		    delete text;
		    // 僐儅儞僪俬俢傪愝掕偡傞
			item->SetCommandID(ECmdFilterViewShowPlayView);
			// 慖戰傪桳岠偵偡傞
			item->SetIsDisabled(EFalse);
			}
		else
			{
			//乽懕偒偐傜嵞惗乿傪愝掕偡傞
		    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_WRD2842);
		    CleanupStack::PushL(text);
			item->SetTextL(MSkonMusicListBoxItem::ETextMain, text->Des());
		    CleanupStack::Pop();
		    delete text;
		    // 僐儅儞僪俬俢傪愝掕偡傞
			item->SetCommandID(ECmdFilterViewPlayResume);
			// 儗僕儏乕儉忣曬傪僠僃僢僋偡傞
			TBool disableFlag = EFalse;
			TSmbMusicAPSyncEngineResumeInfo	aInfo;
			if(KErrNone!=View()->SyncModel().GetResumeInfo(aInfo))
				{
				//儗僕儏乕儉忣曬偑側偄応崌
				disableFlag = ETrue;
				}
			// 敿婸搙挷惍
			item->SetIsDisabled(disableFlag);
			}
		// 儕僗僩昞帵傪峏怴偡傞
		ListBox()->HandleControlStatusUpdatedL();
		}
	}

// Add-S PTX-824 D_82400013717懳墳 暯壀 2007.09.01
// 僉乕僈僀僟儞僗忣曬
TBool CSmbMusicAPMainPlayerFilterListViewMusicMenu::KeyGuidanceInfo(TSkonKeyGuidanceKeyIds aKey, TBool& aVisible, TInt& aTitleResId, TInt& aCommandID)
	{
    aVisible = EFalse;
    aTitleResId = 0;
    aCommandID = 0;
	//亂偦偺懠亃
	//寛掕僉乕(ESkonKeyGuidanceSelectKey)
	// 丂亂慖戰亃SFT003丂崁栚慖戰
	//僜僼僩俀僉乕(ESkonKeyGuidanceSoftKeyRight)
	// 丂<柍岠>
	switch(aKey)
		{
		case ESkonKeyGuidanceSelectKey:
			aVisible = EFalse;
			aTitleResId = 0;
			aCommandID = 0;
			if(0<ItemCount())
				{
				CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
				if(NULL!=item && EFalse==item->IsDisabled())
					{
				    aVisible = ETrue;
				    aTitleResId = R_SMB_AF_STR_SFT003;
				    aCommandID = 0;
					}
				}
		    return ETrue;
		case ESkonKeyGuidanceSoftKeyRight:
		    aVisible = EFalse;
		    aTitleResId = 0;
		    aCommandID = 0;
		    return ETrue;
		}
	return EFalse;
	}
// Add-E PTX-824 D_82400013717懳墳 暯壀 2007.09.01

//////////////////////////////////////////////////////////////////////////////////////
// 僒僽儊僯儏乕
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 儊僯儏儕僜乕僗俬俢
 *
 * @return				儕僜乕僗俬俢
 */
TInt CSmbMusicAPMainPlayerFilterListViewMusicMenu::SubMenuID()
	{
	return R_SB_MUSIC_MAIN_FLT_MUSICMENU;
	}

// 僒僽儊僯儏乕敿婸搙張棟
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::AdjustSubMenuL(CSkonSubMenu* /*aSubMenu*/, TInt /*aResId*/)
	{
	// 壗傕偟側偄
	}


SEMCJ_NAMESPACE_END

// end of SmbMusicAPMainPlayerFilterListViewMusicMenu.cpp
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?