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

📄 smbmusicapsyncservercontentsservicepltitleedit.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			break;
		case EContentsServicePLTitleEditStateIdle:		//  張棟柍偟
			break;
		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber09;
			_LIT(KServicePLTitleEditCancelService02, "SyncServerContentsServicePLTitleEdit::CancelService illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServicePLTitleEditCancelService02, iServiceState);

			ASSERT(EFalse);
			}
			break;
		}

	MessageComplete(KErrCancel);

	//  枹幚峴忬懺傊
	iServiceState = EContentsServicePLTitleEditStateIdle;

	CSmbMusicAPSyncServerContentsServiceBase::Cancel();

	//  僾儗僀儕僗僩傾僀僥儉攋婞
	if (iItemArray != NULL)
		{
		iItemArray -> Reset();
		}
	delete iPLList;
	iPLList = NULL;

	//  怴僞僀僩儖僨乕僞偺奐曻
	delete iNewTitle;
	iNewTitle = NULL;
	}


/**
 *  僒乕價僗宲懕
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLTitleEdit::ContinueServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber10;
	_LIT(KServicePLTitleEditContinueServiceL01, "SyncServerContentsServicePLTitleEdit::ContinueServiceL()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLTitleEditContinueServiceL01);
#endif

	TSmbMusicAPSyncServerContentsServiceState retState(ESmbMusicAPSyncServerContetnsServiceStateEnd);

	switch(iServiceState)
		{
		case EContentsServicePLTitleEditStateGetItem:	//  僾儗僀儕僗僩傾僀僥儉庢摼拞
			{
			TInt error(KErrNone);
//  ADD-S  [iKeeper(TRK):11195] 嵞惗拞偺僾儗僀儕僗僩偺応崌忣曬傪峏怴偡傞張棟捛壛
			TBool cacheAllDelete(EFalse);
			// 儗僕儏乕儉忣曬偵奩摉偺僾儗僀儕僗僩偑偁傞応崌偼丄儕僗僩傾僀僥儉偺忣曬傪峏怴偡傞丅
			CSmbMusicAPSyncServerContentsList* list = iScreenData.GetLastListFromPlayScreenTrace();
			if(list != NULL)
				{
				CSmbMusicMWLibMusicItem& item = list -> GetListItem();
				if(ESmbMusicMWLibItemTypePL == item.ItemType())
					{
					cacheAllDelete = ETrue;
					}
				}

			if(EFalse == cacheAllDelete)
				{
				//  僒乕僶懁偺奩摉儕僗僩偺傾僀僥儉傪慡偰攋婞丅
				iScreenData.DeleteItem(iListHandle);
				}
			else
				{
				//  僒乕僶懁偺傾僀僥儉傪慡偰攋婞丅
				iScreenData.DeleteAllItem();
				}
//  ADD-E  [iKeeper(TRK):11195] 嵞惗拞偺僾儗僀儕僗僩偺応崌忣曬傪峏怴偡傞張棟捛壛

			//  僾儗僀儕僗僩傾僀僥儉偵懳偡傞僞僀僩儖曄峏梫媮張棟
			error = Rename();
			if (error != KErrNone)
				{	//  僾儗僀儕僗僩僞僀僩儖曄峏梫媮張棟幐攕
				MessageComplete(error);

				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLTitleEditStateIdle;

				//  僾儗僀儕僗僩傾僀僥儉攋婞
				iItemArray -> Reset();
				delete iPLList;
				iPLList = NULL;

				//  怴僞僀僩儖僨乕僞偺奐曻
				delete iNewTitle;
				iNewTitle = NULL;

				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			else
				{
				//  僞僀僩儖曄峏墳摎懸偪忬懺傊
				iServiceState = EContentsServicePLTitleEditStateTitleEdit;

				CSmbMusicAPSyncServerContentsServiceBase::Start();
				//  張棟宲懕
				retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}
			}
			break;
		case EContentsServicePLTitleEditStateTitleEdit:	//  僞僀僩儖曄峏墳摎懸偪
			{
//  ADD-S  [iKeeper(TRK):11195] 嵞惗拞偺僾儗僀儕僗僩偺応崌忣曬傪峏怴偡傞張棟捛壛
			// 儗僕儏乕儉忣曬偵奩摉偺僾儗僀儕僗僩偑偁傞応崌偼丄儕僗僩傾僀僥儉偺忣曬傪峏怴偡傞丅
			CSmbMusicAPSyncServerContentsList* list = iScreenData.GetLastListFromPlayScreenTrace();
			if(list != NULL)
				{
				CSmbMusicMWLibMusicItem& item = list -> GetListItem();
				if( *iPLList == item )
					{
					item.Update();
					}
				}
//  ADD-E  [iKeeper(TRK):11195] 嵞惗拞偺僾儗僀儕僗僩偺応崌忣曬傪峏怴偡傞張棟捛壛

			//  傾僾儕偵曉媝偡傞抣偼側偄偨傔儕僋僄僗僩姰椆偺傒
			MessageComplete(KErrNone);

			//  枹幚峴忬懺傊
			iServiceState = EContentsServicePLTitleEditStateIdle;

			//  僾儗僀儕僗僩傾僀僥儉攋婞
			iItemArray -> Reset();
			delete iPLList;
			iPLList = NULL;

			//  怴僞僀僩儖僨乕僞偺奐曻
			delete iNewTitle;
			iNewTitle = NULL;

			//  張棟廔椆
			retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;

			//僞僀僩儖曇廤傪捠抦偟傑偡丅
			iManagers.AppNotifyManager().NotifyTitleEdit(iListHandle, iIterator->Index());
			}
			break;

		case EContentsServicePLTitleEditStateIdle:		//  張棟柍偟
		//  張棟柍偟忬懺偵ContinueService偑屇偽傟傞偙偲偼堎忢宯偱偁傞偨傔default摨條偵張棟偡傞丅
		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber11;
			_LIT(KServicePLTitleEditContinueServiceL02, "SyncServerContentsServicePLTitleEdit::ContinueServiceL illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServicePLTitleEditContinueServiceL02, iServiceState);

			ASSERT(EFalse);
			}
			break;
		}

	return retState;
	}


/**
 *  僾儗僀僞僀僩儖曄峏張棟
 *
 *  @return	曄峏張棟惉斲(KErrNone:張棟惉岟丄偦偺懠:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLTitleEdit::Rename()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber12;
	_LIT(KServicePLTitleEditRename01, "SyncServerContentsServicePLTitleEdit::Rename() Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLTitleEditRename01);
#endif

	//  庢摼偟偨儕僗僩攝楍偺梫慺悢僠僃僢僋
	if (iItemArray -> Count() < 1)
		{	//  梫慺悢偑懌傝側偄(1側偄)応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber13;
		_LIT(KServicePLTitleEditRename02, "SyncServerContentsServicePLTitleEdit::Rename() no enough array:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLTitleEditRename02, iItemArray -> Count());
#endif

		return KErrNotReady;
		}

	//  僾儗僀儕僗僩嬋堦棗傾僀僥儉弶婜壔
	delete iPLList;
	iPLList = NULL;

	//  庢摼偟偨儕僗僩攝楍偐傜僾儗僀儕僗僩傾僀僥儉傪庢傝弌偡
	TRAPD(error, iPLList = static_cast<CSmbMusicMWLibPLItem*>(iItemArray -> GetMusicItemL(0)););
	if (error != KErrNone)
		{	//  僾儗僀儕僗僩傾僀僥儉偺庢傝弌偟偵幐攕偟偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber14;
		_LIT(KServicePLTitleEditRename03, "SyncServerContentsServicePLTitleEdit::Rename() GetMusicItemL Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLTitleEditRename03, error);
#endif

		return error;
		}
	if (iPLList == NULL)
		{	//  庢傝弌偟偨僾儗僀儕僗僩傾僀僥儉偑NULL偩偭偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber15;
		_LIT(KServicePLTitleEditRename04, "SyncServerContentsServicePLTitleEdit::Rename() GetMusicItemL is NULL");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLTitleEditRename04);
#endif

		return KErrNotFound;
		}

	//  庢摼偟偨僾儗僀儕僗僩傾僀僥儉偵懳偟偰僾儗僀儕僗僩僞僀僩儖峏怴傪峴偆
	TInt retState(KErrNone);
	retState = iPLList -> Rename(*iNewTitle, iStatus);
	if (retState != KErrNone)
		{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber16;
		_LIT(KServicePLTitleEditRename05, "SyncServerContentsServicePLTitleEdit::Rename() Rename Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLTitleEditRename05, retState);
#endif

		return error;
		}

	return KErrNone;
	}


/**
 *  僷儔儊乕僞撉崬
 *
 *  @return	僷儔儊乕僞撉崬惉斲(ETrue:栤戣側偟丄EFalse:栤戣偁傝)
 **/
