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

📄 smbmusicapsingleplayerstate.h

📁 symbian代码
💻 H
字号:
/*----------------------------------------------------------------------------*/
// Copyright (c) 2007 Sony Ericsson Mobile Communications Japan, Inc.
// All rights reserved.
/*----------------------------------------------------------------------------*/
// FileName:
//   SmbMusicAPSinglePlayerState.h
//
// Description:
//  儈儏乕僕僢僋堦嬋嵞惗僾儗僀儎忬懺娗棟僋儔僗
//
// Modify:
//	2007-02-01	怴婯嶌惉	K3hirono
//	2007-07-24	D_82400007238
//	2007-10-02	D_82400016111
/*------------------------------------------------------------------------*/
// $NoKeywords: $

#ifndef SMBMUSICAPSINGLEPLAYERSTATE_H_
#define SMBMUSICAPSINGLEPLAYERSTATE_H_

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

SEMCJ_NAMESPACE_BEGIN

//	MW儔僀僽儔儕岦偗偺旕摨婜梫媮忬懺娗棟僋儔僗
class TSmbMusicAPSinglePlayerLibRequestState
	{
	public:
	enum TLibRequest
		{
		ENone = 		0x00000000,
		EGetInfo =		0x00000001,
		EDeleteItem =	0x00000002,
		EPlayReport =	0x00000004
		};

	private:
	enum TAsyncState
		{
		EInit = 0,
		ECreateSongItemRequest,
		EGetSongInfoRequest,
		EGetImageRequest,
		EComplete
		};
			
		void Initial();						//	MW儔僀僽儔儕岦偗旕摨婜梫媮忬懺傪弶婜壔偡傞
		TBool SetCreateSongItemRequest();	//	CreateSongItem傪Request拞
		TBool SetGetSongInfoRequest();		//	嬋忣曬庢摼傪Request拞
		TBool SetGetImageRequest();			//	夋憸庢摼傪Request拞
		TBool SetDeleteItemRequest();		//	嬋嶍彍傪Request拞
		TBool SetRecordPlayReportRequest();	//	嵞惗棜楌婰榐拞傪愝掕
	
		TBool SetLibRequestComplete();		//	弶婜仺CreateSongItem仺嬋忣曬庢摼仺夋憸偑姰椆偟偨偙偲傪愝掕偡傞
		TBool SetDeleteItemComplete();		//	嬋嶍彍姰椆傪愝掕
		TBool SetRecordPlayReportComplete(TBool aForce);	//	嵞惗棜楌婰榐姰椆
		
//		TBool CancelGetSongInfoRequest();	//	嬋忣曬庢摼Request拞傪夝彍(姰椆屻偺嬋忣曬庢摼偱棙梡	//	枹巊梡
		TBool IsFinishedCreateSongItem();	//	CreateSongItem偑廔傢偭偨偐偳偆偐
		TBool IsDeleteItemRequest();		//	嬋嶍彍拞偐偳偆偐
		TBool IsExecRecordPlayReportRequest();	//	嵞惗棜楌婰榐拞偐偳偆偐
		TBool IsFinishedLibRequest();			//	Lib傊偺梫媮偑姰椆偟偰偄傞偐偳偆偐
		TInt SetInfoRequestCompleteForce();		//	Lib傊偺梫媮傪嫮惂揑偵姰椆偝偣傞(廔椆帪偵巊梡)	//Add For D_82400016111
		
		TInt GetCachedRequest(TBool aIsExit, TSmbMusicAPSinglePlayerLibRequestState::TLibRequest& aRequest, TInt& aCount);	//	幚峴偟側偔偰偼偄偗側偄梫媮
		
		TAsyncState iState;	//	尰忬偺MW儔僀僽儔儕岦偗旕摨婜敪峴偺僗僥乕僩(弶婜仺CreateSongItem仺嬋忣曬庢摼仺夋憸庢摼偺偳偙偵偄傞偐)
		TInt iCurrentRequest;	//	TRequest(尰忬梫媮拞)
		TInt iRequestCache;		//	TRequest(僉儍僢僔儏偟偰偄傞儕僋僄僗僩)
		TInt iPlayReportCount;	//	僉儍僢僔儏偟偰偄傞嵞惗夞悢婰榐偺屄悢
		
		TBool iDeleteItem;	//	嬋嶍彍拞偐偳偆偐
		TBool iGetSongInfo;	//	嬋忣曬庢摼拞偐偳偆偐(嵞庢摼偑偁傞偨傔丄僗僥乕僩埲奜偵傕僼儔僌傪帩偮)
		TBool iRecordPlayReport;	//	嵞惗棜楌婰榐拞偐偳偆偐
		
	friend class TSmbMusicAPSinglePlayerStateController;
	};

