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

📄 smbmusicapsyncservercontentsservicegetitemfromlist.h

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 H
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerContentsServiceGetItemFromList.h
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 僐儞僥儞僣僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/16	|SDNA 壀嶳		| 怴婯嶌惉
//2006/08/03	|SDNA 壀嶳		| 墳摎梡偺傾僀僥儉忣曬偺庢摼張棟傪曄峏
//----PTX824----+---------------+--------------------------------------
//2007/03/30	|K3悪杮			| PTX824懳墳(嵞惗惂尷忣曬晅壛)
//2007/06/29	|K3悪杮			| 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
//2007/07/06	|K3悪杮			| 尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETITEMFROMLIST_H__
#define __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETITEMFROMLIST_H__


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

#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h>
#endif

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__
#include "SmbMusicAPSyncServerContentsScreenTraceManager.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEBASE_H__
#include "SmbMusicAPSyncServerContentsServiceBase.h"
#endif


DCM_NAMESPACE_BEGIN
class RLog;
DCM_NAMESPACE_END


SEMCJ_NAMESPACE_BEGIN

class CSmbMusicAPSyncServerContentsList;

/**  1搙偵庢摼偱偒傞傾僀僥儉偺悢  **/
const TInt KMaxItemCountByOneTime = 50;

//  ADD-S  尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
/**
 *  僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺嵞惗惂尷忬懺敾掕寢壥
 **/
enum TSmbMusicAPSyncServerContentsServiceGetItemFromListJudgeResult
	{
	ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoLimit,		///<  惂尷側偟
	ESmbMusicAPSyncServerContentsServiceGetItemFromListResultPeriodOver,	///<  婜尷愗傟
	ESmbMusicAPSyncServerContentsServiceGetItemFromListResultNoCpInfo,		///<  尃棙忣曬側偟
	};
//  ADD-E  尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳

/**
 *  Music傾僾儕 摨婜僒乕僶 僐儞僥儞僣偺僒乕價僗僋儔僗
 *  (儕僗僩偺傾僀僥儉忣曬傪庢摼偡傞僒乕價僗)
 **/
