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

📄 smbmusicapsyncserverplayerfunc.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber63;
			_LIT(KServerPlayerFunc63, "SyncServerPlayerFunc::ReleaseRsc Leave AppendL(MW) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc63, err, aRsc);

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

		//偙偙偵棃傞傑偱偵Leave偑敪惗偟偰偄傟偽嫞崌FW偺僋儔僀傾儞僩偼婛偵嶍彍偝傟偰偄傞
		if(NULL != iRscMgrClient)
			{
			//儕僜乕僗夝曻捠抦傪敪峴偡傞
			TRAP(err, iRscMgrClient->ReleaseResourceNotifyL(iRscReleaseList));
			if (KErrNone != err)
				{
				//儘僌弌椡
				TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber64;
				_LIT(KServerPlayerFunc64, "SyncServerPlayerFunc::ReleaseRsc Leave ReleaseResourceNotifyL() [%d][aRsc=%d]");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc64, err, aRsc);

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

		break;

	//BG儕僜乕僗
	case ESmbMusicAPSyncServerPlayerBGRsc:
		TRAP(err, iRscReleaseList = new(ELeave)CArrayFixFlat<TSmbRscMgrRsc>(KMusicPlayerRscMaxNumber));
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber65;
			_LIT(KServerPlayerFunc65, "SyncServerPlayerFunc::ReleaseRsc Leave new(ELeave) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc65, err, aRsc);

			//BG儕僜乕僗偵偮偄偰偼夝曻捠抦偑敪峴偝傟傞傑偱懸偮偺偱壗傕偟傑偣傫
			return;
			}

//  MODIFY-S PTX824 k3-sugimoto
#ifdef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
		TRAP(err, iRscReleaseList->AppendL(ESmbRscMgrRscMusicBG));			//  MusicBG嵞惗尃棙
#else	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
		TRAP(err, iRscReleaseList->AppendL(ESmbRscMgrRscMusicBG_forBGApp));	//  MusicBG嵞惗尃棙(BG傾僾儕梡)
#endif	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
//  MODIFY-E PTX824 k3-sugimoto
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber66;
			_LIT(KServerPlayerFunc66, "SyncServerPlayerFunc::ReleaseRsc Leave AppendL(BG) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc66, err, aRsc);

			//BG儕僜乕僗偵偮偄偰偼夝曻捠抦偑敪峴偝傟傞傑偱懸偮偺偱壗傕偟傑偣傫
			return;
			}

#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
		TRAP(err, iRscReleaseList->AppendL(ESmbRscMgrRscRtMultimedia));		// Multimedia(G2)
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber69;
			_LIT(KServerPlayerFunc69, "SyncServerPlayerFunc::ReleaseRsc Leave AppendL(MW) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc69, err, aRsc);

			//  嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞偺偱崌傢偣偰嶍彍偡傞
			delete iRscAllocWatcher;
			iRscAllocWatcher = NULL;
			//嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞
			delete iRscMgrClient;
			iRscMgrClient = NULL;
			return;
			}
#endif

		if(NULL != iAudioRouting)
			{
			//梫媮傪掆巭偡傞
			iAudioRouting->UpdateState(DCM_NAMESPACE::EMMARRequestStopped);
			//壒惡僷僗僋儔僀傾儞僩傪嶍彍偡傞
			delete iAudioRouting;
			iAudioRouting = NULL;

//@@TRK6811懳墳	Add	Start
			//僉乕壒偺梷惂
			iModel.StopKeySound(EFalse);
//@@TRK6811懳墳	Add	End
			}

		//儕僜乕僗夝曻捠抦傪敪峴偡傞
		TRAP(err, iRscMgrClient->ReleaseResourceNotifyL(iRscReleaseList));
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber67;
			_LIT(KServerPlayerFunc67, "SyncServerPlayerFunc::ReleaseRsc Leave ReleaseResourceNotifyL() [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc67, err, aRsc);

			return;
			}

		//強桳儕僜乕僗MW
		iHasRsc = ESmbMusicAPSyncServerPlayerMWRsc;

		break;

	//慡偰偺儕僜乕僗
	case ESmbMusicAPSyncServerPlayerAllRsc:

		//傑偡偼忬懺傪強桳儕僜乕僗側偟偵偡傞
		iHasRsc = ESmbMusicAPSyncServerPlayerNone;
		if(NULL != iAudioRouting)
			{
			//梫媮傪掆巭偡傞
			iAudioRouting->UpdateState(DCM_NAMESPACE::EMMARRequestStopped);
			//壒惡僷僗僋儔僀傾儞僩傪嶍彍偡傞
			delete iAudioRouting;
			iAudioRouting = NULL;

//@@TRK6811懳墳	Add	Start
			//僉乕壒偺梷惂
			iModel.StopKeySound(EFalse);
//@@TRK6811懳墳	Add	End
			}

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

		TRAP(err, iRscReleaseList = new(ELeave)CArrayFixFlat<TSmbRscMgrRsc>(KMusicPlayerRscMaxNumber));
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber68;
			_LIT(KServerPlayerFunc68, "SyncServerPlayerFunc::ReleaseRsc Leave new(ELeave) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc68, 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)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber69;
			_LIT(KServerPlayerFunc69, "SyncServerPlayerFunc::ReleaseRsc Leave AppendL(MW) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc69, err, aRsc);

//  ADD-S PTX824 k3-sugimoto
			//  嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞偺偱崌傢偣偰嶍彍偡傞
			delete iRscAllocWatcher;
			iRscAllocWatcher = NULL;
//  ADD-E PTX824 k3-sugimoto
			//嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞
			delete iRscMgrClient;
			iRscMgrClient = NULL;

			return;
			}

//  MODIFY-S PTX824 k3-sugimoto
#ifdef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
		TRAP(err, iRscReleaseList->AppendL(ESmbRscMgrRscMusicBG));			//  MusicBG嵞惗尃棙
#else	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
		TRAP(err, iRscReleaseList->AppendL(ESmbRscMgrRscMusicBG_forBGApp));	//  MusicBG嵞惗尃棙(BG傾僾儕梡)
#endif	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
//  MODIFY-E PTX824 k3-sugimoto
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber70;
			_LIT(KServerPlayerFunc70, "SyncServerPlayerFunc::ReleaseRsc Leave AppendL(BG) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc70, err, aRsc);

//  ADD-S PTX824 k3-sugimoto
			//  嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞偺偱崌傢偣偰嶍彍偡傞
			delete iRscAllocWatcher;
			iRscAllocWatcher = NULL;
//  ADD-E PTX824 k3-sugimoto
			//嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞
			delete iRscMgrClient;
			iRscMgrClient = NULL;
			return;
			}

#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
		TRAP(err, iRscReleaseList->AppendL(ESmbRscMgrRscRtMultimedia));		// Multimedia(G2)
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber69;
			_LIT(KServerPlayerFunc69, "SyncServerPlayerFunc::ReleaseRsc Leave AppendL(MW) [%d][aRsc=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc69, err, aRsc);

			//  嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞偺偱崌傢偣偰嶍彍偡傞
			delete iRscAllocWatcher;
			iRscAllocWatcher = NULL;
			//嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞
			delete iRscMgrClient;
			iRscMgrClient = NULL;
			return;
			}
#endif

		//偙偙偵棃傞傑偱偵Leave偑敪惗偟偰偄傟偽嫞崌FW偺僋儔僀傾儞僩偼婛偵嶍彍偝傟偰偄傞
		if(NULL != iRscMgrClient)
			{
			//儕僜乕僗夝曻捠抦傪敪峴偡傞
			TRAP(err, iRscMgrClient->ReleaseResourceNotifyL(iRscReleaseList));
			if (KErrNone != err)
				{
				//儘僌弌椡
				TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber71;
				_LIT(KServerPlayerFunc71, "SyncServerPlayerFunc::ReleaseRsc Leave ReleaseResourceNotifyL() [%d][aRsc=%d]");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc71, err, aRsc);

//  ADD-S PTX824 k3-sugimoto
				//  嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞偺偱崌傢偣偰嶍彍偡傞
				delete iRscAllocWatcher;
				iRscAllocWatcher = NULL;
//  ADD-E PTX824 k3-sugimoto
				//嫞崌FW僋儔僀傾儞僩傪嶍彍偡傞
				delete iRscMgrClient;
				iRscMgrClient = NULL;
				}
			}
		break;

	default:
		//偙偙偵偔傞帠偑側偄偺偱儘僌偱傕弌偟傑偡偐
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber56;
		_LIT(KServerPlayerFunc56, "SyncServerPlayerFunc::GetResource default");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerFunc56);

		break;
		}

	if (aSetNotify != EFalse)
		{	//  儕僜乕僗妉摼娔帇傪峴偆応崌
		TInt result(KErrNone);
		//  儕僜乕僗妉摼娔帇搊榐張棟
#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
		TRAPD(error, result = StartRscReleaseNotifyL(ESmbMusicAPSyncServerRscMusicBG_Watcher););
#else
		TRAPD(error, result = StartRscReleaseNotifyL(););
#endif
		if (result == KErrCompletion)
			{	//  BG儕僜乕僗偺奐曻傪庴偗偰偄側偐偭偨応崌
			//  傎偲傫偳側偄偲偼巚偄傑偡偑儘僌傪丅
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber56;
			_LIT(KServerPlayerFunc56, "SyncServerPlayerFunc::ReleaseRsc not include BGRsc");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelNormal, KServerPlayerFunc56);
			}
		else if ((result != KErrNone) || (error != KErrNone))
			{	//  儕僜乕僗妉摼娔帇搊榐偵幐攕
			TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber56;
			_LIT(KServerPlayerFunc56, "SyncServerPlayerFunc::ReleaseRsc StartRscReleaseNotifyL is Error(r:%d, e:%d)");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KServerPlayerFunc56, result, error);
			}
		}
	}

