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

📄 smbmusicapfilemgrrscmgr.h

📁 索爱手机代码
💻 H
字号:
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	CSmbMusicAPFileMgrRscMgr.h
//
// Description:
//	儈儏乕僕僢僋僼傽僀儖娗棟儕僜乕僗儅僱乕僕儍僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//------------------+---------------+----------------------------------------
//2007/03/08			|SEMC崃绮		|怴婯嶌惉
//------------------+---------------+----------------------------------------

#ifndef __CSMBMUSICAPFILEMGRRSCMGR_H__
#define __CSMBMUSICAPFILEMGRRSCMGR_H__

#ifndef __SMBRSCMGRCLIENT_H__
#include <SmbRscMgrClient.h>
#endif

SEMCJ_NAMESPACE_BEGIN

/**
	儕僜乕僗庢摼忬嫷
*/
enum	TSmbMusicAPFileMgrRscMgrResponse
	{
	ENone,													//柍岠抣
	ESmbMusicAPFileMgrRscMgrGetSDBindRscOKRes,				//SDBind儕僜乕僗庢摼OK僐儅儞僪
	ESmbMusicAPFileMgrRscMgrGetSDBindRscNGRes,				//SDBind儕僜乕僗庢摼NG僐儅儞僪
//	ESmbMusicAPFileMgrRscMgrReleaseSDBindRscReq,			//SDBind儕僜乕僗夝曻僐儅儞僪
	ESmbMusicAPFileMgrRscMgrGetMemoryModeRscOKRes,			//儊儌儕儌乕僪儕僜乕僗庢摼OK僐儅儞僪
	ESmbMusicAPFileMgrRscMgrGetMemoryModeRscNGRes,			//儊儌儕儌乕僪儕僜乕僗庢摼NG僐儅儞僪
//	ESmbMusicAPFileMgrRscMgrReleaseMemoryModeRscReq,		//儊儌儕儌乕僪儕僜乕僗夝曻僐儅儞僪
	ESmbMusicAPFileMgrRscMgrGetMTPModeRscOKRes,				//MTP儌乕僪儕僜乕僗庢摼OK僐儅儞僪
	ESmbMusicAPFileMgrRscMgrGetMTPModeRscNGRes,				//MTP儌乕僪儕僜乕僗庢摼NG僐儅儞僪
//	ESmbMusicAPFileMgrRscMgrReleaseMTPModeRscReq,			//MTP儌乕僪儕僜乕僗夝曻僐儅儞僪
//	ESmbMusicAPFileMgrRscMgrReleaseAllRscReq				//慡儕僜乕僗夝曻僐儅儞僪
	};
	
/**
儕僜乕僗庬暿
*/
enum	TSmbMusicAPFileMgrRscMgrCategory
	{
	ECategoryNone = 0x00,
	ESmbMusicAPFileMgrRscMgrSDBindRscCategory = 0x01, 		//SDBind儕僜乕僗
	ESmbMusicAPFileMgrRscMgrMemoryModeRscCategory = 0x02,		//儊儌儕儌乕僪儕僜乕僗
	ESmbMusicAPFileMgrRscMgrMTPModeRscCategory = 0x04,			//MTP儌乕僪儕僜乕僗
	};

	
/**
 * 儕僜乕僗儅僱乕僕儍僋儔僗
 */
