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

📄 smbmusicapsyncserverplayerfunc.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
 */
TInt CSmbMusicAPSyncServerPlayerFunc::PlayFromFR()
	{
	return iPlayerSession.CancelPlayFR();
	}

/**
 摢弌偟傪峴偆
 * @param	側偟
 * @return	張棟寢壥
 */
TInt CSmbMusicAPSyncServerPlayerFunc::SetSongHead()
	{
	TInt res;
	//摢弌偟傪幚峴偡傞
	TSmbMusicMWPlayerSongInfo playSong;
	playSong = iPlaySong.iIterator;
	res = iPlayerSession.SetSongHead(playSong);
	return res;
	}

/**
 嬋栠偟傪峴偆
 * @param	側偟
 * @return	張棟寢壥
 */
TInt CSmbMusicAPSyncServerPlayerFunc::PrevSong()
	{
	TInt cnt(iRequestMessage.Count());
	TInt res(KErrNone);

//  ADD-S PTX824 k3-sugimoto
	TSmbMusicAPSyncServerPlayerReqPkg reqPkg;
	TPckg<TSmbMusicAPSyncServerPlayerReqPkg> reqTpck(reqPkg);

	res = iRequestMessage[iRequestMessage.Count() - 1].Read(0, reqTpck);
	//Read偑幐攕偟偨傜丄儘僌弌椡屻丄僄儔乕傪曉偡
	if (KErrNone != res)
		{
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber23;
		_LIT(KServerPlayerFunc23, "SyncServerPlayerFunc::PrevSong Read() Return Val [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KServerPlayerFunc23, res);

		return res;
		}

	//  嬋憲傝悢偺曗惓傪峴偆
	TUint16 movement(reqPkg.iData.iChangeSong.iMovement);
	if (movement < KSmbMusicAPSyncEngineMinSongMovement)
		{
		//  嵟彫抣傛傝彫偝偄応崌偼嵟彫抣偵
		movement = KSmbMusicAPSyncEngineMinSongMovement;
		}
	else if (movement > KSmbMusicAPSyncEngineMaxSongMovement)
		{
		//  嵟戝抣傛傝戝偒偄応崌偼嵟戝抣偵
		movement = KSmbMusicAPSyncEngineMaxSongMovement;
		}
//  ADD-E PTX824 k3-sugimoto

	TSmbMusicMWPlayerSongInfo playSong;
	TSmbMusicMWPlayerSongInfo nextSong;
	playSong = iPlaySong.iIterator;

	//嬋栠偟梫媮傪敪峴偡傞
// MODIFY-S PTX824 k3-sugimoto
#ifdef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
	res = iPlayerSession.SetPrevSong(playSong, nextSong);
#else	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
	res = iPlayerSession.SetPrevSong(playSong, nextSong, movement);
#endif
// MODIFY-E PTX824 k3-sugimoto

	//張棟寢壥偵傛偭偰暘婒偡傞乮摨婜僒乕僶-MW偲偺娫偱偡傟偪偑偄偑敪惗偟偨壜擻惈偁傝乯
	switch(res)
		{
	//惓忢張棟
	case KErrNone:
		//Iterator偐傜Index傊曄姺偡傞
		iPlaySong.iIndex = iModel.IsIndexFromIHandle(nextSong.iIteratorHandle);
		//Iterator傪峏怴偡傞
		//Index偐傜僀僥儗乕僞僴儞僪儖傪庢摼偡傞
		iPlaySong.iIterator.iIteratorHandle = iModel.IsHandleFromIndex(iPlaySong.iIndex, iPlaySong.iListHandle);
		iPlaySong.iIterator.iContainerID = nextSong.iContainerID;
		break;

//	//摨婜僒乕僶偲MW偲偺娫偱偡傟偪偑偄偑敪惗偟偨壜擻惈偑偁傞
//	case KErrCancel:
//		//嵟怴偺嵞惗僐儞僥僉僗僩傪庢摼偡傞
//		TSmbMusicMWPlayerPlayContext context;
//		res = iPlayerSession.GetPlayContext(context);
//		//偙偙偱僄儔乕偑敪惗偟偨傜榖偵側傝傑偣傫両両
//		if(KErrNone != res)
//			{
//			//儘僌傪弌椡偟傑偡
//			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber103;
//			_LIT(KServerPlayerFunc103, "SyncServerPlayerFunc::PrevSong GetPlayContext Error =  [%d]");
//			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc103, res);
//			break;
//			}
//
//		//Iterator偐傜Index傊曄姺偡傞
//		TInt newIndex = iModel.IsIndexFromIHandle(context.iSongInfo.IteratorHandle);
//		//嵟怴偺嬋忣曬傪斾妑偡傞
//		if((iPlaySong.iIndex == newIndex) && (iPlaySong.iIterator.iContainerID == context.iContainerID))
//			{
//			//摨婜僒乕僶偲MW偲偺偡傟偪偑偄偱偼側偄偺偱僄儔乕偲偟偰張棟偟傑偡
//			//儘僌傪弌椡偟傑偡
//			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber106;
//			_LIT(KServerPlayerFunc106, "SyncServerPlayerFunc::PrevSong SetPrevSong() Error = [%d]");
//			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc106, res);
//			break;
//			}
//		//嬋栠偟偼幚峴偟偰偄側偄偑丄嵞惗嬋偑曄峏偝傟偰偄傞偺偱乭嬋曄峏偼惉岟偟偨乭傕偺偲傒側偡
//		//嵟怴偺僐儞僥僉僗僩傪愝掕偡傞
//		nextSong = context.iSongInfo;
//
//		//嵞惗忣曬傪峏怴偡傞
//		iPlaySong.iIndex = newIndex;
//		//Iterator傪峏怴偟偰Index偐傜僀僥儗乕僞僴儞僪儖傪庢摼偡傞
//		iPlaySong.iIterator.iIteratorHandle = iModel.IsHandleFromIndex(iPlaySong.iIndex, iPlaySong.iListHandle);
//		iPlaySong.iIterator.iContainerID = nextSong.iContainerID;
//		//嬋憲傝偼惉岟偲偡傞
//		res = KErrNone;
//		break;

	//儕僗僩偺愭摢嬋偩偭偨帪
	case KErrNotFound:
		break;

	default:
		//偙偙偼堎忢宯側偺偱儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber03;
		_LIT(KServerPlayerFunc03, "SyncServerPlayerFunc::PrevSong SetPrevSong() Return Val [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc03, res);
		}

	//MW亅傾僾儕娫偱Index偑偢傟偰偄傞偺偱曗惓偡傞
	TPckg<TInt> resPck(iPlaySong.iIndex - 1);
	//墳摎儊僢僙乕僕偵僨乕僞傪彂偒崬傓
	TInt msgRes = iRequestMessage[cnt- 1].Write(KSmbMusicAPSyncEngineMsgOut1, resPck);

	//偙偙偺IF暥偼墳摎儊僢僙乕僕傊偺Write寢壥傪敾掕偟傑偡
	if(KErrNone != msgRes)
		{
		//儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber100;
		_LIT(KServerPlayerFunc100, "SyncServerPlayerFunc::PrevSong Write MSG Error [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc100, msgRes);
		}

	return res;
	}

/**
 嬋憲傝傪峴偆
 * @param	側偟
 * @return	張棟寢壥
 */
TInt CSmbMusicAPSyncServerPlayerFunc::NextSong()
	{
	TInt cnt(iRequestMessage.Count());
	TInt res(KErrNone);

//  ADD-S PTX824 k3-sugimoto
	TSmbMusicAPSyncServerPlayerReqPkg reqPkg;
	TPckg<TSmbMusicAPSyncServerPlayerReqPkg> reqTpck(reqPkg);

	res = iRequestMessage[iRequestMessage.Count() - 1].Read(0, reqTpck);
	//Read偑幐攕偟偨傜丄儘僌弌椡屻丄僄儔乕傪曉偡
	if (KErrNone != res)
		{
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber23;
		_LIT(KServerPlayerFunc23, "SyncServerPlayerFunc::NextSong Read() Return Val [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KServerPlayerFunc23, res);

		return res;
		}

	//  嬋憲傝悢偺曗惓傪峴偆
	TUint16 movement(reqPkg.iData.iChangeSong.iMovement);
	if (movement < KSmbMusicAPSyncEngineMinSongMovement)
		{
		movement = KSmbMusicAPSyncEngineMinSongMovement;
		}
	else if (movement > KSmbMusicAPSyncEngineMaxSongMovement)
		{
		movement = KSmbMusicAPSyncEngineMaxSongMovement;
		}
//  ADD-E PTX824 k3-sugimoto

	//僒乕僶偺曐帩偟偰偄傞嵞惗嬋忣曬
	TSmbMusicMWPlayerSongInfo playSong;
	//嬋傪曄峏偟偨帪偺嬋忣曬
	TSmbMusicMWPlayerSongInfo nextSong;
	playSong = iPlaySong.iIterator;

	//嬋憲傝梫媮傪敪峴偡傞
//  MODIFY-S PTX824 k3-sugimoto
#ifdef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
	res = iPlayerSession.SetNextSong(playSong, nextSong);
#else	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
	res = iPlayerSession.SetNextSong(playSong, nextSong, movement);
#endif	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
//  MODIFY-E PTX824 k3-sugimoto

	//張棟寢壥偵傛偭偰張棟偑暘婒偟傑偡乮摨婜僒乕僶-MW偲偺偡傟堘偄傪峫椂乯
	switch(res)
		{
	//惓忢張棟
	case KErrNone:
		//嵞惗嬋偑曄峏偝傟偨偺偱僒乕僶偺曐帩偟偰偄傞忣曬傪峏怴偟傑偡
		//Iterator偐傜Index傊曄姺偡傞
		iPlaySong.iIndex = iModel.IsIndexFromIHandle(nextSong.iIteratorHandle);
		//Iterator傪峏怴偡傞
		//Index偐傜僀僥儗乕僞僴儞僪儖傪庢摼偡傞
		iPlaySong.iIterator.iIteratorHandle = iModel.IsHandleFromIndex(iPlaySong.iIndex, iPlaySong.iListHandle);
		iPlaySong.iIterator.iContainerID = nextSong.iContainerID;
		break;

//	//摨婜僒乕僶偲MW偲偺娫偱偡傟偪偑偄偑敪惗偟偨壜擻惈偑偁傞
//	case KErrCancel:
//		//嵟怴偺嵞惗僐儞僥僉僗僩傪庢摼偡傞
//		TSmbMusicMWPlayerPlayContext context;
//		res = iPlayerSession.GetPlayContext(context);
//		//偙偙偱僄儔乕偑敪惗偟偨傜榖偵側傝傑偣傫両両
//		if(KErrNone != res)
//			{
//			//儘僌傪弌椡偟傑偡
//			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber104;
//			_LIT(KServerPlayerFunc104, "SyncServerPlayerFunc::NextSong GetPlayContext Error =  [%d]");
//			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc104, res);
//			break;
//			}
//
//		//Iterator偐傜Index傊曄姺偡傞
//		TInt newIndex = iModel.IsIndexFromIHandle(context.iSongInfo.iIteratorHandle);
//		//嵟怴偺嬋忣曬傪斾妑偡傞
//		if((iPlaySong.iIndex == newIndex) && (iPlaySong.iIterator.iContainerID == context.iSongInfo.iContainerID))
//			{
//			//摨婜僒乕僶偲MW偲偺偡傟偪偑偄偱偼側偄偺偱僄儔乕偲偟偰張棟偟傑偡
//			//儘僌傪弌椡偟傑偡
//			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber105;
//			_LIT(KServerPlayerFunc105, "SyncServerPlayerFunc::NextSong SetNextSong() Error = [%d]");
//			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc105, res);
//			break;
//			}
//		//嬋憲傝偼幚峴偟偰偄側偄偑丄嵞惗嬋偑曄峏偝傟偰偄傞偺偱乭嬋曄峏偼惉岟偟偨乭傕偺偲傒側偡
//		//嵟怴偺僐儞僥僉僗僩傪愝掕偡傞
//		nextSong = context.iSongInfo;
//
//		//嵞惗忣曬傪峏怴偡傞
//		iPlaySong.iIndex = newIndex;
//		//Iterator傪峏怴偟偰Index偐傜僀僥儗乕僞僴儞僪儖傪庢摼偡傞
//		iPlaySong.iIterator.iIteratorHandle = iModel.IsHandleFromIndex(iPlaySong.iIndex, iPlaySong.iListHandle);
//		iPlaySong.iIterator.iContainerID = nextSong.iContainerID;
//		//嬋憲傝偼惉岟偲偡傞
//		res = KErrNone;
//		break;

	//儕僗僩偺嵟廔嬋偩偭偨帪
	case KErrNotFound:
		break;

	default:
		//杮摉偺堎忢宯側偺偱儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber04;
		_LIT(KServerPlayerFunc04, "SyncServerPlayerFunc::NextSong SetNextSong() Return Val [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc04, res);
		//嬋憲傝偑偱偒側偐偭偨偺偱尰嵼曐帩偟偰偄傞Index傪捠抦偡傞
		break;
		}

	//MW亅傾僾儕娫偱Index偑偢傟偰偄傞偺偱曗惓偡傞
	TPckg<TInt> resPck(iPlaySong.iIndex - 1);

	//墳摎儊僢僙乕僕偵僨乕僞傪彂偒崬傓
	TInt msgRes = iRequestMessage[cnt - 1].Write(KSmbMusicAPSyncEngineMsgOut1, resPck);

	//偙偙偺IF暥偼墳摎儊僢僙乕僕傊偺Write寢壥傪敾掕偟傑偡
	if(KErrNone != msgRes)
		{
		//儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber101;
		_LIT(KServerPlayerFunc101, "SyncServerPlayerFunc::NextSong Write MSG Error [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc101, msgRes);
		}

	return res;
	}

/**
 徣揹椡忬懺傪曄峏偡傞
 * @param [in]	aSave		徣揹椡忬懺
 * @return		張棟寢壥
 */
TInt CSmbMusicAPSyncServerPlayerFunc::PwrSave(TBool aSave)
	{
	TInt res = iPlayerSession.SetPowerSaving(aSave);
	if(KErrNone != res)
		{
		//儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber102;
		_LIT(KServerPlayerFunc102, "SyncServerPlayerFunc::PwrSave Error [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc102, res);
		}
	return res;
	}

/**
 儕僜乕僗傪夝曻偡傞
 * @param [in]	aRsc	夝曻偡傞儕僜乕僗
 * @param [in]	aSetNotify	儕僜乕僗妉摼娔帇僼儔僌(僨僼僅儖僩:EFalse=娔帇偟側偄)
 * @return		側偟
 */
//  MODIFY-S PTX824 k3-sugimoto
//void CSmbMusicAPSyncServerPlayerFunc::ReleaseRsc(TSmbMusicAPSyncServerPlayerRsc aRsc)
void CSmbMusicAPSyncServerPlayerFunc::ReleaseRsc(TSmbMusicAPSyncServerPlayerRsc aRsc, TBool aSetNotify/*=EFalse*/)
//  MODIFY-S PTX824 k3-sugimoto
	{
	if(ESmbMusicAPSyncServerPlayerNone == iHasRsc)
		{
		//壗傕儕僜乕僗傪強桳偟偰偄側偗傟偽偙偙偱廔傢傝傑偡
		return;
		}

	if (NULL == iRscMgrClient)
		{
		//儕僜乕僗傪帩偭偰偄傑偣傫丄堦墳儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber61;
		_LIT(KServerPlayerFunc61, "SyncServerPlayerFunc::ReleaseRsc No RscMgrClient");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelLowest, KServerPlayerFunc61);

		//強桳儕僜乕僗側偟
		iHasRsc = ESmbMusicAPSyncServerPlayerNone;

		return;
		}

	//夝曻偡傞儕僜乕僗儕僗僩
	if(NULL != iRscReleaseList)
		{
		delete iRscReleaseList;
		iRscReleaseList = NULL;
		}

	TInt err = KErrNone;

	//夝曻偡傞儕僜乕僗傪巜掕偡傞
	switch(aRsc)
		{
	//MW儕僜乕僗
	case ESmbMusicAPSyncServerPlayerMWRsc:

		//強桳儕僜乕僗側偟
		iHasRsc = ESmbMusicAPSyncServerPlayerNone;

		//Player惂屼傪廔椆偡傞
		DisConnectPlayer();

		TRAP(err, iRscReleaseList = new(ELeave)CArrayFixFlat<TSmbRscMgrRsc>(KMusicPlayerRscMaxNumber));
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber62;
			_LIT(KServerPlayerFunc62, "SyncServerPlayerFunc::ReleaseRsc Leave new(ELeave) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc62, err, aRsc);

//  ADD-S PTX824 k3-sugimoto
			//  嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞偺偱崌傢偣偰嶍彍偡傞
			delete iRscAllocWatcher;
			iRscAllocWatcher = NULL;
//  ADD-E PTX824 k3-sugimoto
			//儕僜乕僗傪夝曻偡傞偨傔偵嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞
			delete iRscMgrClient;
			iRscMgrClient = NULL;
			return;
			}

		TRAP(err, iRscReleaseList->AppendL(ESmbRscMgrRscMusicMW));
		if (KErrNone != err)
			{
			//儘僌弌椡

⌨️ 快捷键说明

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