smbmusicapmainplayerfilterlistviewmeta.cpp

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

CPP
574
字号
void CSmbMusicAPMainPlayerFilterListViewMeta::ProcessComplete(TInt aResult, CSmbMusicAPMainPlayerFilterProcess& aProcess)
	{
	if( NULL!=ProcessObj() && &aProcess==ProcessObj() &&
		CSmbMusicAPMainPlayerFilterProcess::EProcessTypeGetListFromSearchCurrentList == aProcess.GetProcessType() && 
		KErrNone == aResult)
		{
		// 幚峴拞偺僐儅儞僪傪僠僃僢僋偡傞
		switch(aProcess.GetRequestOwnerInfo())
			{
			case EMainPlayerFilterViewKGCmdSelect:				// 僕儍儞儖/傾乕僥傿僗僩/傾儖僶儉峣傝崬傒専嶕
			case EMainPlayerFilterViewKGCmdSelectAll:			// 乽偡傋偰偺乣乿傪崁栚慖戰
				{
				//2006.10.20 摨婜僒乕僶強桳尃傪僠僃僢僋偟偰幚峴偡傞
				if(EFalse!=View()->IsAccessSyncEngine())
					{
					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList*>(&aProcess);
//					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList*,&aProcess);

					TInt listHandle = 0;
					TInt count = 0;
					processObj->GetListHandle(listHandle);
					processObj->GetCount(count);
					// 巕夋柺偵慗堏偡傞
					View()->ShowChildViewL(ProcessTargetViewUid(), listHandle, count);
					}
				else
					{
					// 僀儀儞僩梷惂夝彍偡傞
					View()->SetEventDisabled(EFalse);
					}
				}
				break;
			case EMainPlayerFilterViewKGCmdLongSelectAll:		// 乽偡傋偰偺乣乿傪崁栚慖戰乮挿墴偟乯
			case EMainPlayerFilterViewKGCmdLongSelect:			// 挿墴偟偱慖戰
				{
				//2006.10.20 摨婜僒乕僶強桳尃傪僠僃僢僋偟偰幚峴偡傞
				if(EFalse!=View()->IsAccessSyncEngine())
					{
					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList*>(&aProcess);
//					CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList*,&aProcess);

					TSmbMusicAPMainPlayerPrmPlayList param;
					processObj->GetListHandle(param.iListHandle);
					processObj->GetCount(param.iCount);
					param.iIndex	= 0;
					param.iShuffle	= EFalse;
					param.iListType	= ESmbMusicAPMainPlayerPlayListTypeFilterlist;
					// 僀儀儞僩梷惂傪夝彍偡傞
					View()->SetEventDisabled(EFalse);
					// 嵞惗奐巒偡傞
					View()->StartPlayViewL(KSmbMusicAPMainPlayerPlayListMsgUid, param);
					}
				else
					{
					// 僀儀儞僩梷惂夝彍偡傞
					View()->SetEventDisabled(EFalse);
					}
				}
				break;
			}
		}
	// 婎掙僋儔僗偱姰椆張棟偡傞
	CSmbMusicAPMainPlayerFilterListView::ProcessComplete(aResult, aProcess);
	}

//////////////////////////////////////////////////////////////////////////////////////
// 僞僀僩儖僶乕張棟
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 僞僀僩儖僶乕傾僀僐儞偺愝掕
 *
 * @param aState       [in] FilterView
 */
