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

📄 smbmusicapsyncserverplayerfunc.cpp

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

/**
 僐儞僥僉僗僩愝掕傪僋儕傾偡傞
 * @param	側偟
 * @return	張棟寢壥
 */
TInt CSmbMusicAPSyncServerPlayerFunc::ClearContext()
	{
	//僐儞僥僉僗僩愝掕傪僋儕傾偡傞
	TInt res = iPlayerSession.ClearPlayContext(iMWResAct->iStatus);
	if(KErrNone != res)
		{
		//儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber95;
		_LIT(KServerPlayerFunc95, "SyncServerPlayerFunc::ClearContext Error [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc95, res);
		return res;
		}
	//墳摎傪庴怣偡傞弨旛傪偡傞
	iMWResAct->Start(ESmbMusicAPSyncServerPlayerClrContextRes);
	return res;
	}

/**
 儗僕儏乕儉忣曬傪攋婞偡傞
 * @param	側偟
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::ClearResume()
	{
//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩(姰慡弶婜壔)
	ReportCounterReset(CSmbMusicAPLibReportCounter::ERestart);
//  ADD-E PTX824 k3-sugimoto

	//儗僕儏乕儉忣曬傪攋婞
	delete iResume;
	iResume = NULL;

	//儗僕儏乕儉桳岠僼儔僌傪僋儕傾偡傞
	iModel.SetPlayerResumeInfoAvailable(EFalse);
	}

/**
 僾儗僀儎乕惂屼MW偲僙僢僔儑儞傪愙懕偟偰僀儀儞僩捠抦梫媮傪敪峴偡傞
 * @param	側偟
 * @return	張棟寢壥
 */
TInt CSmbMusicAPSyncServerPlayerFunc::ConnectPlayer()
	{
	//僾儗僀儎乕惂屼MW偲僙僢僔儑儞傪愙懕偡傞
	TInt res = iPlayerSession.Connect();
	if(KErrNone != res)
		{
		//儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber107;
		_LIT(KServerPlayerFunc107, "SyncServerPlayerFunc::Session Error [%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc107, res);
		return res;
		}

	//僾儗僀儎乕惂屼偐傜偺捠抦傪庴偗傞偨傔偵僙僢僔儑儞傪搉偡
	iMWNotifyAct->SetPlayer(&iPlayerSession);

	//僾儗僀儎乕惂屼偵僀儀儞僩捠抦梫媮傪敪峴偡傞
	iMWNotifyAct->Start();

	return res;
	}

/**
 僙僢僔儑儞愗抐捠抦
 * @param[in]	aSessino	僙僢僔儑儞
 * @return		張棟寢壥
 */
TBool CSmbMusicAPSyncServerPlayerFunc::DisConnect(CSession2& aSession)
	{
//TRK12311懳墳	Add-S
	//壒埑庢摼儌乕僪傪弶婜壔
	iSoundMode = EFalse;
//TRK12311懳墳	Add-E

	TInt cnt = iNotifyMessage.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		//僉儍儞僙儖偡傞捠抦儊僢僙乕僕傪扵偡
		if(&aSession == iNotifyMessage[i].Session())
			{
			//捠抦儊僢僙乕僕傪夝曻偡傞
			iNotifyMessage[i].Complete(KErrNone);
			iNotifyMessage.Remove(i);
			break;
			}
		}

//TRK12305 Add-S
	//梫媮儊僢僙乕僕偺悢
	cnt = iRequestMessage.Count();
	//梫媮儊僢僙乕僕偑偁傞応崌
	for(TInt i = cnt; 0 < i; i--)
		{
		//曐帩偟偰偄傞梫媮儊僢僙乕僕偑僙僢僔儑儞愗抐偡傞僋儔僀傾儞僩偩偭偨応崌儊僢僙乕僕傪夝曻偡傞
		if(&aSession == iRequestMessage[i-1].Session())
			{
			iRequestMessage[i-1].Complete(KErrNone);
			iRequestMessage.Remove(i-1);
			}
		}
//TRK12305 Add-E

	//愙懕偟偰偄傞僙僢僔儑儞偺悢
	cnt = iSession.Count();
	//僀儀儞僩攝怣僉儏乕傪嶍彍偡傞
	for(TInt i = 0; i < cnt; i++)
		{
		if(iSession[i].iConnectSession == &aSession)
			{
			//愗抐偡傞僙僢僔儑儞偺僀儀儞僩攝怣僉儏乕傪嶍彍偡傞
			iSession[i].iEvent.Close();
			iSession.Remove(i);
			break;
			}
		}

	//儌僨儖偵僙僢僔儑儞偺愗抐傪捠抦偡傞
	cnt = iModel.DisConnect(aSession);
	if(cnt > 0)
		{
		//傑偩愙懕偟偰偄傞僙僢僔儑儞偑偁傞
		return EFalse;
		}

	//扤傕僙僢僔儑儞傪愙懕偟偰偄側偄
	return ETrue;
	}

/**
 * 慡偰偺愝掕抣偺庢摼
 * @param [in]	aOperate		憖嶌撪梕
 * @return	張棟寢壥
 **/
TInt CSmbMusicAPSyncServerPlayerFunc::GetMusicParam(TSmbMusicAPSyncServerPlayerMusicParamOperate /* aOperate */)
	{
	//IF偐傜嶍彍梊掕側偺偱枹幚憰
	return KErrNone;
	}

/**
 嵞惗宱夁帪娫傪庢摼偡傞
 * @param [in]	aOperate		憖嶌撪梕
 * @return	張棟寢壥
 */
TInt CSmbMusicAPSyncServerPlayerFunc::GetPlayTime(TSmbMusicAPSyncServerPlayerMusicParamOperate aOperate)
	{
	TUint32 time;
	TInt res = KErrNone;		//栠傝抣
	TInt cnt;

	switch(aOperate)
		{
		//儘乕僇儖偵曐懚偡傞
		case ESmbMusicAPSyncServerPlayerStackLocalFromPlayer:
			res = iPlayerSession.GetPlayTime(time);
			if(KErrNone != res)
				{
				//儘僌弌椡
				TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber00;
				_LIT(KServerPlayerFunc00, "SyncServerPlayerFunc::GetPlayTime LocalFromPlayer Return Val [%d]");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc00, res);
				return res;
				}
			iPlayTime = time;
			break;

		//儊僢僙乕僕偵曐懚偡傞
		case ESmbMusicAPSyncServerPlayerStackMsgFromPlayer:
			{
			res = iPlayerSession.GetPlayTime(time);
			if(KErrNone != res)
				{
				//儘僌偼弌偟偲偒傑偟傚偆
				TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber01;
				_LIT(KServerPlayerFunc01, "SyncServerPlayerFunc::GetPlayTime MsgFromPlayer Return Val [%d]");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc01, res);
				return res;
				}
			//堦墳儊儞僶曄悢偵曐懚偡傞
			iPlayTime = time;

			//儊僢僙乕僕偺墳摎僷僢働乕僕偵庢摼偟偨抣傪彂偒崬傓
			cnt = iRequestMessage.Count();
			//梫媮儊僢僙乕僕偵娷傑傟傞墳摎僷僢働乕僕梡
			TPckg<TUint32> resTpck(time);

			res = iRequestMessage[cnt -1].Write(1, resTpck);
			if (KErrNone != res)
				{
				TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber52;
				_LIT(KServerPlayerFunc52, "SyncServerPlayerFunc::GetPlayTime Write() Return Val [%d]");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc52, res);

				return res;
				}
			}
			break;

		//儘乕僇儖偺抣乮儗僕儏乕儉乯傪巊梡偡傞
		case ESmbMusicAPSyncServerPlayerSetFromLocal:
			{
//			TSmbMusicAPSyncServerPlayerResume resume;
//			if(NULL != iResume)
//				{
//				//儗僕儏乕儉偑偁傟偽儗僕儏乕儉忣曬傪巊梡偡傞
//				iResume->GetResume(resume);
//				time = resume.iPlayTime;
//				}
//			else
//				{
//				//傕偟儗僕儏乕儉偑側偗傟偽儊儞僶曄悢傪巊梡偡傞
//				time = iPlayTime;
//				}
			//儊儞僶曄悢偱曐帩偟偰偄傞抣傪曉偡
			time = iPlayTime;
			//儊僢僙乕僕偺墳摎僷僢働乕僕偵庢摼偟偨抣傪彂偒崬傓
			//梫媮儊僢僙乕僕偺悢
			cnt = iRequestMessage.Count();
			//梫媮儊僢僙乕僕偵娷傑傟傞墳摎僷僢働乕僕梡
//			TPckg<TUint32> resTpckl(resume.iPlayTime);
			TPckg<TUint32> resTpcklocal(time);
			res = iRequestMessage[cnt -1].Write(1, resTpcklocal);
			if (KErrNone != res)
				{
				TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber53;
				_LIT(KServerPlayerFunc53, "SyncServerPlayerFunc::GetPlayTime Write() Return Val [%d]");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc53, res);

				return res;
				}
			}
			break;

		default:
			{
			//棃傞帠偼側偄偺偱儘僌傪弌椡偟傑偡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber79;
			_LIT(KServerPlayerFunc79, "SyncServerPlayerFunc::GetPlayTime Switch Default aOperate=[%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc79, aOperate);
			//偲傝偁偊偢僄儔乕偱曉偟傑偟傚偆
			res = KErrGeneral;
			}
			break;
		}
	//張棟寢壥傪曉偡
	return res;
	}

