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

📄 smbmusicapsyncserverplayerstatesuswaitcnt.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerPlayerStateSusPlayWaitCnt.cpp
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/09	|娵壀			|怴婯嶌惉
//2006/08/25	|暯壀			|TRK6763懳墳
//----PTX824----+---------------+--------------------------------------
//2007/06/08	|K3悪杮			|[824iKeeper(TRK):604] 僒僗儁儞僪帪偺嵞惗忣曬堎忢栤戣偺懳張
//2007/06/08	|K3悪杮			|PTX825懳墳(Mute愝掕)
//2007/06/14	|K3悪杮			|PTX825懳墳(壒検愝掕)
//2007/09/05	|K3悪杮			|[D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳


#ifndef __SMBMUSICAPSYNCSERVERPLAYERSTATESUSWAITCNT_H__
#include "SmbMusicAPSyncServerPlayerStateSusWaitCnt.h"
#endif

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

USING_NAMESPACE_SEMCJ

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

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

/**
 嵞惗僐儞僥僉僗僩墳摎
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateSusWaitCnt::SetContextRes(TSmbMusicAPSyncServerPlayerState aState)
	{
	TSmbMusicAPSyncServerPlayerState state = aState;

//TRK6763懳墳	Start
	//GetPlayContext偵傛傝嬋ID傪庢摼偡傞
	iFunc.GetResume(ESmbMusicAPSyncServerPlayerNotResumeStackLocalFromPlayer);
//TRK6763懳墳	End

	//僒僗儁儞僪拞偵嵞惗梫媮傪庴怣屻丄嵞惗僐儞僥僉僗僩墳摎懸偪忬懺偺応崌
	if (ESmbMusicApSyncServerPlayerSusPlayWaitCnt == aState)
		{
		//BG儕僜乕僗庢摼梫媮
		TRAPD(err, iFunc.GetResourceL(ESmbMusicAPSyncServerPlayerBGRsc));
		//儕僜乕僗庢摼梫媮偑幐攕偟偨応崌丄Idle忬懺傊
		if (KErrNone != err)
			{
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber5F | EMusicAPSyncServerLocationNumber00;
			_LIT(KServerPlayerStateSusWaitCnt00, "SyncServerPlayerStateSusWaitCnt::SetContextRes Leave in GetResourceL() [%d] [aState=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStateSusWaitCnt00, err, aState);

			//墳摎敪峴
			iFunc.SendRes(KErrInUse);

			//Idle忬懺
			return ESmbMusicAPSyncServerPlayerIdle;
			}

//  ADD-S  [824iKeeper(TRK):604] 僒僗儁儞僪帪偺嵞惗忣曬堎忢栤戣偺懳張
//  DEL-S PTX825懳墳(Mute愝掕)
//  BG儕僜乕僗庢摼屻偵峴偆偙偲偲偡傞
//		//僆乕僨傿僆偺弌椡忬懺傪挷傋傞
//		iFunc.CheckLineOut();
//  DEL-E PTX825懳墳(Mute愝掕)
//  ADD-E  [824iKeeper(TRK):604] 僒僗儁儞僪帪偺嵞惗忣曬堎忢栤戣偺懳張

		//BG儕僜乕僗懸偪
		state = ESmbMusicApSyncServerPlayerWaitBGRsc;
		}
	else
		{
		TInt val = KErrNone;

		switch(aState)
			{
		//僒僗儁儞僪拞偵嵞惗弨旛梫媮傪庴怣丄嵞惗僐儞僥僉僗僩墳摎懸偪忬懺偺応崌
		case ESmbMusicApSyncServerPlayerSusPrePlayWaitCnt:
			//壗傕偟傑偣傫
			break;

		//僒僗儁儞僪拞偵嬋憲傝梫媮傪庴怣屻丄嵞惗僐儞僥僉僗僩墳摎懸偪忬懺偺応崌
		case ESmbMusicApSyncServerPlayerSusNextWaitCnt:
			val = iFunc.NextSong();
			break;

		//僒僗儁儞僪拞偵嬋栠偟梫媮傪庴怣屻丄嵞惗僐儞僥僉僗僩墳摎懸偪忬懺偺応崌
		case ESmbMusicApSyncServerPlayerSusPrevWaitCnt:
			val = iFunc.PrevSong();
			break;

		//僒僗儁儞僪拞偵摢偩偟梫媮傪庴怣屻丄嵞惗僐儞僥僉僗僩墳摎懸偪忬懺偺応崌
		case ESmbMusicApSyncServerPlayerSusHeadWaitCnt:
			val = iFunc.SetSongHead();
			break;

		default:
			//偙偙偵偼偙側偄偼偢
			//儘僌弌椡
			TInt log = EMusicAPSyncServerClassNumber5F | EMusicAPSyncServerLocationNumber01;
			_LIT(KServerPlayerStateSusWaitCnt01, "SyncServerPlayerStateSusWaitCnt::SetContextRes default [aState=%d]");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KServerPlayerStateSusWaitCnt01, aState);

			val = KErrUnknown;
			break;
			}

		//墳摎敪峴
		iFunc.SendRes(val);

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

	return state;
	}

/**
 堦帪掆巭梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateSusWaitCnt::Pause(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
	//堦帪掆巭梫媮偺嫟捠憖嶌
	ComPauseReleaseRsc();

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

//  MODIFY-S  [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳
/**
 儕僜乕僗夝曻梫媮
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateSusWaitCnt::ReleaseRscReq(TSmbMusicAPSyncServerPlayerState aState)
	{
	//僐儞僥僉僗僩愝掕傪拞巭偡傞
	iFunc.CancelSetContext();

	//慡儕僜乕僗夝曻梫媮偺嫟捠憖嶌(慡儕僜乕僗庢摼偺僉儍儞僙儖偲僋儔僀傾儞僩傊偺墳摎)
	ComReleaseAllRscReq(ETrue);

	if (aState == ESmbMusicApSyncServerPlayerSusPlayWaitCnt)
		{	//  嵞惗奐巒懸偪忬懺偺応崌
		//  僆乕僩儗僕儏乕儉嵞惗拞偺応崌偼嵞搙僆乕僩儗僕儏乕儉懳徾偲偡傞
		TInt result(KErrNone);
		TRAPD(error, result = iFunc.StartRscReleaseNotifyForARPL(););
		if ((error != KErrNone) || (result != KErrNone))
			{
			//  僆乕僩儗僕儏乕儉偱偒側偄儘僌
			TInt log = EMusicAPSyncServerClassNumber5F | EMusicAPSyncServerLocationNumber02;
			_LIT(KServerPlayerStateSusWaitCnt02, "CSmbMusicAPSyncServerPlayerStateSusWaitCnt::ReleaseRscReq StartRscReleaseNotifyForARPL is Error(r:%d, e:%d)");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KServerPlayerStateSusWaitCnt02, result, error);
			}
		}

	//僒僗儁儞僪忬懺
	return ESmbMusicApSyncServerPlayerSuspend;
	}
//  MODIFY-E  [D_82400013264,D_82400013431]僆乕僩儗僕儏乕儉帪偺嵞惗僼儔僌懳墳

/**
 壒検愝掕傪峴偆
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateSusWaitCnt::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 CSmbMusicAPSyncServerPlayerStateSusWaitCnt::AppEnd(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
	//墳摎傪敪峴偡傞
	iFunc.SendRes(KErrNone);

	//僐儞僥僉僗僩愝掕傪拞巭偡傞
	iFunc.CancelSetContext();

	//傾僾儕廔椆捠抦偺嫟捠憖嶌(慡偰偺儕僜乕僗偺夝曻偲傾僾儕廔椆捠抦)
	ComAppEnd();

	//傾僾儕廔椆忬懺
	return ESmbMusicApSyncServerPlayerAppEnd;
	}

/**
 奜晹儊儌儕偺忬懺曄峏捠抦
 * @param [in]	aState		嵞惗宯偺忬懺
 * @return	嵞惗宯偺忬懺
 */
TSmbMusicAPSyncServerPlayerState CSmbMusicAPSyncServerPlayerStateSusWaitCnt::ChangeExtMem(TSmbMusicAPSyncServerPlayerState /* aState */)
	{
	//墳摎敪峴
	iFunc.SendRes(KErrCancel);

	//僐儞僥僉僗僩愝掕傪拞巭偡傞
	iFunc.CancelSetContext();

	//儕僜乕僗夝曻偍傛傃儗僕儏乕儉攋婞
	ComChangeExtMem();

	//弶婜忬懺傊慗堏
	return ESmbMusicAPSyncServerPlayerInit;
	}

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

⌨️ 快捷键说明

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