smbmusicapmainplayerfilterlistviewsong.cpp

来自「symbian」· C++ 代码 · 共 1,234 行 · 第 1/3 页

CPP
1,234
字号
				iHasJacketImage = 0<countInfo.iJacketCount ? ETrue : EFalse;
				iHasRylicImage = 0<countInfo.iLyricCount ? ETrue : EFalse;
				// UIM惂尷忣曬
				iIsUimLimited = countInfo.iIsUimLimited;
				iIsOffline = EFalse==countInfo.iIsOnline ? ETrue : EFalse;
				if(EFalse!=countInfo.iIsUimLimited && ESmbMusicAPSyncEngineInSD==countInfo.iStore)
					{
					iIsSDBinding = ETrue;
					}
				//2006.10.10 TRK#11216
				else
					{
					iIsSDBinding = EFalse;
					}
				// 僒僽儊僯儏乕張棟傪屇傃弌偡
				if(NULL!=iObserver)
					{
// Mod-S D_82400010412懳墳 偙偙偱TRAP傪偟偰偼偄偗側偄丅MOAP偱儊儌儕儕乕僋傪婲偙偟偰偟傑偆丅2007.08.29 暯壀
					iObserver->HandleSubMenuL(this, SubMenuID());
//					TRAPD(error, iObserver->HandleSubMenuL(this, SubMenuID()));
//					if(KErrNone != error)
//						{
//						// 儘僌
//						_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterListViewSong::RequestComplete()");
//						SmbMusicAPMainPlayerUtility::OutputLog(iLog, 131001, ELogLevelNormal, KLogFmt);
//						}
// Mod-E D_82400010412懳墳 偙偙偱TRAP傪偟偰偼偄偗側偄丅MOAP偱儊儌儕儕乕僋傪婲偙偟偰偟傑偆丅
					}
				}
			}
			break;
		default:
			{
			//摿偵壗傕偟側偄
			}
			break;
		}
	}

void CSmbMusicAPMainPlayerFilterListViewSong::RequestCancel(
												TSmbMusicAPMainPlayerRequest 							/*aKind*/, 
												MSmbMusicAPMainPlayerFilterSyncServerProcessResponse&	/*aResponse*/)
	{
	}


/**
 * 僕儍働僢僩夋憸偺僠僃僢僋
 *
 * @return 		ETrue:僕儍働僢僩夋憸偁傝 EFalse:僕儍働僢僩夋憸側偟
 */
TBool CSmbMusicAPMainPlayerFilterListViewSong::HasJacketImage()
	{
	return iHasJacketImage;
	}

/**
 * 壧帉夋憸偺僠僃僢僋
 *
 * @return 		ETrue:壧帉夋憸偁傝 EFalse:壧帉夋憸側偟
 */
TBool CSmbMusicAPMainPlayerFilterListViewSong::HasRylicImage()
	{
	return iHasRylicImage;
	}

/**
 * UIM惂尷偺僠僃僢僋
 *
 * @return 		ETrue:UIM惂尷偁傝 EFalse:UIM惂尷側偟
 */
TBool CSmbMusicAPMainPlayerFilterListViewSong::IsUimLimited()
	{
	return iIsUimLimited;
	}
	
/**
 * 僆儞儔僀儞/僆僼儔僀儞偺僠僃僢僋
 *
 * @return 		ETrue:僆僼儔僀儞 EFalse:僆儞儔僀儞
 */
TBool CSmbMusicAPMainPlayerFilterListViewSong::IsOffline()
	{
	return iIsOffline;
	}

/**
 * SD-Bind偺僠僃僢僋
 *
 * @return 		ETrue:SD-Bind偁傝 EFalse:SD-Bind側偟
 */
TBool CSmbMusicAPMainPlayerFilterListViewSong::IsSDBinding()
	{
	return iIsSDBinding;
	}

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

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