//	儕僜乕僗庢摼岦偗偺旕摨婜梫媮忬懺娗棟僋儔僗
class TSmbMusicAPSinglePlayerRscRequestState
	{
	private:
	enum TAsyncState
		{
		EResourceRequestComplete = 0,	//	儕僜乕僗娭楢偺妶摦傪偟偰偄側偄
		EReleaseResource,				//	儕僜乕僗傪儕儕乕僗偡傞弨旛傪偟偰偄傞(儕儕乕僗偩偗側傜偽摨婜)
		EAllocateResource,				//	儕僜乕僗妉摼梫媮拞
		};
	
		void Initial();						//	儕僜乕僗庢摼旓摨婜梫媮忬懺娗棟僋儔僗弶婜壔
		TBool SetAllocationResource();		//	儕僜乕僗妉摼梫媮拞傪愝掕偡傞
		TBool SetReleaseResource();			//	儕僜乕僗奐曻梫媮拞傪愝掕偡傞
		TBool SetResourceRequestComplete();	//	儕僜乕僗娭楢偺旕摨婜梫媮傪峴偭偰偄側偄忬懺傪愝掕偡傞
		TBool IsReleaseResource();			//	儕僜乕僗奐曻拞偐偳偆偐傪庢摼偡傞
		TBool IsAllocateResource();			//	儕僜乕僗妉摼梫媮拞偐偳偆偐傪廗摼偡傞
		void ClearCache();					//	僉儍僢僔儏傪僋儕傾偡傞
		TBool IsResourceRequestComplete();	//	儕僜乕僗娭楢偺妶摦傪偟偰偄側偄忬懺偐偳偆偐
		TAsyncState GetCache();				//	僉儍僢僔儏偵奿擺偟偨抣傪庢摼偡傞
		
		TAsyncState iState;
		TAsyncState iCache;
			
	friend class TSmbMusicAPSinglePlayerStateController;
	};


