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

📄 smbmusicaplibimagefunc.h

📁 索爱手机代码
💻 H
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPLibImageFunc.h
//
// Description:
//	PTX810 Music嫟捠儔僀僽儔儕 夋憸曄姺僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/09	|娵壀			| 怴婯嶌惉
//----PTX824----+---------------+--------------------------------------
//2007/03/20	|K3悪杮			| 偄偔偮偐偺API傪Public偐傜Private偵曄峏
//2007/03/30	|K3悪杮			| PTX824懳墳(G2PF儔僢僷乕偵懳墳)
//2007/04/02	|K3悪杮			| PTX824懳墳(奼戝儕僒僀僘懳墳)

#ifndef __SMBMUSICAPLIBIMAGEFUNC_H__
#define __SMBMUSICAPLIBIMAGEFUNC_H__


#ifndef __SMBCOMMONDEF_H__
#include <SmbCommonDef.h>
#endif


#ifndef __SMBMUSICAPLIBDEF_H__
#include "SmbMusicAPLibImageDef.h"
#endif


class CImageDecoder;

SEMCJ_NAMESPACE_BEGIN

#ifndef __SMBMUSICAPLIB_ENABLE_PTX810__
//  ADD-S PTX824 k3-sugimoto
class CSmbImageMW;
//  ADD-E PTX824 k3-sugimoto
#endif
class CSmbMusicAPLibImageResizer;

/**
 * Music傾僾儕嫟捠儔僀僽儔儕  夋憸張棟僋儔僗
 */
