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

📄 smbmusicapsyncservercontentsserviceplinsertitemow.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber08;
			_LIT(KServicePLInsertItemOWCancelService02, "SyncServerContentsServicePLInsertItemOW::CancelService illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServicePLInsertItemOWCancelService02, iServiceState);

			ASSERT(EFalse);
			}
			break;
		}

	MessageComplete(KErrCancel);
	iServiceState = EContentsServicePLInsertItemOWStateIdle;		//  僒乕價僗忬懺傪枹幚峴忬懺傊
	if (IsActive() != EFalse)
		{	//  AO偑傾僋僥傿僽偱偁傟偽僉儍儞僙儖偡傞
		CSmbMusicAPSyncServerContentsServiceBase::Cancel();
		}
	}


/**
 *  僒乕價僗宲懕
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLInsertItemOW::ContinueServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber09;
	_LIT(KServicePLInsertItemOWContinueServiceL01, "SyncServerContentsServicePLInsertItemOW::ContinueServiceL()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWContinueServiceL01);
#endif

	TSmbMusicAPSyncServerContentsServiceState retState(ESmbMusicAPSyncServerContetnsServiceStateEnd);

	switch(iServiceState)
		{
		case EContentsServicePLInsertItemOWStateGetPLList:		//  捛壛愭僾儗僀儕僗僩庢摼拞
			{
			//  僾儗僀儕僗僩傾僀僥儉傪庢摼偟偨偺偱丄
			//  慡審偺帪偼慡審捛壛梫媮傪丄
			//  1審/慖戰偺応崌偼丄慖戰偝傟偨嬋傾僀僥儉庢摼傪峴偆丅
			TInt result = SetPlayListItem();	//  捛壛愭僾儗僀儕僗僩愝掕
			if (result == KErrNone)
				{
				result = PLListOpen();
				if (result == KErrNone)
					{	//  捛壛愭僾儗僀儕僗僩偺僆乕僾儞梫媮偵惉岟
					iServiceState = EContentsServicePLInsertItemOWStateOpenPLList;

					CSmbMusicAPSyncServerContentsServiceBase::Start();
					//  張棟宲懕
					retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
					}
				}
			if (result != KErrNone)
				{	//  捛壛愭僾儗僀儕僗僩愝掕偵幐攕丄傑偨偼僾儗僀儕僗僩偺僆乕僾儞偵幐攕偺応崌
				MessageComplete(result);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemOWStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			}
			break;
		case EContentsServicePLInsertItemOWStateOpenPLList:	//  捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
			{
			//  張棟奐巒慜偺儕僗僩偵偁傞傾僀僥儉悢傪曐懚偡傞
			iOriginalCount = iPLItem -> Count();
			if (iOriginalCount < 0)
				{	//  儕僗僩偵娷傑傟傞傾僀僥儉悢偺庢摼偵幐攕偟偨応崌
				//  忋彂偒帪傾僀僥儉悢偼偝傎偳廳梫偱側偄偨傔儘僌弌椡偺傒偱張棟懕峴
				TInt logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber10;
				_LIT(KServicePLInsertItemOWContinueServiceL02, "SyncServerContentsServicePLInsertItemOW::ContinueServiceL PLList Count Error:%d");
				SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWContinueServiceL02, iOriginalCount);
				}

			TInt result(KErrNone);
			//  僾儗僀儕僗僩偵搊榐偝傟偰偄傞慡偰偺嬋傾僀僥儉搊榐夝彍梫媮
			result = iPLItem -> RemoveItem(iStatus);
			if (result == KErrNone)
				{	//  僾儗僀儕僗僩慡嬋搊榐夝彍梫媮偵惉岟

				// 捛壛懳徾偺僾儗僀儕僗僩偑嵞惗拞偺応崌偵偼丄儗僕儏乕儉忣曬傪嶍彍偡傞
				if(iPLItem && EFalse != iScreenData.CheckResume(*iPLItem))
					{
					iModel.DeleteResume();
					}

//  ADD-S  [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張
				//  MW偵梫媮姰椆偟偨帪揰偱僉儍僢僔儏偝傟偰偄傞夋憸忣曬傪慡僋儕傾偡傞丅
				iManagers.ImageDataManager().AllClear();
//  ADD-E  [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張

				//  搊榐夝彍姰椆懸偪傊
				iServiceState = EContentsServicePLInsertItemOWStateRemoveAll;

				CSmbMusicAPSyncServerContentsServiceBase::Start();
				//  張棟宲懕
				retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}
			else
				{	//  僾儗僀儕僗僩慡嬋搊榐夝彍梫媮偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
				logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber11;
				_LIT(KServicePLInsertItemOWContinueServiceL03, "SyncServerContentsServicePLInsertItemOW::ContinueServiceL() ReMoveItem Error:%d");
				SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWContinueServiceL03, result);
#endif

				MessageComplete(result);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemOWStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			}
			break;
		case EContentsServicePLInsertItemOWStateRemoveAll:	//  僾儗僀儕僗僩慡傾僀僥儉搊榐夝彍拞
			{
			TInt result(KErrNone);
			if (iAllItems != EFalse)
				{	//  慡嬋捛壛偺応崌
				result = InsertAllSongItem();	//  慡嬋捛壛梫媮
				}
			else
				{	//  1嬋/慖戰捛壛偺応崌
				result = RequestSongItem();		//  慖戰嬋傾僀僥儉庢摼梫媮
				}
			if (result == KErrNone)
				{	//  張棟惉岟
				CSmbMusicAPSyncServerContentsServiceBase::Start();
				//  張棟宲懕
				retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}
			else
				{	//  捛壛張棟偵幐攕偟偨応崌
				MessageComplete(result);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemOWStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			}
			break;
		case EContentsServicePLInsertItemOWStateGetSongItem:	//  捛壛偡傞傾僀僥儉偺僴儞僪儖庢摼拞
			{
			//  捛壛嬋傾僀僥儉偺庢摼偱偒偨応崌偼丄
			//  嬋傾僀僥儉偲偦偺僴儞僪儖傪攝楍偵曐帩偟偰偍偔丅
			//  慖戰偝傟偨嬋慡偰偵偍偄偰忋婰張棟偑偡傫偩応崌偼丄
			//  僾儗僀儕僗僩偵懳偟偰慖戰嬋捛壛梫媮傪峴偆丅
			TInt result = InsertSongItem();	//  慖戰嬋傾僀僥儉捛壛張棟
			if (result == KErrNone)
				{	//  嬋傾僀僥儉庢摼偵惉岟偟偨応崌
				if (iIndexCount > iSongIndex)
					{	//  慖戰偝傟偨嬋傾僀僥儉傪傑偩慡偰庢摼偟偰偄側偄応崌
					result = RequestSongItem();	//  慖戰嬋傾僀僥儉庢摼梫媮
					}
				else
					{	//  慖戰偝傟偨嬋傾僀僥儉傪慡偰庢摼姰椆偟偨応崌
					result = InsertSelectSongItem();	//  慖戰嬋捛壛梫媮
					}
				if (result == KErrNone)
					{	//  張棟惉岟
					CSmbMusicAPSyncServerContentsServiceBase::Start();
					//  張棟宲懕
					retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
					}
				else
					{	//  張棟幐攕
					MessageComplete(result);
					//  枹幚峴忬懺傊
					iServiceState = EContentsServicePLInsertItemOWStateIdle;
					//  張棟廔椆
					retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
					}
				}
			else
				{	//  嬋傾僀僥儉庢摼偵幐攕偟偨応崌
				MessageComplete(result);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemOWStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			}
			break;
		case EContentsServicePLInsertItemOWStateInsertItem:		//  嬋傾僀僥儉捛壛張棟拞
			{
			//  傾僾儕偵曉媝偡傞抣偼側偄偨傔儕僋僄僗僩姰椆偺傒
			MessageComplete(KErrNone);
			//  枹幚峴忬懺傊
			iServiceState = EContentsServicePLInsertItemOWStateIdle;
			//  張棟廔椆
			retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;

			//  嬋傾僀僥儉偺攋婞
			iSongArray.ResetAndDestroy();

			// 傾僀僥儉忋彂偒偺捠抦傪偡傞
			iManagers.AppNotifyManager().NotifyOverWriteItem(iPLHandle);
			}
			break;
		case EContentsServicePLInsertItemOWStateIdle:				//  張棟柍偟
		//  張棟柍偟忬懺偵ContinueService偑屇偽傟傞偙偲偼堎忢宯偱偁傞偨傔default摨條偵張棟偡傞丅
		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber12;
			_LIT(KServicePLInsertItemOWContinueServiceL04, "SyncServerContentsServicePLInsertItemOW::ContinueServiceL illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServicePLInsertItemOWContinueServiceL04, iServiceState);

			ASSERT(EFalse);
			}
			break;
		}

	return retState;
	}


/**
 *  傾僀僥儉攝楍庢摼
 *
 *  @return	傾僀僥儉攝楍傊偺嶲徠
 **/
