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

📄 smbmusicapsyncservercontentsservicegetimagetypeinfo.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				{
				retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
				}
			MessageComplete(result);

			iServiceState = EContentsServiceGetImageTypeInfoStateIdle;	//  僒乕價僗忬懺傪張棟柍偟忬懺傊
			}
			break;
		case EContentsServiceGetImageTypeInfoStateIdle:			//  張棟柍偟
		//  張棟柍偟忬懺偱偙偙偑屇偽傟傞偙偲偼偁傝偊側偄偺偱default偲摨條偺張棟
		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber09;
			_LIT(KServiceGetImageTypeInfoContinueServiceL02, "SyncServerContentsServiceGetImageTypeInfo::ContinueServiceL illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServiceGetImageTypeInfoContinueServiceL02, iServiceState);

			ASSERT(EFalse);
			}
			break;
		}

	return retState;
	}


/**
 *  僷儔儊乕僞撉崬
 *
 *  @return	僷儔儊乕僞撉崬惉斲(ETrue:栤戣側偟丄EFalse:栤戣偁傝)
 **/
TBool CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::LoadParamL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber10;
	_LIT(KServiceGetImageTypeInfoLoadParamL01, "SyncServerContentsServiceGetImageTypeInfo::LoadParamL");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoLoadParamL01);
#endif
	//  摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
	TInt maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn1);
	if (maxLen < sizeof(TSmbMusicAPSyncServerContentsReqPkg))
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber11;
		_LIT(KServiceGetImageTypeInfoLoadParamL02, "SyncServerContentsServiceGetImageTypeInfo::LoadParamL Argument 1 Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoLoadParamL02, maxLen);

		return EFalse;
		}

	//  梫媮僷僢働乕僕偺撉崬
	TInt error(KErrNone);
	TSmbMusicAPSyncServerContentsReqPkg reqPkg;
	TPckg<TSmbMusicAPSyncServerContentsReqPkg> pkg(reqPkg);
	error = iRMessage.Read(KSmbMusicAPSyncEngineMsgIn1, pkg);
	if (error != KErrNone)
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕偺撉崬偵幐攕
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber12;
		_LIT(KServiceGetImageTypeInfoLoadParamL03, "SyncServerContentsServiceGetImageTypeInfo::LoadParamL ContentsReqPkg Load Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoLoadParamL03, error);

		return EFalse;
		}

	iItemIndex	= reqPkg.iData.iGetImageTypeInfo.iSongItem;		//  懳徾嬋忣曬曐帩
	iImageType	= reqPkg.iData.iGetImageTypeInfo.iImageType;
	iItemIndex.iIndex++;	//  index僆儕僕儞傪挷惍
	iExType		= reqPkg.iData.iGetImageTypeInfo.iExType;	//  奼挘僼儔僌


#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber13;
	_LIT(KServiceGetImageTypeInfoLoadParamL04, "SyncServerContentsServiceGetImageTypeInfo::LoadParamL Handle:%08x Index:%d ImageType:%d ExType:%08x");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServiceGetImageTypeInfoLoadParamL04,
							iItemIndex.iListHandle, iItemIndex.iIndex, iImageType, iExType);
#endif
	return ETrue;
	}

