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

📄 smbmusicapsyncservercontentsservicesearchfromtop.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerContentsServiceSearchFromTop.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 __SMBMUSICAPSYNCSERVERCONTENTSSERVICESEARCHFROMTOP_H__
#include "SmbMusicAPSyncServerContentsServiceSearchFromTop.h"
#endif

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

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__
#include "SmbMusicAPSyncServerContentsAsyncObserver.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__

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

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#include "SmbMusicAPSyncServerContentsManagerInterface.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__

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

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

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLISTFILTERTOP_H__
#include "SmbMusicAPSyncServerContentsListFilterTop.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSLISTFILTERTOP_H__

//  ADD-S [824iKeeper(TRK):811] 嵞惗嬋偲昞帵忣曬偑堦抳偟側偄栤戣偺懳墳
#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]		aObserver			僒乕價僗姰椆捠抦愭僋儔僗偺嶲徠
 * @param [in]		aFunc				僐儞僥儞僣僼傽儞僋儔僗偺嶲徠
 * @param [in]		aManagerInterface	奺儅僱乕僕儍傪娗棟偡傞僋儔僗偺嶲徠
 * @param [in]		aScreenData			夋柺慗堏僨乕僞娗棟僋儔僗偺嶲徠
 * @param [in,out]	aRMessage			RMessage偺億僀儞僞
 * @return								側偟
 */
CSmbMusicAPSyncServerContentsServiceSearchFromTop::CSmbMusicAPSyncServerContentsServiceSearchFromTop(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(ESmbMusicAPSyncServerContentsServiceSearchFromTopState_Init)
	{
	}


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

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

	}


/**
 僒乕價僗傪奐巒偡傞
 * @param	側偟
 * @return	僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromTop::StartServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsServiceSearchFromTop00, "SyncServerContentsServiceSearchFromTop::StartServiceL()");
	SmbMusicAPSyncServerLog(iRLog,
							(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromTop|EMusicAPSyncServerLocationNumber00),
							ELogLevelLowest,
							KContentsServiceSearchFromTop00);
#endif

	if(ESmbMusicAPSyncServerContentsServiceSearchFromTopState_Init == iServiceState)
		{
		// 僷儔儊乕僞傪撉傒崬傓
		if(EFalse != LoadParam())
			{
			TBool result = EFalse;
			switch(iParamCondition)
				{
			case ESmbMusicAPSyncEngineGenre:			///<僕儍儞儖
				iReqListType = ESmbMusicAPSyncEngineTypeGenre;
				result = CreateMetaListL(ESmbMusicMWLibMetaGenre);
				break;
			case ESmbMusicAPSyncEngineArtist:			///<傾乕僥傿僗僩
				iReqListType = ESmbMusicAPSyncEngineTypeArtist;
				result = CreateMetaListL(ESmbMusicMWLibMetaArtist);
				break;
			case ESmbMusicAPSyncEngineAlbum:			///<傾儖僶儉
				iReqListType = ESmbMusicAPSyncEngineTypeAlbum;
				result = CreateMetaListL(ESmbMusicMWLibMetaAlbum);
				break;
			case ESmbMusicAPSyncEngineOriginalPlaylist:	///<僆儕僕僫儖僾儗僀儕僗僩
				iReqListType = ESmbMusicAPSyncEngineTypeOriginalPlaylist;
				result = CreatePLListL(ESmbMusicMWLibPLUser);
				break;
			case ESmbMusicAPSyncEngineImportPlaylist:	///<僀儞億乕僩僾儗僀儕僗僩
				iReqListType = ESmbMusicAPSyncEngineTypeImportPlaylist;
				result = CreatePLListL(ESmbMusicMWLibPLM3U);
				break;
//  ADD-S PTX824 k3-sugimoto
#ifndef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
			case ESmbMusicAPSyncEngineWMAPlaylist:	///<WM僾儗僀儕僗僩
				iReqListType = ESmbMusicAPSyncEngineTypeWMAPlaylist;
				result = CreatePLListL(ESmbMusicMWLibPLWM);
				break;
#endif	//  __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
//  ADD-E PTX824 k3-sugimoto
			case ESmbMusicAPSyncEngineAll:				///<偡傋偰偺嬋
				iReqListType = ESmbMusicAPSyncEngineTypeSonglist;
				result = CreateAllSongListL();
				break;
			case ESmbMusicAPSyncEngineOften50:			///<傛偔挳偔50嬋
				iReqListType = ESmbMusicAPSyncEngineTypeSonglist;
				result = Create50SongListL(ESmbMusicMWLibColCount);
				break;
			case ESmbMusicAPSyncEngineLatest50:			///<嵟嬤挳偄偨50嬋
				iReqListType = ESmbMusicAPSyncEngineTypeSonglist;
				result = Create50SongListL(ESmbMusicMWLibColLastUpdate);
				break;
			case ESmbMusicAPSyncEngineDataBox:			///<曐懚愭偐傜1(僨乕僞BOX)
				iReqListType = ESmbMusicAPSyncEngineTypeSonglist;
				result = CreateStorageSongListL(ESmbMusicMWLibDataBox);
				break;
			case ESmbMusicAPSyncEngineMassStorage:		///<曐懚愭偐傜2(杮懱奼挘儊儌儕)
				iReqListType = ESmbMusicAPSyncEngineTypeSonglist;
				result = CreateStorageSongListL(ESmbMusicMWLibFlash);
				break;
			case ESmbMusicAPSyncEngineMSDuo:			///<曐懚愭偐傜3(M.S.Duo)
				iReqListType = ESmbMusicAPSyncEngineTypeSonglist;
				result = CreateStorageSongListL(ESmbMusicMWLibMS);
				break;
			case ESmbMusicAPSyncEngineMiniSD:			///<曐懚愭偐傜4(miniSD)
				iReqListType = ESmbMusicAPSyncEngineTypeSonglist;
				result = CreateStorageSongListL(ESmbMusicMWLibSD);
				break;
			default:
				_LIT(KContentsServiceSearchFromTop01, "SyncServerContentsServiceSearchFromTop::StartServiceL() iParamCondition is NotSupport %d");
				SmbMusicAPSyncServerLog(iRLog,
										(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromTop|EMusicAPSyncServerLocationNumber01),
										ELogLevelHigh,
										KContentsServiceSearchFromTop01,
										iParamCondition);
				break;
				}

			if(EFalse != result)
				{
				// 僒乕價僗僋儔僗傪傾僋僥傿僽偵偡傞
				Start();

				// 儕僗僩惗惉懸偪忬懺偵偡傞
				iServiceState = ESmbMusicAPSyncServerContentsServiceSearchFromTopState_WaitList;
				return ESmbMusicAPSyncServerContetnsServiceStateContinue;

				}
			else
				{
				_LIT(KContentsServiceSearchFromTop02, "SyncServerContentsServiceSearchFromTop::StartServiceL() CreateStorageSongListL");
				SmbMusicAPSyncServerLog(iRLog,
										(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromTop|EMusicAPSyncServerLocationNumber02),
										ELogLevelHigh,
										KContentsServiceSearchFromTop02);

				// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
				CompleteErr(KErrNotReady);
				return ESmbMusicAPSyncServerContetnsServiceStateErr;
				}
			}
		else
			{
			// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
			CompleteErr(KErrArgument);
			return ESmbMusicAPSyncServerContetnsServiceStateErr;
			}
		}
	else
		{
		_LIT(KContentsServiceSearchFromTop03, "SyncServerContentsServiceSearchFromTop::StartServiceL() Invalid State %d");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromTop|EMusicAPSyncServerLocationNumber03),
								ELogLevelHigh,
								KContentsServiceSearchFromTop03,
								iServiceState);

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


/**
 巜掕僀儀儞僩偵傛傝僉儍儞僙儖偝傟傞偐偳偆偐傪敾抐偡傞
 * @param [in]	aCancelEvent	僉儍儞僙儖僀儀儞僩
 * @return						僉儍儞僙儖懳徾偐偳偆偐乮ETrue:僉儍儞僙儖懳徾丄EFalse丗僉儍儞僙儖旕懳徾乯
 */
