⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicapsingleplayerimage.cpp

📁 symbian代码
💻 CPP
字号:
/*----------------------------------------------------------------------------*/
// Copyright (c) 2007 Sony Ericsson Mobile Communications Japan, Inc.
// All rights reserved.
/*----------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPSinglePlayerImage.cpp
//   
// Description:
//	堦嬋嵞惗僕儍働僢僩夋憸庢摼僋儔僗(AO)
//
// Modify:
//	2006-07-07	僐乕僪惍棟	K3Hirono
//	
//	2007-02-01	PTX824Start		
/*------------------------------------------------------------------------*/
// $NoKeywords: $

#ifndef SMBMUSICAPSINGLEPLAYERIMAGE_H_
#include "SmbMusicAPSinglePlayerImage.h"	//堦嬋嵞惗僕儍働僢僩夋憸庢摼僋儔僗
#endif	//SMBMUSICAPSINGLEPLAYERIMAGE_H_


#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h>	//MW儔僀僽儔儕僋儔僀傾儞僩
#endif //__SMBMUSICMWLIBCLIENT_H__

#ifndef SMBMUSICAPSINGLEPLAYERMODEL_H_
#include "SmbMusicAPSinglePlayerModel.h"	//堦嬋嵞惗Model僋儔僗
#endif //SMBMUSICAPSINGLEPLAYERMODEL_H_

#ifndef __SMBMUSICAPLIBDEF_H__
#include "SmbMusicAPLibImageDef.h"	//儈儏乕僕僢僋嫟捠儔僀僽儔儕夋憸掕媊
#endif	//__SMBMUSICAPLIBDEF_H__


#ifndef __SMBMUSICAPLIBMWFUNC_H__
#include "SmbMusicAPLib.h"	//	儈儏乕僕僢僋嫟捠儔僀僽儔儕
#endif	//__SMBMUSICAPLIBMWFUNC_H__

#ifndef SMBMUSICAPSINGLEPLAYERLOG_H_
#include "SmbMusicAPSinglePlayerLog.h"	//	儘僌
#endif	//SMBMUSICAPSINGLEPLAYERLOG_H_

SEMCJ_NAMESPACE_BEGIN

#ifdef _DEBUG
_LIT(KPanicCategory, "SMBMUSICSINGLEPLAYERIMAGE");
#endif

_LIT(KImage, "SmbMusicAPSinglePlayerImage");

const TInt KSmbMusicAPSinglePlayerImageIndex = 1;			///<	堦嬋嵞惗僾儗僀儎乕偱庢摼偡傞夋憸僀儞僨僢僋僗
const TInt KKSmbMusicAPSinglePlayerImageWidth = KSmbLayout_UIF_ETC_MPM_9_IMG_SIZE;		///<	僕儍働僢僩夋憸僒僀僘暆
const TInt KKSmbMusicAPSinglePlayerImageHeight = KSmbLayout_UIF_ETC_MPM_9_IMG_SIZE;		///<	僕儍働僢僩夋憸僒僀僘崅偝

/**
 *	僐儞僗僩儔僋僞
 *
 *	@param	RSmbMusicMWLibSession*	aSession		MW儔僀僽儔儕僙僢僔儑儞
 *	@param	CSmbMusicAPSinglePlayerModel*	aModel	堦嬋嵞惗Model僋儔僗
 *	@param	CSmbMusicMWLibSongItem* aSongItem	MW嬋Item僋儔僗
 */
CSmbMusicAPSinglePlayerImage::CSmbMusicAPSinglePlayerImage
										(RSmbMusicMWLibSession* aSession,
 										CSmbMusicAPSinglePlayerModel* aModel,
 										CSmbMusicMWLibSongItem& aSongItem)
	: 	CActive(EPriorityStandard),
		iSongItem(aSongItem),
		iModel(aModel),
		iSession(aSession)
	{
	__ASSERT_DEBUG(&aSongItem != NULL, 
					User::Panic(KPanicCategory, EInvalidArgument));
	__ASSERT_DEBUG(aModel != NULL, 
					User::Panic(KPanicCategory, EInvalidArgument));
	__ASSERT_DEBUG(aSession != NULL, 
					User::Panic(KPanicCategory, EInvalidArgument));

	CActiveScheduler::Add(this);
	}

/**
 *	僨僗僩儔僋僞
 *	
 *	@param	側偟
 */
CSmbMusicAPSinglePlayerImage::~CSmbMusicAPSinglePlayerImage()
	{
	Cancel();
	delete iLibFunc;
	}


/**
 *	僼傽僋僩儕娭悢
 *
 *	@param	RSmbMusicMWLibSession*	aSession	MW儔僀僽儔儕僙僢僔儑儞
 *	@param	CSmbMusicAPSinglePlayerModel*	aModel	堦嬋嵞惗Model僋儔僗
 *	@param	CSmbMusicMWLibSongItem* aSongItem	MW嬋Item僋儔僗
 *	@return	CSmbMusicAPSinglePlayerImage* 堦嬋嵞惗夋憸庢摼僋儔僗僀儞僗僞儞僗
 */