class CSmbMusicAPLibImageFunc : public CActive
	{
public:
	/**
	 忬懺掕媊
	 */
enum TSmbMusicAPLibImageFuncState
	{
	ESmbMusicAPLibIdle = 0,			///<傾僀僪儖忬懺
	ESmbMusicAPLibWaitConvertRes,	///<夋憸曄姺忬懺
	ESmbMusicAPLibWaitResizeBitmap,	///<夋憸曄姺屻偺Bitmap儕僒僀僘忬懺
	ESmbMusicAPLibWaitResizeRes		///<Bitmap儕僒僀僘忬懺
	};

//  ADD-S PTX824 k3-sugimoto
enum TSmbMusicAPLibFileFormat
	{

	ESmbMusicAPLibFileFormatNotSupport = 0,	///<僒億乕僩奜
	ESmbMusicAPLibFileFormatExif,			///<Exif僼傽僀儖
	ESmbMusicAPLibFileFormatJfif,			///<Jfif僼傽僀儖
	ESmbMusicAPLibFileFormatJpeg,			///<Jpeg僼傽僀儖
	ESmbMusicAPLibFileFormatGif				///<Gif僼傽僀儖
	};
//  ADD-E PTX824 k3-sugimoto

	/**
	 僼傽僋僩儕娭悢
	 * @param	側偟
	 * @return	惗惉偟偨僋儔僗偺億僀儞僞
	 */
	IMPORT_C static CSmbMusicAPLibImageFunc* NewL();

	/**
	 僨僗僩儔僋僞
	 * @param	側偟
	 * @return	側偟
	 */
	IMPORT_C ~CSmbMusicAPLibImageFunc();

	/**
	 *  夋憸僼傽僀儖偐傜巜掕偟偨僒僀僘偺Bitmap傪惗惉偡傞
	 *
	 *  @param[in]		aFileName	僼傽僀儖柤(僼儖僷僗巜掕)
	 *  @param[in]		aSize		弌椡偡傞Bitmap偺僒僀僘(暋悢巜掕壜)
	 *  @param[in,out]	aBitmap		曄姺屻偺Bitmap奿擺僋儔僗
	 *  @param[in,out]	aStatus		旕摨婜墳摎梡偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗
	 *
	 *  @return	張棟寢壥
	 **/
//  MODIFY-S PTX824 k3-sugimoto
	IMPORT_C TInt ConvertImage(
			const TDesC& aFileName,
			RArray<TSmbMusicAPLibImageSizeInfo>& aSize,
			RPointerArray<TSmbMusicAPLibImageBitmap>& aBitmap,
			TRequestStatus& aStatus
			);
//  MODIFY-E PTX824 k3-sugimoto

	/**
	夋憸曄姺傪拞巭偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	IMPORT_C TInt CancelConvertImage();

	/**
	 *  Bitmap傪儕僒僀僘偡傞
	 *
	 *  @param[in]		aSrcBitmap	儕僒僀僘偡傞尦夋憸Bitmap
	 *  @param[in]		aSize		巜掕偟偨僒僀僘
	 *  @param[in,out]	aDstBitmap	儕僒僀僘屻偺夋憸Bitmap
	 *  @param[in,out]	aStatus		旕摨婜墳摎梡偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗
	 *  @param[in]		aBeSpread	奼戝幚峴僼儔僌(僨僼僅儖僩:EFalse=奼戝偟側偄)
	 *
	 *  @return	張棟寢壥
	 **/
//  MODIFY-S PTX824 k3-sugimoto
	IMPORT_C TInt ResizeBitmap(
			TSmbMusicAPLibImageBitmap& aSrcBitmap,
			TSize aSize,
			TSmbMusicAPLibImageBitmap& aDstBitmap,
			TRequestStatus& aStatus,
			TBool aBeSpread = EFalse
			);
//  MODIFY-E PTX824 k3-sugimoto

	/**
	 Bitmap偺儕僒僀僘傪拞巭偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	IMPORT_C TInt CancelResizeBitmap();

	/**
	 擖椡偝傟偨夋憸偑僒億乕僩撪偱偁傞偐傪僠僃僢僋偡傞
	 * @param[in]		aFileName	僼傽僀儖柤
	 * @param[in.out]	aSize		夋憸偺夋僒僀僘
	 * @return	張棟寢壥
	 */
	IMPORT_C TInt SupportedImageL(const TDesC& aFileName, TSize& aSize);


private:
	/**
	 僐儞僗僩儔僗僞
	 * @param	側偟
	 * @return	側偟
	 */
	CSmbMusicAPLibImageFunc();

	/**
	 戞擇僼僃乕僘僐儞僗僩儔僋僞
	 * @param	側偟
	 * @return	側偟
	 */
	void ConstructL();

	/**
	 忬懺傪僙僢僩偡傞
	 * @param [in]	aState		愝掕偡傞忬懺抣
	 * @return	側偟
	 */
	void SetState(TSmbMusicAPLibImageFuncState aState);

	/**
	 忬懺傪庢摼偡傞
	 * @param	側偟
	 * @return	夋憸張棟僋儔僗偺忬懺
	 */
	TSmbMusicAPLibImageFuncState State();

	/**
	 惗惉偟偨僆僽僕僃僋僩傪嶍彍偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void DeleteObjects();

	/**
	 梫媮懁偵懳偟偰丄旕摨婜梫媮偺姰椆傪捠抦偡傞
	 * @param	aCode	姰椆僐乕僪
	 * @return	側偟
	 */
	void Complete(TInt aCode);

	/**
	 庢摼偟偨Bitmap攝楍傪嶍彍偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void DeleteBitmapArray();

	/**
	 傾僋僥傿僽僆僽僕僃僋僩偺RunL娭悢傪幚憰偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void RunL();

	/**
	 傾僋僥傿僽僆僽僕僃僋僩偺DoCancel張棟傪峴偆
	 * @param	側偟
	 * @return	側偟
	 */
	void DoCancel();

	/**
	 Bitmap偵曄姺張棟廔椆屻丄Bitmap偺儕僒僀僘張棟傪奐巒偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void CompleteConvert();

	/**
	 Bitmap儕僒僀僘梫媮乮暋悢巜掕壜乯傪慡晹姰椆偡傞傑偱張棟傪懕偗傞
	 * @param	側偟
	 * @return	側偟
	 */
	void CompleteResize();

	/**
	 扨悢偺Bitmap儕僒僀僘張棟姰椆捠抦傪梫媮懁偵搳偘傞
	 * @param	側偟
	 * @return	側偟
	 */
	void CompleteResizeBitmap();

	/**
	 旕摨婜梫媮傪奐巒偡傞乮AO傪SetActive偡傞乯
	 * @param	側偟
	 * @return	側偟
	 */
	void Start();

//  ADD-S PTX824 k3-sugimoto
	/**
	 *  Jpeg夋憸埲奜傪Bitmap偵曄姺偡傞
	 *  @param[in]		aFileName	僼傽僀儖柤(僼儖僷僗巜掕)
	 *  @param[in]		aSize		夋憸偺夋僒僀僘
	 *  @param[in,out]	aStatus		旕摨婜墳摎梡偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗
	 *  @return	張棟寢壥
	 **/
	TInt StartConvertImageFile(
			const TDesC& aFileName,
			TSize aSize,
			TRequestStatus& aStatus
			);

	/**
	 *  G2PF MW傪巊梡偟Jpeg夋憸傪Bitmap偵曄姺偡傞
	 *  @param [in]		aFileName	僼傽僀儖柤(僼儖僷僗巜掕)
	 *  @param[in]		aSize
	 *  @param [in,out]	aStatus		旕摨婜墳摎梡偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗
	 *  @return	張棟寢壥
	 **/
	TInt StartConvertJpegFile(
			const TDesC& aFileName,
			TSize aSize,
			TRequestStatus& aStatus
			);
//  ADD-E PTX824 k3-sugimoto


private:
	/** 梫媮懁偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗傪堦帪曐懚梡儊儞僶乕曄悢 */
	TRequestStatus* iClientStatus;

	/** 儕僒僀僘偟偨Bitmap傊偺嶲徠偺攝楍 */
	RPointerArray<TSmbMusicAPLibImageBitmap>* iDstBitmap;

	/** 巜掕偟偨僒僀僘偺攝楍傪堦帪曐懚梡儊儞僶乕曄悢 */
//  MODIFY-S PTX824 k3-sugimoto
	RArray<TSmbMusicAPLibImageSizeInfo> iDstSize;
//  MODIFY-E PTX824 k3-sugimoto

	/** 儕僒僀僘梫媮偑暋悢偺応崌丄偦偺張棟姰椆僇僂儞僞 */
	TInt iCompleteCounter;

	/** 巜掕偟偨夋憸僼傽僀儖偐傜堦帪惗惉偟偨Bitmap奿擺梡儊儞僶乕曄悢 */
	TSmbMusicAPLibImageBitmap iTmpBitmap;

	/** 夋憸僨僐乕僟僋儔僗偺億僀儞僞 */
	CImageDecoder* iDecoder;

	/** 僋儔僗忬懺 */
	TSmbMusicAPLibImageFuncState iState;

	/** 儕僒僀僘偟偨Bitmap奿擺梡儊儞僶乕曄悢 */
	TSmbMusicAPLibImageBitmap iWorkBitmap;

	/** 僼傽僀儖僒乕僶僙僢僔儑儞 */
	RFs iFs;

	/** Bitmap儕僒僀僘 僋儔僗傊偺億僀儞僞 */
	CSmbMusicAPLibImageResizer* iResizer;

//  ADD-S PTX824 k3-sugimoto
	TSmbMusicAPLibFileFormat	iFileFormat;	///<  僼傽僀儖僼僅乕儅僢僩

	TSize						iDestSize;		///<  弌椡夋憸偺儕僒僀僘屻偺僒僀僘

#ifndef __SMBMUSICAPLIB_ENABLE_PTX810__
	CSmbImageMW*				iJpgDecoder;	///<  G2PF儔僢僷乕僆僽僕僃僋僩
#endif
//  ADD-E PTX824 k3-sugimoto
	};

SEMCJ_NAMESPACE_END


#endif //__SMBMUSICAPLIBIMAGEFUNC_H__

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

⌨️ 快捷键说明

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