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

📄 smbmusicapsyncserverplayerfunc.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerPlayerFunc.cpp
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/09	|娵壀			|怴婯嶌惉
//2006/07/19	|娵壀			|TRK4106懳墳
//2006/08/15	|娵壀			|TRK6286懳墳
//2006/08/25	|暯壀			|TRK6763懳墳
//2006/09/04	|暯壀			|TRK7701,7702懳墳
//2006/09/04	|娵壀			|TRK6811懳墳
//2006/09/08	|娵壀			|TRK8235懳墳
//2006/09/25	|娵壀			|TRK10039懳墳
//2006/09/27	|暯壀			|TRK10039懳墳
//2006/09/27	|娵壀			|TRK10202懳墳
//2006/10/20	|暯壀			|DisConnectPlayer()傪廋惓(僞僀儅乕掆巭丄曄悢弶婜壔)
//2006/10/25	|K3悪杮			|儘僌儗儀儖廋惓
//2006/11/01	|暯壀			|TRK12305懳墳
//2006/11/03	|暯壀			|TRK12311懳墳
//----PTX824----+---------------+--------------------------------------
//2007/04/04	|K3悪杮			|PTX824懳墳
//2007/09/04	|K3悪杮			|[D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
//2007/09/05	|K3悪杮			|[D_82400014320]僆乕僩儗僕儏乕儉嵞惗帪偼MW儕僜乕僗傕儗僕儏乕儉懳徾偵偡傞
//2007/09/20	|K3悪杮			|[D_82400015039]僇儊儔傾僾儕偑慜柺偺応崌僆乕僩儗僕儏乕儉嵞惗傪偟側偄懳墳
// --[PTX825]---+---------------+--------------------------------------
//2007/06/15    |SDNA抮怟       |PTX825丂梫審懳墳


#ifndef __SMBMUSICAPSYNCSERVERPLAYERFUNC_H__
#include "SmbMusicAPSyncServerPlayerFunc.h"
#endif

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

#ifndef __SMBMUSICAPSYNCSERVERPLAYERRECEIVEMWNOTIFY_H__
#include "SmbMusicAPSyncServerPlayerReceiveMWNotify.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERPLAYERRECEIVERSCMGRRES_H__
#include "SmbMusicAPSyncServerPlayerReceiveRscMgrRes.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERPLAYERRECEIVEMWRES_H__
#include "SmbMusicAPSyncServerPlayerReceiveMWRes.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERPLAYERRESUME_H__
#include "SmbMusicAPSyncServerPlayerResume.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERPLAYERTIMER_H__
#include "SmbMusicAPSyncServerPlayerTimer.h"
#endif

#ifndef __MSMBMUSICAPSYNCSERVERPLAYERASYNCOBSERVER_H__
#include "MSmbMusicAPSyncServerPlayerAsyncObserver.h"
#endif

//#ifndef __SMBRSCMGRCLIENT_H__
//#include <SmbRscMgrClient.h>
//#endif

#ifndef __SMBMMAUDIOCOMMON_H__
#include <SmbMmAudioCommon.h>
#endif //__SMBMMAUDIOCOMMON_H__

//#ifndef DCMMMAUDIOROUTINGCLIENT_H__
//#include <DcmMMAudioRoutingClient.h>
//#endif

#ifndef FJMSAUDIOCONTROLLERDEFINE_H__
#include <FjMsAudioControllerDefine.h>
#endif

#ifndef FJLOG_H__
#include <FjLog.h>
#endif

//  ADD-S  [D_82400015039]僇儊儔傾僾儕偑慜柺偺応崌僆乕僩儗僕儏乕儉嵞惗傪偟側偄懳墳
#ifndef FJPGBASICLASERVER_H__
#include <FjpgBasicLaServer.h>	//  PGPropAgentLaServer
#endif	//  FJPGBASICLASERVER_H__

#ifndef __SMBMM_APPID_H__
#include <SmbMMAppId.h>		//  僇儊儔傾僾儕Uid
#endif	//  __SMBMM_APPID_H__
//  ADD-E  [D_82400015039]僇儊儔傾僾儕偑慜柺偺応崌僆乕僩儗僕儏乕儉嵞惗傪偟側偄懳墳

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

#ifndef __SOHALAPI_H__
#include <SoHalApi.h>
#endif

#ifndef __SMBADJNO_H__
#include <SmbAdjNo.h>
#endif

USING_NAMESPACE_SEMCJ

#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
/**
 *  儕僜乕僗庬暿偐傜揔墳偡傞妉摼僾儔僀僆儕僥傿傪儅僢僺儞僌偡傞偨傔偺僥乕僽儖丅
 */
