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

📄 smbmusicapsyncservercontentsscreentrace.cpp

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


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACE_H__
#include "SmbMusicAPSyncServerContentsScreenTrace.h"
#endif

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


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__
#include "SmbMusicAPSyncServerContentsList.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLISTHANDLE_H__
#include "SmbMusicAPSyncServerContentsListHandle.h"
#endif

USING_NAMESPACE_SEMCJ


/**
 僐儞僗僩儔僋僞
 * @param [in/out/in,out]	aLog	RLog偺嶲徠
 * @return							側偟
 */
CSmbMusicAPSyncServerContentsScreenTrace::CSmbMusicAPSyncServerContentsScreenTrace(DCM_NAMESPACE::RLog& aLog)
	:iLog(aLog)
	{
	}


/**
 僨僗僩儔僋僞
 * @param	側偟
 * @return	側偟
 */
CSmbMusicAPSyncServerContentsScreenTrace::~CSmbMusicAPSyncServerContentsScreenTrace()
	{
	Reset();

	iListArray.Close();
	}


/**
 撪晹傪弶婜壔偡傞丅
 * @param	側偟
 * @return	側偟
 */
void CSmbMusicAPSyncServerContentsScreenTrace::Reset()
	{
	iListArray.ResetAndDestroy();
	}


/**
 儕僗僩傪庢摼偡傞
 * @param [in]	aListHandle		儕僗僩僴儞僪儖
 * @return						儕僗僩僋儔僗偺億僀儞僞乮強桳尃傪堏忳偟側偄乯
 */
CSmbMusicAPSyncServerContentsList* CSmbMusicAPSyncServerContentsScreenTrace::GetList(TInt aListHandle)
	{
	TInt count = iListArray.Count();

	// 強帩偟偰偄傞儕僗僩僴儞僪儖僋儔僗偐傜丄奩摉偺儕僗僩傪専嶕偡傞丅
	for(TInt i=0; i<count; i++)
		{
		CSmbMusicAPSyncServerContentsList& list = iListArray[i]->GetList();

		if(list.GetListHandle() == aListHandle)
			{
			return &list;
			}
		}

		return 0;
	}


/**
 儕僗僩傪庢摼偡傞
 * @param [in]	aListHandle		儕僗僩僴儞僪儖
 * @param [in]	aIndex			僀儞僨僢僋僗傪奿擺偡傞曄悢偺嶲徠
 * @return						儕僗僩僋儔僗偺億僀儞僞乮強桳尃傪堏忳偟側偄乯
 */
CSmbMusicAPSyncServerContentsList* CSmbMusicAPSyncServerContentsScreenTrace::GetList(TInt aListHandle, TInt& aSelectedIndex)
	{
	aSelectedIndex = KSmbMusicAPSyncEngineNoActiveFocusVal;

	TInt count = iListArray.Count();

	// 強帩偟偰偄傞儕僗僩僴儞僪儖僋儔僗偐傜丄奩摉偺儕僗僩傪専嶕偡傞丅
	for(TInt i=0; i<count; i++)
		{
		CSmbMusicAPSyncServerContentsList& list = iListArray[i]->GetList();

		if(list.GetListHandle() == aListHandle)
			{
			aSelectedIndex = iListArray[i]->GetIndex();

			return &list;
			}
		}

		return 0;
	}


/**
 巜掕偝傟偨儕僗僩偺慜偺儕僗僩傪庢摼偡傞
 * @param [in]	aListHandle		儕僗僩僴儞僪儖
 * @param [in]	aIndex			僀儞僨僢僋僗傪奿擺偡傞曄悢偺嶲徠
 * @return						儕僗僩僋儔僗偺億僀儞僞乮強桳尃傪堏忳偟側偄乯
 */
CSmbMusicAPSyncServerContentsList* CSmbMusicAPSyncServerContentsScreenTrace::GetPrevList(TInt aListHandle, TInt& aSelectedIndex)
	{
	aSelectedIndex = KSmbMusicAPSyncEngineNoActiveFocusVal;

	TInt count = iListArray.Count();

	for(TInt i=1; i<count; i++)		// 愭摢偺儕僗僩偵偼丄偦偺慜偺儕僗僩偑柍偄偺偱僠僃僢僋懳徾奜偲偡傞
		{
		CSmbMusicAPSyncServerContentsList& list = iListArray[i]->GetList();

		if(list.GetListHandle() == aListHandle)
			{
			aSelectedIndex = iListArray[i-1]->GetIndex();

			// 僴儞僪儖偑堦抳偟偨儕僗僩偺慜偺儕僗僩偺億僀儞僞傪曉偡
			CSmbMusicAPSyncServerContentsList& prevList = iListArray[i-1]->GetList();
			return &prevList;
			}
		}

		return 0;
	}


