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

📄 smbmusicapsyncservercontentsservicesearchfromlist.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 4 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerContentsServiceSearchFromList.cpp
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 僐儞僥儞僣僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/13	|SDNA 壀嶳		| 怴婯嶌惉
//2006/09/22	|K3悪杮			| 儘僌捛壛
//----PTX824----+---------------+----------------------------------------------
//2007/03/28	|K3悪杮			| [824iKeeper(TRK):811] 嵞惗嬋偲昞帵忣曬偑堦抳偟側偄栤戣偺懳墳
//2007/04/24	|K3悪杮			| WMA(MTP)僾儗僀儕僗僩懳墳


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICESEARCHFROMLIST_H__
#include "SmbMusicAPSyncServerContentsServiceSearchFromList.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSFUNC_H__
#include "SmbMusicAPSyncServerContentsFunc.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSFUNC_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__
#include "SmbMusicAPSyncServerContentsScreenTraceManager.h"
#endif

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

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSITEM_H__
#include "SmbMusicAPSyncServerContentsItem.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLISTFILTER_H__
#include "SmbMusicAPSyncServerContentsListFilter.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLISTPLSONG_H__
#include "SmbMusicAPSyncServerContentsListPLSong.h"
#endif

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

//  ADD-S  [824iKeeper(TRK):811] 嵞惗嬋偲昞帵忣曬偑堦抳偟側偄栤戣偺懳墳
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#include "SmbMusicAPSyncServerContentsManagerInterface.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSPLAYSONGINFOMANAGER_H__
#include "SmbMusicAPSyncServerContentsPlaySongInfoManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
#include "SmbMusicAPSyncServerContentsImageDataManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
//  ADD-E  [824iKeeper(TRK):811] 嵞惗嬋偲昞帵忣曬偑堦抳偟側偄栤戣偺懳墳


USING_NAMESPACE_SEMCJ

/**
 僐儞僗僩儔僋僞
 * @param [in]		aRlog				RLog偺嶲徠
 * @param [in]		aModel				儌僨儖僋儔僗偺嶲徠
 * @param [in]		aFunc				僒乕價僗姰椆捠抦愭僋儔僗偺嶲徠
 * @param [in]		aObserver			僐儞僥儞僣僼傽儞僋儔僗偺嶲徠
 * @param [in]		aManagerInterface	奺儅僱乕僕儍傪娗棟偡傞僋儔僗偺嶲徠
 * @param [in]		aScreenData			夋柺慗堏僨乕僞娗棟僋儔僗偺嶲徠
 * @param [in,out]	aRMessage			RMessage偺億僀儞僞
 * @return								側偟
 */
CSmbMusicAPSyncServerContentsServiceSearchFromList::CSmbMusicAPSyncServerContentsServiceSearchFromList( DCM_NAMESPACE::RLog&								aRlog,
																										CSmbMusicAPSyncServerModel& 						aModel,
																										MSmbMusicAPSyncServerContentsAsyncObserver&			aObserver,
																										CSmbMusicAPSyncServerContentsFunc&					aFunc,
																									 	MSmbMusicAPSyncServerContentsManagerInterface& 		aManagerInterface,
																										CSmbMusicAPSyncServerContentsScreenTraceManager&	aScreenData,
																										const RMessage2& 									aRMessage)
	:CSmbMusicAPSyncServerContentsServiceBase(aRlog,aModel,aObserver,aFunc,aManagerInterface,aScreenData,aRMessage),
	iServiceState(ESmbMusicAPSyncServerContentsServiceSearchFromListState_Init)
	{
	iDispString = KNullDesC;
	}


/**
 僨僗僩儔僋僞
 * @param	側偟
 * @return	側偟
 */
CSmbMusicAPSyncServerContentsServiceSearchFromList::~CSmbMusicAPSyncServerContentsServiceSearchFromList()
	{
	if (IsActive() != EFalse)
		{
		CancelService();
		}
	// 擮偺偨傔丄僉儍儞僙儖偵偰Complete偡傞
	CompleteErr(KErrCancel);

	delete iTempListItem;
	iTempListItem = 0;
	delete iTempArray;
	iTempArray = 0;
	delete iTempSearchInfo;
	iTempSearchInfo = 0;
	delete iTempSearchCondition;
	iTempSearchCondition = 0;
	delete iTempSortCondition;
	iTempSortCondition = 0;
	}


