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

📄 smbmusicapmainplayerstatebase.h

📁 symbian
💻 H
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPMainPlayerStateBase.h
//
// Description: 
//	儈儏乕僕僢僋僾儗僀儎乕嵞惗宯偺價儏乕僋儔僗偺掕媊僿僢僟
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰 	|撪梕
//--------------+-----------+----------------------------------------------
//2006/04/28	|K3拞堜		| 弶斉儕儕乕僗

/// 價儏乕僋儔僗掕媊
/**
 * @file SmbMusicAPMainPlayerStateBase.h
 *
 * 儈儏乕僕僢僋僾儗僀儎乕嵞惗宯偺價儏乕僋儔僗偺掕媊僿僢僟
 */

#ifndef __SMBMUSICAPMAINPLAYERSTATEBASE_H__
#define __SMBMUSICAPMAINPLAYERSTATEBASE_H__

#ifndef __E32BASE_H__
#include <e32base.h>
#endif

#ifndef __SMBPGMUSIC_H__
#include <SmbPGMusic.h>
#endif

#include "SmbMusicAPMainPlayerPlayView.h"



SEMCJ_NAMESPACE_BEGIN

//class CSmbMusicAPMainPlayerStateBase;

/**
 * 僉乕僀儀儞僩梡娭悢偺掕媊
 */
typedef	void(*TSmbMusicAPMainPlayerStateKeyFunc)(CSmbMusicAPMainPlayerStateBase& aKeyFunc);

/**
 * 僉乕僀儀儞僩庴晅庬暿掕媊
 */
enum TSmbMusicAPMainPlayerStateKeyAccept
	{
	ESmbMusicAPMainPlayerStateKeyUse = 1,		//< 張棟偁傝
	ESmbMusicAPMainPlayerStateKeyRelease,		//< 柍岠乮攑婞乯
	ESmbMusicAPMainPlayerStateKeyUnUse			//< 旕徚旓
	};

/**
 * 僉乕僀儀儞僩懳墳掕媊峔憿懱
 */
struct	TSmbMusicAPMainPlayerStateKeyEvent
	{
	TUint								iKeyCode;			//< 僉乕僐乕僪
	TSmbMusicAPMainPlayerStateKeyAccept	iAccept;			//< 僉乕庴晅偗庬暿
	TSmbMusicAPMainPlayerStateKeyFunc	iShortPressFunc;	//< 抁墴偟帪偺娭悢
	TSmbMusicAPMainPlayerStateKeyFunc	iLongPressFunc;		//< 挿墴偟帪偺娭悢
	TSmbMusicAPMainPlayerStateKeyFunc	iRepeatFunc;		//< 儕僺乕僩帪偺娭悢
	};



/**
 * 儈儏乕僕僢僋僾儗僀儎乕嵞惗宯偺價儏乕僋儔僗
 */