/**
 儕僜乕僗傪庢摼偡傞
 * @param [in]	aRsc		庢摼偡傞儕僜乕僗
 * @return	張棟寢壥
 */
void CSmbMusicAPSyncServerPlayerFunc::GetResourceL(TSmbMusicAPSyncServerPlayerRsc aRsc)
	{
#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__

	TInt ret = KErrNone;
	TSmbMusicAPSyncServerPlayerRsc playerRsc = ESmbMusicAPSyncServerPlayerNone;

	if (NULL == iRscMgrClient)
		{ //嫞崌FW偺僋儔僀傾儞僩傪強桳偟偰偄側偗傟偽惗惉偡傞
		iRscMgrClient = CSmbRscMgrRscClient::NewL(iRscMgrResAct, iRscMgrResAct, KSmbMusicAPSyncServerUID);
		}

	TSmbRscMgrRscPriority	rscPriority;

	//梫媮儕僗僩傪惗惉
	if (NULL != iRscPriList)
		{
		delete iRscPriList;
		iRscPriList = NULL;
		}
	iRscPriList = new(ELeave)CArrayFixFlat<TSmbRscMgrRscPriority>(KMusicPlayerRscMaxNumber);

	//庢摼寢壥傪曐懚偡傞椞堟傪惗惉偡傞
	if (NULL != iRsctAllList)
		{
		delete iRsctAllList;
		iRsctAllList = NULL;
		}
	iRsctAllList = new(ELeave)CArrayFixFlat<TSmbRscMgrRscAllocId>(KSmbRscMgrAppRscListMax);

	//庢摼偡傞儕僜乕僗傪巜掕偡傞
	switch(aRsc)
		{
	//MW儕僜乕僗
	case ESmbMusicAPSyncServerPlayerMWRsc:
		ret = GetResourceType(ESmbMusicAPSyncServerRscMusicMW, rscPriority);
		iRscPriList->AppendL(rscPriority);
		playerRsc = ESmbMusicAPSyncServerPlayerMWRsc;
		break;

	//BG儕僜乕僗
	case ESmbMusicAPSyncServerPlayerBGRsc:
		ret = GetResourceType(ESmbMusicAPSyncServerRscMusicBG_forBGApp, rscPriority);
		iRscPriList->AppendL(rscPriority);
		ret = GetResourceType(ESmbMusicAPSyncServerRscMultimedia, rscPriority);
		iRscPriList->AppendL(rscPriority);
		playerRsc = ESmbMusicAPSyncServerPlayerAllRsc;
		break;

	//慡偰偺儕僜乕僗
	case ESmbMusicAPSyncServerPlayerAllRsc:
		ret = GetResourceType(ESmbMusicAPSyncServerRscMusicMW, rscPriority);
		iRscPriList->AppendL(rscPriority);
		ret = GetResourceType(ESmbMusicAPSyncServerRscMusicBG_forBGApp, rscPriority);
		iRscPriList->AppendL(rscPriority);
		ret = GetResourceType(ESmbMusicAPSyncServerRscMultimedia, rscPriority);
		iRscPriList->AppendL(rscPriority);
		playerRsc = ESmbMusicAPSyncServerPlayerAllRsc;
		break;

	default:
		ret = KErrArgument;
		break;
		}

	if (KErrNone == ret)
		{
		iHasRsc = playerRsc;
		}
	else
		{
		//偙偙偵偔傞帠偑側偄偺偱儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber55;
		_LIT(KServerPlayerFunc55, "SyncServerPlayerFunc::GetResource fail");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc55);
		//儕僜乕僗傪庢摼偟側偄偺偱儕乕僽偟傑偡
		User::Leave(KErrArgument);						//儕僜乕僗傪庢摼偟側偄偺偱儕乕僽偟傑偡
		}

	if (iRscPriList->Count() > 0)
		{
		//堷悢偱巜掕偝傟偨傝僜乕僗傪梫媮偡傞
		iRscMgrClient->AllocationResourceReqL(iRscPriList, iRsctAllList);
		}
	else
		{
		//偙偙偵偔傞帠偑側偄偺偱儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber55;
		_LIT(KServerPlayerFunc56, "SyncServerPlayerFunc::GetResource AllocationResourceReqL fail");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc56);
		//儕僜乕僗傪庢摼偟側偄偺偱儕乕僽偟傑偡
		User::Leave(KErrArgument);
		}