CSmbMusicMWLibItemArray& CSmbMusicAPSyncServerContentsServicePLInsertItemOW::ItemArray() const
	{
	ASSERT(iItemArray != NULL);
	return *iItemArray;
	}


/**
 *  捛壛愭僾儗僀儕僗僩愝掕仌捛壛尦嬋儕僗僩庢摼
 *
 *  @return	張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItemOW::SetPlayListItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber13;
	_LIT(KServicePLInsertItemOWSetPlayListItem01, "SyncServerContentsServicePLInsertItemOW::SetPlayListItem() Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWSetPlayListItem01);
#endif

	//  庢摼偟偨儕僗僩攝楍偺梫慺悢僠僃僢僋
	if (ItemArray().Count() < 1)
		{	//  梫慺悢偑懌傝側偄(1側偄)応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber14;
		_LIT(KServicePLInsertItemOWSetPlayListItem02, "SyncServerContentsServicePLInsertItemOW::SetPlayListItem no enough array:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWSetPlayListItem02, ItemArray().Count());
#endif
		return KErrNotReady;
		}

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

	//  庢摼偟偨儕僗僩攝楍偐傜僾儗僀儕僗僩傾僀僥儉傪庢傝弌偡
	TRAPD(error, iPLItem = static_cast<CSmbMusicMWLibPLItem*>(ItemArray().GetMusicItemL(0)););
	if (error != KErrNone)
		{	//  僾儗僀儕僗僩傾僀僥儉偺庢傝弌偟偵幐攕偟偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber15;
		_LIT(KServicePLInsertItemOWSetPlayListItem03, "SyncServerContentsServicePLInsertItemOW::SetPlayListItem GetMusicItemL is Leave:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWSetPlayListItem03, error);
#endif
		return error;
		}
	if (iPLItem == NULL)
		{	//  庢傝弌偟偨僾儗僀儕僗僩傾僀僥儉偑NULL偩偭偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber16;
		_LIT(KServicePLInsertItemOWSetPlayListItem04, "SyncServerContentsServicePLInsertItemOW::SetPlayListItem GetMusicItemL is NULL");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWSetPlayListItem04);
#endif
		return KErrNotFound;
		}

	//  捛壛尦儕僗僩庢摼
	iItemList = iScreenData.GetList(iListHandle);
	if (iItemList == NULL)
		{	//  儕僗僩偺庢摼偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber17;
		_LIT(KServicePLInsertItemOWSetPlayListItem05, "SyncServerContentsServicePLInsertItemOW::SetPlayListItem GetList Error");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWSetPlayListItem05);
#endif
		return KErrNotFound;
		}

	//  傾僀僥儉儕僗僩偺弶婜壔
	ItemArray().Reset();

	return KErrNone;
	}


/**
 *  僾儗僀儕僗僩慡嬋捛壛梫媮
 *
 *  @return	張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItemOW::InsertAllSongItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber18;
	_LIT(KServicePLInsertItemOWInsertAllSongItem01, "SyncServerContentsServicePLInsertItemOW::InsertAllSongItem Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWInsertAllSongItem01);
#endif

	//  僾儗僀儕僗僩偵懳偟嬋捛壛傪梫媮
	TInt error = iPLItem -> InsertItem(iInsertIndex, iItemList -> GetListItem(), iStatus);
	if (error != KErrNone)
		{	//  捛壛梫媮張棟偑僄儔乕偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber19;
		_LIT(KServicePLInsertItemOWInsertAllSongItem02, "SyncServerContentsServicePLInsertItemOW::InsertAllSongItem InsertItem Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWInsertAllSongItem02, error);
#endif
		return error;
		}

	//  忬懺傪嬋傾僀僥儉捛壛張棟拞傊
	iServiceState = EContentsServicePLInsertItemOWStateInsertItem;

	return KErrNone;
	}

⌨️ 快捷键说明

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