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

📄 smbmusicapmainplayerimageview.h

📁 symbian
💻 H
字号:
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPMainPlayerImageView.h
//
// Description:
//	儈儏乕僕僢僋儊僀儞僾儗僀儎
//	夋憸昞帵夋柺價儏乕僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/06/05		|SEMCJ嶳壀		|怴婯嶌惉
//2006/07/09		|SEMCJ嶳壀		|摨婜僄儞僕儞/僒乕僶偲偺IF晹傪暘棧丒廋惓
//2006/07/10		|SEMCJ嶳壀		|夋憸庢摼張棟傪戝暆偵夵椙偟偰儅乕僕
//2006/07/17		|SEMCJ嶳壀		|傾僀僐儞僉儍僢僔儏懳墳
//2006/07/25		|SDNA嶳壀		|No Image偲Not Supported偺応崌暘偗傪廋惓
//2006/07/25		|SDNA嶳壀		|夋憸僒僀僘丒僼傽僀儖僒僀僘偺僠僃僢僋
//2006/08/03		|K3戝嫶			|抂枛奐暵傪捠抦偡傞僀儞僞僼僃乕僗傪捛壛
//2006/09/07		|K3戝嫶			|HandleBatteryLowPauseL()偑曉傝抣傪曉偡傛偆偵奼挘偝傟偨偙偲偵懳墳
//2006/09/13		|K3戝嫶			|PreparePlay拞偺掅揹埑嬋掆巭偵懳墳偡傞偨傔丄僀儞僞僼僃乕僗偑奼挘偝傟偨偙偲偵懳墳
//2007/10/01		|SEMCJ暯壀		|D_82400016158懳墳

#ifndef __SMBMUSICAPMAINPLAYERIMAGEVIEW_H__
#define __SMBMUSICAPMAINPLAYERIMAGEVIEW_H__

#include <f32file.h>
#include <FjAfView.h>

#include <SkonVerticalContainer.h>
#include <SkonImageLabel.h>
#include <SkonCombinedText.h>

#include <SmbCommonDef.h>

#ifndef __SMBMUSICAPLIB_H__
#include "SmbMusicAPLib.h"
#endif

#include "SmbMusicAPMainPlayerViewBase.h"
#include "SmbMusicAPMainPlayerDialogObserver.h"
#include "SmbMusicAPMainPlayerEventHandler.h"
#include "SmbMusicAPMainPlayerBasisPartObserver.h"
#include "SmbMusicAPMainPlayerDialogManagerBase.h"

#include "SmbMusicAPMainPlayerFilterSyncServerController.h"

#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"

USING_NAMESPACE_DCM

SEMCJ_NAMESPACE_BEGIN

enum TSmbMusicAPMainPlayerImageViewHandleCommand
	{
	//
	// KeyGuidance Command
	//
	EMainPlayerImageViewKGCmdClear = 0x2100,
	EMainPlayerImageViewKGCmdSelect,
	EMainPlayerImageViewKGCmdFunc,
	EMainPlayerImageViewKGCmdSave
	};

enum TSmbMusicAPMainPlayerImageViewSpec
	{
	EMainPlayerImageViewMaxFileNameLength = 36
	};
	
////////////////////////////////////////////////////////////////////////////////
// 夋憸昞帵價儏乕
////////////////////////////////////////////////////////////////////////////////
class CSmbMusicAPMainPlayerImageView : public CSmbMusicAPMainPlayerViewBase
	, public MSmbMusicAPMainPlayerDialogObserver
	, public MSmbMusicAPMainPlayerEventHandler
	, public MEikCommandObserver
	, public MSmbMusicAPMainPlayerFilterSyncServerProcessResponseObserver
	{
public:
	static CSmbMusicAPMainPlayerImageView* NewL(MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine);
	// 價儏乕僐儞僥僫弶婜壔
	void DoConstructContainerL();
	// 價儏乕傾僋僥傿僽姰椆帪偺僐乕儖僶僢僋娭悢撪張棟
	void DoViewActivatedImplL(const TVwsViewId& aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage);
	// 僉乕僀儀儞僩張棟
	TKeyResponse OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode aType);
	
	// 僐儅儞僪張棟(MSmbMusicAPMainPlayerEventHandler)
	TSmbAfCmdIdResponse HandleCommandL(TInt aCommandId);
	// 僐儅儞僪張棟(MEikCommandObserver)
	void ProcessCommandL(TInt aCommandId);
	// 僟僀傾儘僌僋儘乕僘張棟(MSmbMusicAPMainPlayerDialogObserver)
	virtual void HandleDialogClosed(TInt aResourceId, TInt aResult);

	/// 夋憸偺昞帵
