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

📄 smbmusicapsyncserverplayerfunc.h

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerPlayerFunc.h
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶嵞惗宯婡擻僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/09	|娵壀			|怴婯嶌惉
//2006/08/25	|暯壀			|MusicParamOperate偺掕媊抣傪捛壛
//2006/09/08	|娵壀			|TRK8235懳墳
//2006/09/25	|娵壀			|TRK9378懳墳
//2006/09/27	|娵壀			|TRK10202懳墳
//----PTX824----+---------------+--------------------------------------
//2007/04/03	|K3悪杮			|PTX824懳墳
//2007/07/11	|K3悪杮			| [D_82400007142]僆乕僩儗僕儏乕儉懸婡帪娫墑挿
//2007/09/04	|K3悪杮			| [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
// --[PTX825]---+---------------+--------------------------------------
// 2007/06/15   |SDNA抮怟       |PTX825丂梫審懳墳


#ifndef __SMBMUSICAPSYNCSERVERPLAYERFUNC_H__
#define __SMBMUSICAPSYNCSERVERPLAYERFUNC_H__

#ifndef __SMBMUSICAPSYNCSERVERDEF_H__
#include <SmbMusicAPSyncServerDef.h>
#endif

#ifndef __SMBMUSICMWPLAYERIF_H__
#include <SmbMusicMWPlayerIF.h>
#endif

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

#ifndef DCMMMAUDIOROUTINGCLIENT_H__
#include <DcmMMAudioRoutingClient.h>
#endif

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

#ifndef __SMBMUSICAPSYNCSERVERMODEL_H__
#include "SmbMusicAPSyncServerModel.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERINTERNALDEF_H__
#include "SmbMusicAPSyncServerInternalDef.h"
#endif

//  ADD-S PTX824 k3-sugimoto
#ifndef __SMBMUSICAPLIB_H__
#include "SmbMusicAPLib.h"
#endif	//  __SMBMUSICAPLIB_H__
//  ADD-E PTX824 k3-sugimoto


DCM_NAMESPACE_BEGIN
class RLog;
//class CMMAudioRoutingClient;
DCM_NAMESPACE_END


SEMCJ_NAMESPACE_BEGIN
//Music僾儗僀儎乕偑巊梡偡傞儕僜乕僗偺屄悢
const TInt KMusicPlayerRscMaxNumber = 2;

//@@TRK8235懳墳	Add	Start
//Music僾儗僀儎乕偑徣揹椡偵棊偪傞傑偱偺帪娫乮100ms扨埵乯
const TInt KMusicPlayerSleepTimer = 600;
//Music僾儗僀儎乕偺Mute夝彍傑偱偺帪娫乮100ms扨埵乯
const TInt KMusicPlayerMuteTimer = 2;
//@@TRK8235懳墳	Add	End

//  ADD-S PTX824 k3-sugimoto
//  BG儕僜乕僗庢摼奐巒傑偱偺懸偪帪娫(100ms扨埵)
//  MODIFY-S  [D_82400007142]僆乕僩儗僕儏乕儉懸婡帪娫墑挿
const TInt KMusicPlayerRscDelayTimer = 7;
//  MODIFY-E  [D_82400007142]僆乕僩儗僕儏乕儉懸婡帪娫墑挿
//  ADD-E PTX824 k3-sugimoto

//@@TRK10202懳墳	Add	Start
const TInt KSmbMusicAPSyncServerKeySoundWait = 100 * 1000;
//@@TRK10202懳墳	Add	End

//class CSmbRscMgrRscClient;
class MSmbMusicAPSyncServerPlayerAsyncObserver;
class CSmbMusicAPSyncServerPlayerResume;
class CSmbMusicAPSyncServerPlayerReceiveRscMgrRes;
class CSmbMusicAPSyncServerPlayerReceiveMWNotify;
class CSmbMusicAPSyncServerPlayerReceiveMWRes;
//class TSmbRscMgrRscAllocId;
//class TSmbRscMgrRscPriority;
class CSmbMusicAPSyncServerPlayerTimer;