// 僒僽儊僯儏乕敿婸搙張棟
void CSmbMusicAPMainPlayerFilterListViewSong::AdjustSubMenuL(CSkonSubMenu *aSubMenu, TInt aResId)
	{
	// 嵞惗拞偐偳偆偐傪僠僃僢僋偡傞
	TSmbPGMusicAPPlayerState playState = SmbPGMusic::MusicAPPlayerStateL(View()->PropAgent());
	
	switch(aResId)
		{
		case R_SB_MUSIC_MAIN_FLT_SONGLIST:
			{
			TBool itemDisabled;
			CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
// Mod-S PTX-824 暯壀 僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳 
//			if(NULL!=item && EFalse==item->IsDisabled())
			if ( NULL != item 
				&& EFalse == ( item->IsDisabled() 
			  				& ~(ESmbMusicAPSyncEngineOverTimeLimit | ESmbMusicAPSyncEngineNoCpInfo) ) )
// Mod-E PTX-824 暯壀 僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳 
				{
				itemDisabled = EFalse;
				}
			else
				{
				itemDisabled = ETrue;
				}
			if(ESmbPGMusicAPPlayerStatePlaying==playState)	// 嵞惗拞
				{
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 0, EFalse);
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 1, EFalse);
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 9, ETrue);
				}
			else
				{
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 0, ETrue);
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 1, ETrue);
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 9, EFalse);
				}
			// 僾儗僀儕僗僩傊搊榐
			//2006.09.29 TRK#7935
			//aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 5, itemDisabled);
			aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 5, EFalse);
			// 徻嵶忣曬昞帵
			//2006.09.29 TRK#7935
			//aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 6, itemDisabled);
			if(EFalse!=IsUimLimited())
				{
				if(EFalse!=IsSDBinding())
					{
					aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 6, EFalse);
					}
				else
					{
					aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 6, ETrue);
					}
				}
			else
				{
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 6, itemDisabled);
				}
			
			// 夋憸昞帵
			if(EFalse==itemDisabled && EFalse!=HasJacketImage())
				{
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 7, EFalse);
				}
			else
				{
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 7, ETrue);
				}
			
			// 壧帉昞帵
			if(EFalse==itemDisabled && EFalse!=HasRylicImage())
				{
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 8, EFalse);
				}
			else
				{
				aSubMenu->SetItemDisableL(aSubMenu->MenuItemArrayL(), 8, ETrue);
				}
			}
			break;
		case R_SB_MUSIC_MAIN_FLT_EMPTYLIST:
			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);
				}
			break;
		}
	}

// 慖戰僉乕僐儅儞僪
TInt CSmbMusicAPMainPlayerFilterListViewSong::SelectKeyCommand(TBool /*aLongPress*/)
	{
	if(EFilteringMode==CommandMode())
		{
		return EMainPlayerFilterViewKGCmdPlay;
		}
	else if(ESelectItemMode==CommandMode())
		{
		return EMainPlayerFilterViewKGCmdSelect;
		}
	else if(ESelectMultipleMode==CommandMode())
		{
		return EMainPlayerFilterViewKGCmdSelect;
		}
	return 0;
	}