class CSmbMusicAPMainPlayerStateBase : public CBase
 	{
public:
	CSmbMusicAPMainPlayerStateBase(MSmbMusicAPMainPlayerEnv& aPlayerEnv,
								  RLog& aLog, RPGPropAgent& aPropAgent, CSmbMusicAPMainPlayerPlayView* aView
								);
								
	~CSmbMusicAPMainPlayerStateBase();
	
//
// Query儊僜僢僪
//

public:
	virtual TSmbMusicAPMainPlayerPlayStatus PlayStatus() = 0;

//
// View傾僋僥傿儀乕僔儑儞娭楢
//

public:	//Y: ViewActivated娭楢儊僜僢僪

	virtual void ChangeViewFromFilterViewL();
	virtual void ChangedEmptySongListL();
	
	virtual TBool PlaySelectedListL();
	virtual TBool PlaySelectedSongL();
	
	virtual TBool StartPlayResumeL();
	
	
private:	//Y: ViewActivated娭楢儊僜僢僪
	virtual void ChangeSongInFailSkip(TSmbMusicAPSyncEngineItemIndex aSongInfo, TBool aAllShuffle);

	virtual TBool StartPlayListL(TSmbMusicAPSyncEngineItemIndex aSongInfo, TBool aAllShuffle, TBool aResume);
	virtual void StartPlayListInNotPlayingL(TSmbMusicAPSyncEngineItemIndex aSongInfo, TBool aAllShuffle);
	virtual void StartPlayListInPlayingL(TSmbMusicAPSyncEngineItemIndex aSongInfo, TBool aAllShuffle);

//
// 僉乕僀儀儞僩娭楢
//

public:	// OfferKeyEvent娭楢儊僜僢僪
	virtual TKeyResponse OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode aType) = 0;
	virtual TKeyResponse KeyEventL(const TKeyEvent& aKeyEvent, const TSmbMusicAPMainPlayerStateKeyEvent aTbl[], TInt aNum);
	
	static void ProcKeyDecideL(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	
	static void ProcKeyRight(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	static void ProcKeyLeft(CSmbMusicAPMainPlayerStateBase& aKeyFunc);

	static void ProcKeyLongRight(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	static void ProcKeyLongLeft(CSmbMusicAPMainPlayerStateBase& aKeyFunc);

	static void ProcKeyUpL(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	static void ProcKeyDownL(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	
	static void ShowSubMenuL(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	
	static void ChangePlayPictureL(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	static void ChangeFilterViewL(CSmbMusicAPMainPlayerStateBase& aKeyFunc);

#ifdef __SMBMUSICAP_PERFORMANCE_DEF__
/////////////////////////////////////////////////////////////////////////////
	static void ProcKeyOne(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	static void ProcKeyTwo(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	static void ProcKeyThree(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
	static void ProcKeyFour(CSmbMusicAPMainPlayerStateBase& aKeyFunc);
/////////////////////////////////////////////////////////////////////////////
#endif
	
protected:	//Y: OfferKeyEvent娭楢儊僜僢僪

	//旕static斉偺僉乕張棟娭悢
	virtual void NSProcKeyDecideL();
	virtual void NSProcKeyRight();
	virtual void NSProcKeyLeft();
	virtual void NSProcKeyLongRight();
	virtual void NSProcKeyLongLeft();
	virtual void NSProcKeyUpL();
	virtual void NSProcKeyDownL();
	virtual void NSShowSubMenuL();
	virtual void NSChangePlayPictureL();
	virtual void NSChangeFilterViewL();

	virtual void ProcKeyDecideInPlayingL(TBool aFailState);
	virtual void ProcKeyDecideInProcStartL();
	virtual void ProcKeyDecideInPauseL();

	virtual TBool UpdateHoldCount(TBool aNext);

#ifdef __SMBMUSICAP_PERFORMANCE_DEF__
/////////////////////////////////////////////////////////////////////////////
	virtual void NSProcKeyOne();
	virtual void NSProcKeyTwo();
	virtual void NSProcKeyThree();
	virtual void NSProcKeyFour();
/////////////////////////////////////////////////////////////////////////////
#endif

public: //Y: View偺ChangedVolumeLevel()偐傜嶲徠偝傟偰偄傞
	virtual void ProcKeyLongRightUp();
	virtual void ProcKeyLongLeftUp();

//
// 摨婜張棟娭楢
//

public:		// MSmbMusicAPMainPlayerPlayObserver
	virtual void RespPreparePlayL(TInt aResult);//Y: 仺 Pause
	virtual void RespPlayStartL(TInt aResult, TInt aIndex);//Y
	virtual void RespPlayStopL(TBool aResult);//Y:
	
	virtual void RespStartPlayFFL(TBool aResult);//Y:
// Change 2007.07.24
//	virtual void RespCancelPlayFFL(TBool aResult);//Y:
	virtual void RespCancelPlayFFL(TInt aResult);//Y:
// Change End 2007.07.24
	
	virtual void RespStartPlayFRL(TBool aResult);//Y:
	virtual void RespCancelPlayFRL(TInt aResult);//Y:

	virtual void RespPlayNextL(TInt aResult, TInt aIndex);//Y:
	virtual void RespPlayPrevL(TInt aResult, TInt aIndex);//Y

	virtual void RespPlaySongHeadL(TInt aResult);//Y:
	
	virtual void RespGetPlayInfoL(TDes& aArtistTitle, TDes& aAlbumTitle, TDes& aSongTitle, TInt aTotalPlayTime, TBool aResult);//Y:
	virtual void RespGetImageL(CFbsBitmap* aJacket, CFbsBitmap* aJacketMask, CFbsBitmap* aIcon, CFbsBitmap* aIconMask, TBool aResult);//Y:
	virtual void RespGetPlayTimeL(TInt aPlayTime, TInt aResult);//Y:
	
	virtual void RespSetVolumeL(TBool aResult);//Y:
	virtual void RespResizeImageL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aResult);//Y:
	virtual void RespGetImageNumL(TSmbMusicAPSyncEngineImageCountInSongItem& aCount, TBool aResult);//Y:
	virtual void RespServerTerminatedL();//Y:
// Add 2007.03.20
	virtual void RespConfirmedPlayL(TInt aResult);
// Add End 2007.03.20

// Add 2007.09.11
	/**
	 * 僒乕僶巊梡尃側偟墳摎
	 * @param[in] aKind 張棟庬暿
	 */
	virtual void RespPermissionDenied(TSmbMusicAPMainPlayerPlayRequest aKind);	
// Add End 2007.09.11

	void StartPlayAfterGetTImeL();

protected:
	//prepare娭楢  仺 Pause
	virtual void PreparePlayFromFilterViewL(TInt aResult);
	virtual void CaseClosedInPlayPrepareL();
	virtual void RespPlayPrepareErrorL();
	//startPlay娭楢
	virtual void ResourceFailInStartPlayL();
	//playNext娭楢
	virtual void RespPlayNextErrorProcL(TInt aResult);
	virtual void RespPlayPrevErrorProc(TInt aResult);
	virtual TBool CheckHoldCount();
	virtual void ClearSkipHoldCount();

	virtual void ModefyPlayInfoL(TDes& aArtistTitle, TDes& aAlbumTitle, TDes& aSongTitle, TInt aTotalPlayTime, TBool aResult);//Y:
	virtual void RespGetPlayInfoInFailSongL();
	virtual void GetJacketImageL();
	virtual void RespGetTimeInStopStateL(TSmbMusicAPMainPlayerPlayProcStatus aProcPrev);

	void ProcLimitCountL();		// 嵞惗夞悢惂尷晅偒僼傽僀儖張棟
	void ProcGracePeriodL();	// 僌儗乕僗僺儕僆僪斖埻撪妋擣張棟
	void RespPlayNextErrorProcByLimitCountL(TInt aResult);

	void ResetAnyStatusFlags();

//
// 嵞惗宯僀儀儞僩張棟娭楢
//

public:
	virtual void NotifyStartPlayL();//Y:
	virtual void NotifyChangePlaySongL();//Y:
	virtual void NotifyCompletePlayListL();//Y
	virtual void NotifyStopPlayL();//Y
	virtual void NotifyFFToSongEndL();//Y
	virtual void NotifyFRToSongHeadL();//Y
	virtual void NotifyEnableAuteResumeL();
	
	virtual void NotifyLimitCountContentsL();
	virtual void NotifyGracePeriodContentsL();

	virtual void NotifyPlayFailL();//Y:
	virtual void NotifyPlayFailStartL();//Y

	virtual void RedrawL(TBool aInit) = 0;
	
protected:	//嵞惗宯僀儀儞僩娭楢僾儔僀儀乕僩娭悢

	virtual void ProcNotifyLowBattery();//Y
	virtual void ProcNotifyChangePlaySongToPlayStopL();//Y
	virtual void ProcNotifyChangePlaySongToIdleL();//Y
	virtual void ProcClearSongInfoOfPlayPictureL();//Y
	virtual void ProcNotifyChangePlaySongOfSongHeadL();//Y

	virtual void ProcNotifyPlayFailToCancel();//Y
	virtual void ProcNotifyPlayFailToSkipL();//Y

	virtual void ProcNotifyStopPlayInEmptyListL();//Y
	virtual void ProcNotifyStopPlayInFailSongL();
	virtual void ProcNotifyStopPlayInProcStartL(TBool aStartPause);//Y
	virtual void ProcNotifyStopPlayInLowBatteryL();//Y
	virtual void ProcNotifyStopPlayInOtherL(TBool aPauseState);//Y

protected:
	MSmbMusicAPMainPlayerEnv& iPlayerEnv;                        ///< 娐嫬僋儔僗(uses)
	MSmbMusicAPMainPlayerBasisPartObserver* iBasisPartObserver;  ///< 婎杮晹偵懳偡傞捠抦(uses)


private:	// data


protected:	
	//State偱捛壛
	RLog& 			iLog;
	RPGPropAgent& 	iPropAgent;
	CSmbMusicAPMainPlayerPlayView*	iView;
	};

SEMCJ_NAMESPACE_END

#endif		// __SMBMUSICAPMAINPLAYERSTATEBASE_H__

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

⌨️ 快捷键说明

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