class CSmbMusicAPSyncServerContentsServiceGetItemFromList : public CSmbMusicAPSyncServerContentsServiceBase
	{
private:
	/**
	 *  僒乕價僗忬懺(儕僗僩偺傾僀僥儉忣曬傪庢摼偡傞僒乕價僗)
	 **/
	enum TSmbMusicAPSyncServerContentsServiceGetItemFromListState
		{
		ESmbMusicAPSyncServerContentsServiceGetItemFromListState_Init,					// 僒乕價僗弶婜忬懺
		ESmbMusicAPSyncServerContentsServiceGetItemFromListState_WaitItem,				// 僒乕價僗傾僀僥儉庢摼懸偪忬懺
		ESmbMusicAPSyncServerContentsServiceGetItemFromListState_WaitLimitation,		// 僒乕價僗惂尷忣曬庢摼懸偪忬懺
		ESmbMusicAPSyncServerContentsServiceGetItemFromListState_End,					// 僒乕價僗廔椆忬懺
		};

public:
	/**
	 * 僐儞僗僩儔僋僞
	 * @param [in]		aRlog				RLog偺嶲徠
	 * @param [in]		aModel				儌僨儖僋儔僗偺嶲徠
	 * @param [in]		aObserver			僒乕價僗姰椆捠抦愭僋儔僗偺嶲徠
	 * @param [in]		aFunc				僐儞僥儞僣僼傽儞僋儔僗偺嶲徠
	 * @param [in]		aManagerInterface	奺儅僱乕僕儍傪娗棟偡傞僋儔僗偺嶲徠
	 * @param [in]		aScreenData			夋柺慗堏僨乕僞娗棟僋儔僗偺嶲徠
	 * @param [in,out]	aRMessage			RMessage偺億僀儞僞
	 **/
	CSmbMusicAPSyncServerContentsServiceGetItemFromList(
			DCM_NAMESPACE::RLog&								aRlog,
			CSmbMusicAPSyncServerModel& 						aModel,
			MSmbMusicAPSyncServerContentsAsyncObserver& 		aObserver,
			CSmbMusicAPSyncServerContentsFunc& 					aFunc,
			MSmbMusicAPSyncServerContentsManagerInterface& 		aManagerInterface,
			CSmbMusicAPSyncServerContentsScreenTraceManager& 	aScreenData,
			const RMessage2& 									aRMessage
			);

	/**
	 *  僨僗僩儔僋僞
	 **/
	~CSmbMusicAPSyncServerContentsServiceGetItemFromList();

	/**
	 *  僒乕價僗傪奐巒偡傞
	 * @return	僒乕價僗張棟忬懺
	 **/
	TSmbMusicAPSyncServerContentsServiceState StartServiceL();

	/**
	 *  旕摨婜墳摎偐傜僒乕價僗傪宲懕偡傞
	 *  @return	僒乕價僗張棟忬懺
	 **/
	TSmbMusicAPSyncServerContentsServiceState ContinueServiceL();

	/**
	 *  旕摨婜墳摎僄儔乕偺張棟傪峴偆
	 *  @param[in]	aError	僄儔乕僐乕僪
	 *  @return	僒乕價僗張棟忬懺
	 **/
	TSmbMusicAPSyncServerContentsServiceState ServiceErr(TInt aError);

	/**
	 *  僒乕價僗偺僉儍儞僙儖張棟傪峴偆
	 **/
	void CancelService();


private:
	/**
	 *  僷儔儊乕僞傪撉傒崬傓
	 *  @return	僷儔儊乕僞偺惓忢惈
	 **/
	TBool LoadParam();

	/**
	 *  傾僀僥儉傪惗惉偡傞
	 *  @return	僒乕價僗張棟忬懺
	 **/
	TSmbMusicAPSyncServerContentsServiceState CreateItemsL();

	/**
	 *  傾僀僥儉偺忣曬傪庢摼偡傞
	 *  @return	僒乕價僗張棟忬懺
	 **/
	TSmbMusicAPSyncServerContentsServiceState GetItemInfoL();

	/**
	 *  庢摼偟偨傾僀僥儉傪儕僗僩偵搊榐偡傞(嬋傾僀僥儉)
	 *  @param[in]	aIndex	搊榐偡傞僀儞僨僢僋僗
	 *  @return	搊榐偺惉斲
	 **/
	TBool SetSongItemL(TInt aIndex);

	/**
	 *  庢摼偟偨傾僀僥儉傪儕僗僩偵搊榐偡傞(Meta傾僀僥儉)
	 *  @param[in]	aIndex	搊榐偡傞僀儞僨僢僋僗
	 *  @return	搊榐偺惉斲
	 **/
	TBool SetMetaItemL(TInt aIndex);

	/**
	 *  墳摎僨乕僞傪嶌惉偡傞
	 *  @param[in]	aIndex			僀儞僨僢僋僗(MWLib忋偺Index)
	 *  @param[in]	aDispString		昞帵暥帤楍
	 *  @param[in]	aAvailable		傾僀僥儉偺棙梡壜斲忣曬(僨僼僅儖僩:棙梡壜擻)
	 *  @param[in]	aLimitatioin	嵞惗惂尷忣曬(僨僼僅儖僩:惂尷柍偟)
	 */
//  MODIFY-S PTX824 k3-sugimoto
	void MakeResponseData(
			TInt aIndex,
			const TDesC& aDispString,
			TInt aAvailable = ESmbMusicAPSyncEngineOK,
			TSmbMusicAPSyncEngineLimitation aLimitatioin = ESmbMusicAPSyncEngineLimitNone
			);
//  MODIFY-E PTX824 k3-sugimoto

	/**
	 *  僒乕價僗傪惓忢偵姰椆偡傞
	 **/
	void Complete();

	/**
	 *  僒乕價僗傪僄儔乕偱姰椆偡傞
	 *  @param[in]	aResult	僒乕價僗廔椆帪偺寢壥
	 **/
	void CompleteErr(TInt aResult = KErrServiceFailure);

//  ADD-S  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
	/**
	 *  嵞惗惂尷忣曬庢摼梡偺傾僀僥儉攝楍偺弶婜壔
	 **/
	void ClearLimitationArray();

	/**
	 *  嵞惗惂尷忣曬庢摼
	 *  @return	僒乕價僗張棟忬懺
	 **/
	TSmbMusicAPSyncServerContentsServiceState GetLimitInformation();

//  MODIFY-S  尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳
	/**
	 *  僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺嵞惗婜尷忬懺偺敾掕
	 *  @param[in]	aSongLimit	敾掕傪峴偆偨傔偺嵞惗惂尷忣曬
	 *  @return	嵞惗婜尷忬懺敾掕寢壥
	 **/
	TSmbMusicAPSyncServerContentsServiceGetItemFromListJudgeResult JudgeLimitCondition(
			TSmbMusicMWLibSongLimit aSongLimit
			);
//  MODIFY-E  尃棙忣曬偺側偄嬋偺僌儗乕傾僂僩懳墳

	/**
	 *  嵞惗惂尷忣曬峏怴
	 *  @return	僒乕價僗張棟忬懺
	 **/
	TSmbMusicAPSyncServerContentsServiceState UpdateSongLimit();
//  ADD-E  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳


private:
//  ADD-S  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
	/**
	 *  嵞惗惂尷忣曬庢摼偺昁梫側嬋傾僀僥儉曐帩梡峔憿懱
	 **/
	struct TLimitationItem {
		TInt								iIndex;		///<  儕僗僩撪偱偺傾僀僥儉偺僀儞僨僢僋僗
		CSmbMusicMWLibSongItem* 			iSongItem;	///<  MW偐傜庢摼偟偨傾僀僥儉[has]
	};
//  ADD-E  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳

	CSmbMusicAPSyncServerContentsList*	iList;			///< 儕僗僩偺嶲徠[use]
	CSmbMusicMWLibMusicItem*			iTempItem;		///< 惗惉偟偨傾僀僥儉[has]
	CSmbMusicMWLibItemArray*			iTempItemArray;	///< 惗惉偟偨傾僀僥儉攝楍[has]

	TSmbMusicAPSyncServerContentsServiceGetItemFromListState	iServiceState;	///<  僒乕價僗偺忬懺

	TInt	iParamListHandle;	///<  儕僗僩僴儞僪儖(RMessage傛傝庢摼)
	TInt	iParamIndex;		///<  僀儞僨僢僋僗(RMessage傛傝庢摼)
	TInt	iParamCount;		///<  庢摼傾僀僥儉悢(RMessage傛傝庢摼)

	TInt	iGetItemsTopIndex;	///<  儔僀僽儔儕MW偵庢摼傪梫媮偟偨傾僀僥儉偺愭摢僀儞僨僢僋僗
	TInt	iGetItemsCount;		///<  儔僀僽儔儕MW偵庢摼傪梫媮偟偨傾僀僥儉偺悢

	TSmbMusicAPSyncEngineListItemInfo	iResponseArray[KMaxItemCountByOneTime];	///< 墳摎梡僶僢僼傽

//  ADD-S  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
	RPointerArray<TLimitationItem>	iLimitationArray;	///<  嵞惗惂尷忣曬庢摼梡偺傾僀僥儉偺攝楍
	CSmbMusicMWLibSongItem* 		iLimitationItem;	///<  惂尷忣曬庢摼拞偺傾僀僥儉[use]
	TSmbMusicMWLibSongLimit			iSongLimit;			///<  惂尷忣曬
//  ADD-E  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
	};

SEMCJ_NAMESPACE_END

#endif //__SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETITEMFROMLIST_H__


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

⌨️ 快捷键说明

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