smbmusicapmainplayerimageview.cpp

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

CPP
1,793
字号
		{
#ifdef __DEBUG_LOG_MAINPLAYER__
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 43;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::DoViewActivatedImplL(%d) - KLaReturnClearUid or KLaReturnOnHookUid");
		SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelNormal, KLogFmt, aCustomMessageId);
#endif
		// 夋憸僨乕僞傪徚嫀偡傞
		//ClearImage(ETrue);
		return;
		}
	// 巕傾僾儕偑堎忢廔椆偟偨応崌
	else if(KLaReturnErrUid == aCustomMessageId)
		{
#ifdef __DEBUG_LOG_MAINPLAYER__
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 44;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::DoViewActivatedImplL(%d) - KLaReturnErrUid");
		SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelNormal, KLogFmt, aCustomMessageId);
#endif
		// 夋憸僨乕僞傪徚嫀偡傞
		//ClearImage(ETrue);
		
		//2006.10.17 TRK#11591
        if(aCustomMessage != (TDesC8)KNullDesC8)
			{
        	// 僨乕僞BOX曐懚傾僾儕偺曉傝抣傪庢摼偡傞
			const TSmbDbxFolderSelectReturnParam* param;
			param = reinterpret_cast<const TSmbDbxFolderSelectReturnParam *>(aCustomMessage.Ptr());
			switch(param->iError)
				{
				case ESmbDbxReturnErrResourceEmpty:	/**< 儊儌儕傑偨偼儊儌儕埲奜偺儕僜乕僗偑晄懌乮審悢僼儖乯 */
					{
					iPlayerEnv.DialogManager().ShowWarningModelessDialogL(R_MUSIC_MAINPLAYER_IMAGE_ITEMCOUNTOVER_WARNING, this);
					}
					break;
				case ESmbDbxReturnErrSizeOver:		/**< 僨乕僞僒僀僘挻夁乮梕検僼儖乯 */
					{
					iPlayerEnv.DialogManager().ShowWarningModelessDialogL(R_MUSIC_MAINPLAYER_IMAGE_FILESIZEOVER_WARNING, this);
					}
					break;
				default:
					break;
				}
            }
		return;
		}
	else
		{
		TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 45;
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::DoViewActivatedImplL(%d) - Unknown Uid");
		SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelHigh, KLogFmt, aCustomMessageId);
		return;
		}
	
	//2006.10.15 TRK#11574
	// 僉乕僈僀僟儞僗偺乽曐懚乿僉乕傪昞帵偝偣側偄(僨僼僅儖僩)
	CSkonKeyGuidance* keyGuidance = static_cast<CSkonKeyGuidance*>(KeyGuidance());
//	CSkonKeyGuidance* keyGuidance = STATIC_CAST(CSkonKeyGuidance*, KeyGuidance());
	if(NULL!=keyGuidance)
		{
		keyGuidance->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
		if(EFalse!=IsFocused())
			{
			keyGuidance->DrawNow();
			}
		}
		
// Change-S PTX-824(UIQ-1287) 暯壀
	// 夋憸忣曬傪庢摼偡傞
	HandleCommandL(EImageCmdShowFirstImage);
//	if (ESmbMusicAPMainPlayerImageKindJacket == iStartParam.kind)
//		{
//		HandleCommandL(EImageCmdShowJacketFirstImage);
//		}
//	else
//		{
//		HandleCommandL(EImageCmdShowLyricFirstImage);
//		}
// Change-E PTX-824(UIQ-1287) 暯壀	

	// 夋柺昞帵偡傞
	DrawNow();	// <--@@@@@傛傠偟偔側偄
	
	// 僒僽僾儗僀儎偵夋柺曄峏捠抦偡傞
	if (EFalse == iPlayerEnv.IsCaseClosedL())
		{
		//僒僽僾儗僀儎乕偵夋憸昞帵夋柺偵慗堏偟偨偙偲傪捠抦偡傞
		TSmbMusicAPSyncEngineAppSyncInfo info;
		if(ESmbMusicAPMainPlayerImageKindJacket==iStartParam.kind)
			{
			info.iParam1 = ESmbMusicAPPlayerChangeJacketImageViewEvent;	//暿夋柺偐傜僕儍働僢僩夋憸昞帵夋柺偵慗堏偟偨
			}
		else
			{
			info.iParam1 = ESmbMusicAPPlayerChangeLyricImageViewEvent;	//暿夋柺偐傜壧帉夋憸昞帵夋柺偵慗堏偟偨
			}
		iSyncModel->UpdateDisplayInfo(info);
		}
	}

/**
 * 僉乕僀儀儞僩張棟
 *
 * @param[in]		aKeyEvent		僉乕僀儀儞僩
 * @param[in]		aType			僀儀儞僩僞僀僾
 * @return							僉乕儗僗億儞僗
 */