/**
 嵟屻偺儕僗僩傪庢摼偡傞
 * @param [in]	aListHandle		儕僗僩僴儞僪儖
 * @param [in]	aIndex			僀儞僨僢僋僗傪奿擺偡傞曄悢偺嶲徠
 * @return						儕僗僩僋儔僗偺億僀儞僞乮強桳尃傪堏忳偟側偄乯
 */
CSmbMusicAPSyncServerContentsList* CSmbMusicAPSyncServerContentsScreenTrace::GetLastList()
	{
	TInt count = iListArray.Count();

	if(0 < count)
		{
		CSmbMusicAPSyncServerContentsList& list = iListArray[count-1]->GetList();
		return &list;
		}
	else
		{
		return 0;
		}
	}


/**
 愭摢偵儕僗僩傪愝掕偡傞
 * @param [in]	aContentsList	儕僗僩僋儔僗偺億僀儞僞
 * @return						側偟
 */
void CSmbMusicAPSyncServerContentsScreenTrace::SetTopList(CSmbMusicAPSyncServerContentsList* aList)
	{
	Reset();

	if(0 == aList)
		{
		_LIT(KContentsScreenTrace00, "SyncServerContentsScreenTrace::SetTopList() aList is Null");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber00),
								ELogLevelHigh,
								KContentsScreenTrace00);
		return;
		}

	CSmbMusicAPSyncServerContentsListHandle* handle = 0;
	TRAPD(err, handle = new(ELeave)CSmbMusicAPSyncServerContentsListHandle(iLog, aList););
	if(KErrNone != err)
		{
		_LIT(KContentsScreenTrace01, "SyncServerContentsScreenTrace::SetTopList() new(ELeave) Leave %d");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber01),
								ELogLevelHighest,
								KContentsScreenTrace01,
								err);
		ASSERT(EFalse);
		}

	TInt result = iListArray.Append(handle);
	if(KErrNone != result)
		{
		_LIT(KContentsScreenTrace02, "SyncServerContentsScreenTrace::SetTopList() iListArray.Append() Err %d");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber02),
								ELogLevelHigh,
								KContentsScreenTrace02,
								result);

		delete handle;
		handle = 0;
		}
	}


/**
 巜掕偟偨儕僗僩偺師偵儕僗僩傪愝掕偡傞
 * @param [in]	aPrevListHandle		堦偮慜偺儕僗僩偺僴儞僪儖
 * @param [in]	aIndex				堦偮慜偺儕僗僩偱偺僀儞僨僢僋僗
 * @param [in]	aContentsList		儕僗僩僋儔僗偺億僀儞僞
 * @return							儕僗僩愝掕偺惉斲
 */
