📄 smbmusicapsyncserverplayerfunc.cpp
字号:
/* 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 + -