/**
 *  嬋傾僀僥儉愝掕
 *
 *  @return	張棟寢壥(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::GetImageTypeInfo()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber14;
	_LIT(KServiceGetImageTypeInfoGetImageTypeInfo01, "SyncServerContentsServiceGetImageTypeInfo::GetImageTypeInfo");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoGetImageTypeInfo01);
#endif
	//  庢摼偟偨儕僗僩攝楍偺梫慺悢僠僃僢僋
	if (iItemArray -> Count() < 1)
		{	//  梫慺悢偑懌傝側偄(1側偄)応崌
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber15;
		_LIT(KServiceGetImageTypeInfoGetImageTypeInfo02, "SyncServerContentsServiceGetImageTypeInfo::GetImageTypeInfo no enough array:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoGetImageTypeInfo02, iItemArray -> Count());

		return KErrNotReady;
		}

	//  懳徾嬋傾僀僥儉弶婜壔
	delete iSongItem;
	iSongItem = NULL;

	//  庢摼偟偨儕僗僩攝楍偐傜嬋傾僀僥儉傪庢傝弌偡
	TRAPD(error, iSongItem = static_cast<CSmbMusicMWLibSongItem*>(iItemArray -> GetMusicItemL(0)););
	if (error != KErrNone)
		{	//  嬋傾僀僥儉偺庢傝弌偟偵幐攕偟偨応崌
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber16;
		_LIT(KServiceGetImageTypeInfoGetImageTypeInfo03, "SyncServerContentsServiceGetImageTypeInfo::GetImageTypeInfo GetMusicItemL is Leave:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoGetImageTypeInfo03, error);

		return error;
		}
	if (iSongItem == NULL)
		{	//  庢傝弌偟偨嬋傾僀僥儉偑NULL偩偭偨応崌
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber17;
		_LIT(KServiceGetImageTypeInfoGetImageTypeInfo04, "SyncServerContentsServiceGetImageTypeInfo::GetImageTypeInfo GetMusicItemL is NULL");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoGetImageTypeInfo04);

		return KErrNotFound;
		}

	//  傾僀僥儉儕僗僩偺弶婜壔
	iItemArray -> Reset();

	iImageTypeInfo.iImageInfo.Reset();	//  屄暿忣曬奿擺僶僢僼傽偺僋儕傾
	TSmbMusicAPLibImageType imageType = TSmbMusicAPSyncServerConverter::ConvertImageType(iImageType, &iRLog);
	if (imageType == ESmbMusicAPLibImageTypeOther)
		{	//  庢摼偟偨偄夋憸庬暿偑敾暿晄壜擻偩偭偨応崌
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber18;
		_LIT(KServiceGetImageTypeInfoGetImageTypeInfo05, "SyncServerContentsServiceGetImageTypeInfo::GetImageTypeInfo illegal ImageType(%d->%d)");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoGetImageTypeInfo05, iImageType, imageType);

		return KErrArgument;
		}

	//  巜掕庬暿偺夋憸忣曬庢摼
	error = iFunc.GetImageTypeInfo(*iSongItem, imageType, iExType, iImageTypeInfo, iStatus);
	if (error != KErrNone)
		{	//  嬋傾僀僥儉偺庢傝弌偟偵幐攕偟偨応崌
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber19;
		_LIT(KServiceGetImageTypeInfoGetImageTypeInfo06, "SyncServerContentsServiceGetImageTypeInfo::GetImageTypeInfo Func::GetImageTypeInfo Error = %d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoGetImageTypeInfo06, error);
		}

	return error;
	}

/**
 *  巜掕庬暿夋憸忣曬傪愝掕
 *
 *  @return	張棟寢壥(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber20;
	_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoCompleteGetImageTypeInfo01);
#endif
	TSmbMusicAPSyncEngineImageTypeInfo imageTypeInfo;

	imageTypeInfo.iCount = iImageTypeInfo.iImageInfo.Count();
	CArrayFixFlat<TSmbMusicAPSyncEngineImageIndividualInfo>* infoArray(NULL);	//  強桳尃偼夋憸忣曬儅僱乕僕儍偵忳搉偝傟傞
	TInt result(KErrNone);

	TInt infoCount(iImageTypeInfo.iImageInfo.Count());

	if (infoCount > 0)
		{
		TRAPD(result,
			infoArray = new(ELeave)CArrayFixFlat<TSmbMusicAPSyncEngineImageIndividualInfo>(infoCount);

			for (TInt i = 0; i < infoCount; i++)
				{
				TSmbMusicAPSyncEngineImageIndividualInfo individualInfo;
				individualInfo.iStoreFlag		= iImageTypeInfo.iImageInfo[i].iStoreFlag;
				individualInfo.iContentType		= TSmbMusicAPSyncServerConverter::ConvertImageFormat(iImageTypeInfo.iImageInfo[i].iContentsType, &iRLog);
				individualInfo.iFileName		= iImageTypeInfo.iImageInfo[i].iFileName;
				individualInfo.iImageSize		= iImageTypeInfo.iImageInfo[i].iImageSize;
				individualInfo.iDCMMove			= iImageTypeInfo.iImageInfo[i].iXDcmMove;
				individualInfo.iDCMAdditional	= iImageTypeInfo.iImageInfo[i].iXDcmAdditional;

				infoArray -> AppendL(individualInfo);
				}
			);
		if (result != KErrNone)
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber20;
			_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo Make Array Error = %d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, result);

			delete infoArray;

			return result;
			}
		}

	imageTypeInfo.iImageInfo = infoArray;

	//  僋儔僀傾儞僩傊偺忣曬偺彂偒弌偟偵幐攕偟偨応崌偱傕僉儍僢僔儏傊偺曐懚傪帋傒傞丅
	result = WriteToMessage(imageTypeInfo);
	if (result != KErrNone)
		{
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber20;
		_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo WriteToMessage Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, result);
		}

	TInt wrResult = iManagers.ImageDataManager().SetImageTypeInfo(iItemIndex, iImageType, iExType, imageTypeInfo);
	if (wrResult != KErrNone)
		{
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber20;
		_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo SetImageTypeInfo Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, wrResult);

		//  僉儍僢僔儏偺曐帩偵幐攕偟偨偺偱帺慜偱嶍彍偡傞
		delete infoArray;
		}

	return result;
	}


/**
 *  僋儔僀傾儞僩偐傜偺儊僢僙乕僕偵忣曬傪彂偒崬傓
 *
 *  @param[in]	aCount	庢摼偟偨夋憸忣曬偺悢
 *  @param[in]  aArray	庢摼偟偨夋憸忣曬攝楍傊偺億僀儞僞
 *
 *  @return	張棟寢壥(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::WriteToMessage(TSmbMusicAPSyncEngineImageTypeInfo aImageTypeInfo)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber20;
	_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo01, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoCompleteGetImageTypeInfo01);
#endif
	TInt infoCount(aImageTypeInfo.iCount);
	TInt desLength(0);
	TInt buffSize(0);

	//  墳摎儊僢僙乕僕偺撪梕傪撉傒崬傓
	TSmbMusicAPSyncEngineImageTypeInfo response;
	TPckg<TSmbMusicAPSyncEngineImageTypeInfo> resPkg(response);
	TInt result = iRMessage.Read(KSmbMusicAPSyncEngineMsgOut1, resPkg);
	if(result != KErrNone)
		{
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber21;
		_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo02, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo Res Message Read Error = %d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoCompleteGetImageTypeInfo02, result);

		return result;
		}

	//  庢摼枃悢愝掕
	response.iCount = aImageTypeInfo.iCount;

	//  墳摎儊僢僙乕僕偺彂偒弌偟
	result = iRMessage.Write(KSmbMusicAPSyncEngineMsgOut1, resPkg);
	if (result != KErrNone)
		{
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber22;
		_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo03, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo Message Write Error = %d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoCompleteGetImageTypeInfo03, result);

		return result;
		}

	if (infoCount == 0)
		{	//  屄暿忣曬偑側偄応崌
		return KErrNone;
		}

	ASSERT(aImageTypeInfo.iImageInfo != NULL);	//  堦墳僠僃僢僋

	//  堦墳屄暿忣曬彂偒崬傒僶僢僼傽偺僒僀僘僠僃僢僋傪峴偆
	desLength = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn2);
	if (desLength < 0)
		{
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber23;
		_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo04, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo GetDesLength Error = %d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoCompleteGetImageTypeInfo04, desLength);

		return desLength;
		}
	buffSize = desLength / sizeof(TSmbMusicAPSyncEngineImageIndividualInfo);
	if (buffSize < infoCount)
		{	//  彂偒崬傒僶僢僼傽偺傎偆偑庢摼偟偨忣曬傛傝彫偝偄応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber24;
		_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo05, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo buffSize(%d) < infoCount(%d)");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetImageTypeInfoCompleteGetImageTypeInfo05, buffSize, infoCount);
#endif
		infoCount = buffSize;	//  彂偒崬傒僶僢僼傽悢傪嵟戝悢偵偡傞
		}

	//  僨乕僞彂偒崬傒偺偨傔僼儔僢僩側僨乕僞椞堟傪嶌惉偡傞
	//  儊僢僙乕僕偵庢摼偟偨夋憸忣曬傪彂偒弌偡
	TPtrC8 resDes(reinterpret_cast<const TUint8*>(&(*aImageTypeInfo.iImageInfo)[0]),
				  infoCount * sizeof(TSmbMusicAPSyncEngineImageIndividualInfo));
	result = iRMessage.Write(KSmbMusicAPSyncEngineMsgIn2, resDes);
	if (result != KErrNone)
		{	//  彂偒弌偟偵幐攕
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber25;
		_LIT(KServiceGetImageTypeInfoCompleteGetImageTypeInfo06, "SyncServerContentsServiceGetImageTypeInfo::CompleteGetImageTypeInfo Buffer Make Error = %d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoCompleteGetImageTypeInfo06, result);
		}
	return result;
	}


// end of SmbMusicAPSyncServerContentsServiceGetImageTypeInfo.cpp

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

⌨️ 快捷键说明

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