CSmbMusicAPSinglePlayerImage* 
	CSmbMusicAPSinglePlayerImage::NewL
				(RSmbMusicMWLibSession* aSession,
				CSmbMusicAPSinglePlayerModel* aModel,
				CSmbMusicMWLibSongItem& aSongItem)
	{
	CSmbMusicAPSinglePlayerImage* self = new(ELeave) CSmbMusicAPSinglePlayerImage(aSession, aModel, aSongItem);

	CleanupStack::PushL(self);
	self->ConstructL();
	CleanupStack::Pop(self);
	return self;
	}


/**
 *	夋憸庢摼
 *
 *	@param[out]	aImageBitmap	庢摼偟偨夋憸偲偦偺儅僗僋偺奿擺愭
 *	@return void
 */
void CSmbMusicAPSinglePlayerImage::GetImageL(TSmbMusicAPLibImageBitmap& aImageBitmap)
	{
	__ASSERT_DEBUG(&aImageBitmap != NULL, 
					User::Panic(KPanicCategory, EInvalidArgument));
	// 堦嬋嵞惗僾儗僀儎乕偱偼丄夋憸僞僀僾丄夋憸僒僀僘丄僀儞僨僢僋僗偼屌掕
	Cancel();
	TInt ret = iLibFunc->GetImage(	iSongItem,
									 ESmbMusicAPLibImageTypeJacket,
									 TSize(KKSmbMusicAPSinglePlayerImageWidth, KKSmbMusicAPSinglePlayerImageHeight),
									 KSmbMusicAPSinglePlayerImageIndex,
									 aImageBitmap,
									 iStatus,
									 ETrue);
	if(ret != KErrNone)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KImage, EPlayerImage, ELogLevelNormal,_L("GetImageErr:%d" ), ret);
		iModel->GetImageCompleteL(ECannotGetImage);	//MOD For D_82400009845
		return;
		}
		
	SetActive();
	}

/**
 *	旕摨婜張棟廔椆屻
 *
 *	@memo MOD For D_82400009845.GetImageCompleteL偺堷悢傪曄峏
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerImage::RunL()
	{
	TGetImageResult canGetImage(ECannotGetImage);
	TInt ret = iStatus.Int();
	if(KErrNone == ret)
		{
		canGetImage = ECanGetImage;	
		}
	else
		{
		canGetImage = ECannotGetImage;
		}

	iModel->GetImageCompleteL(canGetImage);
	}

/**
 *	旕摨婜梫媮僉儍儞僙儖張棟
 *	
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerImage::DoCancel()
	{
	// 曉傝抣偵墳偠偰摿偵張棟傪曄偊側偄偨傔丄曉傝抣傪柍帇偡傞
	TInt ret = iLibFunc->CancelGetImage();
	if(ret != KErrNone)
		{
		SmbMusicAPSinglePlayerLog::OutputLogWithServerConnect(KImage, EPlayerImage, ELogLevelLowest,_L("GetImageCancelErr:%d" ), ret);
		}
	}

/**
 *	2nd僐儞僗僩儔僋僞
 *
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerImage::ConstructL()
	{
	iLibFunc = CSmbMusicAPLibMWFunc::NewL(*iSession);
	}


//ADD-S D_82400009845
//------------------ GetDefaultImageClass	---------------------------------//
/**
 *	僐儞僗僩儔僋僞
 *
 *	@param	CSmbMusicAPSinglePlayerModel*	aModel	堦嬋嵞惗Model僋儔僗
 */
CSmbMusicAPSinglePlayerGetDefaultImage::CSmbMusicAPSinglePlayerGetDefaultImage(CSmbMusicAPSinglePlayerModel* aModel)
	: 	CActive(EPriorityStandard),
		iModel(aModel),
		iOwnership(EFalse)
	{
	CActiveScheduler::Add(this);
	}

/**
 *	僨僗僩儔僋僞
 *	
 *	@param	側偟
 */
CSmbMusicAPSinglePlayerGetDefaultImage::~CSmbMusicAPSinglePlayerGetDefaultImage()
	{
	Cancel();
	DeleteSrcImage();
	delete iLibFunc;
	}


/**
 *	僼傽僋僩儕娭悢
 *	NeedLeaveTest
 *	@param	CSmbMusicAPSinglePlayerModel*	aModel		堦嬋嵞惗Model僋儔僗
 *	@param	TDesC&							aFileName	夋憸僼傽僀儖
 *	@param	TInt32							aId			夋憸ID
 *	@param	TInt32							aMaskId		偁傟偽儅僗僋夋憸ID(Default 0)
 *	@return	CSmbMusicAPSinglePlayerGetDefaultImage* 	堦嬋嵞惗夋憸庢摼僋儔僗僀儞僗僞儞僗
 */