TKeyResponse CSmbMusicAPMainPlayerImageView::OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode aType)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 50;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::OfferKeyEventImplL(%d, %d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelNormal, KLogFmt, aKeyEvent.iCode, aType);
#endif
		
	// 僋儕傾僉乕偱慜夋柺偵傕偳傞
//	if (EWcdmaMpKeyClear==aKeyEvent.iCode)
//		{
//		ClearImage(ETrue);
//		iPlayerEnv.BasisPartFuncInterface().ChangeViewL((TSmbMusicAPMainPlayerViewIds)iStartParam.vparam.iViewId.iViewUid.iUid, KSmbMusicAPMainPlayerChangeViewMsgUid, KNullDesC8);
//		return EKeyWasConsumed;
//		}
	
	//2006.10.06
	if(EEventKey!=aType)
		{
		return EKeyWasConsumed;
		}
	switch(aKeyEvent.iCode)
		{
		case EWcdmaMpKeyClear:				// 僋儕傾僉乕
			{
			HandleCommandL(EMainPlayerFilterViewKGCmdClear);
			}
			return EKeyWasConsumed;
		case EWcdmaMpKeyLeft:				// 嵍栴報僉乕
			{
			HandleCommandL(EImageCmdShowPrevImage);
			}
			return EKeyWasConsumed;
		case EWcdmaMpKeyRight:				// 塃栴報僉乕
			{
			HandleCommandL(EImageCmdShowNextImage);
			}
			return EKeyWasConsumed;
		}
		
	return CAfView::OfferKeyEventL(aKeyEvent, aType);
	}

/**
 * 僐儅儞僪張棟
 *
 * @param[in]		aCommandId			僐儅儞僪俬俢
 * @return								張棟寢壥
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerImageView::HandleCommandL(TInt aCommandId)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 60;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::HandleCommandL(%d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelNormal, KLogFmt, aCommandId);
#endif

	MSmbAfCommandBase::TSmbAfCmdIdResponse ret = MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
	switch(aCommandId)
		{
		case EMainPlayerFilterViewKGCmdClear:
			// 慜夋柺偵栠傞
			ClearImage(ETrue);
			iPlayerEnv.BasisPartFuncInterface().ChangeViewL((TSmbMusicAPMainPlayerViewIds)iStartParam.vparam.iViewId.iViewUid.iUid, KSmbMusicAPMainPlayerChangeViewMsgUid, KNullDesC8);
			ret = MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
			break;
		case EImageCmdConfirmSaveImage:
			HandleSaveImageFileL(ETrue);
			ret = MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
			break;
		case EImageCmdSaveImage:
			HandleSaveImageFileL(EFalse);
			ret = MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
			break;
		case EImageCmdShowFirstImage:
			iIndex = 0;
			HandleGetImageFile(ETrue);
			ret = MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
			break;
		
		case EImageCmdShowNextImage:
			if(EFalse == iImageRequest)
				{
				if(iTotalCount-1>iIndex)
					{
					iIndex++;
					ClearImage(EFalse);
					HandleGetImageFile(ETrue);
					iImageRequest = ETrue;
					}
				else  // TRK9482懳墳丗夋憸偑2枃埲忋桳傞応崌丄嵟廔夋憸仺1枃栚傊僗僋儘乕儖
					{
					if(iTotalCount >= 2)
						{
						//2006.10.20 TRK#11919
						iAppUi->KeyCyclicSoundL();
						
						iIndex = 0;	 // 夋憸偑2枃埲忋桳傞応崌丄1枃栚(index=0)傊僗僋儘乕儖
						ClearImage(EFalse);
						HandleGetImageFile(ETrue);
						iImageRequest = ETrue;
						}
					}
				}
			ret = MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
			break;

		case EImageCmdShowPrevImage:
			if(EFalse == iImageRequest)
				{
				if(0<iIndex)
					{
					iIndex--;
					ClearImage(EFalse);
					HandleGetImageFile(ETrue);
					iImageRequest = ETrue;
					}
				else  // TRK9482懳墳丗夋憸偑2枃埲忋桳傞応崌丄1枃栚仺嵟廔夋柺傊僗僋儘乕儖
					{
					if(iTotalCount >= 2)
						{
						//2006.10.20 TRK#11919
						iAppUi->KeyCyclicSoundL();
						
						iIndex = iTotalCount-1;	 // 夋憸偑2枃埲忋桳傞応崌丄嵟廔夋柺(iTotalCount-1)傊僗僋儘乕儖
						ClearImage(EFalse);
						HandleGetImageFile(ETrue);
						iImageRequest = ETrue;
						}
					}
				ret = MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
				}
			break;
		default:
			__ASSERT_DEBUG(EFalse, PANIC(9300001));
			break;
		}
	return ret;
	}

/**
 * 僐儅儞僪張棟(MEikCommandObserver)
 *
 * @param[in]		aCommandId			僐儅儞僪俬俢
 * @return								側偟
 */