TBool CSmbMusicAPSyncServerContentsScreenTrace::SetList(TInt aPrevListHandle, TInt aIndex, CSmbMusicAPSyncServerContentsList* aList)
	{

	if(0 == aList)
		{
		_LIT(KContentsScreenTrace03, "SyncServerContentsScreenTrace::SetList() aList is Null");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber03),
								ELogLevelHigh,
								KContentsScreenTrace03);
		return EFalse;
		}

	TInt count = iListArray.Count();

	for(TInt i=0; i<count; i++)
		{
		CSmbMusicAPSyncServerContentsList& list = iListArray[i]->GetList();

		if(list.GetListHandle() == aPrevListHandle)
			{
			// 僴儞僪儖偑堦抳偟偨儕僗僩埲崀偺儕僗僩偼攋婞偡傞
			DeleteListToEnd(i+1);

			// 慖戰偝傟偨僀儞僨僢僋僗傪曐懚偡傞
			iListArray[i]->SetSelectedIndex(aIndex);

			CSmbMusicAPSyncServerContentsListHandle* handle = 0;
			TRAPD(err,  handle = new(ELeave)CSmbMusicAPSyncServerContentsListHandle(iLog, aList););
			if(KErrNone != err)
				{
				_LIT(KContentsScreenTrace04, "SyncServerContentsScreenTrace::SetList(TInt,TInt,CSmbMusicAPSyncServerContentsList*) new(ELeave) Leave %d");
				SmbMusicAPSyncServerLog(iLog,
										(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber04),
										ELogLevelHighest,
										KContentsScreenTrace04,
										err);
				ASSERT(EFalse);
				}

			aList = 0;

			TInt result = iListArray.Append(handle);
			if(KErrNone == result)
				{
				return ETrue;
				}
			else
				{
				_LIT(KContentsScreenTrace05, "SyncServerContentsScreenTrace::SetList(TInt,TInt,CSmbMusicAPSyncServerContentsList*) iListArray.Append() Err %d");
				SmbMusicAPSyncServerLog(iLog,
										(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber05),
										ELogLevelHigh,
										KContentsScreenTrace05,
										result);

				delete handle;
				handle = 0;
				return EFalse;
				}
			}
		}

	_LIT(KContentsScreenTrace06, "SyncServerContentsScreenTrace::SetList(TInt,TInt,CSmbMusicAPSyncServerContentsList*) PrevList Not Found 0x%08x");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber06),
							ELogLevelHigh,
							KContentsScreenTrace06,
							aPrevListHandle);
	delete aList;
	aList = 0;

	return EFalse;
	}


/**
 儕僗僩傪愝掕偡傞
 * @param [in]	aListHandleClass	儕僗僩僴儞僪儖僋儔僗偺億僀儞僞
 * @return							側偟
 */
void CSmbMusicAPSyncServerContentsScreenTrace::SetList(CSmbMusicAPSyncServerContentsListHandle* aListHandleClass)
	{
	if(0 == aListHandleClass)
		{
		_LIT(KContentsScreenTrace07, "SyncServerContentsScreenTrace::SetList() aListHandleClass is Null");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber07),
								ELogLevelHigh,
								KContentsScreenTrace07);
		return;
		}

	TInt result = iListArray.Append(aListHandleClass);
	if(KErrNone != result)
		{
		_LIT(KContentsScreenTrace08, "SyncServerContentsScreenTrace::SetList(CSmbMusicAPSyncServerContentsListHandle*) iListArray.Append() Err %d");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber08),
								ELogLevelHigh,
								KContentsScreenTrace08,
								result);

		delete aListHandleClass;
		aListHandleClass = 0;
		}
	}


/**
 専嶕忦審偑堦抳偡傞儕僗僩傪扵偡
 * @param [in]	aPrevListHandle	堦偮慜偺儕僗僩偺僴儞僪儖
 * @param [in]	aPrevIndex		堦偮慜偺儕僗僩偱偺僀儞僨僢僋僗
 * @return
 */
CSmbMusicAPSyncServerContentsList* CSmbMusicAPSyncServerContentsScreenTrace::SearchList(TInt aPrevListHandle, TInt aPrevIndex)
	{
	TInt count = iListArray.Count();

	// 強帩偟偰偄傞儕僗僩僴儞僪儖僋儔僗偐傜丄奩摉偺儕僗僩傪専嶕偡傞丅(嵟屻偼僠僃僢僋傪峴傢側偄)
	for(TInt i=0; i<count-1; i++)
		{
		CSmbMusicAPSyncServerContentsList& prevList = iListArray[i]->GetList();

		if(prevList.GetListHandle() == aPrevListHandle && iListArray[i]->GetIndex() == aPrevIndex)
			{

			// 師偺儕僗僩傪曉偡
			CSmbMusicAPSyncServerContentsList& list = iListArray[i+1]->GetList();
			return &list;
			}
		}

	return 0;
	}


/**
 巜掕儕僗僩傑偱偺暋惢傪嶌惉偡傞
 * @param [in]	aCopy		僐僺乕傪嶌惉偡傞夋柺慗堏僋儔僗偺嶲徠
 * @param [in]	aListHandle	儕僗僩僴儞僪儖
 * @return					僐僺乕偺惉斲
 */
