📄 smbmusicapsyncserverplayerstateconfirm.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerPlayerStateConfirm.cpp
//
// Description:
// PTX810 Music傾僾儕 摨婜僒乕僶 僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+---------------+--------------------------------------
//2007/04/03 |K3悪杮 | 怴婯嶌惉
//2007/06/08 |K3悪杮 | PTX825懳墳(Mute愝掕)
//2007/06/14 |K3悪杮 | PTX825懳墳(壒検愝掕)
#ifndef __SMBMUSICAPSYNCSERVERPLAYERStateConfirm_H__
#include "SmbMusicAPSyncServerPlayerStateConfirm.h"
#endif
#ifndef __SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.h"
#endif // __SMBMUSICAPSYNCSERVERUTIL_H__
USING_NAMESPACE_SEMCJ
/**
* 僐儞僗僩儔僋僞
*
* @param[in] aFunc PlayerFunc僋儔僗偺嶲徠
* @param[in] aLog 儘僌僒乕僶僙僢僔儑儞偺嶲徠
*
* @return 側偟
*/
CSmbMusicAPSyncServerPlayerStateConfirm::CSmbMusicAPSyncServerPlayerStateConfirm(
CSmbMusicAPSyncServerPlayerFunc& aFunc,
DCM_NAMESPACE::RLog& aLog
)
: CSmbMusicAPSyncServerPlayerStateBase(aFunc, aLog)
{
}
/**
* 僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPSyncServerPlayerStateConfirm::~CSmbMusicAPSyncServerPlayerStateConfirm()
{
}
/**
* 堦帪掆巭梫媮
*
* @param[in] aState 嵞惗宯偺忬懺
*
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::Pause(TSmbMusicAPSyncServerPlayerState aState)
{
TSmbMusicAPSyncServerPlayerState retState(aState);
switch(aState)
{
case ESmbMusicAPSyncServerPlayerConfirmCntLimit: // 儐乕僓妋擣忬懺(嵞惗夞悢惂尷)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
// MW偵懳偟嵞惗掆巭梫媮傪敪峴
TInt result = iFunc.Pause();
if (result != KErrNone)
{
// 儘僌
// 僋儔僀傾儞僩偵僄儔乕傪捠抦
iFunc.SendRes(result);
// 僄儔乕偺応崌偼忬懺慗堏偟側偄
return aState;
}
// 僾儗僀儎乕偺撪梕傪儘乕僇儖偵曐懚偡傞
iFunc.GetResume(ESmbMusicAPSyncServerPlayerStackLocalFromPlayer);
//惓忢廔椆偱曉偡
iFunc.SendRes(KErrNone);
// 嵞惗掆巭捠抦傪峴偆
iFunc.SendNotify(ESmbMusicAPSyncEngineStopPlay);
// 徣揹椡僞僀儅僇僂儞僩僗僞乕僩
iFunc.StartPowerSaveTimer();
//Idle忬懺傊
retState = ESmbMusicAPSyncServerPlayerIdle;
}
break;
case ESmbMusicAPSyncServerPlayerConfirmGracePeriod: // 儐乕僓妋擣忬懺(僌儗乕僗僺儕僆僪撪)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
TInt result = iFunc.Pause();
if (result != KErrNone)
{
// 儘僌弌椡
iFunc.SendRes(result);
return aState;
}
retState = ESmbMusicApSyncServerPlayerWaitPause;
}
break;
default:
retState = CSmbMusicAPSyncServerPlayerStateBase::Pause(aState);
// 儘僌
break;
}
return retState;
}
/**
* 嬋憲傝梫媮
* @param[in] aState 嵞惗宯偺忬懺
*
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::NextSong(TSmbMusicAPSyncServerPlayerState aState)
{
TSmbMusicAPSyncServerPlayerState retState(aState);
switch(aState)
{
case ESmbMusicAPSyncServerPlayerConfirmCntLimit: // 儐乕僓妋擣忬懺(嵞惗夞悢惂尷)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//儕僜乕僗庢摼梫媮(BG儕僜乕僗)
TRAPD(err, iFunc.GetResourceL(ESmbMusicAPSyncServerPlayerBGRsc));
//儕僜乕僗庢摼梫媮偑Leave偟偨傜丄忬懺偼偦偺傑傑
if (KErrNone != err)
{
//儘僌弌椡
TInt log = EMusicAPSyncServerClassNumber5A | EMusicAPSyncServerLocationNumber00;
_LIT(KServerPlayerStateConfirm00, "CSmbMusicAPSyncServerPlayerStateConfirm::NextSong Leave in GetResourceL() [%d][aState=%d]");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStateConfirm00, err, aState);
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(KErrInUse);
//儐乕僓妋擣忬懺(嵞惗夞悢惂尷)
return aState;
}
// DEL-S PTX825懳墳(Mute愝掕)
// BG儕僜乕僗庢摼屻偵峴偆
// //僆乕僨傿僆偺弌椡忬懺傪挷傋傞
// iFunc.CheckLineOut();
// DEL-E PTX825懳墳(Mute愝掕)
//BG儕僜乕僗懸偪(嬋憲傝)
retState = ESmbMusicApSyncServerPlayerWaitBGRscwithChgSong;
}
break;
case ESmbMusicAPSyncServerPlayerConfirmGracePeriod: // 儐乕僓妋擣忬懺(僌儗乕僗僺儕僆僪撪)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//嬋憲傝梫媮
TInt result = iFunc.NextSong();
if (result != KErrNone)
{ //嬋憲傝梫媮偺栠傝抣偑僄儔乕偺応崌
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(result);
//忬懺曄峏側偟
return aState;
}
//嵞惗傊偺暅婣懸偪忬懺
retState = ESmbMusicApSyncServerPlayerWaitPlay;
}
break;
default:
retState = CSmbMusicAPSyncServerPlayerStateBase::NextSong(aState);
break;
}
return retState;
}
/**
* 嬋栠偟梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::PrevSong(TSmbMusicAPSyncServerPlayerState aState)
{
TSmbMusicAPSyncServerPlayerState retState(aState);
switch(aState)
{
case ESmbMusicAPSyncServerPlayerConfirmCntLimit: // 儐乕僓妋擣忬懺(嵞惗夞悢惂尷)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//儕僜乕僗庢摼梫媮(BG儕僜乕僗)
TRAPD(err, iFunc.GetResourceL(ESmbMusicAPSyncServerPlayerBGRsc));
//儕僜乕僗庢摼梫媮偑Leave偟偨傜丄忬懺偼偦偺傑傑
if (KErrNone != err)
{
//儘僌弌椡
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(KErrInUse);
return aState;
}
// DEL-S PTX825懳墳(Mute愝掕)
// BG儕僜乕僗庢摼屻偵峴偆
// //僆乕僨傿僆偺弌椡忬懺傪挷傋傞
// iFunc.CheckLineOut();
// DEL-E PTX825懳墳(Mute愝掕)
//BG儕僜乕僗懸偪(嬋憲傝)
retState = ESmbMusicApSyncServerPlayerWaitBGRscwithChgSong;
}
break;
case ESmbMusicAPSyncServerPlayerConfirmGracePeriod: // 儐乕僓妋擣忬懺(僌儗乕僗僺儕僆僪撪)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
TInt result = iFunc.PrevSong();
if (result != KErrNone)
{
//儘僌弌椡
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(result);
return aState;
}
//
retState = ESmbMusicApSyncServerPlayerWaitPlay;
}
break;
default:
retState = CSmbMusicAPSyncServerPlayerStateBase::PrevSong(aState);
break;
}
return retState;
}
/**
* 壒検愝掕傪峴偆
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::SetVolume(TSmbMusicAPSyncServerPlayerState aState)
{
// MODIFY-S PTX825懳墳(壒検愝掕)
switch(aState)
{
case ESmbMusicAPSyncServerPlayerConfirmCntLimit: // 儐乕僓妋擣忬懺(嵞惗夞悢惂尷)
{
// 僋儔僀傾儞僩偐傜偺愝掕傪儘乕僇儖偵曐懚
iFunc.StackRequestMsg(iMsg);
//撪晹偱曐帩偟偰偄傞愝掕抣傪曄峏
TInt val = iFunc.SetVolume(ESmbMusicAPSyncServerPlayerStackLocalFromMsg);
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(val);
}
break;
case ESmbMusicAPSyncServerPlayerConfirmGracePeriod: // 儐乕僓妋擣忬懺(僌儗乕僗僺儕僆僪撪)
{
//壒検愝掕偺嫟捠憖嶌
ComSetVolume();
}
break;
default:
break;
}
// MODIFY-E PTX825懳墳(壒検愝掕)
//忬懺曄峏側偟
return aState;
}
/**
* 壒埑儗儀儖傪庢摼偡傞
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::GetSound(TSmbMusicAPSyncServerPlayerState aState)
{
//壒埑儗儀儖庢摼偺嫟捠憖嶌
ComGetSound();
//忬懺曄峏側偟
return aState;
}
/**
* 嵞惗宱夁帪娫傪庢摼偡傞
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::GetPlayTime(TSmbMusicAPSyncServerPlayerState aState)
{
//嵞惗宱夁帪娫庢摼偺嫟捠憖嶌
ComGetPlayTime();
//忬懺曄峏側偟
return aState;
}
/**
* 儕僜乕僗夝曻梫媮
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::ReleaseRscReq(TSmbMusicAPSyncServerPlayerState /* aState */)
{
//儗僕儏乕儉惗惉
iFunc.GetResume(ESmbMusicAPSyncServerPlayerStackLocalFromPlayer);
//慡偰偺儕僜乕僗傪夝曻偡傞
// 儕僜乕僗妉摼娔帇搊榐偼峴偆
iFunc.ReleaseRsc(ESmbMusicAPSyncServerPlayerAllRsc, ETrue);
// 嵞惗掆巭捠抦傪峴偆
iFunc.SendNotify(ESmbMusicAPSyncEngineStopPlay);
//儕僜乕僗傪扗傢傟偨偺偱張棟偱偒傑偣傫偱偟偨
iFunc.SendRes(KErrInUse);
//僒僗儁儞僪忬懺
return ESmbMusicApSyncServerPlayerSuspend;
}
/**
* 徣揹椡僞僀儅乕枮椆
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::ExpirePwrSaveTimer(TSmbMusicAPSyncServerPlayerState aState)
{
if (aState == ESmbMusicAPSyncServerPlayerConfirmCntLimit)
{ // 尰嵼偺忬懺偑儐乕僓妋擣忬懺(嵞惗夞悢惂尷)偺応崌
iFunc.PwrSave(ETrue); // 徣揹椡儌乕僪ON偵
}
//忬懺曄峏側偟
return aState;
}
/**
* 嵞惗掆巭捠抦傪庴怣
* @param [in] aState 嵞惗宯偺忬懺
* @return 嵞惗宯偺忬懺
*/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::StopNtfy(TSmbMusicAPSyncServerPlayerState aState)
{
//昁梫偲偁傜偽墳摎傪敪峴偡傞
iFunc.SendRes(KErrCancel);
if (aState == ESmbMusicAPSyncServerPlayerConfirmGracePeriod)
{ // 儐乕僓妋擣忬懺(僌儗乕僗僺儕僆僪撪)偺応崌
//BG儕僜乕僗偺夝曻
iFunc.ReleaseRsc(ESmbMusicAPSyncServerPlayerBGRsc);
}
//嵞惗掆巭傪捠抦
iFunc.SendNotify(ESmbMusicAPSyncEngineStopPlay);
//徣揹椡僞僀儅乕奐巒
iFunc.StartPowerSaveTimer();
//傾僀僪儖乮堦帪掆巭乯忬懺
return ESmbMusicAPSyncServerPlayerIdle;
}
/**
* 妋擣屻宲懕嵞惗梫媮
*
* @param[in] aState 嵞惗宯偺忬懺
*
* @return 嵞惗宯偺忬懺
**/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateConfirm::ConfirmedPlay(TSmbMusicAPSyncServerPlayerState aState)
{
TSmbMusicAPSyncServerPlayerState retState(aState);
switch(aState)
{
case ESmbMusicAPSyncServerPlayerConfirmCntLimit: //儐乕僓妋擣忬懺(嵞惗夞悢惂尷)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
//儕僜乕僗庢摼梫媮(BG儕僜乕僗)
TRAPD(err, iFunc.GetResourceL(ESmbMusicAPSyncServerPlayerBGRsc));
//儕僜乕僗庢摼梫媮偑Leave偟偨傜丄忬懺偼偦偺傑傑
if (KErrNone != err)
{
//儘僌弌椡
TInt log = EMusicAPSyncServerClassNumber5A | EMusicAPSyncServerLocationNumber00;
_LIT(KServerPlayerStateConfirm00, "CSmbMusicAPSyncServerPlayerStateConfirm::ConfirmedPlay Leave in GetResourceL() [%d][aState=%d]");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStateConfirm00, err, aState);
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(KErrInUse);
//
return aState;
}
// DEL-S PTX825懳墳(Mute愝掕)
// BG儕僜乕僗庢摼屻偵峴偆
// //僆乕僨傿僆偺弌椡忬懺傪挷傋傞
// iFunc.CheckLineOut();
// DEL-E PTX825懳墳(Mute愝掕)
//BG儕僜乕僗懸偪
retState = ESmbMusicApSyncServerPlayerWaitBGRscwithConfirm;
}
break;
case ESmbMusicAPSyncServerPlayerConfirmGracePeriod: //儐乕僓妋擣忬懺(僌儗乕僗僺儕僆僪撪)
{
//儊僢僙乕僕傪搉偡
iFunc.StackRequestMsg(iMsg);
TInt result = iFunc.ConfirmPlay();
if (result != KErrNone)
{
//僋儔僀傾儞僩偵墳摎傪曉偡
iFunc.SendRes(result);
//
return aState;
}
retState = ESmbMusicApSyncServerPlayerWaitStartPlay;
}
break;
default:
retState = CSmbMusicAPSyncServerPlayerStateBase::ConfirmedPlay(aState);
break;
}
return retState;
}
// end of SmbMusicAPSyncServerPlayerStateConfirm.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -