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

📄 smbmusicapsyncservermodel.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerModel.cpp
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 傾僾儕摨婜僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/05/31	|暯壀			| 怴婯嶌惉
//2006/07/26	|K3悪杮			| IsIndexFromIHandle偱Index偑庢摼偱偒側偄応崌PANIC偡傞傛偆張棟捛壛
//				|				| IsHandleFromIndex偱IteratorHandle偑庢摼偱偒側偄応崌PANIC偡傞傛偆張棟捛壛
//2006/08/24	|娵壀			| TRK7490懳墳
//2006/09/08	|暯壀			| TRK8572懳墳
//2006/09/12	|娵壀			| TRK9089懳墳
//2006/09/14	|K3悪杮			| QAC巜揈懳墳
//2006/09/18	|娵壀			| TRK9519,9520懳墳
//2006/09/25	|娵壀			| TRK9378懳墳
//2006/09/28	|娵壀			| TRK10338懳墳
//2006/09/30	|暯壀			| USAT REFRESH懳墳(TRK10775)
//2006/10/18	|暯壀			| TRK11655懳墳
//2006/10/25	|暯壀			| TRK11655懳墳(儗僕儏乕儉忣曬攋婞張棟捛壛)
//----PTX824----+---------------+--------------------------------------
//2007/04/05	|K3悪杮			| PTX824懳墳(儊儌儕丄MTP儌乕僪帪偺儗僕儏乕儉攋婞)
//2007/05/10	|K3悪杮			| MTP儌乕僪忬懺曄壔捠抦張棟捛壛
//2007/06/08	|K3悪杮			| 奜晹儊儌儕僂僅僢僠儍偺娔帇傪SD偺傒偵尷掕
//2007/06/29	|K3悪杮			| 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
//2007/07/06	|K3悪杮			| [D_82400006415] 儊儌儕儌乕僪夝彍帪傕儗僕儏乕儉攋婞偡傞傛偆曄峏
//				|				| [D_82400006419] MTP儌乕僪曄峏張棟偑嶍彍偝傟偰偄偨偺偱暅妶丒張棟捛壛
//2007/07/11	|K3悪杮			| 婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳(RTCErr)
//2007/09/07	|K3悪杮			| [D_82400014107]婜尷愗傟僒僽僗僋儕僾僔儑儞僌儗乕傾僂僩懳墳(娔帇PA曄峏)
//2007/09/20	|K3悪杮			| [D_82400015039]僇儊儔傾僾儕偑慜柺偺応崌僆乕僩儗僕儏乕儉嵞惗傪偟側偄懳墳
//2007/10/01	|K3悪杮			| [D_82400015960]MTP偺忬懺捛壛偵傛傞廋惓


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

#ifndef __SMBMUSICAPSYNCSERVEREVENTDISPATCHER_H__
#include "SmbMusicAPSyncServerEventDispatcher.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERSESSION_H__
#include "SmbMusicAPSyncServerSession.h"
#endif

#ifndef	__SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.h"
#endif	//  __SMBMUSICAPSYNCSERVERUTIL_H__

//@@TRK9089懳墳	Start
#ifndef	__SMBPGDBX_H__
#include <SmbPGDbx.h>
#endif
//@@TRK9089懳墳	End

#include <FjpgBasic.h>
#include <FjpgBasicSetting.h>
#include <FjpgBasicStatus.h>
#include <FjpgBasicContents.h>
#include <SmbPGMusic.h>
#include <SmbPGStatus.h>
#include <SmbPGStrategyPluginIF.h>
#include <FJUsimAccess.h>
//  ADD-S PTX824 k3-sugimoto
#include <SmbPGConnect.h>	//  儊儌儕儌乕僪
//  ADD-S PTX824 k3-sugimoto


USING_NAMESPACE_SEMCJ

/**
 僐儞僗僩儔僋僞
 * @param [in]	aLog	Log偺嶲徠
 * @return	側偟
 */
CSmbMusicAPSyncServerModel::CSmbMusicAPSyncServerModel(DCM_NAMESPACE::RLog& aLog)
	: iLog(aLog)
	{
	}

/**
 僨僗僩儔僋僞
 * @param	側偟
 * @return	側偟
 */
CSmbMusicAPSyncServerModel::~CSmbMusicAPSyncServerModel()
	{
	delete iPropAgentWatcher;
	delete iDispatcher;
	delete iMemWatcher;
	iSession.ResetAndDestroy();
	}