CSmbMusicAPSinglePlayerGetDefaultImage* CSmbMusicAPSinglePlayerGetDefaultImage::NewL
				(CSmbMusicAPSinglePlayerModel* aModel, const TDesC& aFileName, TInt32 aId, TInt32 aMaskId)
	{
	CSmbMusicAPSinglePlayerGetDefaultImage* self = new(ELeave) CSmbMusicAPSinglePlayerGetDefaultImage(aModel);

	CleanupStack::PushL(self);
	self->ConstructL(aFileName, aId, aMaskId);
	CleanupStack::Pop(self);
	return self;
	}


/**
 *	Default夋憸庢摼
 *
 *	@param[out]	aImageBitmap	庢摼偟偨夋憸偲偦偺儅僗僋偺奿擺愭
 *	@return void
 */
TInt CSmbMusicAPSinglePlayerGetDefaultImage::GetDefaultImage(TSmbMusicAPLibImageBitmap& aDstImage)
	{
	Cancel();
	TInt ret = iLibFunc->ResizeBitmap(	iSrcImage,
										TSize(KKSmbMusicAPSinglePlayerImageWidth, KKSmbMusicAPSinglePlayerImageHeight),
										aDstImage,
										iStatus
										);
	
	if(ret != KErrNone)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KImage, EPlayerImage, ELogLevelNormal,_L("GetImageErr:%d" ), ret);
		return ret;
		}
		
	SetActive();
	return KErrNone;
	}

/**
 *	弅彫偟側偄Default夋憸傪庢摼
 *
 *	@memo 	夋憸偺強桳尃傪堷偒搉偟偰偟傑偆丅
 *	@param	TSmbMusicAPLibImageBitmap& aDstImage
 *	@return void
 */
void CSmbMusicAPSinglePlayerGetDefaultImage::GetDefaultImageSrc(TSmbMusicAPLibImageBitmap& aDstImage)
	{
	aDstImage = iSrcImage;
	iOwnership = EFalse;
	}
	
/**
 *	旕摨婜張棟廔椆屻
 *
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerGetDefaultImage::RunL()
	{
	TGetImageResult canGetImage(ECannotGetDefaultImage);
	TInt ret = iStatus.Int();
	if(KErrNone == ret)
		{
		canGetImage = ECanGetImage;
		DeleteSrcImage();
		}
	else
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KImage, EPlayerImage, ELogLevelNormal,_L("GetDefaultImageErr(RunL):%d" ), ret);
		}
	iModel->GetImageCompleteL(canGetImage);
	}

/**
 *	旕摨婜梫媮僉儍儞僙儖張棟
 *	
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerGetDefaultImage::DoCancel()
	{
	// 曉傝抣偵墳偠偰摿偵張棟傪曄偊側偄偨傔丄曉傝抣傪柍帇偡傞
	TInt ret = iLibFunc->CancelResizeBitmap();
	if(ret != KErrNone)
		{
		SmbMusicAPSinglePlayerLog::OutputLogWithServerConnect(KImage, EPlayerImage, ELogLevelLowest,_L("GetDefaultImageCancelErr:%d" ), ret);
		}
	}

/**
 *	2nd僐儞僗僩儔僋僞
 *	need LeaveTest
 *	@param	TDesC&							aFileName	夋憸僼傽僀儖
 *	@param	TInt32							aId			夋憸ID
 *	@param	TInt32							aMaskId		偁傟偽儅僗僋夋憸ID(Default 0)
 *	@return void
 */
void CSmbMusicAPSinglePlayerGetDefaultImage::ConstructL(const TDesC& aFileName, TInt32 aId, TInt32 aMaskId)
	{
	iLibFunc = CSmbMusicAPLibImageFunc::NewL();

	iSrcImage.iMainBitmap = new(ELeave)CFbsBitmap();
	User::LeaveIfError(iSrcImage.iMainBitmap->Load(aFileName, aId));	//	僨僼僅儖僩夋憸愝掕
	
	if(0 != aMaskId)
		{
		iSrcImage.iMaskedBitmap = new(ELeave)CFbsBitmap();
		User::LeaveIfError(iSrcImage.iMaskedBitmap->Load(aFileName, aMaskId));
		}
	iOwnership = ETrue;
	}


/**
 *	SrcImage傪嶍彍偡傞
 *
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerGetDefaultImage::DeleteSrcImage()
	{
	if(EFalse != iOwnership)
		{
		if(iSrcImage.iMainBitmap)	
			{
			delete iSrcImage.iMainBitmap;
			iSrcImage.iMainBitmap = NULL;
			}
			
		if(iSrcImage.iMaskedBitmap)
			{
			delete iSrcImage.iMaskedBitmap;
			iSrcImage.iMaskedBitmap = NULL;
			}
		iOwnership = EFalse;
		}
	}
//ADD-E D_82400009845
SEMCJ_NAMESPACE_END
// end of SmbMusicAPSinglePlayerImage.cpp
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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