📄 smbmusicapsyncserverplayerstateidel.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerPlayerStateIdel.cpp
//
// Description:
// PTX810 Music傾僾儕 摨婜僒乕僶 僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+---------------+--------------------------------------
//2006/06/09 |娵壀 |怴婯嶌惉
//2006/08/16 |娵壀 |TRK6568懳墳
//2006/08/29 |暯壀 |TRK7701,7702懳墳
//2006/09/25 |娵壀 |TRK10039懳墳
//----PTX824----+---------------+--------------------------------------
//2007/04/09 |K3悪杮 |PTX824懳墳
//2007/06/08 |K3悪杮 |PTX825懳墳(Mute愝掕)
//2007/06/14 |K3悪杮 |PTX825懳墳(壒検愝掕)
//2007/09/04 |K3悪杮 |[D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
#ifndef __SMBMUSICAPSYNCSERVERPLAYERSTATEIDEL_H__
#include "SmbMusicAPSyncServerPlayerStateIdel.h"
#endif
#ifndef __SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.h"
#endif // __SMBMUSICAPSYNCSERVERUTIL_H__
USING_NAMESPACE_SEMCJ
/**
僐儞僗僩儔僋僞
* @param [in] aFunc PlayerFunc僋儔僗偺嶲徠
* @param [in] aLog 儘僌僒乕僶僙僢僔儑儞偺嶲徠
* @return 側偟
*/
CSmbMusicAPSyncServerPlayerStateIdel::CSmbMusicAPSyncServerPlayerStateIdel(CSmbMusicAPSyncServerPlayerFunc& aFunc, DCM_NAMESPACE::RLog& aLog)
: CSmbMusicAPSyncServerPlayerStateBase(aFunc, aLog)
{
}
/**
僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPSyncServerPlayerStateIdel::~CSmbMusicAPSyncServerPlayerStateIdel()
{
}
/**
嵞惗奐巒梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::Play(TSmbMusicAPSyncServerPlayerState aState)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//儕僜乕僗庢摼梫媮(BG儕僜乕僗)
TRAPD(err, iFunc.GetResourceL(ESmbMusicAPSyncServerPlayerBGRsc));
//儕僜乕僗庢摼梫媮偑Leave偟偨傜丄忬懺偼偦偺傑傑
if (KErrNone != err)
{
//儘僌弌椡
TInt log = EMusicAPSyncServerClassNumber5A | EMusicAPSyncServerLocationNumber00;
_LIT(KServerPlayerStateIdle00, "CSmbMusicAPSyncServerPlayerStateIdel::Play Leave in GetResourceL() [%d][aState=%d]");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStateIdle00, err, aState);
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(KErrInUse);
//Idle忬懺
return aState;
}
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
//嵞惗奐巒傪捠抦偡傞
iFunc.NotifyStartPlay();
// DEL-S PTX825懳墳(Mute愝掕)
// //僆乕僨傿僆偺弌椡忬懺傪挷傋傞
// iFunc.CheckLineOut();
// DEL-E PTX825懳墳(Mute愝掕)
//@@TRK10039懳墳 Add-Start
//嵞惗奐巒偺懳徾嬋傪僋儔僀傾儞僩偵捠抦偡傞
iFunc.PlaySongIndex();
//@@TRK10039懳墳 Add-End
//BG儕僜乕僗懸偪
return ESmbMusicApSyncServerPlayerWaitBGRsc;
}
/**
嬋憲傝梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::NextSong(TSmbMusicAPSyncServerPlayerState aState)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
// ADD-S PTX824 k3-sugimoto
// 棙梡棜楌峏怴僇僂儞僞儕僙僢僩(Callback桳)
iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
// ADD-E PTX824 k3-sugimoto
//嬋憲傝梫媮
TInt val = iFunc.NextSong();
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(val);
//忬懺曄峏側偟
return aState;
}
/**
嬋栠偟梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::PrevSong(TSmbMusicAPSyncServerPlayerState aState)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
// ADD-S PTX824 k3-sugimoto
// 棙梡棜楌峏怴僇僂儞僞儕僙僢僩(Callback桳)
iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
// ADD-E PTX824 k3-sugimoto
//嬋栠偟梫媮
TInt val = iFunc.PrevSong();
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(val);
//忬懺曄峏側偟
return aState;
}
/**
摢弌偟梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::SongHead(TSmbMusicAPSyncServerPlayerState aState)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
//摢弌偟梫媮
TInt val = iFunc.SetSongHead();
if(KErrNone != val)
{
//儘僌弌椡
TInt log = EMusicAPSyncServerClassNumber5A | EMusicAPSyncServerLocationNumber01;
_LIT(KServerPlayerStateIdle01, "CSmbMusicAPSyncServerPlayerStateIdel::Play SongHead Error = [%d][aState=%d]");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStateIdle01, val, aState);
}
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(val);
// ADD-S PTX824 k3-sugimoto
// 棙梡棜楌峏怴僇僂儞僞儕僙僢僩(宲懕)
iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EContinue);
// ADD-E PTX824 k3-sugimoto
//忬懺曄峏側偟
return aState;
}
/**
嵞惗弨旛梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::PrePlay(TSmbMusicAPSyncServerPlayerState /* aState */)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//@@maruoka Add 07/27 Start
//嵞惗僐儞僥僉僗僩僋儕傾梫媮
TInt res = iFunc.ClearContext();
if(KErrNone != res)
{
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(res);
//傾僀僪儖忬懺
return ESmbMusicAPSyncServerPlayerIdle;
}
//@@maruoka Add 07/27 End
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
//嵞惗僐儞僥僉僗僩僋儕傾墳摎懸偪忬懺
return ESmbMusicAPSyncServerPlayerWaitClrCnt;
}
/**
堦帪掆巭梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::Pause(TSmbMusicAPSyncServerPlayerState aState)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//惓忢廔椆偱曉偡
iFunc.SendRes(KErrNone);
//忬懺曄峏側偟
return aState;
}
/**
徣揹椡僞僀儅乕枮椆
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::ExpirePwrSaveTimer(TSmbMusicAPSyncServerPlayerState aState)
{
iFunc.PwrSave(ETrue);
//忬懺曄峏側偟
return aState;
}
/**
儕僜乕僗夝曻梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::ReleaseRscReq(TSmbMusicAPSyncServerPlayerState /* aState */)
{
//TRK7701,7702懳墳 Start
//儕僜乕僗夝曻梫媮偺嫟捠憖嶌
// ComReleaseRscReq(ESmbMusicAPSyncServerPlayerStackLocalFromPlayer);
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
//儗僕儏乕儉惗惉
iFunc.GetResume(ESmbMusicAPSyncServerPlayerStackLocalFromPlayer);
//慡偰偺儕僜乕僗傪夝曻偡傞
// MODIFY-S PTX824 k3-sugimoto
// iFunc.ReleaseRsc(ESmbMusicAPSyncServerPlayerAllRsc);
// 儕僜乕僗妉摼娔帇搊榐偼峴偆
iFunc.ReleaseRsc(ESmbMusicAPSyncServerPlayerAllRsc, ETrue);
// MODIFY-S PTX824 k3-sugimoto
//儕僜乕僗傪扗傢傟偨偺偱張棟偱偒傑偣傫偱偟偨
iFunc.SendRes(KErrInUse);
//TRK7701,7702懳墳 End
//僒僗儁儞僪忬懺
return ESmbMusicApSyncServerPlayerSuspend;
}
/**
壒埑儗儀儖儌乕僪傪愝掕偡傞乮壒埑儗儀儖庢摼奐巒乛廔椆乯
* @param [in] aState 嵞惗宯偺忬懺
* @return
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::SetSoundLevelMode(TSmbMusicAPSyncServerPlayerState aState)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//壒埑儗儀儖庢摼儌乕僪傪愝掕偡傞
TInt res = iFunc.SetSoundLevelMode(ESmbMusicAPSyncServerPlayerSetFromMsg);
//墳摎傪敪峴偡傞
iFunc.SendRes(res);
//忬懺曄峏側偟
return aState;
}
/**
壒検愝掕傪峴偆
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::SetVolume(TSmbMusicAPSyncServerPlayerState aState)
{
// MODIFY-S PTX825懳墳(壒検愝掕)
// //壒検愝掕偺嫟捠憖嶌
// ComSetVolume();
// 僋儔僀傾儞僩偐傜偺愝掕傪儘乕僇儖偵曐懚
iFunc.StackRequestMsg(iMsg);
//撪晹偱曐帩偟偰偄傞愝掕抣傪曄峏
TInt val = iFunc.SetVolume(ESmbMusicAPSyncServerPlayerStackLocalFromMsg);
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(val);
// MODIFY-E PTX825懳墳(壒検愝掕)
//忬懺曄峏側偟
return aState;
}
/**
嵞惗宱夁帪娫傪庢摼偡傞
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::GetPlayTime(TSmbMusicAPSyncServerPlayerState aState)
{
//嵞惗宱夁帪娫庢摼偺嫟捠憖嶌
ComGetPlayTime();
//忬懺曄峏側偟
return aState;
}
//@@TRK6568懳墳 Start
/**
傾僾儕廔椆捠抦
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::AppEnd(TSmbMusicAPSyncServerPlayerState /* aState */)
{
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
//傾僾儕廔椆捠抦偺嫟捠憖嶌(慡偰偺儕僜乕僗傪夝曻)
ComAppEnd();
//傾僾儕廔椆忬懺
return ESmbMusicApSyncServerPlayerAppEnd;
}
//@@TRK6568懳墳 End
/**
奜晹儊儌儕偺忬懺曄峏捠抦
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::ChangeExtMem(TSmbMusicAPSyncServerPlayerState /* aState */)
{
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
iFunc.CancelDealyAndNotify();
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
//儕僜乕僗夝曻偍傛傃儗僕儏乕儉攋婞
ComChangeExtMem();
//弶婜忬懺傊慗堏
return ESmbMusicAPSyncServerPlayerInit;
}
// ADD-S [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
/**
* 儕僜乕僗偑奐曻偝傟偨捠抦
*
* @param[in] aState 嵞惗宯偺忬懺
*
* @return 嵞惗宯偺忬懺
**/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::ReleaseRscNotify(TSmbMusicAPSyncServerPlayerState aState)
{
// 儕僜乕僗妉摼抶墑僞僀儅僗僞乕僩
iFunc.StartGetRscDelayTimer();
return aState;
}
/**
* 儕僜乕僗妉摼懸偪僞僀儅枮椆
*
* @param[in] aState 嵞惗宯偺忬懺
*
* @return 嵞惗宯偺忬懺
**/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateIdel::ExpireGerRscTimer(TSmbMusicAPSyncServerPlayerState aState)
{
TInt result(KErrNone);
// 儕僜乕僗妉摼壜斲僠僃僢僋(摨婜)
TRAPD(error, result = iFunc.CheckResouceGetableL(););
if ((error != KErrNone) || (result != KErrNone))
{ // 儕僜乕僗嫞崌妋擣偱僄儔乕傑偨偼儕僜乕僗妉摼NG偺応崌
// 嵞搙儕僜乕僗奐曻捠抦梫媮傪峴偆
TRAP(error, result = iFunc.StartRscReleaseNotifyForARPL(););
if ((error != KErrNone) || (result != KErrNone))
{
// 僆乕僩儗僕儏乕儉偱偒側偄儘僌
TInt log = EMusicAPSyncServerClassNumber5A | EMusicAPSyncServerLocationNumber02;
_LIT(KServerPlayerStateIdle02, "CSmbMusicAPSyncServerPlayerStateIdel::ExpireGerRscTimer StartRscReleaseNotifyForARPL is Error(r:%d, e:%d)");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KServerPlayerStateIdle02, result, error);
}
return aState;
}
// 僆乕僩儗僕儏乕儉壜擻壔捠抦
iFunc.SendNotify(ESmbMusicAPSyncEngineEnableAuteResume);
return aState;
}
// ADD-E [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
// end of SmbMusicAPSyncServerPlayerStateIdel.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -