📄 smbmusicapsingleplayerimage.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 + -