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

📄 smbmusicapsyncserverplayerstateconfirm.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 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 + -