smbmusicapsyncservermodel.h

来自「索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian」· C头文件 代码 · 共 350 行

H
350
字号
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerModel.h
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 傾僾儕摨婜僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/05/31	|暯壀			| 怴婯嶌惉
//2006/09/18	|娵壀			| TRK9519,TRK9520懳墳
//2006/09/25	|娵壀			| TRK9378懳墳
//----PTX824----+---------------+--------------------------------------
//2007/05/10	|K3悪杮			| PTX824懳墳(MTP儌乕僪忬懺僼儔僌捛壛)
//2007/06/29	|K3悪杮			| 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
//2007/09/20	|K3悪杮			| [D_82400015039]僇儊儔傾僾儕偑慜柺偺応崌僆乕僩儗僕儏乕儉嵞惗傪偟側偄懳墳


#ifndef __SMBMUSICAPSYNCSERVERMODEL_H__
#define __SMBMUSICAPSYNCSERVERMODEL_H__

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

#ifndef FJPGPROPAGENT_H__
#include <FjpgPropAgent.h>
#endif

#include <CSmbExtMemWatcher.h>


DCM_NAMESPACE_BEGIN
class RLog;
//class RPGPropAgent;
//class CPGPropAgentWatcher;
DCM_NAMESPACE_END


SEMCJ_NAMESPACE_BEGIN

/**
	奜晹儊儌儕偺忬懺
*/
enum  TSmbMusicAPSyncServerExtMemState
	{
	ESmbMsuicAPSyncServerExtMemMS,		//	MS憓擖忬懺
	ESmbMsuicAPSyncServerExtMemSD,		//	SD憓擖忬懺
	ESmbMsuicAPSyncServerExtMemMass,	//	MassStorage忬懺
	ESmbMsuicAPSyncServerExtMemNone		//	奜晹儊儌儕側偟忬懺
	};


class CSmbMusicAPSyncServerSession;
class CSmbMusicAPSyncServerEventDispatcher;
class CSmbExtMemWatcher;

/**
 * MusicAPSyncServerModel僋儔僗
 *
 *
 */