//MOD-S TRK7502 2006/09/25 kobayashi
//	void ShowImageL(const TDesC& aFileName, TInt aWidth, TInt aHeight, TInt aTotalCount, TInt aIndex, TBool aSave);
	void ShowImageL(CFbsBitmap* aBitmap, CFbsBitmap* aMaskBitmap, TInt aTotalCount, TInt aIndex, TBool aSave);
//MOD-E TRK7502 2006/09/25 kobayashi
	/// 夋憸僨乕僞偺弶婜壔
	void ClearImage(TBool allClear);
	/// 夋柺昞帵
	void Draw(const TRect& aRect) const;
	
	// 夋憸張棟
	void HandleGetImageFile(TBool aDialogTimerResetart);
	void HandleSaveImageFileL(TBool aShowDialog);
	void DeleteImageFile(void);
//ADD-S TRK7502 2006/09/25 kobayashi
// Change-S PTX-824懳墳(UIQ-1535) 暯壀
//	void HandleBitmapDataL(TInt aWidth, TInt aHeight);
	void HandleBitmapDataL(TInt aWidth, TInt aHeight, TBool aSpread);
// Change-E PTX-824懳墳(UIQ-1535) 暯壀
//ADD-E TRK7502 2006/09/25 kobayashi


public:	// from MSmbMusicAPMainPlayerFilterSyncServerProcessResponseObserver
	// 摨婜僒乕僶偐傜偺梫媮墳摎
	void RequestComplete(TSmbMusicAPMainPlayerRequest 							aKind, 
						 TInt 													aResult, 
						 MSmbMusicAPMainPlayerFilterSyncServerProcessResponse&	aResponse);
	void RequestCancel(TSmbMusicAPMainPlayerRequest 							aKind, 
						 MSmbMusicAPMainPlayerFilterSyncServerProcessResponse&	aResponse);

	// 僀儀儞僩僴儞僪儔曉媝
	MSmbMusicAPMainPlayerEventHandler* EventHandler() const;
	// P.A.曄峏捠抦
	void HandleOnChangeL(TUid aUid, TInt aData);
	// 傾僾儕廔椆捠抦
	void HandleExitApp(TSmbMusicAPMainPlayerExitReason aReason);
	// 僾儗僀儎忬懺曄峏捠抦
	void HandleMusicAPPlayerStateChangedL(TSmbPGMusicAPPlayerState aState);
	// 僾儗僀儎忬懺曄峏捠抦
	void HandleForegroundEventL(TBool aForeground);
	// 摨婜僄儞僕儞庢摼
	void HandleGetAccessSyncEngineL(TBool aResult);
	// 摨婜僄儞僕儞奐曻
	void HandleReleaseAccessSyncEngineL();
	// 掅揹埑捠抦
//DEL-S 2006.09.13 K3戝嫶 嬋嵞奐偡傞偐斲偐傪堷悢偱庴偗庢傞傛偆偵奼挘
//	void HandleBatteryLowPlayL();
//DEL-E 2006.09.13 K3戝嫶 嬋嵞奐偡傞偐斲偐傪堷悢偱庴偗庢傞傛偆偵奼挘
//ADD-S 2006.09.13 K3戝嫶 嬋嵞奐偡傞偐斲偐傪堷悢偱庴偗庢傞傛偆偵奼挘
	void HandleBatteryLowPlayL(TBool aPlay);
//ADD-E 2006.09.13 K3戝嫶 嬋嵞奐偡傞偐斲偐傪堷悢偱庴偗庢傞傛偆偵奼挘
//DEL-S 2006.09.07 K3戝嫶 HandleBatteryLowPauseL()偑曉傝抣傪曉偡傛偆偵奼挘偝傟偨偙偲偵懳墳
//	void HandleBatteryLowPauseL();
//DEL-E 2006.09.07 K3戝嫶 HandleBatteryLowPauseL()偑曉傝抣傪曉偡傛偆偵奼挘偝傟偨偙偲偵懳墳
//ADD-S 2006.09.07 K3戝嫶 HandleBatteryLowPauseL()偑曉傝抣傪曉偡傛偆偵奼挘偝傟偨偙偲偵懳墳
//DEL-S 2006.09.13 K3戝嫶 掅揹埑庬暿傪堷悢偱庴偗庢傞傛偆偵奼挘
//	TBool HandleBatteryLowPauseL();
//DEL-E 2006.09.13 K3戝嫶 掅揹埑庬暿傪堷悢偱庴偗庢傞傛偆偵奼挘
//ADD-S 2006.09.13 K3戝嫶 掅揹埑庬暿傪堷悢偱庴偗庢傞傛偆偵奼挘
	TBool HandleBatteryLowPauseL(TSmbMusicAPMainPlayerLowBatteryType aLowBatteryType);