// 僉乕僈僀僟儞僗忣曬
TBool CSmbMusicAPMainPlayerFilterListViewSong::KeyGuidanceInfo(TSkonKeyGuidanceKeyIds aKey, TBool& aVisible, TInt& aTitleResId, TInt& aCommandID)
	{
    aVisible = EFalse;
    aTitleResId = 0;
    aCommandID = 0;

	if(EFilteringMode==CommandMode())
		{
		//亂嬋堦棗夋柺亃
		//寛掕僉乕(ESkonKeyGuidanceSelectKey)
		// 丂仭昞帵偡傞僨乕僞偑偁傞応崌
		// 丂丂仩婸搙昞帵崁栚僼僅乕僇僗帪丂丂仺亂嵞惗亃SFT024丂嵞惗
		// 丂丂仩敿婸搙昞帵崁栚僼僅乕僇僗帪丂仺<柍岠>
		// 丂仭昞帵偡傞僨乕僞偑側偄応崌丂丂丂仺<柍岠>
		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_SFT024;
					    aCommandID = 0;
						}
// Add-S PTX-824 暯壀丂2007.06.27 僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
// 僆僼儔僀儞嬋/UIM惂尷嬋偱側偄丄僒僽僗僋儕僾僔儑儞嬋偱婜尷愗傟/CP忣曬側偟嬋偼僉乕僈僀僟儞僗偵乽嵞惗乿傪昞帵
// Mod-S PTX-824 D_82400007625懳墳丂暯壀
//					else if (NULL != item && (item->IsDisabled() & ESmbMusicAPSyncEngineUIMLimit)
//								     	  && (item->IsDisabled() & ESmbMusicAPSyncEngineOffLine))
					else if (NULL != item && ((item->IsDisabled() & ESmbMusicAPSyncEngineUIMLimit)
								     	  	|| (item->IsDisabled() & ESmbMusicAPSyncEngineOffLine)))
// Mod-E PTX-824 D_82400007625懳墳丂暯壀
						{
						// 壗傕昞帵偟側偄
						}
					else if (NULL != item && ESmbMusicAPSyncEngineLimitSubscription == item->Limitation()
										  &&  ((item->IsDisabled() & ESmbMusicAPSyncEngineNoCpInfo)
										  	|| (item->IsDisabled() & ESmbMusicAPSyncEngineOverTimeLimit)))
						{
						aVisible = ETrue;
						aTitleResId = R_SMB_AF_STR_SFT024;
						aCommandID = 0;
						}
// Add-E PTX-824 暯壀丂2007.06.27
					}
			    return ETrue;
			case ESkonKeyGuidanceSoftKeyLeft:
			    aVisible = ETrue;
			    aTitleResId = R_SMB_AF_STR_SFT021;
			    aCommandID = EMainPlayerFilterViewKGCmdFunc;
			    return ETrue;
			case ESkonKeyGuidanceSoftKeyRight:
			    aVisible = EFalse;
			    aTitleResId = 0;
			    aCommandID = 0;
			    return ETrue;
			}
		}
	//暋悢崁栚慖戰夋柺偺応崌
	else if(ESelectMultipleMode==CommandMode())
		{
		//亂暋悢崁栚慖戰夋柺(嬋堦棗)亃
		//寛掕僉乕(ESkonKeyGuidanceSelectKey)
		//	仭僼僅乕僇僗懳徾偑枹慖戰偺応崌
		//	丂仩慖戰嵪審悢偑慖戰壜擻審悢枹枮偺応崌
		//	丂丂仺亂慖戰亃丂慖戰
		//	丂仩慖戰嵪審悢偑慖戰壜擻審悢埲忋偺応崌
		//	丂丂仺亂慖戰亃丂慖戰悢僆乕僶乕丂
		//	仭僼僅乕僇僗懳徾偑慖戰嵪偺応崌
		//	丂仺亂夝彍亃丂慖戰夝彍
		//僜僼僩侾僉乕(ESkonKeyGuidanceSoftKeyLeft)
		//	仭慖戰嵪審悢偑0審偺応崌
		//	丂仺亂拞巭亃丂to慜夋柺
		//	仭慖戰嵪審悢偑1審埲忋偺応崌
		//	丂仺亂拞巭亃丂慖戰僉儍儞僙儖妋擣
		//僜僼僩俀僉乕(ESkonKeyGuidanceSoftKeyRight)
		//	仭慖戰審悢偑0審偺応崌
		//	丂仺<柍岠>
		//	仭慖戰審悢偑1審埲忋偺応崌
		//	丂仺亂姰椆亃丂慖戰姰椆
		switch(aKey)
			{
			case ESkonKeyGuidanceSoftKeyLeft:
			    aVisible = ETrue;
			    aTitleResId = R_SMB_AF_STR_SFT005;
			    aCommandID = ECmdFilterViewAddEntryMultipleSelectCancel;
			    return ETrue;
			case ESkonKeyGuidanceSoftKeyRight:
			    aVisible = ETrue;
			    aTitleResId = R_SMB_AF_STR_SFT004;
			    aCommandID = ECmdFilterViewAddEntryMultipleSelectComplete;
			    return ETrue;
			}
		}
	//暲傋懼偊夋柺偺応崌
	else if(EOrderItemMode==CommandMode())
		{
		//亂暋悢崁栚慖戰夋柺(嬋堦棗)亃
		//寛掕僉乕(ESkonKeyGuidanceSelectKey)
		//	仭亂慖戰亃丂慖戰
		//僜僼僩侾僉乕(ESkonKeyGuidanceSoftKeyLeft)
		//	仭慖戰嵪審悢偑0審偺応崌
		//	丂仺亂拞巭亃丂to慜夋柺
		//	仭慖戰嵪審悢偑1審埲忋偺応崌
		//	丂仺亂拞巭亃丂慖戰僉儍儞僙儖妋擣
		//僜僼僩俀僉乕(ESkonKeyGuidanceSoftKeyRight)
		//	仭慖戰審悢偑0審偺応崌
		//	丂仺<柍岠>
		//	仭慖戰審悢偑1審埲忋偺応崌
		//	丂仺亂姰椆亃丂慖戰姰椆
		switch(aKey)
			{
			case ESkonKeyGuidanceSelectKey:
			    aVisible = ETrue;
			    aTitleResId = R_SMB_AF_STR_SFT003;
//			    aCommandID = EMainPlayerFilterViewKGCmdSelect;
			    aCommandID = 0;
			    return ETrue;
			case ESkonKeyGuidanceSoftKeyLeft:
			    aVisible = ETrue;
			    aTitleResId = R_SMB_AF_STR_SFT005;
			    aCommandID = ECmdFilterViewOrderEntryCancel;
			    return ETrue;
			case ESkonKeyGuidanceSoftKeyRight:
			    aVisible = ETrue;
			    aTitleResId = R_SMB_AF_STR_SFT004;
			    aCommandID = ECmdFilterViewOrderEntryComplete;
			    return ETrue;
			}
		}
	return EFalse;
	}