/**
 戞俀僼僃乕僘僐儞僗僩儔僋僞
 * @param [in]	側偟
 * @return		側偟
 */
void CSmbMusicAPSyncServerModel::ConstructL()
	{
	// 僾儘僷僥傿僄乕僕僃儞僩娔帇懳徾傾僀僥儉
	const TUid KWatchUids[] =
		{
		{ KPGMannerModeUidValue },							// 儅僫乕儌乕僪忬懺
		{ KPGStatusEarphoneStatusUidValue },				// 僀儎僼僅儞忬懺
		{ KPGSOMusicAPResumeInfoDeleteIndicationUidValue },	// 儗僕儏乕儉忣曬攋婞
//@@TRK9089懳墳	Start
		{ KPGSODbxMassFormatUidValue },						// 杮懱奼挘僼僅乕儅僢僩忬懺
		{ KPGSODbxMsFormatUidValue },						// MS僼僅乕儅僢僩忬懺
		{ KPGSODbxSdFormatUidValue },						// SD僼僅乕儅僢僩忬懺
//@@TRK9089懳墳	End
//TRK10775懳墳 Add-S
		{ KPGSOUsimRefreshTypeUidValue },					// USIM REFRESH
//TRK10775懳墳 Add-E
//TRK11655懳墳 Add-S
		{ KPGMusicContentsRecoverUidValue },				// Music僐儞僥儞僣儕僇僶儕乕忣曬
		{ KPGSOMusicMWLibDBRecoverUidValue },				// MW儔僀僽儔儕DB儕僇僶儕乕忣曬
//TRK11655懳墳 Add-E
//  ADD-S PTX824 k3-sugimoto
		{ KPGSOUSBStrgMgrStatusSyncUidValue },				// 儊儌儕儌乕僪堏峴忣曬
		{ KPGSOMtpModeStatusUidValue },						// MTP儌乕僪堏峴忣曬
//  ADD-E PTX824 k3-sugimoto
//	ADD-S  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
#ifndef __SMBMUSICAPSYNCSERVER_DISABLE_SUBSCRIPTIONGRAYOUT__
		{ KPGSOMusicMWLibLicenceUpdateEventUidValue },		// 僒僽僗僋儕僾僔儑儞尃棙忣曬峏怴捠抦
//  MODIFY-S  [D_82400014107]婜尷愗傟僒僽僗僋儕僾僔儑儞僌儗乕傾僂僩懳墳(娔帇PA曄峏)
		{ KPGSOMusicMWRtcInfoUidValue },					// MusicMW梡RTC忣曬
//  MODIFY-E  [D_82400014107]婜尷愗傟僒僽僗僋儕僾僔儑儞僌儗乕傾僂僩懳墳(娔帇PA曄峏)
#endif	//  __SMBMUSICAPSYNCSERVER_DISABLE_SUBSCRIPTIONGRAYOUT__
//  ADD-E  婜尷愗傟僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
		};

	//僨傿僗僷僢僠儍偺惗惉
	iDispatcher = new(ELeave)CSmbMusicAPSyncServerEventDispatcher(iLog);
	iDispatcher->ConstructL(*this);

	/** 僾儘僷僥傿僄乕僕僃儞僩偲偺僙僢僔儑儞傪愙懕偡傞	*/
	iPropAgent.ConnectL();
	/** Watcher偺惗惉	*/
	iPropAgentWatcher = DCM_NAMESPACE::CPGPropAgentWatcher::NewL(iPropAgent, this, KWatchUids,
														sizeof(KWatchUids) / sizeof(KWatchUids[0])
														/*KSmbMusicAPSyncServerUID*/);
	/** PA曄峏捠抦梫媮	*/
	iPropAgentWatcher->RequestNotifyEventL();
	/** 奜晹儊儌儕Watcher惗惉	*/
	iMemWatcher = CSmbExtMemWatcher::NewL();

	/** 奜晹儊儌儕偺専弌忦審傪愝掕	*/
//	TInt memState = CSmbExtMemWatcher::EMs | CSmbExtMemWatcher::ESd |
//			CSmbExtMemWatcher::EMass | CSmbExtMemWatcher::ENone;
	//  824偱僒億乕僩偝傟傞偺偼SD偺傒
	TInt memState = CSmbExtMemWatcher::ESd | CSmbExtMemWatcher::ENone;
	iMemWatcher->SetObserver(memState, this);

	//儅僫乕儌乕僪偺忬懺傪弶婜壔
	CheckMannerMode();
	//僀儎僼僅儞偺忬懺傪弶婜壔
	CheckPhone();
//  ADD-S PTX824 k3-sugimoto
	//  MTP儌乕僪忬懺傪弶婜壔
	CheckMtpModeL();
//  ADD-E PTX824 k3-sugimoto
//@@TRK9519,9520懳墳	Start
//  DEL-S PTX824 k3-sugimoto
//  824偱偼杮懱奼挘儊儌儕偼旕搵嵹偺偨傔嶍彍
///	//奜晹儊儌儕忬懺偺弶婜壔乮儅僗僗僩儗乕僕偼婎杮揑偵偼儅僂儞僩忬懺乯
//	SetExtMemState(CSmbExtMemWatcher::EMass, ETrue);
//  DEL-E PTX824 k3-sugimoto
	//奜晹儊儌儕忬懺偺庢摼
	CSmbExtMemWatcher::TType type;
	type = iMemWatcher->CardTypeL(iPropAgent);
	//奜晹儊儌儕忬懺愝掕
	SetExtMemState(type, ETrue);
//@@TRK9519,9520懳墳	End
	}