//ADD-E 2006.09.13 K3戝嫶 掅揹埑庬暿傪堷悢偱庴偗庢傞傛偆偵奼挘
//ADD-E 2006.09.07 K3戝嫶 HandleBatteryLowPauseL()偑曉傝抣傪曉偡傛偆偵奼挘偝傟偨偙偲偵懳墳
	// 奜晹儊儌儕憓敳捠抦
	void HandleExtMemoryChangeStatusL(TBool aMount);
	// 廔椆妋擣
	TBool HandleExitPreprocessingL();
	// 僶僢僋儔僀僩忬懺曄峏捠抦
	void HandleBacklightEventL(TBool aBacklight);
	void HandleExitPostprocessingL();
	void HandleCompleteBootSubPlayerL();
//ADD-S 2006.08.03 K3戝嫶 抂枛奐暵傪捠抦偡傞僀儞僞僼僃乕僗傪捛壛
	// 抂枛奐暵捠抦
	void HandleCaseClosedL(TBool aCaseClose);
//ADD-E 2006.08.03 K3戝嫶 抂枛奐暵傪捠抦偡傞僀儞僞僼僃乕僗傪捛壛

public: // From MArrowStateProvider 
	/// 僉乕僈僀僟儞僗偺栴報僉乕桳柍偺庢摼
	TInt CurrentArrowState(void) const;
	
protected:
	/// 僉乕僈僀僟儞僗偺栴報僉乕桳柍傪愝掕
	void SetArrowState(TInt aTotal, TInt aIndex);

private:
	// 僐儞僗僩儔僋僞
	CSmbMusicAPMainPlayerImageView(const DCM_NAMESPACE::TAfViewParam& aViewParam, MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine);
	// 僨僗僩儔僋僞
	~CSmbMusicAPMainPlayerImageView();
	// 僙僇儞僪僐儞僗僩儔僋僞
	void ConstructL();
	
	// 夋憸僨乕僞偺僗儁僢僋妋擣
	TInt CheckImageSpecL(const TDesC& aFileName, TInt& aWidth, TInt& aHeight);
	// 僟僀傾儘僌梡偺CombinedText惗惉
	CSkonCombinedText* CreateDialogMessageLC(const TDesC& aBaseMessage, const TDesC& aString);
//ADD-S TRK7502 2006/09/25 kobayashi
	// 昞帵價僢僩儅僢僾僨乕僞偺攋婞
	void ResetBitmapArray();
//ADD-E TRK7502 2006/09/25 kobayashi

	//2006.10.16 TRK#11474
	void SetupLoadingTimer();
	void DeleteLoadingTimer();
	void ResetLoadingTimer();
	void StartLoadingTimer();

public:
	static TInt HandleLoadingEvent(TAny* aObject);
	void ShowLoadingDialogL();
	void HideLoadingDialog();

private:
	//2006.10.20 TRK#11919
	CSakAppUi*											iAppUi;
	
private:
	/// 婲摦僷儔儊乕僞
	TSmbMusicAPMainPlayerPrmImageDisp					iStartParam;
	
	/// 僀儊乕僕儔儀儖
	CSkonImageLabel*									iImageLabel;
	/// 傾僀僐儞僉儍僢僔儏
    CSmbMusicAPLibIconCache*							iIconCache;
	/// 僉乕僈僀僟儞僗偺栴報僉乕忬懺
	TInt												iArrowState;

	/// 夋憸忣曬曐桳僼儔僌 (ETrue: 曐桳 / EFalse:枹曐桳)
// Change-S PTX-824懳墳丂暯壀
//	TBool												iHasImageInfo;
	TBool												iHasJacketImageInfo;
	TBool												iHasLyricImageInfo;
