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

📄 smbmusicapsyncserverplayerstateidel.cpp

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