/**
 僙僢僔儑儞愙懕捠抦
 * @param[in]		側偟
 * @return			怴偨偵愙懕偟偨僙僢僔儑儞
 * @panic	240002	僙僢僔儑儞偺娗棟僥乕僽儖搊榐幐攕
 */
CSession2* CSmbMusicAPSyncServerModel::NewSessionL()
	{
	//僙僢僔儑儞傪怴偨偵惗惉偡傞
	CSmbMusicAPSyncServerSession* session = CSmbMusicAPSyncServerSession::NewL(*iDispatcher,iLog);
	//僙僢僔儑儞偺娗棟僥乕僽儖偵搊榐偡傞
	TInt res = iSession.Append(session);
	if (KErrNone != res)
		{
		PANIC(ESmbMusicAPSyncServerPanicNumber02);
		}

	return session;
	}

/**
 僙僢僔儑儞愗抐捠抦
 * @param[in]	sSession 僙僢僔儑儞
 * @return		愙懕偟偰偄傞僙僢僔儑儞偺悢
 */
TInt CSmbMusicAPSyncServerModel::DisConnect(CSession2& aSession)
	{
	TInt cnt = iSession.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		if(iSession[i] == &aSession)
			{
			//僙僢僔儑儞偺娗棟僥乕僽儖偐傜奜偡
			iSession.Remove(i);
			return iSession.Count();
			}
		}
	return iSession.Count();
	}

/**
 PA曄峏捠抦傪庴怣偡傞
 * @param[in]
 * @return	側偟
 */