/**
 僾儗僀儎乕惂屼MW偵僀儀儞僩捠抦梫媮偡傞
 * @param	側偟
 * @return	張棟寢壥
 */
void CSmbMusicAPSyncServerPlayerFunc::RequestEventNotify()
	{
	//僾儗僀儎乕惂屼MW偵僀儀儞僩捠抦梫媮傪敪峴偡傞
	iMWNotifyAct->Start();
	}

/**
 僀儀儞僩捠抦僉儍儞僙儖梫媮
 * @param	側偟
 * @return	張棟寢壥
 */
void CSmbMusicAPSyncServerPlayerFunc::CancelEventNotify(RMessage2& aMsg)
	{
	TInt cnt = iNotifyMessage.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		//僉儍儞僙儖偡傞捠抦儊僢僙乕僕傪扵偡
		if(aMsg.Session() == iNotifyMessage[i].Session())
			{
			//捠抦儊僢僙乕僕傪夝曻偡傞
			iNotifyMessage[i].Complete(KErrNone);
			iNotifyMessage.Remove(i);
			return;
			}
		}
	}

/**
 僀儀儞僩傪捠抦偡傞
 * @param[in]	捠抦僀儀儞僩
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::SendNotify(TSmbMusicAPSyncEnginePlayerEventType aEvent)
	{
	//墳摎僷僢働乕僕傪梡堄偡傞
	TSmbMusicAPSyncEnginePlayerEvent		playerEvent;
	TPckg<TSmbMusicAPSyncEnginePlayerEvent>	eventPkg(playerEvent);
	//捠抦僀儀儞僩傪愝掕偡傞
	playerEvent.iType = aEvent;
	playerEvent.iInfo.iIndex = 0;
	playerEvent.iInfo.iCause = ESmbMusicAPSyncEnginePlayerInvalid;

	TInt res = KErrNone;

	//庢摼偡傞嵞惗僐儞僥僉僗僩
	TSmbMusicMWPlayerPlayContext resContext;

	//嬋忣曬傪儘僌弌椡偡傞
	TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber86;
	_LIT(KServerPlayerFunc86, "SyncServerPlayerFunc::SendNotify Info Event = [%d], Index = [%d], IteratorHandle = [%d] ");
	SmbMusicAPSyncServerLog(iLog, log, ELogLevelLowest, KServerPlayerFunc86, aEvent,
	iPlaySong.iIndex, iPlaySong.iIterator.iIteratorHandle);

	//敪峴偡傞捠抦偵傛偭偰張棟傪暘婒偡傞
	switch(aEvent)
		{

	///<僼傽僀儖偺堎忢偵傛傝嵞惗晄壜偱偁傞
	case ESmbMusicAPSyncEnginePlayFail:
		//嵞惗晄壜梫場傪庢摼偡傞
		playerEvent.iInfo.iCause = iMWNotifyAct->GetFailReason();

		//僄儔乕忣曬傪儘僌弌椡偡傞
		log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber88;
		_LIT(KServerPlayerFunc88, "SyncServerPlayerFunc::SendNotify ErrSong Info Error = [%d], Index = [%d],  IteratorHandle = [%d] ");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelNormal, KServerPlayerFunc88, playerEvent.iInfo.iCause,
				iPlaySong.iIndex, iPlaySong.iIterator.iIteratorHandle);

		//埲壓偺張棟偼嵞惗奐巒捠抦丄嬋曄峏捠抦偲摨偠

//  ADD-S PTX824 k3-sugimoto
	//  僌儗乕僗僺儕僆僪婜娫撪僐儞僥儞僣専抦
	case ESmbMusicAPSyncEngineGracePeriodContents:
//  ADD-E PTX824 k3-sugimoto
	///<嬋憲傝丒嬋栠偟摍偵傛傝嵞惗嬋偑曄峏偝傟壒柭摦傪奐巒偟偨
	case ESmbMusicAPSyncEngineChangePlaySong:
	///<嵞惗傪奐巒偟偨
	case ESmbMusicAPSyncEngineStartPlay:
		{
		//Iterator僴儞僪儖傪庢摼偡傞
		TSmbMusicMWPlayerSongInfo	songInfo;
		//捠抦偝傟偨僀僥儗乕僞忣曬傪庢摼偡傞
		iMWNotifyAct->GetSongInfo(songInfo.iIteratorHandle, songInfo.iContainerID);

//TRK4589懳墳	Start
//TRK4106懳墳	Start
		//嵞惗忣曬傪峏怴偡傞昁梫偑偁傞偐傪挷傋傞
//		if(iPlaySong.iIterator.iIteratorHandle != songInfo.iIteratorHandle)
//			{
//			//嵞惗嬋忣曬

⌨️ 快捷键说明

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