// Change-E PTX-824懳墳丂暯壀

	/// 夋憸偺枃悢
	TInt												iTotalCount;
	/// 夋憸偺僀儞僨僢僋僗斣崋
	TInt												iIndex;
	TSmbMusicAPSyncEngineImageIndividualInfo			iImageInfo;
	/// 夋憸庬暿
	TSmbMusicAPLibImageType								iImageType;
	/// 曐懚壜斲僼儔僌
	TBool												iStoreFlag;
	/// 夋憸僼傽僀儖柤(昞帵梡)
	HBufC*												iFileName;
	///	僼傽僀儖僒乕僶偲偺僙僢僔儑儞
	RFs&												iFs;
	/// 庢摼夋憸偺敾掕寢壥
	TInt												iImageErr;
	/// 乽夋憸側偟乿傾僀僐儞
	CGulIcon*											iNoImageIcon;


	// 摨婜僒乕僶僐儞僩儘乕儔
	CSmbMusicAPMainPlayerFilterSyncServerController*	iSyncModel;
	TInt												iRequestId;

	// 夋憸忣曬
	RArray<TSmbMusicAPSyncEngineImageIndividualInfo>	iArrayJacket;
	RArray<TSmbMusicAPSyncEngineImageIndividualInfo>	iArrayLyric;

	// 夋憸壛岺僋儔僗
	CSmbMusicAPLibImageFunc* 							iImageFunc;
//ADD-S TRK7502 2006/09/25 kobayashi
	// 昞帵價僢僩儅僢僾僨乕僞
	TSmbMusicAPLibImageBitmap*							iBitmap;
//ADD-E TRK7502 2006/09/25 kobayashi

	// 夋憸張棟拞僼儔僌
	TBool												iImageRequest;

	//2006.10.16 TRK#11474
	// 夋憸撉崬傒僞僀儅乕
	CPeriodic*											iLoadingTimer;
	CSkonCompoundProgressLabel*							iProgressLabel;
	TBool												iShowLoadingDialog;
// Add-S PTX-824 D_82400016158懳墳 暯壀 2007.10.01
	TBool												iRetryGetImage;
// Add-E PTX-824 D_82400016158懳墳 暯壀 2007.10.01
	};


/// 儊僀儞僾儗僀儎乕夋憸昞帵 儐乕僥傿儕僥傿僋儔僗
/**
 * 
 */
class SmbMusicAPMainPlayerImageViewUtility
	{
public:
	/// 巜掕彂幃偵偟偨偑偭偨曇廤寢壥暥帤楍傪曉偡
	static HBufC* SPrintfLC(TRefByValue<const TDesC> aFmt, ...);
	/// 巜掕彂幃偵偟偨偑偭偨曇廤寢壥暥帤楍傪曉偡
	static HBufC* VSPrintfLC(const TDesC& aFmt, VA_LIST aArgv);
	};

/**
 *  僨傿僗僋儕僾僞偺彂偒崬傒偁傆傟懳嶔梡 No operation 僴儞僪儔丅
 *
 *  AppendFormat(), AppendFormatList() 偵搉偣傞丄乽壗傕偟側偄乿僴儞僪儔丅<br>
 *  僨傿僗僋儕僾僞偺乽偁傆傟傞帪偵偼Panic()偡傞乿偲偄偆捠忢偺怳傞晳偄傪巭傔偨偄偩偗偺栚揑側傜偽丄
 *  杮僆僽僕僃僋僩偱梡偑懌傝傞丅
 *
 *  @see    TDes8::AppendFormat(), TDes8::AppendFormatList()
 *  @see    TDes16::AppendFormat(), TDes16::AppendFormatList()
 *  @note   TDes8, TDes16 偦傟偧傟梡偵僋儔僗傪愝偗偨偔側偄偺偱丄椉幰偺梫媮乻interface乼傪幚憰偟偰偄傞丅
 */
class TSmbMusicAPMainPlayerImageView_Noop4DesOverflow : public TDes8Overflow
                                    			      , public TDes16Overflow
	{
private:
	/// 8 bit 僨傿僗僋儕僾僞梡
	void Overflow(TDes8& aDes);
	/// 16 bit 僨傿僗僋儕僾僞梡丅
	void Overflow(TDes16& aDes);
	};

SEMCJ_NAMESPACE_END

#endif// __SMBMUSICAPMAINPLAYERIMAGEVIEW_H__

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

⌨️ 快捷键说明

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