void CSmbMusicAPMainPlayerFilterListViewMeta::AdjustTitleIconL()
	{
	TInt	leftIconId = -1;
	TInt	rightIconID = -1;
	
	//恊奒憌偺傾僀僐儞傪愝掕偡傞
	TSmbMusicAPSyncEnginePrevListInfo prevList;
// Mod-S PTX-824 D_82400013891懳墳 暯壀 2007.09.11
	// 慗堏尦偺儕僗僩傪庢摼偡傞
//	if(KErrNone==View()->SyncModel().GetPrevList(ListHandle(), prevList))
	prevList = iPrevList;
	if (ESmbMusicAPSyncEngineTypeInvalidlist != prevList.iListType)
// Mod-E PTX-824 D_82400013891懳墳 暯壀 2007.09.11
		{
		// 慗堏尦儕僗僩忣曬偑儕僗僩傾僀僥儉偐偳偆偐丠乮iListInfo ETrue:慗堏尦儕僗僩傾僀僥儉丄EFalse:専嶕忣曬乯
		if(EFalse!=prevList.iListInfo)
			{
			switch(prevList.iListType)
				{
				case ESmbMusicAPSyncEngineTypeGenre:				///<僕儍儞儖
					leftIconId = EMbmMusicMc_genre_icon;
					break;
				case ESmbMusicAPSyncEngineTypeArtist:				///<傾乕僥傿僗僩
					leftIconId = EMbmMusicMc_artist_icon;
					break;
				case ESmbMusicAPSyncEngineTypeAlbum:				///<傾儖僶儉
					leftIconId = EMbmMusicMc_album_icon;
					break;
				case ESmbMusicAPSyncEngineTypeOriginalPlaylist:		///<僆儕僕僫儖僾儗僀儕僗僩
				case ESmbMusicAPSyncEngineTypeImportPlaylist:		///<僀儞億乕僩僾儗僀儕僗僩
// Add-S PTX-824懳墳丂暯壀
				case ESmbMusicAPSyncEngineTypeWMAPlaylist:			///<WMA僾儗僀儕僗僩
// Add-E PTX-824懳墳丂暯壀
				case ESmbMusicAPSyncEngineTypeSonglist:				///<嬋堦棗
				case ESmbMusicAPSyncEngineTypeInvalidlist:			///<柍岠側儕僗僩
				default:
					break;
				}
			}
		// 専嶕忣曬乮儈儏乕僕僢僋儊僯儏乕/僾儗僀儕僗僩僞僀僾慖戰/曐懚愭慖戰乯偺応崌
		else
			{
			// 専嶕忣曬乮儈儏乕僕僢僋儊僯儏乕乯偺応崌
			switch(prevList.iSearchCondition)
				{
// Change-S PTX-824懳墳(TRK-580)丂暯壀	摟柧傾僀僐儞懳墳
//	 -> (D_82400006405, D_82400004469) 儈儏乕僕僢僋儊僯儏乕傾僀僐儞懳墳
				case ESmbMusicAPSyncEngineGenre:						///<僕儍儞儖
//					leftIconId = EMbmMusicMc_genre_icon;
//					break;
				case ESmbMusicAPSyncEngineArtist:						///<傾乕僥傿僗僩
//					leftIconId = EMbmMusicMc_artist_icon;
//					break;
				case ESmbMusicAPSyncEngineAlbum:						///<傾儖僶儉
//					leftIconId = EMbmMusicMc_album_icon;
//					leftIconId = EMbmMusicMc_titlebar_icon_clear_main;
					leftIconId = EMbmMusicMc_titlebar_icon_menu_main;
					break;
// Change-E PTX-824懳墳(TRK-580)丂暯壀 (D_82400006405, D_82400004469)
				case ESmbMusicAPSyncEngineAll:							///<偡傋偰偺嬋
				case ESmbMusicAPSyncEngineOften50:						///<傛偔挳偔50嬋
				case ESmbMusicAPSyncEngineLatest50:						///<嵟嬤挳偄偨50嬋
				case ESmbMusicAPSyncEngineOriginalPlaylist:				///<僆儕僕僫儖僾儗僀儕僗僩
				case ESmbMusicAPSyncEngineImportPlaylist:				///<僀儞億乕僩僾儗僀儕僗僩
// Add-S PTX-824懳墳丂暯壀
				case ESmbMusicAPSyncEngineWMAPlaylist:					///<WMA僾儗僀儕僗僩
// Add-E PTX-824懳墳丂暯壀
				case ESmbMusicAPSyncEngineDataBox:						///<曐懚愭偐傜1(僨乕僞BOX)
// Del-S PTX-824懳墳 TRK955 暯壀
#ifdef EXPANDEDMEM_DELETE
				case ESmbMusicAPSyncEngineMassStorage:					///<曐懚愭偐傜2(杮懱奼挘儊儌儕)
#endif
// Del-E PTX-824懳墳 TRK955 暯壀
				case ESmbMusicAPSyncEngineMSDuo:						///<曐懚愭偐傜3(M.S.Duo)
				case ESmbMusicAPSyncEngineMiniSD:						///<曐懚愭偐傜4(miniSD)
				default:
					break;
				}
			}
		}
	
	//巕奒憌偺傾僀僐儞傪愝掕偡傞
	if(0<ItemCount())
		{
		// 僞僀僩儖僶乕偺傾僀僐儞傪愝掕偡傞
		// 儕僗僩儃僢僋僗偺僇儗儞僩僀儞僨僢僋僗偑侽偺応崌
		if(0==ListBox()->CurrentItemIndex())
			{
			// 乽偡傋偰偺乣乿崁栚傪慖戰偟偨応崌
			rightIconID = EMbmMusicMc_track_icon;
			}
		else
			{
			if(KSmbMusicAPMainPlayerGenreListViewUid==ViewUid())				///< 僕儍儞儖堦棗夋柺
				{
				rightIconID = EMbmMusicMc_artist_icon;
				}
			else if(KSmbMusicAPMainPlayerArtistListViewUid==ViewUid())			///< 傾乕僥傿僗僩堦棗夋柺
				{
				rightIconID = EMbmMusicMc_album_icon;
				}
			else if(KSmbMusicAPMainPlayerAlbumListViewUid==ViewUid())			///< 傾儖僶儉堦棗夋柺
				{
				rightIconID = EMbmMusicMc_track_icon;
				}
			}
		}
	SetTitleIconL(leftIconId, rightIconID);
	}

