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

📄 smbmusicapsyncservercontentsserviceplinsertitem.cpp

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

			ASSERT(EFalse);
			}
			break;
		}

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


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

	TSmbMusicAPSyncServerContentsServiceState retState(ESmbMusicAPSyncServerContetnsServiceStateEnd);

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

					CSmbMusicAPSyncServerContentsServiceBase::Start();
					//  張棟宲懕
					retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
					}
				}
			if (result != KErrNone)
				{	//  捛壛愭僾儗僀儕僗僩愝掕偵幐攕丄傑偨偼僾儗僀儕僗僩偺僆乕僾儞偵幐攕偺応崌
				MessageComplete(result);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			}
			break;
		case EContentsServicePLInsertItemStateOpenPLList:		//  捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
			{
			//  張棟奐巒慜偺儕僗僩偵偁傞傾僀僥儉悢傪曐懚偡傞
			iOriginalCount = iPLItem -> Count();
			if (iOriginalCount < 0)
				{	//  儕僗僩偵娷傑傟傞傾僀僥儉悢偺庢摼偵幐攕偟偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
				logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber10;
				_LIT(KServicePLInsertItemContinueServiceL02, "SyncServerContentsServicePLInsertItem::ContinueServiceL PLList Count Error:%d");
				SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemContinueServiceL02, iOriginalCount);
#endif
				MessageComplete(iOriginalCount);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;

				break;
				}
			//  憓擖愭偼僾儗僀儕僗僩撪偺嵟屻偲偄偆巇條偵側偭偨偨傔
			//  僾儗僀儕僗僩偵娷傑傟傞傾僀僥儉悢傪庢摼偟+1偟偨index傪憓擖愭偲偡傞丅
			iInsertIndex = iOriginalCount + 1;

			TInt result(KErrNone);
			if (iAllItems != EFalse)
				{	//  慡嬋捛壛偺応崌
				result = InsertAllSongItem();	//  慡嬋捛壛梫媮
				}
			else
				{	//  1嬋/慖戰捛壛偺応崌
				result = RequestSongItem();		//  慖戰嬋傾僀僥儉庢摼梫媮
				}
			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] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張

				CSmbMusicAPSyncServerContentsServiceBase::Start();
				//  張棟宲懕
				retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}
			else
				{	//  捛壛張棟偵幐攕偟偨応崌
				MessageComplete(result);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			}
			break;
		case EContentsServicePLInsertItemStateGetSongItem:	//  捛壛偡傞傾僀僥儉偺僴儞僪儖庢摼拞
			{
			//  捛壛嬋傾僀僥儉偺庢摼偱偒偨応崌偼丄
			//  嬋傾僀僥儉偲偦偺僴儞僪儖傪攝楍偵曐帩偟偰偍偔丅
			//  慖戰偝傟偨嬋慡偰偵偍偄偰忋婰張棟偑偡傫偩応崌偼丄
			//  僾儗僀儕僗僩偵懳偟偰慖戰嬋捛壛梫媮傪峴偆丅
			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 = EContentsServicePLInsertItemStateIdle;
					//  張棟廔椆
					retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
					}
				}
			else
				{	//  嬋傾僀僥儉庢摼偵幐攕偟偨応崌
				MessageComplete(result);
				//  枹幚峴忬懺傊
				iServiceState = EContentsServicePLInsertItemStateIdle;
				//  張棟廔椆
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			}
			break;
		case EContentsServicePLInsertItemStateInsertItem:		//  嬋傾僀僥儉捛壛張棟拞
			{
			//  傾僾儕偵曉媝偡傞抣偼側偄偨傔儕僋僄僗僩姰椆偺傒
			MessageComplete(KErrNone);
			//  枹幚峴忬懺傊
			iServiceState = EContentsServicePLInsertItemStateIdle;
			//  張棟廔椆
			retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;

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

			// 傾僀僥儉捛壛偺捠抦傪偡傞
			iManagers.AppNotifyManager().NotifyAddItem(iPLHandle, iPLList -> GetItemCount());

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

			ASSERT(EFalse);
			}
			break;
		}

	return retState;
	}


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


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

	//  庢摼偟偨儕僗僩攝楍偺梫慺悢僠僃僢僋
	if (ItemArray().Count() < 1)
		{	//  梫慺悢偑懌傝側偄(1側偄)応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber13;
		_LIT(KServicePLInsertItemSetPlayListItem02, "SyncServerContentsServicePLInsertItem::SetPlayListItem no enough array:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemSetPlayListItem02, 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_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber14;
		_LIT(KServicePLInsertItemSetPlayListItem03, "SyncServerContentsServicePLInsertItem::SetPlayListItem GetMusicItemL is Leave:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemSetPlayListItem03, error);
#endif
		return error;
		}
	if (iPLItem == NULL)
		{	//  庢傝弌偟偨僾儗僀儕僗僩傾僀僥儉偑NULL偩偭偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber15;
		_LIT(KServicePLInsertItemSetPlayListItem04, "SyncServerContentsServicePLInsertItem::SetPlayListItem GetMusicItemL is NULL");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemSetPlayListItem04);
#endif
		return KErrNotFound;
		}

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

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

	return KErrNone;
	}


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

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

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

	return KErrNone;
	}


/**
 *  僾儗僀儕僗僩慖戰嬋捛壛梫媮
 *
 *  @return	張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItem::InsertSelectSongItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__

⌨️ 快捷键说明

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