class CSmbMusicAPSyncServerModel : public CBase
							   	  ,public DCM_NAMESPACE::MPGPropAgentObserver
							   	  ,public CSmbExtMemWatcher::MObserver
	{
public:
	/**

	 * @param [in/out/in,out]	aLog
	 * @return
	 */
	CSmbMusicAPSyncServerModel(DCM_NAMESPACE::RLog& aLog);

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

	/**

	 * @param	側偟
	 * @return
	 */
	void ConstructL();

	/**

	 * @param	側偟
	 * @return
	 */
	CSession2* NewSessionL();

	/**
	 * @param [in/out/in,out]	aSession
	 * @return
	 */
	TInt DisConnect(CSession2& aSession);

	/**
	PA偺曄峏傪庴怣偡傞
	 * @param	側偟
	 * @return
	 */
	void OnChangeL(DCM_NAMESPACE::CPGPropAgentWatcher& aWatcher, TUid aUid, TInt aData);

	/**
	壒惡僷僗偵懳偟偰Mute偑昁梫偐偺栤偄崌傢偣
	 * @param	側偟
	 * @return
	 */
	TBool Mute();

	/**

	 * @param	側偟
	 * @return
	 */
	void NotifyMountedExtMemL(CSmbExtMemWatcher::TType aType);

	/**

	 * @param	側偟
	 * @return
	 */
	void NotifyMountingExtMemL(CSmbExtMemWatcher::TType aType);

	/**

	 * @param	側偟
	 * @return
	 */
	void NotifyUnMountedExtMemL(CSmbExtMemWatcher::TType aType);

	/**

	 * @param	側偟
	 * @return
	 */
	void NotifyErrorExtMemL(CSmbExtMemWatcher::TType aType, TInt aError);

	/**

	 * @param [in/out/in,out]	aIHandle
	 * @return
	 */
	TInt IsIndexFromIHandle(TInt aIHandle);

	/**

	 * @param [in/out/in,out]	aIndex
	 * @return
	 */
	TInt IsHandleFromIndex(TInt aIndex, TInt aListHandle);

//@@TRK9519懳墳	Start
	/**
	奜晹儊儌儕忬懺偺栤偄崌傢偣
	 * @param 	側偟
	 * @return	奜晹儊儌儕忬懺
	 */
//	TSmbMusicAPSyncServerExtMemState CheckExtMem();
//@@TRK9519懳墳	End

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

	/**
	 Music僾儗僀儎乕偺嵞惗傪捠抦偡傞
	* @param [in]	aListHandle		嵞惗嬋儕僗僩偺僴儞僪儖
	* @param [in]	aPlayConfirm	嵞惗慜偺儅僫乕儌乕僪妋擣
	* @return		嵞惗張棟偺惉斲乮僐儞僥儞僣宯偺張棟乯
	 */
//	TBool  StartPlay(TInt aListHandle);
	TBool  StartPlay(TInt aListHandle, TBool aPlayConfirm);


	/**
 	Music僾儗僀儎乕偺弌椡忬懺傪挷傋傞
 	* @param		側偟
 	* @return		弌椡忬懺乮ETrue丗弌椡偁傝/EFalse丗弌椡側偟乯
 	*/
	TBool  LineOut();

	/**
 	嵞惗宯 儗僕儏乕儉忣曬 桳岠僼儔僌傪愝掕偡傞
 	* @param [in]	桳岠僼儔僌乮ETrue丗桳岠/EFalse丗柍岠乯
 	* @return		側偟
 	*/
	void SetPlayerResumeInfoAvailable(TBool aAvailable);

	/**
 	僐儞僥儞僣宯 儗僕儏乕儉忣曬 桳岠僼儔僌傪愝掕偡傞
 	* @param [in]	桳岠僼儔僌乮ETrue丗桳岠/EFalse丗柍岠乯
 	* @return		側偟
 	*/
	void SetContentsResumeInfoAvailable(TBool aAvailable);

	/**
 	儗僕儏乕儉忣曬偺桳岠惈傪庢摼偡傞
 	* @param		側偟
 	* @return		桳岠僼儔僌乮ETrue丗桳岠/EFalse丗柍岠乯
 	*/
	TBool GetResumeInfoAvailable();

	/**
 	儗僕儏乕儉忣曬傪徚嫀偡傞
 	* @param		側偟
 	* @return		側偟
 	*/
	void DeleteResume();

	/**
	 僾儗僀儎乕偑嵞惗忬懺偺帪偼Key壒傪梷惂偡傞
	 * @param [in]	aBool
	 * @return
	 */
	void  StopKeySound(TBool aBool);

	/**
	 *  僙僢僔儑儞悢庢摼
	 *  @return	愙懕偝傟偰偄傞僙僢僔儑儞悢
	 **/
	TInt SessionCount() const;

//  ADD-S  [D_82400015039]僇儊儔傾僾儕偑慜柺偺応崌僆乕僩儗僕儏乕儉嵞惗傪偟側偄懳墳
	DCM_NAMESPACE::RPGPropAgent& PropAgent();
//  ADD-E  [D_82400015039]僇儊儔傾僾儕偑慜柺偺応崌僆乕僩儗僕儏乕儉嵞惗傪偟側偄懳墳


private:
//@@TRK9519懳墳	Start
	/**
	奜晹儊儌儕忬懺偺愝掕
	 * @param [in]	aType	奜晹儊儌儕忬懺
	 * @return		側偟
	 */
	void SetExtMemState(CSmbExtMemWatcher::TType aType, TBool aAvailable);
//@@TRK9519懳墳	End

	/**
 	Music僾儗僀儎乕偺弌椡忬懺曄峏
 	* @param [in]	側偟
 	* @return		側偟
 	*/
	void  ChangeLineOutState();

	/**
	 MWLib 僨乕僞儀乕僗忬懺峏怴
	 * @param [in]	側偟
	 * @return		側偟
	 */
	void  MWLibDBStateUpdate();

	/**
 	奜晹婡婍乮僀儎僼僅儞乯偺忬懺傪挷傋傞
 	* @param [in]	側偟
 	* @return		側偟
 	*/
	void CheckPhone();

	/**
 	儅僫乕儌乕僪偺忬懺傪挷傋傞
 	* @param [in]	側偟
 	* @return		側偟
 	*/
	void CheckMannerMode();

//@@TRK9519懳墳	Start
	/**
 	奜晹儊儌儕偺忬懺曄峏僐儅儞僪傪敪峴偡傞
 	* @param [in]	aTmpState
 	* @return
 	*/
//	void  SendExtMemCommand(TSmbMusicAPSyncServerExtMemState aTmpState);
//	void  SendExtMemCommand(TInt aTmpState);
	void  SendExtMemCommand(CSmbExtMemWatcher::TType aType, TBool aAvailable);
//@@TRK9519懳墳	End

//  ADD-S PTX824 k3-sugimoto
	/**
	 *  MTP儌乕僪偺忬懺傪挷傋傞
	 **/
	void CheckMtpModeL();

//  ADD-S  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
	/**
	 *  傾僀僥儉僉儍僢僔儏傪攋婞偟傑偡
	 **/
	void DeleteCacheItemL();
//  ADD-E  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
//  ADD-E PTX824 k3-sugimoto

private:
	/**
	Music傾僾儕偺僒僂儞僪弌椡愝掕峔憿懱
	*/
struct SmbMusicAPLineState
	{
	TBool 	iPlayWithManner;	///<儅僫乕儌乕僪拞偺嵞惗僼儔僌
	TBool 	iMannerMode;		///<儅僫乕儌乕僪忬懺
	TBool	iPhone;				///<僀儎僼僅儞忬懺
	TBool 	iLineOut;			///<弌椡忬懺
	};
	SmbMusicAPLineState	iLineOutState;

	TBool 	iResumeInfoAvailablePlayer;			///<嵞惗宯偺儗僕儏乕儉忣曬 桳岠僼儔僌
	TBool 	iResumeInfoAvailableContents;		///<僐儞僥儞僣宯偺儗僕儏乕儉忣曬 桳岠僼儔僌

	/** 愙懕偟偰偄傞僙僢僔儑儞	*/
	RPointerArray<CSmbMusicAPSyncServerSession> iSession;
	/** 僨傿僗僷僢僠儍乕僋儔僗		*/
	CSmbMusicAPSyncServerEventDispatcher* iDispatcher;
	/** Log僒乕僶偲偺僙僢僔儑儞	*/
	DCM_NAMESPACE::RLog& iLog;
	/** 僾儘僷僥傿乕僄乕僕僃儞僩偲偺僙僢僔儑儞	*/
	DCM_NAMESPACE::RPGPropAgent iPropAgent;
	/** 僾儘僷僥傿乕僄乕僕僃儞僩偺Watcher	*/
	DCM_NAMESPACE::CPGPropAgentWatcher* iPropAgentWatcher;
	/**	奜晹儊儌儕Watcher	*/
	CSmbExtMemWatcher*			iMemWatcher;
//@@TRK9519懳墳	Start
	/**	奜晹儊儌儕忬懺	*/
//	TSmbMusicAPSyncServerExtMemState	iExtMemState;
	TInt 						iExtMemState;
//@@TRK9519懳墳	End
//  ADD-S PTX824 k3-sugimoto
	/**  MTP儌乕僪忬懺僼儔僌  **/
	TBool						iMtpStatus;
//  ADD-E PTX824 k3-sugimoto
	};

SEMCJ_NAMESPACE_END


#endif //__SMBMUSICAPSYNCSERVERMODEL_H__

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

⌨️ 快捷键说明

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