void CSmbMusicAPMainPlayerImageView::ProcessCommandL(TInt aCommandId)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 70;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::ProcessCommandL(%d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelNormal, KLogFmt, aCommandId);
#endif
	}
	
/**
 * 僟僀傾儘僌僋儘乕僘偺捠抦丅
 *
 * @param[in] aResourceId 僋儘乕僘偝傟偨僟僀傾儘僌偺儕僜乕僗ID
 * @param[in] aResult 僋儘乕僘偝傟偨棟桼
 */
void CSmbMusicAPMainPlayerImageView::HandleDialogClosed(TInt aResourceId, TInt aResult)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 80;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::HandleDialogClosed(%d, %d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelNormal, KLogFmt, aResourceId, aResult);
#endif

	switch(aResourceId)
		{
		case R_MUSIC_MAINPLAYER_IMAGE_SELECTION:
		case R_MUSIC_MAINPLAYER_JACKET_IMAGE_SELECTION:
		case R_MUSIC_MAINPLAYER_RYLIC_IMAGE_SELECTION:
			{
			if (MSmbMusicAPMainPlayerDialogManagerBase::ESelectKey == aResult)	//乽偼偄乿偑慖戰偝傟偨
				{
				// 夋憸曐懚偡傞
				HandleCommandL(EImageCmdSaveImage);
				}
			else
				{
				// 側偵傕張棟偟側偄
				}
			}
			break;
		
		//2006.10.16 TRK#11474
		case R_DL_MUSIC_MAIN_FLT_OPERATION_LOADING_PROGRESS:
			{
			if (MSmbMusicAPMainPlayerDialogManagerBase::EClearKey == aResult)
				{
				HandleCommandL(EMainPlayerFilterViewKGCmdClear);
				}
			}
			break;
		
		case R_MUSIC_MAINPLAYER_IMAGE_CONFIRM:
			break;
		case R_MUSIC_MAINPLAYER_IMAGE_ITEMCOUNTOVER_WARNING:
		case R_MUSIC_MAINPLAYER_IMAGE_FILESIZEOVER_WARNING:
			break;
		}
	}
	
/**
 * 夋憸昞帵
 *
 * @param[in]		aBitmap				夋憸
 * @param[in]		aMaskBitmap			儅僗僋夋憸
 * @param[in]		aTotalCount			夋憸悢
 * @param[in]		aIndex				夋憸僀儞僨僢僋僗斣崋
 * @param[in]		aSave				曐懚壜斲
 * @return								側偟
 */
void CSmbMusicAPMainPlayerImageView::ShowImageL(CFbsBitmap* aBitmap, CFbsBitmap* aMaskBitmap, TInt aTotalCount, TInt aIndex, TBool aSave)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerImageView | 90;
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerImageView::ShowImageL(%d, %d, %d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), logCode, ELogLevelNormal, KLogFmt, aTotalCount, aIndex, aSave);
#endif
	
	iImageRequest = EFalse;

	//2006.10.16 TRK#11474
	ResetLoadingTimer();

	if(KErrNone==iImageErr && 0<aTotalCount)
		{
		// 慜夞嶌惉偟偨僀儊乕僕儔儀儖偑巆偭偰偄傟偽徚嫀偡傞
		if(NULL!=iImageLabel)
			{
			DeleteControl(iImageLabel);
			}
		iImageLabel = NULL;
		// 僀儊乕僕儔儀儖傪嶌惉偡傞
		CSkonImageLabel* imageLabel = new(ELeave) CSkonImageLabel;
		CleanupStack::PushL(imageLabel);
		// 僀儊乕僕儔儀儖偵價儏乕傪愝掕偡傞
		imageLabel->SetContainerWindowL(*this);
		imageLabel->ConstructL(ETrue);

//ADD-S TRK7502 2006/09/26 kobayashi
		// 夋憸傪愝掕偡傞
		if (aBitmap != NULL)
			{
			imageLabel->SetPicture(aBitmap, aMaskBitmap);
			// imageLabel 偵價僢僩儅僢僾偺強桳尃傪堏忳偟偨偺偱 iBitmap 傪僋儕傾偟偰偍偔
			iBitmap->iMainBitmap = NULL;
			iBitmap->iMaskedBitmap = NULL;
			delete iBitmap;
			iBitmap = NULL;

⌨️ 快捷键说明

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