const TSmbMusicAPSyncServerPlayerRscPriorityTable KPriorityTable[] =
	{
		/* [儕僜乕僗庬暿]-------------------------------[儕僜乕僗ID]--------------------[妉摼僾儔僀僆儕僥傿]-----------------[娔帇梡Flg]*/
		{ ESmbMusicAPSyncServerRscMusicMW,				ESmbRscMgrRscMusicMW,			KSmbRscMgrRscPriorityValueNormal,		EFalse	},
		{ ESmbMusicAPSyncServerRscMusicBG_forBGApp,		ESmbRscMgrRscMusicBG_forBGApp,	KSmbRscMgrRscPriorityValueNormal,		EFalse	},
		{ ESmbMusicAPSyncServerRscMusicBG_Watcher,		ESmbRscMgrRscMusicBG_forBGApp,	KSmbRscMgrRscPriorityValueVeryLow,		ETrue	},
		{ ESmbMusicAPSyncServerRscMultimedia,			ESmbRscMgrRscRtMultimedia,		KSmbRscMgrRscPriorityValueNormalHigh,	EFalse	},
		{ ESmbMusicAPSyncServerRscMultimedia_Watcher,	ESmbRscMgrRscRtMultimedia,		KSmbRscMgrRscPriorityValueNormalLow,	ETrue	},
		/* 儕僜乕僗娔帇梡偱梡堄偡傞応崌偼丄娔帇梡Flg偵乽ETrue乿傪巜掕偡傞偙偲															*/
	};
#endif // __SMBMUSICAP_DESABLE_SUPERDUKE__


/**
 僐儞僗僩儔僋僞
 * @param	aLog	儘僌僒乕僶偲偺僙僢僔儑儞
 * @param	aModel	儌僨儖偺嶲徠
 * @return	側偟
 */
CSmbMusicAPSyncServerPlayerFunc::CSmbMusicAPSyncServerPlayerFunc(
		DCM_NAMESPACE::RLog& aLog,
		CSmbMusicAPSyncServerModel& aModel
		)
	: iLog(aLog), iModel(aModel)
	{
	}

/**
 僨僗僩儔僋僞
 * @param	側偟
 * @return	側偟
 */
CSmbMusicAPSyncServerPlayerFunc::~CSmbMusicAPSyncServerPlayerFunc()
	{
	delete iAudioRouting;
	delete iMWNotifyAct;
	delete iMWResAct;
	delete iPowerSaveTimer;
	delete iResume;
//  ADD-S PTX824 k3-sugimoto
	delete iRscAllocWatcher;
//  ADD-E PTX824 k3-sugimoto
	delete iRscMgrClient;
	delete iRscMgrResAct;
	delete iRsctAllList;
	delete iRscPriList;
	delete iRscReleaseList;

#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
	delete iResultList;
#endif

	//僀儀儞僩捠抦梡儊僢僙乕僕偺Array傪僋儘乕僘偡傞
	iNotifyMessage.Close();
	//梫媮儊僢僙乕僕梡偺Array傪僋儘乕僘偡傞
	iRequestMessage.Close();
	//僀儀儞僩僉儏乕傪僋儘乕僘偡傞
	TInt cnt = iSession.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		iSession[i].iEvent.Close();
		}
	iSession.Close();

//@@TRK8235懳墳	Add	Start
	delete iMuteTimer;
//@@TRK8235懳墳	Add	End

//  ADD-S PTX824 k3-sugimoto
	delete iRscDelayTimer;
	delete iRepCounter;
//  ADD-E PTX824 k3-sugimoto
	}