TBool CSmbMusicAPSyncServerContentsServiceSearchFromTop::CheckCancel(TSmbMusicAPSyncServerFunction aCancelEvent)
	{
	TBool result = EFalse;

	switch(aCancelEvent)
		{
	case ESmbMusicAPSyncServerFuncCancelGetListOrListItems:		// 傾僀僥儉媦傃儕僗僩傾僀僥儉偺嶌惉張棟傪僉儍儞僙儖
		result = ETrue;
		break;

	default:
		break;
		}

	return result;
	}


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

	if(ESmbMusicAPSyncServerContentsServiceSearchFromTopState_WaitList == iServiceState)
		{
		TInt handle	= iTempListItem->Handle();
		TInt count	= iTempListItem->Count();

//  ADD-S  儘僌捛壛
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsServiceSearchFromTop05, "SyncServerContentsServiceSearchFromTop::ContinueServiceL() List=[0x%08x]:%d");
	SmbMusicAPSyncServerLog(iRLog,
							(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromTop|EMusicAPSyncServerLocationNumber05),
							ELogLevelLowest,
							KContentsServiceSearchFromTop05,
							handle, count);
#endif
//  ADD-E  儘僌捛壛

		// 儕僗僩偺僴儞僪儖僋儔僗傪嶌惉
		CSmbMusicAPSyncServerContentsList* list = CSmbMusicAPSyncServerContentsListFilterTop::NewL( iRLog,
																									handle,
																									iTempListItem,
																									iReqListType,
																									iParamCondition,
																									iParamRequestListType);

		//儕僗僩偺強桳尃偑側偔側傞偺偱丄億僀儞僞傪僋儕傾偡傞
		iTempListItem = 0;

⌨️ 快捷键说明

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