/**
 * Music嵞惗偱巊梡偡傞儕僜乕僗掕媊
 */
enum TSmbMusicAPSyncServerPlayerRsc
	{
	ESmbMusicAPSyncServerPlayerNone		= 0x00,	///<儕僜乕僗側偟
	ESmbMusicAPSyncServerPlayerMWRsc	= 0x01,	///<MW儕僜乕僗
	ESmbMusicAPSyncServerPlayerBGRsc 	= 0x02,	///<BG儕僜乕僗
	ESmbMusicAPSyncServerPlayerAllRsc	= 0x03	///<慡偰偺儕僜乕僗
	};

/**
 * Func僋儔僗傊偺憖嶌
 */
enum TSmbMusicAPSyncServerPlayerMusicParamOperate
	{
	ESmbMusicAPSyncServerPlayerSetFromLocal,		///<儊儞僶曄悢偺抣傪巊梡偡傞
	ESmbMusicAPSyncServerPlayerSetFromMsg,			///<梫媮儊僢僙乕僕偺撪梕傪巊梡偡傞乮儊儞僶曄悢偵傕曐懚偡傞乯
	ESmbMusicAPSyncServerPlayerStackLocalFromMsg,	///<梫媮儊僢僙乕僕偺撪梕傪儊儞僶曄悢偵曐懚偡傞
	ESmbMusicAPSyncServerPlayerStackLocalFromPlayer,///<僾儗僀儎乕偺撪梕傪儘乕僇儖偵曐懚偡傞
	ESmbMusicAPSyncServerPlayerStackMsgFromPlayer,	///<僾儗僀儎乕偺撪梕傪儊僢僙乕僕偵曐懚偡傞乮儘乕僇儖偵傕曐懚偡傞乯
	ESmbMusicAPSyncServerPlayerNotResumeStackLocalFromPlayer ///<僾儗僀儎乕偺撪梕傪儘乕僇儖偵曐懚偡傞乮Resume峏怴偼偟側偄乯
	};

	/**
	尰嵼嵞惗拞偺嬋忣曬傪曐帩偡傞峔憿懱
	 */
struct TSmbMusicAPSyncServerPlayerPlaySongInfo
	{
	TSmbMusicMWPlayerSongInfo	iIterator;		///<Iterator僴儞僪儖
	TInt						iIndex;			///<儕僗僩拞偺Index
	TInt 						iListHandle;	///<儕僗僩僴儞僪儖
	};

	/**
	僀儀儞僩攝怣僉儏乕偺婎杮峔憿懱
	*/
struct TSmbMusicAPSyncServerPlayerEventRequestSession
	{
	CSession2*									iConnectSession;	///<僙僢僔儑儞
	RArray<TSmbMusicAPSyncEnginePlayerEvent>	iEvent;				///<僉儏乕僀儞僌偝傟偰偄傞僀儀儞僩
	};

#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
	/**
	 * 儕僜乕僗ID
	 */
enum TSmbMusicAPSyncServerPlayerRscType
	{
	ESmbMusicAPSyncServerRscUnKnown = 0,				/**< 晄柧側儕僜乕僗ID									*/
	ESmbMusicAPSyncServerRscMusicMW,					/**< MusicMW											*/
	ESmbMusicAPSyncServerRscMusicBG_forBGApp,			/**< MusicBG嵞惗尃棙(BG傾僾儕梡)						*/
	ESmbMusicAPSyncServerRscMusicBG_Watcher,			/**< MusicBG嵞惗尃棙(BG傾僾儕梡)娔帇梡					*/
	ESmbMusicAPSyncServerRscMultimedia,					/**< Multimedia(G2)										*/
	ESmbMusicAPSyncServerRscMultimedia_Watcher,			/**< Multimedia(G2)娔帇梡								*/
	};

	/**
	 *  儕僜乕僗庬暿偲妉摼僾儔僀僆儕僥傿偺僥乕僽儖
	 */
