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

📄 smbmusicapsyncserverplayerstatewaitplay.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerPlayerStateWaitPlay.cpp
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/09	|娵壀			|怴婯嶌惉
//2006/08/18	|娵壀			|TRK6286懳墳
//2006/09/27	|暯壀			|TRK10363懳墳丂Play()娭悢傪嶍彍
//----PTX824----+---------------+--------------------------------------
//2007/04/04	|K3悪杮			|PTX824懳墳
//2007/09/28	|K3悪杮			|[D_82400015651,D_82400015652]摢弌偟帪偺棙梡棜楌峏怴僞僀儅偺儕僙僢僩張棟傪廋惓


#ifndef __SMBMUSICAPSYNCSERVERPLAYERSTATEWAITPLAY_H__
#include "SmbMusicAPSyncServerPlayerStateWaitPlay.h"
#endif

USING_NAMESPACE_SEMCJ


/**
 僐儞僗僩儔僋僞
 * @param [in]	aFunc		PlayerFunc僋儔僗偺嶲徠
 * @param [in]	aLog		儘僌僒乕僶僙僢僔儑儞偺嶲徠
 * @return	側偟
 */
CSmbMusicAPSyncServerPlayerStateWaitPlay::CSmbMusicAPSyncServerPlayerStateWaitPlay(CSmbMusicAPSyncServerPlayerFunc& aFunc, DCM_NAMESPACE::RLog& aLog)
	: CSmbMusicAPSyncServerPlayerStateBase(aFunc, aLog)
	{
	}

/**
 僨僗僩儔僋僞
 * @param	側偟
 * @return	側偟
 */
CSmbMusicAPSyncServerPlayerStateWaitPlay::~CSmbMusicAPSyncServerPlayerStateWaitPlay()
	{
	}

/**
 捠忢嵞惗奐巒壒柭摦僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::StartPlayRes(TSmbMusicAPSyncServerPlayerState  aState )
	{
//  ADD-S PTX824 k3-sugimoto
	TInt func(iFunc.Function());
//  ADD-E PTX824 k3-sugimoto

	//墳摎傪敪峴偡傞
	iFunc.SendRes(KErrNone);

	//嬋憲傝/嬋栠偟偐傜嵞惗傊偺暅婣懸偪偺応崌
	if(ESmbMusicApSyncServerPlayerWaitPlay == aState)
		{
//  ADD-S PTX824 k3-sugimoto
		if ((func == ESmbMusicAPSyncServerFuncRequestNextSong) ||
			(func == ESmbMusicAPSyncServerFuncRequestPrevSong))
			{	//  嬋憲傝/嬋栠偟偺応崌
			//  摢弌偟偺応崌偼丄梫媮帪偵Pause/Reset偟偰傞偺偱
			//  偙偙偱偼儕僙僢僩偟側偄
			//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩
			iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
			}
//  ADD-E PTX824 k3-sugimoto

		//嬋曄峏僀儀儞僩傪捠抦偡傞
		iFunc.SendNotify(ESmbMusicAPSyncEngineChangePlaySong);
		}
	else
		{
		//嵞惗宯僀儀儞僩捠抦(嵞惗傪梫媮偝傟偨嬋偺壒柭摦傪奐巒偟偨)
		iFunc.RequestEventNotify();
		}

//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞僞僀儅奐巒
	iFunc.ReportCounterStart();
//  ADD-E PTX824 k3-sugimoto

	//嵞惗忬懺
	return ESmbMusicApSyncServerPlayerPlay;
	}

/**
 堦帪掆巭梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::Pause(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
	//墳摎傪敪峴偡傞
	iFunc.SendRes(KErrNone);

	//堦帪掆巭梫媮偺嫟捠憖嶌
	ComPause();

	//堦帪掆巭墳摎懸偪忬懺
	return ESmbMusicApSyncServerPlayerWaitPause;
	}

/**
 嵞惗晄壜僼傽僀儖専弌僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::ErrSongNtfy(TSmbMusicAPSyncServerPlayerState /*aState*/)
	{
//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩(Callback桳)
	iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
//  ADD-E PTX824 k3-sugimoto

	//嵞惗晄壜僼傽僀儖専弌僀儀儞僩偺嫟捠憖嶌
	ComErrSongNtfy();

	//嵞惗晄壜僼傽僀儖専弌忬懺
	return ESmbMusicApSyncServerPlayerErrSong;
	}