// Add-S PTX-824 D_82400013891懳墳 暯壀 2007.09.11
void CSmbMusicAPMainPlayerFilterListViewMeta::SetPrevListInfo(TSmbMusicAPSyncEnginePrevListInfo aPrevList)
	{
	iPrevList = aPrevList;
	}
// Add-E PTX-824 D_82400013891懳墳 暯壀 2007.09.11

//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩儃僢僋僗張棟
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 儕僗僩儃僢僋僗偺敿婸搙挷惍
 *
 * @param aState       [in] FilterView
 */
void CSmbMusicAPMainPlayerFilterListViewMeta::AdjustListBoxL(TBool /*aState*/)
	{
	}

/**
 * 儊僯儏儕僜乕僗俬俢
 *
 * @return				儕僜乕僗俬俢
 */
TInt CSmbMusicAPMainPlayerFilterListViewMeta::SubMenuID()
	{
	TInt aMenuResID;
	TInt aNumberOfItems = ItemCount();

	if(aNumberOfItems==0)
		{
		aMenuResID = R_SB_MUSIC_MAIN_FLT_EMPTYLIST;
		}
	else
		{
		aMenuResID = R_SB_MUSIC_MAIN_FLT_OTHER;
		}
	return aMenuResID;
	}

// 僒僽儊僯儏乕敿婸搙張棟
void CSmbMusicAPMainPlayerFilterListViewMeta::AdjustSubMenuL(CSkonSubMenu *aSubMenu, TInt /*aResId*/)
	{
	// 嵞惗拞偐偳偆偐傪僠僃僢僋偡傞
	TSmbPGMusicAPPlayerState playState = SmbPGMusic::MusicAPPlayerStateL(View()->PropAgent());
	if(ESmbPGMusicAPPlayerStatePlaying==playState)	// 嵞惗拞
		{
		aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 0, EFalse);
		aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 1, EFalse);
		}
	else
		{
		aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 0, ETrue);
		aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 1, ETrue);
		}
	}

// 慖戰僉乕僐儅儞僪
TInt CSmbMusicAPMainPlayerFilterListViewMeta::SelectKeyCommand(TBool aLongPress)
	{
	return EFalse!=aLongPress ? EMainPlayerFilterViewKGCmdLongSelect : EMainPlayerFilterViewKGCmdSelect;
	}

// 僉乕僈僀僟儞僗忣曬
TBool CSmbMusicAPMainPlayerFilterListViewMeta::KeyGuidanceInfo(TSkonKeyGuidanceKeyIds aKey, TBool& aVisible, TInt& aTitleResId, TInt& aCommandID)
	{
    aVisible = EFalse;
    aTitleResId = 0;
    aCommandID = 0;
	//亂僕儍儞儖丒傾乕僥傿僗僩丒傾儖僶儉夋柺亃
	//寛掕僉乕(ESkonKeyGuidanceSelectKey)
	// 丂仭昞帵偡傞僨乕僞偑偁傞応崌丂丂丂仺亂慖戰亃SFT003丂崁栚慖戰
	// 丂仭昞帵偡傞僨乕僞偑側偄応崌丂丂丂仺<柍岠>
	switch(aKey)
		{
		case ESkonKeyGuidanceSelectKey:
			if(ItemCount()>0)
				{
			    aVisible = ETrue;
			    aTitleResId = R_SMB_AF_STR_SFT003;
			    aCommandID = 0;
				}
			else
				{
			    aVisible = EFalse;
			    aTitleResId = 0;
			    aCommandID = 0;
				}
		    return ETrue;
		case ESkonKeyGuidanceSoftKeyRight:
		    aVisible = EFalse;
		    aTitleResId = 0;
		    aCommandID = 0;
		    return ETrue;
		}
	return EFalse;
	}


SEMCJ_NAMESPACE_END

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

⌨️ 快捷键说明

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