struct TSmbMusicAPSyncServerPlayerRscPriorityTable
	{
	TSmbMusicAPSyncServerPlayerRscType		iRscType;	/**< 儕僜乕僗庬暿										*/
	TSmbRscMgrRsc							iRscId;		/**< 儕僜乕僗ID											*/
	TUint									iPriority;	/**< 妉摼僾儔僀僆儕僥傿									*/
	TBool									iWatcheFlg;	/**< 娔帇梡儕僜乕僗僼儔僌乽ETru:娔帇梡丄EFalse丗旕娔帇梡*/
	};

#endif

//僼僃乕僪僀儞帪娫
const TInt KSmbMusicAPSyncServerPlayerFadeInTime = 0;

//儕僗僩偺愭摢嬋偺Index
const TInt KSmbMusicAPSyncServerPlayerStartIndex = 1;


/**
 * Music傾僾儕PlayerFunc僋儔僗
 *
 *
 */
class CSmbMusicAPSyncServerPlayerFunc : public CBase
	{
public:
	/**
	 僐儞僗僩儔僋僞
	 * @param [in]	aLog		儘僌僒乕僶僙僢僔儑儞偺嶲徠
	 * @param [in]	aModel		摨婜僒乕僶儌僨儖僋儔僗
	 * @return
	 */
	CSmbMusicAPSyncServerPlayerFunc(DCM_NAMESPACE::RLog& aLog, CSmbMusicAPSyncServerModel& aModel);

	/**
	 僨僗僩儔僋僞
	 * @param	側偟
	 * @return	側偟
	 */
	~CSmbMusicAPSyncServerPlayerFunc();

	/**
	 2僼僃乕僘僐儞僗僩儔僋僞
	 * @param [in]	aAsyncObserver		旕摨婜僐儅儞僪僆僽僓乕僶
	 * @return	側偟
	 */
	void ConstructL(MSmbMusicAPSyncServerPlayerAsyncObserver& aAsyncObserver);

	/**
	 傾僾儕廔椆
	 * @param [in]	aMsg		儊僢僙乕僕
	 * @return	側偟
	 */
	void AppEnd(RMessage2& aMsg);

	/**
	 僐儞僥僉僗僩愝掕傪拞巭偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void CancelContext();

	/**
	 儕僜乕僗庢摼傪拞巭偡傞
	 * @param [in]	aRsc		庢摼傪拞巭偡傞儕僜乕僗
	 * @return	側偟
	 */
	void CancelGetRsc(TSmbMusicAPSyncServerPlayerRsc aRsc);

	/**
	 慡偰偺儕僜乕僗庢摼傪拞巭偍傛傃夝曻偡傞
	 * @param [in]	aHasMWRsc		MW儕僜乕僗偺庢摼忬嫷(ETrue:庢摼嵪傒乛EFalse:枹庢摼)
	 * @return	側偟
	 */
	void CancelAndReleaseAllRsc(TBool aHasMWRsc);

	/**
	 徣揹椡梡偺僞僀儅傪掆巭偝偣傞
	 * @param	側偟
	 * @return	側偟
	 */
	void CancelPowerSaveTimer();

	/**
	 慡嬋僔儍僢僼儖愝掕傪僋儕傾偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void ClearAllShuffle();

	/**
	 僐儞僥僉僗僩愝掕傪僋儕傾偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt ClearContext();

	/**
	 儗僕儏乕儉忣曬傪攋婞偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void ClearResume();

	/**
	 僾儗僀儎乕惂屼MW偲僙僢僔儑儞傪愙懕偟偰僀儀儞僩捠抦梫媮傪敪峴偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt ConnectPlayer();

	/**
	 僙僢僔儑儞愗抐捠抦
	 * @param [in/out/in,out]	aSession		僙僢僔儑儞
	 * @return		張棟寢壥
	 */
	TBool DisConnect(CSession2& aSession);

	/**
	 慡偰偺愝掕抣偺庢摼
	 * @param [in]	aOperate		憖嶌撪梕
	 * @return	張棟寢壥
	 */
	TInt GetMusicParam(TSmbMusicAPSyncServerPlayerMusicParamOperate aOperate);

	/**
	 嵞惗宱夁帪娫傪庢摼偡傞
	 * @param [in]	aOperate		憖嶌撪梕
	 * @return	張棟寢壥
	 */
	TInt  GetPlayTime(TSmbMusicAPSyncServerPlayerMusicParamOperate aOperate);

	/**
	 儕僜乕僗傪庢摼偡傞
	 * @param [in]	aRsc		庢摼偡傞儕僜乕僗
	 * @return	側偟
	 */
	void GetResourceL(TSmbMusicAPSyncServerPlayerRsc aRsc);

	/**
	 儗僕儏乕儉忣曬傪峏怴偡傞
	 * @param [in]	aOperate		憖嶌撪梕
	 * @return	側偟
	 */
	void GetResume(TSmbMusicAPSyncServerPlayerMusicParamOperate aOperate);

	/**
	 壒埑儗儀儖偺庢摼
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt GetSound();

	/**
	 専嶕梡偺嵞惗夞悢傪峏怴偡傞
	 * @param [in]	aListHandle 	儕僗僩僴儞僪儖
	 * @param [in]	aIndex 			index
	 * @return	側偟
	 */
	void IncrementPlayTimes(TInt aListHandle, TInt aIndex);

	/**
	 堦帪掆巭忬懺偵偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt Pause();

	/**
	 嵞惗帪娫偑0昩偺応崌偵専嶕梡偺嵞惗夞悢傪峏怴偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void IncrementPlayTimesIfNecessary();

	/**
	 嵞惗傪奐巒偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt Play();

	/**
	 憗憲傝嵞惗傪奐巒偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt PlayFF();

	/**
	 憗栠偟嵞惗傪奐巒偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt PlayFR();

	/**
	 憗憲傝傪夝彍偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt PlayFromFF();

	/**
	 憗栠偟傪夝彍偡傞
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt PlayFromFR();

	/**
	 摢偩偟傪峴偆
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt SetSongHead();

	/**
	 嬋栠偟傪峴偆
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt PrevSong();

	/**
	 嬋憲傝傪峴偆
	 * @param	側偟
	 * @return	張棟寢壥
	 */
	TInt NextSong();

	/**
	 徣揹椡忬懺傪曄峏偡傞
	 * @param [in]	aSave		徣揹椡忬懺
	 * @return	側偟
	 */
	TInt  PwrSave(TBool aSave);

	/**
	 儕僜乕僗夝曻偡傞
	 * @param [in]	aRsc		夝曻偡傞儕僜乕僗
	 * @param [in]	aSetNotify	儕僜乕僗妉摼娔帇僼儔僌(僨僼僅儖僩:EFalse=娔帇偟側偄)
	 * @return	側偟
	 */
//  MODIFY-S PTX824 k3-sugimoto
	void ReleaseRsc(TSmbMusicAPSyncServerPlayerRsc aRsc, TBool aSetNotify = EFalse);
//  MODIFY-E PTX824 k3-sugimoto

	/**
	 僾儗僀儎乕惂屼MW偵僀儀儞僩捠抦梫媮偡傞
	 * @param	側偟
	 * @return	側偟
	 */
	void RequestEventNotify();

	/**
 	僀儀儞僩捠抦僉儍儞僙儖梫媮
 	* @param	側偟
 	* @return	張棟寢壥
 	*/
	void CancelEventNotify(RMessage2& aMsg);

	/**

⌨️ 快捷键说明

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