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

📄 smbmusicapsyncserverplayerstateplay.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerPlayerStatePlay.cpp
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/09	|娵壀			|怴婯嶌惉
//2006/08/15	|娵壀			|TRK6286懳墳
//----PTX824----+---------------+--------------------------------------
//2007/04/04	|K3悪杮			|PTX824懳墳


#ifndef __SMBMUSICAPSYNCSERVERPLAYERSTATEPLAY_H__
#include "SmbMusicAPSyncServerPlayerStatePlay.h"
#endif

#ifndef	__SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.h"
#endif	//  __SMBMUSICAPSYNCSERVERUTIL_H__

USING_NAMESPACE_SEMCJ


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

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

/**
 儕僗僩嵞惗姰椆僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::FinishPlayListNtfy(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
//  DEL-S PTX824 k3-sugimoto
//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

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

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

/**
 堦帪掆巭梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::Pause(TSmbMusicAPSyncServerPlayerState aState )
	{
	//堦帪掆巭梫媮偺嫟捠憖嶌
	TInt res = ComPause();
	if(KErrNone != res)
		{
		//僋儔僀傾儞僩偵墳摎傪曉偡
		iFunc.SendRes(res);

		//儘僌偼弌偟偲偒傑偟傚偆
		TInt log = EMusicAPSyncServerClassNumber5C | EMusicAPSyncServerLocationNumber03;
		_LIT(KServerPlayerStatePlay03, "SyncServerPlayerStatePlay::Pause [err = %d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStatePlay03, res);

		//僄儔乕側傜偽忬懺慗堏偼偟側偄
		return aState;
		}

	//  棙梡棜楌峏怴僇僂儞僞堦帪掆巭
	iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPause);

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

/**
 捠忢嵞惗奐巒壒柭摦僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::StartPlayRes(TSmbMusicAPSyncServerPlayerState aState)
	{
//  DEL-S PTX824 k3-sugimoto
//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.SendNotify(ESmbMusicAPSyncEngineChangePlaySong);

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

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

/**
 嬋憲傝梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::NextSong(TSmbMusicAPSyncServerPlayerState aState)
	{
	//儊僢僙乕僕傪搉偡
	iFunc.StackRequestMsg(iMsg);

	//嬋憲傝梫媮
	TInt val = iFunc.NextSong();

	//嬋憲傝梫媮偺栠傝抣偑僄儔乕偺応崌
	if (KErrNone != val)
		{
		//僋儔僀傾儞僩偵墳摎傪曉偡
		iFunc.SendRes(val);

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

//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞堦帪掆巭
	iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPause);
//  ADD-E PTX824 k3-sugimoto

	//嵞惗傊偺暅婣懸偪忬懺
	return ESmbMusicApSyncServerPlayerWaitPlay;
	}

/**
 嬋栠偟梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::PrevSong(TSmbMusicAPSyncServerPlayerState aState)
	{
	//儊僢僙乕僕傪搉偡
	iFunc.StackRequestMsg(iMsg);


	//嬋栠偟梫媮
	TInt val = iFunc.PrevSong();

	//嬋栠偟梫媮偺栠傝抣偑僄儔乕偺応崌
	if (KErrNone != val)
		{

		//僋儔僀傾儞僩偵墳摎傪曉偡
		iFunc.SendRes(val);

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

//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞堦帪掆巭
	iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPause);
//  ADD-E PTX824 k3-sugimoto

	//嵞惗傊偺暅婣懸偪忬懺
	return ESmbMusicApSyncServerPlayerWaitPlay;
	}

/**
 摢弌偟梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::SongHead(TSmbMusicAPSyncServerPlayerState aState)
	{
	//儊僢僙乕僕傪搉偡
	iFunc.StackRequestMsg(iMsg);

//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞堦帪掆巭
	//  摢弌偟帪偼偦傟傑偱嵞惗偟偨晹暘傪曐帩偡傞偨傔偵傕堦搙掆巭偝偣傞
	iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPause);
//  ADD-E PTX824 k3-sugimoto

	//摢弌偟梫媮
	TInt val = iFunc.SetSongHead();

	//摢弌偟梫媮偺栠傝抣偑僄儔乕偺応崌
	if (KErrNone != val)
		{
		//僋儔僀傾儞僩偵墳摎傪曉偡
		iFunc.SendRes(val);

//  ADD-S PTX824 k3-sugimoto
		//  棙梡棜楌峏怴僇僂儞僞僞僀儅奐巒
		//  掆巭偵懳偟偰偺Fail-Safe
		iFunc.ReportCounterStart();
//  ADD-E PTX824 k3-sugimoto

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

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

	//嵞惗傊偺暅婣懸偪忬懺
	return ESmbMusicApSyncServerPlayerWaitPlay;
	}

/**
 憗憲傝梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::PlayFF(TSmbMusicAPSyncServerPlayerState aState)
	{
	//儊僢僙乕僕傪搉偡
	iFunc.StackRequestMsg(iMsg);

	//憗憲傝梫媮
	TInt val = iFunc.PlayFF();

	//憗憲傝梫媮偺栠傝抣偑僄儔乕偺応崌
	if (KErrNone != val)
		{
		//儘僌偼弌偟偲偒傑偟傚偆
		TInt log = EMusicAPSyncServerClassNumber5C | EMusicAPSyncServerLocationNumber00;
		_LIT(KServerPlayerStatePlay00, "SyncServerPlayerStatePlay::PlayFF NG [%d][aState=%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStatePlay00, val, aState);

		//僋儔僀傾儞僩偵墳摎傪曉偡
		iFunc.SendRes(val);

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

//  ADD-S PTX824 k3-sugimoto
	val = iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPlayFF);
	if (val != KErrNone)
		{
		//  偲傝偁偊偢儘僌偩偗
		}
//  ADD-E PTX824 k3-sugimoto

	//FF奐巒捠抦懸偪忬懺
	return ESmbMusicApSyncServerPlayerWaitFF;
	}

/**
 憗栠偟梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::PlayFR(TSmbMusicAPSyncServerPlayerState aState)
	{
	//儊僢僙乕僕傪搉偡
	iFunc.StackRequestMsg(iMsg);

	//憗栠偟梫媮
	TInt val = iFunc.PlayFR();

	//憗栠偟梫媮偺栠傝抣偑僄儔乕偺応崌
	if (KErrNone != val)
		{
		//儘僌偼弌偟偲偒傑偟傚偆
		TInt log = EMusicAPSyncServerClassNumber5C | EMusicAPSyncServerLocationNumber01;
		_LIT(KServerPlayerStatePlay01, "SyncServerPlayerStatePlay::PlayFF NG [%d][aState=%d]");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStatePlay01, val, aState);

		//僋儔僀傾儞僩偵墳摎傪曉偡
		iFunc.SendRes(val);

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

//  ADD-S PTX824 k3-sugimoto
	val = iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPlayFR);
	if (val != KErrNone)
		{
		//  偲傝偁偊偢儘僌偩偗
		}
//  ADD-E PTX824 k3-sugimoto

	//FR奐巒捠抦懸偪忬懺
	return ESmbMusicApSyncServerPlayerWaitFR;
	}

/**
 嵞惗晄壜僼傽僀儖専弌僀儀儞僩
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::ErrSongNtfy(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
//  DEL-S PTX824 k3-sugimoto
//	//専嶕忣曬傪峏怴偡傞昁梫偑偁傞偐傪栤偄崌傢偣傞
//	TBool res = iFunc.CheckUpdataSearchCondition();
//	if(EFalse != res)
//		{
//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.SendNotify(ESmbMusicAPSyncEnginePlayFail);

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

/**
 壒埑儗儀儖傪庢摼偡傞
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::GetSound(TSmbMusicAPSyncServerPlayerState aState)
	{
	//壒埑儗儀儖庢摼偺嫟捠憖嶌
	ComGetSound();

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

/**
 儕僜乕僗夝曻梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::ReleaseRscReq(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
//  ADD-S PTX824 k3-sugimoto
	//  棙梡棜楌峏怴僇僂儞僞堦帪掆巭
	iFunc.ReportCounterPause(CSmbMusicAPLibReportCounter::EPause);
//  ADD-E PTX824 k3-sugimoto

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

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

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

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

/**
 嵞惗宱夁帪娫傪庢摼偡傞
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::GetPlayTime(TSmbMusicAPSyncServerPlayerState aState)
	{
	//嵞惗宱夁帪娫庢摼偺嫟捠憖嶌
	ComGetPlayTime();

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

/**
 壒埑儗儀儖儌乕僪傪愝掕偡傞乮壒埑儗儀儖庢摼奐巒乛廔椆乯
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::SetSoundLevelMode(TSmbMusicAPSyncServerPlayerState aState)
	{
	//儊僢僙乕僕傪搉偡
	iFunc.StackRequestMsg(iMsg);

	//壒埑儗儀儖庢摼儌乕僪傪愝掕偡傞
	TInt res = iFunc.SetSoundLevelMode(ESmbMusicAPSyncServerPlayerSetFromMsg);

	//僋儔僀傾儞僩偵墳摎傪曉偡
	iFunc.SendRes(res);

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


//  ADD-S PTX824 k3-sugimoto
/**
 *  梫儐乕僓妋擣捠抦(僌儗乕僗僺儕僆僪撪)
 *
 *  @param[in]	aState		嵞惗宯偺忬懺
 *
 *  @return	嵞惗宯偺忬懺
 **/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::ConfirmGracePriod(TSmbMusicAPSyncServerPlayerState /*aState*/)
	{
	//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩(Callback桳)
	iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);

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

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

/**
 *  梫儐乕僓妋擣捠抦(夞悢惂尷)
 *
 *  @param[in]	aState		嵞惗宯偺忬懺
 *
 *  @return	嵞惗宯偺忬懺
 **/
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStatePlay::ConfirmLimitCount(TSmbMusicAPSyncServerPlayerState /*aState*/)
	{
	//  棙梡棜楌峏怴僇僂儞僞儕僙僢僩(Callback桳)
	iFunc.ReportCounterReset(CSmbMusicAPLibReportCounter::EStart);

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

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


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

⌨️ 快捷键说明

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