/**
 * 僒儉僱僀儖庢摼偑昁梫側傾僀僥儉偑偁傞偐偳偆偐傪僠僃僢僋
 *
 * @return		僒儉僱僀儖庢摼偑昁梫側傾僀僥儉偺僀儞僨僢僋僗乮側偄応崌偼-1乯
 */
TInt CSmbMusicAPMainPlayerFilterListViewSong::IsThumbnailRequired()
	{
	if(CSkonMusicListBox::EFormatThumbnail!=ListBoxFormat()
	|| 0==ItemCount())
		{
		return -1;
		}
	TInt visibleBegin = Max(0, ListBox()->VisibleItemIndex());
	TInt visibleEnd = visibleBegin + ListBox()->NumberOfVisibleItems();
	visibleEnd = Min(visibleEnd,ItemCount());
	//尰嵼偺儕僗僩儃僢僋僗偱僒儉僱僀儖枹庢摼偺傕偺偑偁傟偽偲傝偵峴偔
	for(TInt index=visibleBegin;index<visibleEnd;index++)
		{
		CSmbMusicAPMainPlayerFilterListItem* item = static_cast<CSmbMusicAPMainPlayerFilterListItem*>(Model()->Item(index));
//		CSmbMusicAPMainPlayerFilterListItem* item = STATIC_CAST(CSmbMusicAPMainPlayerFilterListItem*, Model()->Item(index));
		if(NULL!=item)
			{
			if(CSmbMusicAPMainPlayerFilterListItem::EFetchedImage!=item->IsFetchedImage())
				{
				return item->Index();
				}
			}
		}
	return -1;
	}


SEMCJ_NAMESPACE_END

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

⌨️ 快捷键说明

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