/**
 儕僜乕僗夝曻梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
//  MODIFY-S PTX824 k3-sugimoto
//TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::ReleaseRscReq(TSmbMusicAPSyncServerPlayerState /*aState*/)
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::ReleaseRscReq(TSmbMusicAPSyncServerPlayerState aState)
//  MODIFY-E PTX824 k3-sugimoto
	{
//  ADD-S PTX824 k3-sugimoto
	TInt func(iFunc.Function());

	if ((aState == ESmbMusicApSyncServerPlayerWaitPlay) &&
		((func == ESmbMusicAPSyncServerFuncRequestNextSong) ||
		 (func == ESmbMusicAPSyncServerFuncRequestPrevSong)))
		{	//  嬋憲傝/嬋栠偟偺応崌
		//  摢弌偟偺応崌偼丄梫媮帪偵Pause/Reset偟偰傞偺偱
		//  偙偙偱偼儕僙僢僩偟側偄
		//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩
		iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
		}
	else
		{	//  憗憲傝/憗栠偟/摢弌偟偺応崌
		//  棙梡棜楌峏怴僇僂儞僞堦帪掆巭
		iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPause);
		}
//  ADD-E PTX824 k3-sugimoto

	//儕僜乕僗奐曻梫媮偺嫟捠憖嶌
	ComReleaseRscReq(ESmbMusicAPSyncServerPlayerStackLocalFromPlayer);

	//僒僗儁儞僪忬懺
	return ESmbMusicApSyncServerPlayerSuspend;
	}

/**
 壒検愝掕傪峴偆
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::SetVolume(TSmbMusicAPSyncServerPlayerState aState)
	{
	//壒検愝掕偺嫟捠憖嶌
	ComSetVolume();

	//忬懺曄峏側偟
	return aState;
	}

/**
 儕僗僩嵞惗姰椆僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
//TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::FinishPlayListNtfy(TSmbMusicAPSyncServerPlayerState aState)
//  MODIFY-S PTX824 k3-sugimoto
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::FinishPlayListNtfy(TSmbMusicAPSyncServerPlayerState /*aState*/)
//  MODIFY-S PTX824 k3-sugimoto
	{
	//FF偐傜嵞惗傊偺暅婣懸偪偺応崌
//  DEL-S PTX824 k3-sugimoto
//	if(	ESmbMusicApSyncServerPlayerWaitPlayFromFFFR == aState)
//		{
//TRK6286懳墳	Start
//		//専嶕梡偺嵞惗夞悢傪峏怴偡傞乮懳徾嬋偺嵞惗偑姰椆偟偨応崌偺傒乯
//		iFunc.IncrementPlayTimesIfNecessary();
//TRK6286懳墳	End
//		}
//  DEL-E PTX824 k3-sugimoto

//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩(Callback桳)
	iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
//  ADD-E PTX824 k3-sugimoto

	//憗憲傝夝彍/憗栠偟夝彍梫媮偺墳摎傪敪峴偡傞
	iFunc.SendRes(KErrCancel);

	//儕僗僩嵞惗姰椆捠抦偺嫟捠憖嶌
	ComFinishPlayListNtfy();

	//傾僀僪儖(堦帪掆巭)忬懺
	return ESmbMusicAPSyncServerPlayerIdle;
	}

