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

📄 smbmusicapsyncservercontentsservicesearchfromlist.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 4 页
字号:
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber21),
								ELogLevelHigh,
								KContentsServiceSearchFromList21,
								err);
		return EFalse;
		}
	return ETrue;
	}


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

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

	default:
		break;
		}

	return result;
	}


/**
 儕僗僩傪嶌惉偡傞
 * @param	側偟
 * @return	僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromList::CreateListL()
	{
	// 専嶕忦審偑慡崁栚偺応崌
	if(ESmbMusicAPSyncEngineSearchAll == iParamCondition)
		{
		return CreateAllSongListL(*iPrevList);
		}
	else
		{
		TSmbMusicAPSyncEngineListType listType = iPrevList->GetListType();

//  MODIFY-S PTX824 k3-sugimoto
//		// 堦偮慜偺儕僗僩偑僆儕僕僫儖僾儗僀儕僗僩傑偨偼僀儞億乕僩僾儗僀儕僗僩偺応崌
//		if(ESmbMusicAPSyncEngineTypeOriginalPlaylist == listType || ESmbMusicAPSyncEngineTypeImportPlaylist == listType)
		// 堦偮慜偺儕僗僩偑僆儕僕僫儖僾儗僀儕僗僩丄僀儞億乕僩僾儗僀儕僗僩丄WMA(MTP)僾儗僀儕僗僩偺応崌
		if ((listType == ESmbMusicAPSyncEngineTypeOriginalPlaylist) ||
			(listType == ESmbMusicAPSyncEngineTypeImportPlaylist) ||
			(listType == ESmbMusicAPSyncEngineTypeWMAPlaylist))
//  MODIFY-E PTX824 k3-sugimoto
			{
			iTempArray = CSmbMusicMWLibItemArray::NewL(1);

			// PL傾僀僥儉傪惗惉偡傞
			TInt result = iPrevList->CreateNewItem(*iTempArray, iParamIndex, 1, iStatus);
			if(KErrNone == result)
				{
				// 僒乕價僗僋儔僗傪傾僋僥傿僽偵偡傞
				Start();

				// PL傾僀僥儉庢摼懸偪忬懺偵偡傞
				iServiceState = ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitItem_PLSong;

				return ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}
			else
				{
				_LIT(KContentsServiceSearchFromList22, "SyncServerContentsServiceSearchFromList::CreateListL() CreateNewItem() Err %d");
				SmbMusicAPSyncServerLog(iRLog,
										(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber22),
										ELogLevelHigh,
										KContentsServiceSearchFromList22,
										result);

				// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
				CompleteErr(KErrNotReady);
				return ESmbMusicAPSyncServerContetnsServiceStateErr;
				}
			}
		else
			{
			CSmbMusicAPSyncServerContentsItem* item = iPrevList->GetItem(iParamIndex);

			if(item)
				{
				// 昞帵暥帤楍傪庢摼偡傞
				HBufC* dispString = item->GetDispString();
				if(dispString)
					{
					iDispString = *dispString;
					}
				delete dispString;
				dispString = 0;

				// 嬋儕僗僩偺応崌
				if(ESmbMusicAPSyncEngineSongList == iParamListType)
					{
					return CreateSongListL(*iPrevList);
					}
				else
					{
					return CreateMetaListL(*iPrevList);
					}
				}
			else
				{
				iTempArray = CSmbMusicMWLibItemArray::NewL(1);

				// 傾僀僥儉傪惗惉偡傞
				TInt result = iPrevList->CreateNewItem(*iTempArray, iParamIndex, 1, iStatus);
				if(KErrNone == result)
					{
					// 僒乕價僗僋儔僗傪傾僋僥傿僽偵偡傞
					Start();

					// 嬋儕僗僩偺応崌
					if(ESmbMusicAPSyncEngineSongList == iParamListType)
						{
						// 嬋傾僀僥儉庢摼懸偪忬懺偵偡傞
						iServiceState = ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitItem_Song;
						}
					else
						{
						// 儊僞傾僀僥儉庢摼懸偪忬懺偵偡傞
						iServiceState = ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitItem_Meta;
						}
					return ESmbMusicAPSyncServerContetnsServiceStateContinue;

					}
				else
					{
					_LIT(KContentsServiceSearchFromList23, "SyncServerContentsServiceSearchFromList::CreateListL() CreateNewItem() Err %d");
					SmbMusicAPSyncServerLog(iRLog,
											(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber23),
											ELogLevelHigh,
											KContentsServiceSearchFromList23,
											result);

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


/**
 儊僞儕僗僩傪嶌惉偡傞
 * @param [in]	aPrevList	堦偮慜偵側傞僐儞僥儞僣儕僗僩僋儔僗偺嶲徠
 * @return					僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromList::CreateMetaListL(CSmbMusicAPSyncServerContentsList& aPrevList)
	{
	TSmbMusicMWLibColumn	createListColumn;
	TSmbMusicMWLibMetaType	createMetaListType;

	// 儕僗僩偺庬暿偐傜専嶕忦審傪幆暿偡傞
	switch(aPrevList.GetListType())
		{
	case ESmbMusicAPSyncEngineTypeGenre:		// 僕儍儞儖
		createListColumn	= ESmbMusicMWLibColGenre;			// 僕儍儞儖
		createMetaListType	= ESmbMusicMWLibMetaArtist;			// 傾乕僥傿僗僩
		iReqListType		= ESmbMusicAPSyncEngineTypeArtist;	// 梫媮儕僗僩丗傾乕僥傿僗僩儕僗僩
		break;

	case ESmbMusicAPSyncEngineTypeArtist:		// 傾乕僥傿僗僩
		createListColumn	= ESmbMusicMWLibColArtist;			// 傾乕僥傿僗僩
		createMetaListType	= ESmbMusicMWLibMetaAlbum;			// 傾儖僶儉
		iReqListType		= ESmbMusicAPSyncEngineTypeAlbum;	// 梫媮儕僗僩丗傾儖僶儉儕僗僩
		break;

	default:
		_LIT(KContentsServiceSearchFromList24, "SyncServerContentsServiceSearchFromList::CreateMetaListL() List Type not Support %d");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber24),
								ELogLevelHigh,
								KContentsServiceSearchFromList24,
								aPrevList.GetListType());

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

	// 専嶕忦審攝楍傪惗惉偡傞
	iTempSearchCondition	= new(ELeave) CArrayFixFlat<TSmbMusicMWLibSearchConditionInfo>(KConditionArrayGranularity);

	// 巜掕儕僗僩偺専嶕忦審傪庢摼偡傞
	aPrevList.GetSearchCondition(*iTempSearchCondition);

	// 専嶕僉乕儚乕僪乮暥帤楍乯偺専嶕忦審傪嶌惉偡傞
	MakeConditionInfoL(*iTempSearchCondition, createListColumn, ESmbMusicMWLibMatchAll, iDispString);

	// 僜乕僩忦審攝楍傪惗惉偡傞
	iTempSortCondition = new(ELeave) CArrayFixFlat<TSmbMusicMWLibSortConditionInfo>(1);

	// 昞帵暥帤楍偵傛傞徃弴偺僜乕僩忦審傪嶌惉偡傞
	MakeSortInfoL(*iTempSortCondition, ESmbMusicMWLibColDispString, ETrue);

	// 専嶕忣曬僋儔僗傪惗惉偡傞
	iTempSearchInfo = CSmbMusicMWLibSearchInfo::NewL();

	// 専嶕忣曬僋儔僗偵専嶕忦審攝楍丄僜乕僩忦審攝楍傪愝掕偡傞
	TBool result = MakeSearchInfo(*iTempSearchInfo, iTempSearchCondition, iTempSortCondition);
	// 専嶕忣曬僋儔僗偵愝掕偝傟偨偺偱丄億僀儞僞傪柍岠壔
	iTempSearchCondition = 0;
	iTempSortCondition	 = 0;

	TSmbMusicAPSyncServerContentsServiceState ret = ESmbMusicAPSyncServerContetnsServiceStateErr;

	if(EFalse != result)
		{
		// 儕僗僩傪嶌惉偡傞
		CSmbMusicMWLibStaticSearchListItem* listItem = CSmbMusicMWLibStaticSearchListItem::NewL();
		TInt mwResult = iFunc.CreateMetaList(createMetaListType, *iTempSearchInfo, *listItem, iStatus);
		iTempListItem = listItem;
		listItem = 0;
		if(KErrNone == mwResult)
			{

			// 僒乕價僗僋儔僗傪傾僋僥傿僽偵偡傞
			Start();
			iServiceState = ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitList_Meta;
			ret = ESmbMusicAPSyncServerContetnsServiceStateContinue;
			}
		else
			{
			_LIT(KContentsServiceSearchFromList25, "SyncServerContentsServiceSearchFromList::CreateMetaListL() iFunc.CreateMetaList() Err %d");
			SmbMusicAPSyncServerLog(iRLog,
									(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber25),
									ELogLevelHigh,
									KContentsServiceSearchFromList25,
									mwResult);

			// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
			CompleteErr(KErrNotReady);
			}
		}
	else
		{
		_LIT(KContentsServiceSearchFromList26, "SyncServerContentsServiceSearchFromList::CreateMetaListL() MakeSearchInfo() Err");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber26),
								ELogLevelHigh,
								KContentsServiceSearchFromList26);

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

	return ret;
	}


/**
 嬋儕僗僩傪嶌惉偡傞
 * @param [in]	aPrevList	堦偮慜偵側傞僐儞僥儞僣儕僗僩僋儔僗偺嶲徠
 * @return					僒乕價僗張棟忬懺
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceSearchFromList::CreateSongListL(CSmbMusicAPSyncServerContentsList& aPrevList)
	{
	iReqListType = ESmbMusicAPSyncEngineTypeSonglist;

	// 専嶕忦審攝楍傪惗惉偡傞
	iTempSearchCondition	= new(ELeave) CArrayFixFlat<TSmbMusicMWLibSearchConditionInfo>(KConditionArrayGranularity);

	// 巜掕儕僗僩偺専嶕忦審傪庢摼偡傞
	aPrevList.GetSearchCondition(*iTempSearchCondition);

	// 儕僗僩庬暿偵墳偠偨専嶕忦審傪愝掕偡傞
	switch(aPrevList.GetListType())
		{
	case ESmbMusicAPSyncEngineTypeGenre:		// 僕儍儞儖
		MakeConditionInfoL(*iTempSearchCondition, ESmbMusicMWLibColGenre, ESmbMusicMWLibMatchAll, iDispString);
		break;

	case ESmbMusicAPSyncEngineTypeArtist:		// 傾乕僥傿僗僩
		MakeConditionInfoL(*iTempSearchCondition, ESmbMusicMWLibColArtist, ESmbMusicMWLibMatchAll, iDispString);
		break;

	case ESmbMusicAPSyncEngineTypeAlbum:		// 傾儖僶儉
		MakeConditionInfoL(*iTempSearchCondition, ESmbMusicMWLibColAlbum, ESmbMusicMWLibMatchAll, iDispString);
		break;

	default:
		_LIT(KContentsServiceSearchFromList27, "SyncServerContentsServiceSearchFromList::CreateSongListL() List Type not Support %d");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber27),
								ELogLevelHigh,
								KContentsServiceSearchFromList27,
								aPrevList.GetListType());

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

	// 僜乕僩忦審攝楍傪惗惉偡傞
	iTempSortCondition = new(ELeave) CArrayFixFlat<TSmbMusicMWLibSortConditionInfo>(2);

	// 傾儖僶儉柤偵傛傞徃弴偺僜乕僩忦審傪嶌惉偡傞
	MakeSortInfoL(*iTempSortCondition, ESmbMusicMWLibColAlbum, ETrue);

	// 僩儔僢僋斣崋偵傛傞徃弴偺僜乕僩忦審傪嶌惉偡傞
	MakeSortInfoL(*iTempSortCondition, ESmbMusicMWLibColTrackNum, ETrue);

	// 専嶕忣曬僋儔僗傪惗惉偡傞
	iTempSearchInfo = CSmbMusicMWLibSearchInfo::NewL();

	// 専嶕忣曬僋儔僗偵専嶕忦審攝楍丄僜乕僩忦審攝楍傪愝掕偡傞
	TBool result = MakeSearchInfo(*iTempSearchInfo, iTempSearchCondition, iTempSortCondition);
	// 専嶕忣曬僋儔僗偵愝掕偝傟偨偺偱丄億僀儞僞傪柍岠壔
	iTempSearchCondition = 0;
	iTempSortCondition	 = 0;

	TSmbMusicAPSyncServerContentsServiceState ret = ESmbMusicAPSyncServerContetnsServiceStateErr;

	if(EFalse != result)
		{
		// 儕僗僩傪嶌惉偡傞
		CSmbMusicMWLibStaticSearchListItem* listItem = CSmbMusicMWLibStaticSearchListItem::NewL();
		TInt mwResult = iFunc.CreateSongList(*iTempSearchInfo, 0, *listItem, iStatus);
		iTempListItem = listItem;
		listItem = 0;
		if(KErrNone == mwResult)
			{

			// 僒乕價僗僋儔僗傪傾僋僥傿僽偵偡傞
			Start();
			iServiceState = ESmbMusicAPSyncServerContentsServiceSearchFromListState_WaitList_Song;
			ret = ESmbMusicAPSyncServerContetnsServiceStateContinue;
			}
		else
			{
			_LIT(KContentsServiceSearchFromList28, "SyncServerContentsServiceSearchFromList::CreateSongListL() iFunc.CreateSongList() Err %d");
			SmbMusicAPSyncServerLog(iRLog,
									(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber28),
									ELogLevelHigh,
									KContentsServiceSearchFromList28,
									mwResult);

			// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
			CompleteErr(KErrNotReady);
			}
		}
	else
		{
		_LIT(KContentsServiceSearchFromList29, "SyncServerContentsServiceSearchFromList::CreateSongListL() MakeSearchInfo() Err");
		SmbMusicAPSyncServerLog(iRLog,
								(EMusicAPSyncServerClassNumber_ContentsServiceSearchFromList|EMusicAPSyncServerLocationNumber29),
								ELogLevelHigh,
								KContentsServiceSearchFromList29);

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

⌨️ 快捷键说明

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