#else // __SMBMUSICAP_DESABLE_SUPERDUKE__

	if (NULL == iRscMgrClient)
		{
//  MODIFY-S PTX824 k3-sugimoto
//		//嫞崌FW偺僋儔僀傾儞僩傪強桳偟偰偄側偗傟偽惗惉偡傞
//		iRscMgrClient = CSmbRscMgrRscClient::NewL(iRscMgrResAct, iRscMgrResAct, KSmbMusicAPSyncServerUID);
		delete iRscAllocWatcher;
		iRscAllocWatcher = NULL;

		//嫞崌FW偺僋儔僀傾儞僩傪強桳偟偰偄側偗傟偽惗惉偡傞
		iRscMgrClient = CSmbRscMgrRscClient::NewL(iRscMgrResAct, iRscMgrResAct, KSmbMusicAPSyncServerUID);

#ifndef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
		//  儕僜乕僗妉摼娔帇僋儔僗傕惗惉偡傞
		TSmbRscMgrRscPriority watchRsc;
		watchRsc.iRscId		= ESmbRscMgrRscMusicBG_forBGApp;		//  MusicBG嵞惗尃棙(BG傾僾儕梡)
		watchRsc.iPriority	= KSmbRscMgrRscPriorityValueVeryLow;	//  娔帇帪偺僾儔僀僆儕僥傿偼VeryLow
		iRscAllocWatcher = CSmbRscMgrResourceAllocationWatcher::NewL(*iRscMgrClient, iRscMgrResAct, watchRsc);
#endif	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
//  MODIFY-E PTX824 k3-sugimoto
		}

	//MW儕僜乕僗
	TSmbRscMgrRscPriority	mwRsc;
	//BG儕僜乕僗

⌨️ 快捷键说明

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