/**
 戞俀僼僃乕僘僐儞僗僩儔僋僞
 * @param [in]	aAsyncObserver	旕摨婜僐儅儞僪僆僽僓乕僶
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::ConstructL(MSmbMusicAPSyncServerPlayerAsyncObserver& aAsyncObserver)
	{
	//僾儗僀儎乕惂屼MW偐傜偺捠抦庴怣梡僋儔僗傪惗惉
	iMWNotifyAct = new(ELeave)CSmbMusicAPSyncServerPlayerReceiveMWNotify(aAsyncObserver, iLog);

	//僾儗僀儎乕惂屼MW偐傜偺墳摎庴怣梡僋儔僗傪惗惉
	iMWResAct = new(ELeave)CSmbMusicAPSyncServerPlayerReceiveMWRes(aAsyncObserver, iLog);

	//徣揹椡梡偺僞僀儅傪惗惉
	iPowerSaveTimer = new(ELeave)CSmbMusicAPSyncServerPlayerTimer(aAsyncObserver);
	iPowerSaveTimer->ConstructL();

//@@TRK8235懳墳	Add	Start
	//Mute夝彍梡僞僀儅傪惗惉偡傞
	iMuteTimer = new(ELeave)CSmbMusicAPSyncServerPlayerTimer(aAsyncObserver);
	iMuteTimer->ConstructL();
//@@TRK8235懳墳	Add	End

	//嫞崌FW偐傜偺墳摎庴怣梡僋儔僗傪惗惉
	iRscMgrResAct = new(ELeave)CSmbMusicAPSyncServerPlayerReceiveRscMgrRes(aAsyncObserver, iLog);

//  ADD-S PTX824 k3-sugimoto
	//  儕僜乕僗妉摼懸偪僞僀儅惗惉
	iRscDelayTimer = new(ELeave)CSmbMusicAPSyncServerPlayerTimer(aAsyncObserver);
	iRscDelayTimer -> ConstructL();

	//  棙梡棜楌峏怴僞僀儅惗惉
	iRepCounter = CSmbMusicAPLibReportCounter::NewL(TCallBack(RecordPlayReportCallBack, this));
//  ADD-S PTX824 k3-sugimoto
	}

/**
 傾僾儕廔椆
 * @param [in]	aMsg		儊僢僙乕僕
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::AppEnd(RMessage2&  aMsg)
	{
//TRK12311懳墳 DisConnect傊堏摦 Del-S
//	//壒埑庢摼儌乕僪傪弶婜壔
//	iSoundMode = EFalse;
//TRK12311懳墳	Del-E

	TInt cnt = iRequestMessage.Count();
	if(cnt > 0)
		{
		//梫媮儊僢僙乕僕偑偁傞応崌
		CSession2* session = aMsg.Session();
		for(TInt i = 0; i < cnt; i++)
			{
			//曐帩偟偰偄傞梫媮儊僢僙乕僕偑廔椆偡傞僋儔僀傾儞僩偩偭偨応崌儊僢僙乕僕傪夝曻偡傞
			if(session == iRequestMessage[i].Session())
				{
				iRequestMessage[i].Complete(KErrNone);
				iRequestMessage.Remove(i);
				break;
				}
			}
		}
	}

/**
 僐儞僥僉僗僩愝掕傪拞巭偡傞
 * @param	側偟
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::CancelContext()
	{
	//僐儞僥僉僗僩愝掕傪拞巭偡傞
	iMWResAct->CancelContext(iPlayerSession);
	}

/**
 儕僜乕僗庢摼傪拞巭偡傞
 * @param [in]	aRsc		庢摼傪拞巭偡傞儕僜乕僗
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::CancelGetRsc(TSmbMusicAPSyncServerPlayerRsc aRsc)
	{
	if (NULL == iRscMgrClient)
		{
		//儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber60;
		_LIT(KServerPlayerFunc60, "SyncServerPlayerFunc::CancelGetRsc No RscMgrClient");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelLowest, KServerPlayerFunc60);

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

		return;
		}

	//儕僜乕僗庢摼傪僉儍儞僙儖偡傞
	TSmbRscMgrRscResult	res = iRscMgrClient->Cancel();
	if(ESmbRscMgrRscResultCanceled!= res)
		{
		//僉儍儞僙儖偱偒側偐偭偨偺偱儕僜乕僗傪儕儕乕僗偡傞
		ReleaseRsc(aRsc);
		}
	else
		{
		//僉儍儞僙儖偵惉岟
		switch(aRsc)
			{
		case ESmbMusicAPSyncServerPlayerAllRsc:
		case ESmbMusicAPSyncServerPlayerMWRsc:
			//強桳儕僜乕僗側偟
			iHasRsc = ESmbMusicAPSyncServerPlayerNone;
			break;

		case ESmbMusicAPSyncServerPlayerBGRsc:
			//MW儕僜乕僗強桳
			iHasRsc = ESmbMusicAPSyncServerPlayerMWRsc;
			break;

		default:
			break;
			}
		}
	}

/**
 慡偰偺儕僜乕僗庢摼傪拞巭偍傛傃夝曻偡傞
 * @param [in]	aHasMWRsc		MW儕僜乕僗偺庢摼忬嫷(ETrue:庢摼嵪傒乛EFalse:枹庢摼)
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::CancelAndReleaseAllRsc(TBool aHasMWRsc)
	{
	if(ESmbMusicAPSyncServerPlayerNone == iHasRsc)
		{
		//壗傕儕僜乕僗傪強桳偟偰偄側偗傟偽偙偙偱廔傢傝傑偡
		return;
		}

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

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

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

	//MW儕僜乕僗傪庢摼偟偰偄傞応崌丄Player惂屼傪廔椆偡傞
	if(aHasMWRsc)
		{
		DisConnectPlayer();
		}

	if (NULL == iRscMgrClient)
		{
		//儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber51 | EMusicAPSyncServerLocationNumber94;
		_LIT(KServerPlayerFunc94, "SyncServerPlayerFunc::CancelGetRsc No RscMgrClient");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelLowest, KServerPlayerFunc94);

		return;
		}

	//儕僜乕僗庢摼傪僉儍儞僙儖&夝曻偡傞
	iRscMgrClient->CancelAndReleaseAllResources();
	}

/**
 徣揹椡梡偺僞僀儅傪掆巭偝偣傞
 * @param	側偟
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::CancelPowerSaveTimer()
	{
	iPowerSaveTimer->Cancel();
	}

/**
 慡嬋僔儍僢僼儖愝掕傪僋儕傾偡傞
 * @param	側偟
 * @return	側偟
 */
void CSmbMusicAPSyncServerPlayerFunc::ClearAllShuffle()
	{
	//慡嬋僔儍僢僼儖僼儔僌傪僋儕傾
	iAllShuffle = EFalse;

⌨️ 快捷键说明

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