TBool CSmbMusicAPSyncServerContentsScreenTrace::Copy(CSmbMusicAPSyncServerContentsScreenTrace& aCopy, TInt aListHandle)
	{

	if(this == &aCopy)
		{
		// 巜掕偝傟偨僐僺乕愭偑帺暘偱偁偭偨応崌
		_LIT(KContentsScreenTrace09, "SyncServerContentsScreenTrace::Copy() aCopy == this");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber09),
								ELogLevelHigh,
								KContentsScreenTrace09);

		return EFalse;
		}

	// 巜掕偝傟偨慡偰偺儕僗僩僴儞僪儖僋儔僗偺僐僺乕傪嶌惉偟丄怴偟偄儕僗僩僴儞僪儖僋儔僗偵愝掕偡傞
	aCopy.Reset();
	TInt count = iListArray.Count();
	for(TInt i=0; i<count; i++)
		{
		CSmbMusicAPSyncServerContentsListHandle* handle = iListArray[i]->Duplicate();
		aCopy.SetList(handle);

		CSmbMusicAPSyncServerContentsList& list = iListArray[i]->GetList();
		if(list.GetListHandle()  == aListHandle )
			{
			return ETrue;
			}
		}

	//嵟屻傑偱巜掕偺儕僗僩偑尒偮偐傜側偐偭偨応崌丄儘僌傪弌椡偡傞
	_LIT(KContentsScreenTrace10, "SyncServerContentsScreenTrace::Copy() List Not Found  Handle:0x%08x Count:%d");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber10),
							ELogLevelHigh,
							KContentsScreenTrace10,
							aListHandle,
							count);

	aCopy.Reset();
	return EFalse;
	}


/**
 暋惢傪嶌惉偡傞
 * @param [in]	aCopy		僐僺乕傪嶌惉偡傞夋柺慗堏僋儔僗偺嶲徠
 * @return					僐僺乕偺惉斲
 */
TBool CSmbMusicAPSyncServerContentsScreenTrace::Copy(CSmbMusicAPSyncServerContentsScreenTrace& aCopy)
	{

	if(this == &aCopy)
		{
		// 巜掕偝傟偨僐僺乕愭偑帺暘偱偁偭偨応崌
		_LIT(KContentsScreenTrace11, "SyncServerContentsScreenTrace::Copy() aCopy == this");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber11),
								ELogLevelHigh,
								KContentsScreenTrace11);

		return EFalse;
		}

	// 慡偰偺儕僗僩僴儞僪儖僋儔僗偺僐僺乕傪嶌惉偟丄怴偟偄儕僗僩僴儞僪儖僋儔僗偵愝掕偡傞
	aCopy.Reset();
	TInt count = iListArray.Count();
	for(TInt i=0; i<count; i++)
		{
		CSmbMusicAPSyncServerContentsListHandle* handle = iListArray[i]->Duplicate();
		aCopy.SetList(handle);
		}

	return ETrue;
	}


/**
 慡儕僗僩偺傾僀僥儉忣曬傪慡偰攋婞偡傞
 * @param 	側偟
 * @return	側偟
 */
void CSmbMusicAPSyncServerContentsScreenTrace::DeleteAllItem()
	{
	TInt count = iListArray.Count();

	for(TInt i=0; i<count; i++)
		{
		CSmbMusicAPSyncServerContentsList& list = iListArray[i]->GetList();

		list.DeleteAllItem();
		}
	}


/**
 巜掕偝傟偨僀儞僨僢僋僗埲崀偺儕僗僩傪嶍彍偡傞
 * @param [in]	aIndexArray	嶍彍偡傞愭摢儕僗僩偺攝楍僀儞僨僢僋僗
 * @return					側偟
 */
void CSmbMusicAPSyncServerContentsScreenTrace::DeleteListToEnd(TInt aIndexArray)
	{
	TInt count = iListArray.Count();

	if(0 > aIndexArray || count < aIndexArray)
		{
		_LIT(KContentsScreenTrace12, "SyncServerContentsScreenTrace::DeleteListToEnd() count:%d < aIndexArray:%d");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsScreenTrace|EMusicAPSyncServerLocationNumber12),
								ELogLevelHigh,
								KContentsScreenTrace12,
								count,
								aIndexArray);
		return;
		}

	for(TInt i=aIndexArray; i<count; i++)
		{
		CSmbMusicAPSyncServerContentsListHandle* handle = iListArray[aIndexArray];
		iListArray.Remove(aIndexArray);
		delete handle;
		handle = 0;
		}
	}



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


⌨️ 快捷键说明

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