/**
 僒乕價僗傪奐巒偡傞
 * @param	側偟
 * @return	僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromList::StartServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsServiceSearchFromList00, "SyncServerContentsServiceSearchFromList::StartServiceL() ");
	SmbMusicAPSyncServerLog(iRLog,
							(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber00),
							ELogLevelLowest,
							KContentsServiceSearchFromList00,
							iParamListHandle);
#endif
	if(ESmbMusicAPSyncServerContentsServiceSearchFromListState_Init == iServiceState)
		{
		// 僷儔儊乕僞傪撉傒崬傓
		if(EFalse != LoadParam())
			{
			// 僴儞僪儖偐傜儕僗僩傪庢摼偡傞
			CSmbMusicAPSyncServerContentsList* list = iScreenData.GetList(iParamListHandle);

			if(list)
				{
				iPrevList = list;

				// 儕僗僩傪惗惉偡傞
				return CreateListL();
				}
			else
				{
				_LIT(KContentsServiceSearchFromList01, "SyncServerContentsServiceSearchFromList::StartServiceL() List Not Found  Handle:0x%08x");
				SmbMusicAPSyncServerLog(iRLog,
										(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber01),
										ELogLevelHigh,
										KContentsServiceSearchFromList01,
										iParamListHandle);

				// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
				CompleteErr(KErrArgument);
				return ESmbMusicAPSyncServerContetnsServiceStateErr;
				}
			}
		else
			{
			// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
			CompleteErr(KErrArgument);
			return ESmbMusicAPSyncServerContetnsServiceStateErr;
			}
		}
	else
		{
		_LIT(KContentsServiceSearchFromList02, "SyncServerContentsServiceSearchFromList::StartServiceL() Invalid State %d");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber02),
								ELogLevelHigh,
								KContentsServiceSearchFromList02,
								iServiceState);

		// 僒乕價僗幐攕偵偰姰椆偡傞
		CompleteErr();
		return ESmbMusicAPSyncServerContetnsServiceStateErr;
		}
	}


/**
 旕摨婜墳摎偐傜僒乕價僗傪宲懕偡傞
 * @param	側偟
 * @return	僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromList::ContinueServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsServiceSearchFromList03, "SyncServerContentsServiceSearchFromList::ContinueServiceL() state:%d");
	SmbMusicAPSyncServerLog(iRLog,
							(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber03),
							ELogLevelLowest,
							KContentsServiceSearchFromList03,
							iServiceState);
#endif

	TSmbMusicAPSyncServerContentsServiceState ret = ESmbMusicAPSyncServerContetnsServiceStateErr;

	switch(iServiceState)
		{
	case ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitItem_Meta:		// 僒乕價僗儊僞傾僀僥儉庢摼懸偪忬懺
		ret = ContinueServiceWaitItemMetaL();
		break;

	case ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitItem_Song:		// 僒乕價僗嬋傾僀僥儉庢摼懸偪忬懺
		ret = ContinueServiceWaitItemSongL();
		break;

	case ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitItem_PLSong:	// 僒乕價僗PL嬋傾僀僥儉庢摼懸偪忬懺
		ret = ContinueServiceWaitItemPLSongL();
		break;

	case ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitList_Meta:		// 僒乕價僗儊僞儕僗僩庢摼懸偪忬懺
	case ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitList_Song:		// 僒乕價僗嬋儕僗僩庢摼懸偪忬懺
		ret = ContinueServiceWaitListMetaAndSongL();
		break;

	case ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitList_PLSong:	// 僒乕價僗PL嬋儕僗僩庢摼懸偪忬懺
		ret = ContinueServiceWaitListPLSongL();
		break;

	default:
		_LIT(KContentsServiceSearchFromList04, "SyncServerContentsServiceSearchFromList::ContinueServiceL() Invalid State %d");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber04),
								ELogLevelHigh,
								KContentsServiceSearchFromList04,
								iServiceState);

		// 僒乕價僗幐攕偵偰姰椆偡傞
		CompleteErr();
		ret = ESmbMusicAPSyncServerContetnsServiceStateErr;
		break;
		}

	return ret;
	}


/**
 旕摨婜墳摎偐傜僒乕價僗傪宲懕偡傞(儊僞儕僗僩 傾僀僥儉懸偪忬懺)
 * @param	側偟
 * @return	僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromList::ContinueServiceWaitItemMetaL()
	{
	TSmbMusicAPSyncServerContentsServiceState ret = ESmbMusicAPSyncServerContetnsServiceStateErr;

	CSmbMusicMWLibMusicItem* item = iTempArray->GetMusicItemL(0);

	if(item)
		{
		CleanupStack::PushL(item);

		// 昞帵暥帤楍傪庢摼偡傞
		const TSmbMusicMWLibCommonInfo* commonInfo = item->CommonInformation();
		if(commonInfo)
			{
			iDispString = commonInfo->iDispString;

			// 儊僞儕僗僩傪惗惉偡傞
			ret = CreateMetaListL(*iPrevList);
			}
		else
			{
			_LIT(KContentsServiceSearchFromList05, "SyncServerContentsServiceSearchFromList::ContinueServiceWaitItemMetaL() CommonInformation() Err");
			SmbMusicAPSyncServerLog(iRLog,
									(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber05),
									ELogLevelHigh,
									KContentsServiceSearchFromList05);

			// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
			CompleteErr(KErrNotReady);
			ret = ESmbMusicAPSyncServerContetnsServiceStateErr;
			}

		CleanupStack::Pop(item);
		delete item;
		item = 0;

		}
	else
		{
		_LIT(KContentsServiceSearchFromList06, "SyncServerContentsServiceSearchFromList::ContinueServiceWaitItemMetaL() GetMusicItemL() Err");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber06),
								ELogLevelHigh,
								KContentsServiceSearchFromList06);

		// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
		CompleteErr(KErrArgument);
		ret = ESmbMusicAPSyncServerContetnsServiceStateErr;
		}

	return ret;
	}


/**
 旕摨婜墳摎偐傜僒乕價僗傪宲懕偡傞(嬋儕僗僩 傾僀僥儉懸偪忬懺)
 * @param	側偟
 * @return	僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromList::ContinueServiceWaitItemSongL()
	{
	TSmbMusicAPSyncServerContentsServiceState ret = ESmbMusicAPSyncServerContetnsServiceStateErr;

	CSmbMusicMWLibMusicItem* item = iTempArray->GetMusicItemL(0);

	if(item)
		{
		CleanupStack::PushL(item);

		// 昞帵暥帤楍傪庢摼偡傞
		const TSmbMusicMWLibCommonInfo* commonInfo = item->CommonInformation();
		if(commonInfo)
			{
			iDispString = commonInfo->iDispString;

			// 嬋儕僗僩傪惗惉偡傞
			ret = CreateSongListL(*iPrevList);
			}
		else
			{
			_LIT(KContentsServiceSearchFromList07, "SyncServerContentsServiceSearchFromList::ContinueServiceWaitItemSongL() CommonInformation() Err");
			SmbMusicAPSyncServerLog(iRLog,
									(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber07),
									ELogLevelHigh,
									KContentsServiceSearchFromList07);

			// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
			CompleteErr(KErrNotReady);
			ret = ESmbMusicAPSyncServerContetnsServiceStateErr;
			}

		CleanupStack::Pop(item);
		delete item;
		item = 0;

		}
	else
		{
		_LIT(KContentsServiceSearchFromList08, "SyncServerContentsServiceSearchFromList::ContinueServiceWaitItemSongL() GetMusicItemL() Err");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber08),
								ELogLevelHigh,
								KContentsServiceSearchFromList08);

		// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
		CompleteErr(KErrArgument);
		ret = ESmbMusicAPSyncServerContetnsServiceStateErr;
		}

	return ret;
	}


/**
 旕摨婜墳摎偐傜僒乕價僗傪宲懕偡傞(僾儗僀儕僗僩 嬋傾僀僥儉懸偪忬懺)
 * @param	側偟

⌨️ 快捷键说明

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