class CSmbMusicAPFileMgrRscMgr : public CBase
								,public MSmbRscMgrRscCallback
								,public MSmbRscMgrRscWatcher
	{
public:

	/**
	 * 儕僜乕僗嫞崌寢壥傪捠抦偡傞偨傔偺Interface僋儔僗丅
	 */
	class MObserver
		{
	public:

		/**
		 儕僜乕僗嫞崌寢壥傪捠抦
		 *	@param[in] aRes	儕僜乕僗妉摼梫媮偺敾掕寢壥
		 */
		virtual void NotifyResourceResL(TSmbMusicAPFileMgrRscMgrResponse aRes) = 0;
		/**
		 儕僜乕僗夝曻傪捠抦
		 *	@param[in] aReleaseCategorys	儕僜乕僗夝曻庬暿
		 */
		virtual void NotifyReleaseResourcesL(TUint aReleaseCategorys) = 0;
		};
	
	/**
	撪晹儕僜乕僗庬暿
	*/
	enum TCategory
		{
		ESDBindRscCategory = 0, 		//SDBind儕僜乕僗
		EMemoryModeRscCategory,			//儊儌儕儌乕僪儕僜乕僗
		EMTPModeRscCategory,			//MTP儌乕僪儕僜乕僗
		ECategoryMax,
		};
		
	/**
	儕僜乕僗庢摼忬懺
	*/
	enum TSmbMusicAPFileMgrRscMgrState
		{
		ERscMgrRscNone = 0,			//儕僜乕僗枹庢摼忬懺
		ERscMgrRequestRscBusy,		//儕僜乕僗庢摼梫媮拞忬懺
		ERscMgrAllocRsc,			//儕僜乕僗棙梡壜擻忬懺
		};
		
public:
	/**
	 僼傽僋僩儕娭悢
	 *丂@param[in] aObserver	儕僜乕僗嫞崌寢壥捠抦僆僽僓乕僶
	 *  @return	惗惉偟偨僋儔僗偺億僀儞僞
	 */
	static CSmbMusicAPFileMgrRscMgr* NewL(MObserver& aObserver);
	/**
	 * 僨僗僩儔僋僞
	 */
	~CSmbMusicAPFileMgrRscMgr();
	/**
	 * 儕僜乕僗梫媮
	 */
	TInt RequestAllocResourceL(TSmbMusicAPFileMgrRscMgrCategory aCategory);
	/**
	 * 儕僜乕僗梫媮乮摨婜乯
	 */
	TInt RequestAllocResourceSyncL(TSmbMusicAPFileMgrRscMgrCategory aCategory, TSmbMusicAPFileMgrRscMgrResponse& aRes);
	/**
	 * 儕僜乕僗奐曻
	 */
	void ReleaseResourceL(TSmbMusicAPFileMgrRscMgrCategory aCategory);
	/**
	 * 慡儕僜乕僗奐曻
	 */
	void CancelAndReleaseAllResources();

private:
	/**
	 * 僐儞僗僩儔僋僞
	 *	@param[in] aObserver	儕僜乕僗嫞崌寢壥捠抦僆僽僓乕僶
	 */
	CSmbMusicAPFileMgrRscMgr(MObserver& aObserver);
	/**
	 * 2僼僃乕僘僐儞僗僩儔僋僞
	 */
	void ConstructL();

public:	// MSmbRscMgrRscCallback
	/**
	 *	儕僜乕僗棙梡尃妉摼墳摎傪捠抦
	 *
	 *	@param[in] aResult	儕僜乕僗妉摼梫媮偺敾掕寢壥
	 */
	void AllocationResourceResL(TSmbRscMgrRscResult aResult);
	 
	/**
	 *	儕僜乕僗棙梡尃忳搉墳摎傪捠抦
	 *
	 *	@param[in] aResult	儕僜乕僗忳搉梫媮偺敾掕寢壥
	 */
	void ReallocationResourceResL(TSmbRscMgrRscResult aResult);
	
	/**
	 *	儕僜乕僗嫞崌妋擣墳摎傪捠抦
	 *
	 *	@param[in] aResult	儕僜乕僗嫞崌妋擣梫媮偺敾掕寢壥
	 */
	void CheckResourceCompetitionResL(TSmbRscMgrRscResult aResult);

public:	// MSmbRscMgrRscWatcher
	/**
	 *	儕僜乕僗奐曻梫媮傪捠抦
	 *
	 *	@param[in] aList	奐曻傪梫媮偡傞儕僜乕僗偺儕僗僩
	 */
	void ReleaseResourceReqL(CArrayFixFlat<TSmbRscMgrRsc>* aList);
	
private:
	/**
	 *	儕僜乕僗棙梡尃妉摼墳摎傪捠抦
	 *
	 *	@param[in] aResult	儕僜乕僗妉摼梫媮偺敾掕寢壥
	 */
	void OnEndAllocationResourceResL(TInt aCategory, TInt aResult);
	/**
	 忬懺庢摼
	 * @param[in]	aCategory 儕僜乕僗庬暿
	 * @return	儕僜乕僗娗棟僋儔僗忬懺
	 */
	TSmbMusicAPFileMgrRscMgrState State(TInt aCategory) const;
	/**
	 忬懺僙僢僩
	 * @param [in]	aRscMgrState
	 * @param[in]	aCategory 儕僜乕僗庬暿		
	 * @return	側偟
	 */
	void SetState(TInt aCategory, TSmbMusicAPFileMgrRscMgrState aRscMgrState);
	/**
	 張棟寢壥曄姺
	 * @param	側偟
	 * @return	儕僜乕僗娗棟僋儔僗忬懺
	 */
	TSmbMusicAPFileMgrRscMgrResponse ConvertResultRes(TInt aCategory, TInt aResult);

private:
	/** 儕僜乕僗嫞崌娗棟僋儔僀傾儞僩 */
	CSmbRscMgrRscClient* iRscMgrRscClient;
	/** 妉摼寢壥儕僜乕僗儕僗僩 */
	CArrayFixFlat<TSmbRscMgrRscAllocId>* iRscResultList;
	/** 儕僜乕僗嫞崌寢壥捠抦僆僽僓乕僶 */
	MObserver& iObserver;
	/** 儕僜乕僗忬懺娗棟傾儗僀 */
	CArrayFixFlat<TSmbMusicAPFileMgrRscMgrState>* iRscStateArray;
	/** 儕僜乕僗梫媮拞僇僥僑儕 */
	TInt iCategory;
	};
	
SEMCJ_NAMESPACE_END
#endif	// __CSmbMusicAPFileMgrRSCMGR_H__
// end of CSmbMusicAPFileMgrRscMgr.h
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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