TBool CSmbMusicAPSyncServerContentsServicePLTitleEdit::LoadParamL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber17;
	_LIT(KServicePLTitleEditLoadParamL01, "SyncServerContentsServicePLTitleEdit::LoadParamL");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLTitleEditLoadParamL01);
#endif

	//  摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
	TInt maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn1);
	if (maxLen < sizeof(TSmbMusicAPSyncServerContentsReqPkg))
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber18;
		_LIT(KServicePLTitleEditLoadParamL02, "SyncServerContentsServicePLTitleEdit::LoadParamL Argument 1 Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLTitleEditLoadParamL02, maxLen);
#endif
		return EFalse;
		}

	TInt error(KErrNone);

	//  梫媮僷僢働乕僕偺撉崬
	TSmbMusicAPSyncServerContentsReqPkg reqPkg;
	TPckg<TSmbMusicAPSyncServerContentsReqPkg> pkg(reqPkg);
	error = iRMessage.Read(KSmbMusicAPSyncEngineMsgIn1, pkg);
	if (error != KErrNone)
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕偺撉崬偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber19;
		_LIT(KServicePLTitleEditLoadParamL03, "SyncServerContentsServicePLTitleEdit::LoadParamL ContentsReqPkg Load Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLTitleEditLoadParamL03, error);
#endif
		return EFalse;
		}

	//  曇廤懳徾僾儗僀儕僗僩
	iListHandle	= reqPkg.iData.iEditPL.iListInfo.iListHandle;
	iIndex		= reqPkg.iData.iEditPL.iListInfo.iIndex + 1;	//  index僆儕僕儞傪挷惍

	//  摨婜僄儞僕儞偐傜搉偝傟偨僾儗僀儕僗僩僞僀僩儖傪撉傒崬傓
	delete iNewTitle;
	iNewTitle = NULL;

	TInt titleLength = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn2);
	if (titleLength < 0 )
		{	//  僞僀僩儖挿偑惓偟偔側偄応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLTitleEdit | EMusicAPSyncServerLocationNumber20;
		_LIT(KServicePLTitleEditLoadParamL03, "SyncServerContentsServicePLTitleEdit::LoadParamL no enough Length:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLTitleEditLoadParamL03, titleLength);
#endif
		return EFalse;
		}

	iNewTitle = HBufC::NewL(titleLength);
	TPtr ptr = iNewTitle -> Des();
	iRMessage.ReadL(KSmbMusicAPSyncEngineMsgIn2, ptr);

	return ETrue;
	}


// end of SmbMusicAPSyncServerContentsServicePLTitleEdit.cpp

/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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