void CSmbMusicAPSyncServerModel::OnChangeL(DCM_NAMESPACE::CPGPropAgentWatcher& aWatcher, TUid aUid, TInt aData)
	{
	TInt log = EMusicAPSyncServerClassNumber01 | EMusicAPSyncServerLocationNumber00;
	_LIT(KSyncServerModel00, "SyncServerModel::OnChangeL(Uid:%08x, Data:%d)");
//MODIFY-S  QAC巜揈懳墳
	SmbMusicAPSyncServerLog(iLog, log, ELogLevelLowest, KSyncServerModel00, aUid.iUid, aData);
//MODIFY-E  QAC巜揈懳墳

	//儊僨傿傾偺僼僅乕儅僢僩忬懺
	TSmbPGDbxFormatStatus mediaStusts;

	switch(aUid.iUid)
		{
		case KPGMannerModeUidValue:
			//儅僫乕儌乕僪偺忬懺偑曄峏偟偨帪
			CheckMannerMode();
			//弌椡忬懺偑曄峏偝傟偨偙偲傪捠抦偡傞
			ChangeLineOutState();
			break;

		case KPGStatusEarphoneStatusUidValue:
			//僀儎僼僅儞偺忬懺偑曄峏偟偨帪
			CheckPhone();
			//弌椡忬懺偑曄峏偝傟偨偙偲傪捠抦偡傞
			ChangeLineOutState();
			break;

		case KPGSOMusicAPResumeInfoDeleteIndicationUidValue:
			//儗僕儏乕儉忣曬攋婞
			DeleteResume();
			break;

//@@TRK9089懳墳	Start
		case KPGSODbxMassFormatUidValue:
			// 杮懱奼挘僼僅乕儅僢僩
			mediaStusts = SmbPGDbx::DbxMassFormatL(iPropAgent);
			if(ESmbPGDbxFormatOperation == mediaStusts)
				{
				//僼僅乕儅僢僩傪幚峴偟偨応崌丄儗僕儏乕儉忣曬攋婞
				DeleteResume();
				}
			break;

		case KPGSODbxMsFormatUidValue:
			// MS僼僅乕儅僢僩
			mediaStusts = SmbPGDbx::DbxMsFormatL(iPropAgent);
			if(ESmbPGDbxFormatOperation == mediaStusts)
				{
				//僼僅乕儅僢僩傪幚峴偟偨応崌丄儗僕儏乕儉忣曬攋婞
				DeleteResume();
				}
			break;

		case KPGSODbxSdFormatUidValue:
			// SD僼僅乕儅僢僩
			mediaStusts = SmbPGDbx::DbxSdFormatL(iPropAgent);
			if(ESmbPGDbxFormatOperation == mediaStusts)
				{
				//僼僅乕儅僢僩傪幚峴偟偨応崌丄儗僕儏乕儉忣曬攋婞
				DeleteResume();
				}
			break;
//@@TRK9089懳墳	End

//TRK10775懳墳 Add-S
		case KPGSOUsimRefreshTypeUidValue:
			// USIM REFRESH庬暿偺応崌

			if(KUsimIdUidValue == aData)
				{
				//撪晹僐儅儞僪敪峴
				TSmbMusicAPSyncServerInternalCommandPkg commandPkg;
				commandPkg.iCommand = ESmbMsuicAPSyncServerUsatRefresh;

				iDispatcher->CommandL(commandPkg);

				//儗僕儏乕儉傪攋婞偟傑偡
				DeleteResume();
				}
//			else if(KUsimImodeproUidValue == aData)
//				{
//				//壗傕張棟偟傑偣傫
//
//				}

			break;
//TRK10775懳墳 Add-E

//TRK11655懳墳 Add-S
		case KPGMusicContentsRecoverUidValue:
			// Music僐儞僥儞僣儕僇僶儕乕忣曬

			if (EFalse != DCM_NAMESPACE::PGPropAgentContents::MusicRecoveryL(iPropAgent))
				{
				//撪晹僐儅儞僪敪峴
				TSmbMusicAPSyncServerInternalCommandPkg commandPkg;
				commandPkg.iCommand = ESmbMsuicAPSyncServerDBRecover;

				iDispatcher->CommandL(commandPkg);

				//儗僕儏乕儉傪攋婞偟傑偡
				DeleteResume();
				}

			break;

		case KPGSOMusicMWLibDBRecoverUidValue:
			// Music僐儞僥儞僣儕僇僶儕乕忣曬

			if (EFalse != SmbPGMusic::DBRecoverL(iPropAgent))
				{
				//撪晹僐儅儞僪敪峴
				TSmbMusicAPSyncServerInternalCommandPkg commandPkg;
				commandPkg.iCommand = ESmbMsuicAPSyncServerDBRecover;

				iDispatcher->CommandL(commandPkg);

				//儗僕儏乕儉傪攋婞偟傑偡
				DeleteResume();
				}

			break;
//TRK11655懳墳 Add-E

//  ADD-S PTX824 k3-sugimoto
		case KPGSOUSBStrgMgrStatusSyncUidValue:	// 儊儌儕儌乕僪堏峴忣曬
//  MODIFY-S  [D_82400006415] 儊儌儕儌乕僪夝彍帪傕儗僕儏乕儉攋婞偡傞傛偆曄峏
			{
			//  儊儌儕儌乕僪堏峴丒夝彍偺忬懺偼2忬懺偟偐側偔丄
			//  偳偪傜偺応崌傕儗僕儏乕儉攋婞傪峴偆偨傔丄
			//  PA偺曄壔捠抦傪庴偗偨傜柍忦審偵儗僕儏乕儉攋婞傪峴偆偙偲偲偡傞丅

			//  儗僕儏乕儉傪攋婞偟傑偡
			DeleteResume();
			}
//  MODIFY-E  [D_82400006415] 儊儌儕儌乕僪夝彍帪傕儗僕儏乕儉攋婞偡傞傛偆曄峏
			break;

//  ADD-E  [D_82400006419] MTP儌乕僪曄峏張棟偑嶍彍偝傟偰偄偨偺偱暅妶丒張棟捛壛

⌨️ 快捷键说明

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