/**
 FR偱嬋愭摢専弌僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::SongHeadNtfy(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩(張棟宲懕)
	iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EContinue);
//  ADD-E PTX824 k3-sugimoto

	//憗憲傝夝彍/憗栠偟夝彍梫媮偺墳摎傪敪峴偡傞
	iFunc.SendRes(KErrCancel);

	//BG儕僜乕僗偺夝曻
	iFunc.ReleaseRsc(ESmbMusicAPSyncServerPlayerBGRsc);

	//FW偱嬋偺愭摢偵払偟偨
	iFunc.SendNotify(ESmbMusicAPSyncEngineFRToSongHead);

	//傾僀僪儖(堦帪掆巭)忬懺
	return ESmbMusicAPSyncServerPlayerIdle;
	}

/**
 FF偱嬋廔抂専弌僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::SongTailNtfy(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩(Callback桳)
	iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
//  ADD-E PTX824 k3-sugimoto

	//憗憲傝夝彍/憗栠偟夝彍梫媮偺墳摎傪敪峴偡傞
	iFunc.SendRes(KErrCancel);

//  DEL-S PTX824 k3-sugimoto
//TRK6286懳墳	Start
//	//専嶕梡偺嵞惗夞悢傪峏怴偡傞乮懳徾嬋偺嵞惗偑姰椆偟偨応崌偺傒乯
//	iFunc.IncrementPlayTimesIfNecessary();
//TRK6286懳墳	End
//  DEL-E PTX824 k3-sugimoto

	//BG儕僜乕僗偺夝曻
	iFunc.ReleaseRsc(ESmbMusicAPSyncServerPlayerBGRsc);

	//FF偱嬋偺廔抂傑偱払偟偨
	iFunc.SendNotify(ESmbMusicAPSyncEngineFFToSongEnd);

	//傾僀僪儖(堦帪掆巭)忬懺
	return ESmbMusicAPSyncServerPlayerIdle;
	}


//  ADD-S PTX824 k3-sugimoto
/**
 *  梫儐乕僓妋擣捠抦(僌儗乕僗僺儕僆僪撪)
 *
 *  @param[in]	aState		嵞惗宯偺忬懺
 *
 *  @return	嵞惗宯偺忬懺
 **/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::ConfirmGracePriod(TSmbMusicAPSyncServerPlayerState aState)
	{
//  MODIFY-S [D_82400015651,D_82400015652]摢弌偟帪偺棙梡棜楌峏怴僞僀儅偺儕僙僢僩張棟傪廋惓
	if (aState == ESmbMusicApSyncServerPlayerWaitPlay)
		{
		TInt func(iFunc.Function());
		if ((func == ESmbMusicAPSyncServerFuncRequestNextSong) ||
			(func == ESmbMusicAPSyncServerFuncRequestPrevSong))
			{	//  嬋憲傝/嬋栠偟偺応崌
			//  摢弌偟偺応崌偼丄梫媮帪偵Pause/Reset偟偰傞偺偱
			//  偙偙偱偼儕僙僢僩偟側偄
			//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩
			iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
			}
		}
//  MODIFY-E [D_82400015651,D_82400015652]摢弌偟帪偺棙梡棜楌峏怴僞僀儅偺儕僙僢僩張棟傪廋惓

	//  梫儐乕僓妋擣捠抦(僌儗乕僗僺儕僆僪撪)嫟捠張棟
	ComConfirmGracePriod();

	//  儐乕僓妋擣忬懺(僌儗乕僗僺儕僆僪撪)傊堏峴
	return ESmbMusicAPSyncServerPlayerConfirmGracePeriod;
	}

/**
 *  梫儐乕僓妋擣捠抦(夞悢惂尷)
 *
 *  @param[in]	aState		嵞惗宯偺忬懺
 *
 *  @return	嵞惗宯偺忬懺
 **/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateWaitPlay::ConfirmLimitCount(TSmbMusicAPSyncServerPlayerState aState)
	{
//  MODIFY-S [D_82400015651,D_82400015652]摢弌偟帪偺棙梡棜楌峏怴僞僀儅偺儕僙僢僩張棟傪廋惓
	if (aState == ESmbMusicApSyncServerPlayerWaitPlay)
		{
		TInt func(iFunc.Function());
		if ((func == ESmbMusicAPSyncServerFuncRequestNextSong) ||
			(func == ESmbMusicAPSyncServerFuncRequestPrevSong))
			{	//  嬋憲傝/嬋栠偟偺応崌
			//  摢弌偟偺応崌偼丄梫媮帪偵Pause/Reset偟偰傞偺偱
			//  偙偙偱偼儕僙僢僩偟側偄
			//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩
			iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);
			}
		}
//  MODIFY-E [D_82400015651,D_82400015652]摢弌偟帪偺棙梡棜楌峏怴僞僀儅偺儕僙僢僩張棟傪廋惓

	//  梫儐乕僓妋擣捠抦(夞悢惂尷)嫟捠張棟
	ComConfirmLimitCount();

	//  儐乕僓妋擣忬懺(嵞惗夞悢惂尷)傊堏峴
	return ESmbMusicAPSyncServerPlayerConfirmCntLimit;
	}
//  ADD-E PTX824 k3-sugimoto


// end of SmbMusicAPSyncServerPlayerStateWaitPlay.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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