//	堦嬋嵞惗僾儗僀儎乕忬懺娗棟僋儔僗
class TSmbMusicAPSinglePlayerStateController
	{
public:
	enum TInitialCondition
		{
		EComplete = 0,							//	側偵傕偟偰偄側偄
		EForInitialPlayerCtrl,					//	ClearPlayContext傪峴偆偨傔偺張棟拞	
		EForDisconnectPlayerCtrl,				//	MWPlayer惂屼偲Disconnect偡傞偨傔偺張棟拞
		};
	
	enum TAsyncState
		{
		EPlay = 				0x00000001,	//	捠忢壒柭摦弨旛拞
		EPause = 				0x00000002,	//	壒柭摦掆巭弨旛拞
		EPlayFF = 				0x00000004,	//	憗憲傝壒柭摦弨旛拞
		EPlayFR = 				0x00000008,	//	憗栠偟壒柭摦弨旛拞
		ESetPlayContext = 		0x00000040,	//	SetPlayContext拞
		ECancelPlayFF =			0x00008000,	//	憗憲傝僉儍儞僙儖
		ECancelPlayFR =			0x00010000,	//	憗栠偟僉儍儞僙儖
		ESetSongHead =			0x00020000,	//	摢弌偟
		ENotify = 				0x10000000	//	MW偐傜偺僀儀儞僩捠抦懸偪
		};
		
	public:
		//	旕摨婜梫媮敪峴宯	
		TBool SetPlayRequest();	//	捠忢嵞惗梫媮拞偵堏峴偡傞
		TBool SetPlayFFRequest();		//	憗憲傝嵞惗梫媮拞偵堏峴偡傞
		TBool SetPlayFRRequest();		//	憗栠偟嵞惗梫媮拞偵堏峴偡傞
		TBool SetSetPlayContextRequest();	//	SetPlayContext梫媮拞偵堏峴偡傞
		TBool SetCancelPlayFFRequest();	//	憗憲傝嵞惗僉儍儞僙儖梫媮拞偵堏峴偡傞
		TBool SetCancelPlayFRRequest();	//	憗栠偟嵞惗僉儍儞僙儖梫媮拞偵堏峴偡傞
		TBool SetPauseRequest();	//	壒柭摦掆巭梫媮拞偵堏峴偡傞
		TBool SetSetSongHeadRequest();	//	摢弌偟梫媮拞偵堏峴偡傞				
		TBool SetWaitPlayerNotifyEvent(TBool aBool);	//	Player惂屼忬懺曄峏捠抦懸婡拞/旕懸婡拞傪愗傝懼偊傞


		//	旕摨婜忬懺夝彍宯
		//	梫媮偑惓忢偵幚峴偝傟偰夝彍
		//	壒柭摦奐巒
		TBool SetPlay();	//	捠忢壒柭摦拞傪愝掕
		TBool SetPause();	//	堦帪掆巭傪愝掕
		TBool SetPlayFF();	//	憗憲傝壒柭摦拞傪愝掕
		TBool SetPlayFR();	//	憗栠偟壒柭摦拞傪愝掕
		TBool SetInitialState();	//	弶婜忬懺(枹SetPlayContext)傪愝掕
		TBool SetDeleteItemComplete();	//	嬋嶍彍姰椆
		
		//	僒乕僶忬懺曄峏壒柭摦懸偪忬懺		
		TBool SetPlayState();	//	僒乕僶捠忢嵞惗傪愝掕
		TBool SetPlayFFState();	//	僒乕僶憗憲傝忬懺傪愝掕
		TBool SetPlayFRState();	//	僒乕僶憗栠偟忬懺傪愝掕
		
		//	旕摨婜忬懺夝彍宯2
		//	梫媮偟偨偲偙傠MW懁偐傜KErrNotReady偑曉媝偝傟偨偨傔夝彍
		TBool CancelPlayRequest();				//	捠忢嵞惗梫媮拞傪夝彍
		TBool CancelPlayFFRequest();			//	憗憲傝梫媮拞傪夝彍
		TBool CancelPlayFRRequest();			//	憗栠偟梫媮拞傪夝彍
		TBool CancelPauseRequest();				//	堦帪掆巭梫媮拞傪夝彍
		TBool CancelSetPlayContextRequest();	//	SetPlayContext梫媮拞傪夝彍
		TBool CancelCancelPlayFFRequest();		//	CancelPlayFF梫媮拞傪夝彍
		TBool CancelCancelPlayFRRequest();		//	CancelPlayFR傪夝彍
		TBool CancelSetSongHeadRequest();		//	摢弌偟梫媮拞傪夝彍
		TInt SetInfoRequestCompleteForce();		//	Lib偵懳偡傞忣曬庢摼梫媮拞傪慡夝彍(廔椆張棟拞偵巊梡偡傞丅忣曬傗夋憸偺庢摼偑廔傢偭偰偄側偐偭偨応崌偼丄埲屻庢摼偱偒側偔側傞)	//ADD For D_82400016111

		//	旕摨婜梫媮敪峴宯2
		//	Lib娭楢
		TBool SetGetImageRequest();			//	夋憸庢摼梫媮拞偵堏峴偡傞	
		TBool SetGetDispSongInfoRequest();	//	昞帵梡嬋忣曬庢摼梫媮拞偵堏峴偡傞	
		TBool SetCreateSongItemRequest();	//	CreateSongItem梫媮拞偵堏峴偡傞
		TBool SetDeleteItemRequest();		//	嬋嶍彍梫媮拞偵堏峴偡傞
		TBool SetRecordPlayReportRequest();
		TBool SetRecordPlayReportComplete(TBool aForce);	//	嵞惗棜楌婰榐姰椆傪愝掕
		TBool IsExecRecordPlayReportRequest();	//	嵞惗棜楌婰榐拞偐偳偆偐
		
		//	旕摨婜梫媮敪峴宯3
		//	儕僜乕僗娭楢
		 TBool SetReleaseResource();			//	儕僜乕僗奐曻忬懺偵堏峴偡傞
		 TBool SetAllocateResource();			//	儕僜乕僗庢摼忬懺偵堏峴偡傞
		 TBool SetResourceRequestComplete();	//	儕僜乕僗娭楢偺妶摦傪偟偰偄側偄忬懺偵堏峴偡傞(儕僜乕僗庢摼偺桳柍偼柍娭學)

		//	敾掕宯
		TBool GetLibInfoComplete();				//	Lib偵懳偡傞婲摦帪偺堦楢偺旕摨婜梫媮偑廔傢偭偰偄傞偐偳偆偐
		TBool IsFinishedCreateSongItem();		//	CreateSongItem偑廔傢偭偰偄傞偐偳偆偐
		TBool IsFinishedSetPlayContext();		//	SetPlayContext偑廔傢偭偰偄傞偐偳偆偐
		TBool SetFinishedSetPlayContext();		//	SetPlayContext偑廔傢偭偨偐偳偆偐傪愝掕偡傞
		TBool CanSetSuperDukePowerOff();		//	SuperDuke偺揹尮傪OFF偟偰傕偄偄偐偳偆偐(僾儗僀儎乕惂屼偵懳偟偰旕摨婜梫媮敪峴拞偱側偗傟偽OFF偵偱偒傞)	
		TBool IsReleaseResource();				//	儕僜乕僗奐曻拞偐偳偆偐
		TBool IsResourceRequestComplete();		//	儕僜乕僗娭楢偺妶摦傪峴偭偰偄側偄忬懺偐偳偆偐
		TBool IsSetSongHead();					//	摢弌偟梫媮拞偐偳偆偐
		TBool IsRequestPause();					//	堦帪掆巭梫媮拞偐偳偆偐
		TBool IsRequestSetPlayContext();		//	SetPlayContext梫媮拞偐偳偆偐
		TBool IsRequestCancelPlayFF();			//	CancelPlayFF梫媮拞偐偳偆偐
		TBool IsRequestCancelPlayFR();			//	CancelPlayFR梫媮拞偐偳偆偐
		TBool IsRequestPlay();					//	Play梫媮拞偐偳偆偐	

		//	偦偺懠
		void Initial();								//	忬懺娗棟僋儔僗傪弶婜壔
		void ClearResourceRequestCache();							//	Lib偺忣曬庢摼僉儍僢僔儏傪僋儕傾偡傞
		TSmbMusicAPSinglePlayerRscRequestState::TAsyncState GetRscRequestCache();		
		void SetUserPlayConfirm(TBool aBool);		//	儐乕僓妋擣拞偐偳偆偐傪愝掕偡傞
		TBool IsUserPlayConfirm();					//	儐乕僓妋擣拞偐偳偆偐
		void SetNeedUserPlayConfirm(TBool aNeedUserPlayConfirm);	//	儐乕僓妋擣偑昁梫偐偳偆偐傪愝掕偡傞	ADD For D_82400007238
		TBool IsNeedUserPlayConfirm();								//	儐乕僓妋擣偑昁梫偐偳偆偐			ADD For D_82400007238
		TInt GetCachedRequest(TBool aIsExit, TSmbMusicAPSinglePlayerLibRequestState::TLibRequest& aRequest, TInt& aCount);	//	幚峴偟側偔偰偼偄偗側偄梫媮
		TBool IsSetSongHeadRequestInCpPlay() const;				//	嬫娫嵞惗摢弌偟拞偐偳偆偐(嬫娫嵞惗偺摢弌偟偼丄弶婜壔拞偺嵞惗拞丒堦帪掆巭拞摍忬懺慗堏傪娷傓偨傔丄弶婜壔拞偲摨條暿偵僼儔僌傪帩偮)
		TBool SetSetSongHeadRequestInCpPlay(TBool aBool);	
		TBool IsExecListEnd() const;				
		TBool SetExecListEnd(TBool aBool);	
		TBool IsFinishedLibRequest();	//Lib傊偺Request偑姰椆偟偰偄傞偐偳偆偐
		
		//	Disconnect娭楢
		TBool SetInitialForDisconnect();
		TBool SetInitialForInitialPlayerControl();
		TBool SetInitialPlayerControlComplete();		
		TBool SetDisconnectPlayerControlComplete();
		TInitialCondition InitialCondition();		//	弶婜壔庬暿庢摼
		void SetIsForeground(TBool aForeground);	//	慜柺偵傾僾儕偑偄傞偐偳偆偐傪愝掕	D_82400007238
		
	private:
		void SetASyncState(TAsyncState aState);		//	旕摨婜張棟忬懺傪愝掕偡傞
		TBool CanAsyncReq(TInt aFlags);				//	摿掕偺旕摨婜梫媮偑敪峴偱偒傞偐偳偆偐丅敾掕晹暘
		void RemoveASyncState(TAsyncState aState);	//	旕摨婜張棟忬懺傪夝彍偡傞
		TBool ExecASyncReq(TAsyncState aState);		//	摿掕偺僐儅儞僪傪幚峴拞偐偳偆偐	
		TBool CanPlayRequest();						//	弶婜壔埲奜偺僾儗僀儎乕惂屼梫媮偵昁梫側忦審敾掕
		void NotReadyLog(TAsyncState aState);				//	NotReady帪偺儘僌弌椡
		TBool CanSetSongHead();						//	摢弌偟忬懺偵堏峴壜擻偐偳偆偐(嬫娫嵞惗帪偵傕敾掕傪梫偡傞偨傔(嬫娫嵞惗帪偼摢弌偟梫媮拞忬懺偵偼擖傜側偄))

	private:
		TBool iExecListEnd;										//	ListEnd張棟傪峴偭偰偄傞偐偳偆偐
		TBool iSetSongHeadInCpPlay;								//	嬫娫嵞惗摢弌偟拞
		TSmbMusicAPSinglePlayerLibRequestState iLibState;		//	儔僀僽儔儕偵懳偡傞旕摨婜梫媮忬懺娗棟僋儔僗
		TSmbMusicAPSinglePlayerRscRequestState iResourceState;	//	儕僜乕僗妉摼娭楢偺旕摨婜梫媮忬懺娗棟僋儔僗
		TBool iFinishedSetPlayContext;							//	SetPlayContext偑廔傢偭偰偄傞偐偳偆偐
		TInitialCondition iInitialCondition;					//	弶婜壔嶌嬈庬暿
		TBool iUserPlayConfirm;									//	儐乕僓偺嵞惗妋擣拞偐偳偆偐
		TBool iNeedUserPlayConfirm;								//	儐乕僓偺嵞惗妋擣偑昁梫偐偳偆偐	Add For D_82400007238
		TBool iIsForeground;									//	傾僾儕働乕僔儑儞偑慜柺偐偳偆偐(ETrue:慜)	Add For D_82400007238
		TInt iState;
	};

SEMCJ_NAMESPACE_END
#endif	//SMBMUSICAPSINGLEPLAYERSTATE_H_
// end of SmbMusicAPSinglePlayerState.h
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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