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

📄 smbmusicapsyncservercontentsimagedatamanager.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				return EFalse;
				}
			if ((stImgInfo -> iIsJacket != EFalse) && (stImgInfo -> iIsLyric != EFalse))
				{	//  僕儍働僢僩夋憸忣曬曐帩丄偐偮壧帉夋憸忣曬曐帩偺応崌
				//巜掕偝傟偨夋憸忣曬偑偁偭偨偺偱夋憸悢傪僐僺乕偡傞
				TSmbMusicAPSyncEngineImageInfoInSongItem& imageInfo(*(stImgInfo -> iInfo));
				aImageCount.iJacketCount = imageInfo.iImageNumJacket;
				aImageCount.iLyricCount  = imageInfo.iImageNumLyric;

				return ETrue;
				}
			else
				{	//  僕儍働僢僩夋憸忣曬偐丄壧帉夋憸忣曬偺偳偪傜偑懌傝側偄応崌
				//  庢摼幐攕傪曉偟丄帺椡偱庢摼偵峴偭偰傕傜偆
				return EFalse;
				}
			}
		}

	return EFalse;
	}
//  ADD-E  [iKeeper(TRK):5472] 乽夋憸昞帵乿丄乽壧帉昞帵乿偺婸搙昞帵偑抶傟傞栤戣偺懳墳

/**
 *  曐帩偟偰偄傞僉儍僢僔儏傪慡偰嶍彍偡傞
 *
 *  @param[out]	側偟
 *  @return		側偟
 */
void CSmbMusicAPSyncServerContentsImageDataManager::AllClear()
	{
	//傑偢偼夋憸忣曬偵偮偄偰嶍彍偟傑偡
	TImageControllerImageInfoStr* itemindex;
	TInt cnt = iImageInfo.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		itemindex = iImageInfo[0];
		delete itemindex->iInfo->iImageInfoArrayJacket;
		delete itemindex->iInfo->iImageInfoArrayLyric;
		delete itemindex->iInfo;
		delete itemindex;
		iImageInfo.Remove(0);
		}
	iImageInfo.ResetAndDestroy();

/**
//  仸仸夋憸僼傽僀儖偼摨婜僒乕僶偱偼娗棟偟傑偣傫仸仸
	//夋憸僼傽僀儖傪嶍彍偟傑偡
	TImageControllerImageStr* imagestr;
	cnt = iImage.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		imagestr = iImage[0];
		//僼傽僀儖傪惗惉偟偰偄傟偽嶍彍偡傞
		if(NULL != imagestr->iFile)
			{
			//僼傽僀儖僒乕僶偲僙僢僔儑儞傪奐偔
			RFs fs;
			fs.Connect();
			//夋憸僼傽僀儖傪嶍彍偡傞
			fs.Delete(*imagestr->iFile);
			//僼傽僀儖僒乕僶偲偺僙僢僔儑儞傪暵偠傞
			fs.Close();
			delete imagestr->iFile;
			}

		delete imagestr;
		iImage.Remove(0);
		}

	iImage.ResetAndDestroy();
//  仸仸夋憸僼傽僀儖偼摨婜僒乕僶偱偼娗棟偟傑偣傫仸仸
**/
	}

//  ADD-S [824iKeeper(TRK):811] 嵞惗嬋偲昞帵忣曬偑堦抳偟側偄栤戣偺懳墳
/**
 *  堦抳偟偨儕僗僩僴儞僪儖偺僉儍僢僔儏傪慡偰嶍彍偡傞
 *
 *  @param[in]	aListHandle	僋儕傾懳徾偺儕僗僩僴儞僪儖
 *  @return		側偟
 */
void CSmbMusicAPSyncServerContentsImageDataManager::ClearCache(TInt aListHandle)
	{
	//  巜掕偝傟偨儕僗僩僴儞僪儖偺夋憸忣曬傪嶍彍偡傞
	TImageControllerImageInfoStr* imageInfo(NULL);
	TInt count = iImageInfo.Count() - 1;
	for (TInt i = count; i >= 0; i--)
		{
		imageInfo = iImageInfo[i];
		if (imageInfo -> iSongItem.iListHandle == aListHandle)
			{
			delete imageInfo -> iInfo -> iImageInfoArrayJacket;
			delete imageInfo -> iInfo -> iImageInfoArrayLyric;
			delete imageInfo -> iInfo;
			delete imageInfo;
			iImageInfo.Remove(i);
			}
		}
	}
//  ADD-E [824iKeeper(TRK):811] 嵞惗嬋偲昞帵忣曬偑堦抳偟側偄栤戣偺懳墳

//  ADD-S PTX824 k3-sugimoto
/**
 *  巜掕夋憸庬暿偺夋憸忣曬傪庢摼偡傞
 *
 *  @param[in]		aSongItem		嬋巜掕忣曬(儕僗僩僴儞僪儖偲僀儞僨僢僋僗)
 *  @param[in]		aImageType		庢摼夋憸庬暿
 *  @param[in]		aExType			奼挘僼儔僌
 *  @param[in,out]	aImageTypeInfo	巜掕庬暿夋憸忣曬
 *
 *	@return	庢摼偱偒偨偐偳偆偐(ETrue:忣曬庢摼偱偒偨丄EFalse:忣曬偑側偐偭偨)
 **/
TBool CSmbMusicAPSyncServerContentsImageDataManager::GetImageTypeInfo(
		TSmbMusicAPSyncEngineItemIndex& aSongItem,
		TSmbMusicAPSyncEngineImageType aImageType,
		TInt aExType,
		TSmbMusicAPSyncEngineImageTypeInfo& aImageTypeInfo
		)
	{
	TBool isExist(EFalse);

	ASSERT((aImageType == ESmbMusicAPSyncEngineImageTypeJacket) || (aImageType == ESmbMusicAPSyncEngineImageTypeLyric));

	TImageControllerImageInfoStr* imageInfo(NULL);
	for (TInt i = 0; i < iImageInfo.Count(); i++)
		{
		imageInfo = iImageInfo[i];
		if ((imageInfo -> iSongItem.iListHandle == aSongItem.iListHandle) &&
			(imageInfo -> iSongItem.iIndex == aSongItem.iIndex))
			{	//  儕僗僩僴儞僪儖偲僀儞僨僢僋僗偑堦抳偡傞忣曬偑懚嵼偟偨
			if ((aImageType == ESmbMusicAPSyncEngineImageTypeJacket) &&
				(imageInfo -> iIsJacket != EFalse))
				{	//  巜掕偑僕儍働僢僩夋憸偱僕儍働僢僩夋憸忣曬桳
				if (imageInfo -> iExType != aExType)
					{	//  奼挘僼儔僌偑堘偆応崌
					//  僉儍僢僔儏偵嵎堎偑敪惗偡傞壜擻惈偑偁傞偺偱忣曬側偟偲張棟偡傞
					break;
					}
				isExist = ETrue;
				aImageTypeInfo.iCount		= imageInfo -> iInfo -> iImageNumJacket;		//  僕儍働僢僩夋憸枃悢
				aImageTypeInfo.iImageInfo	= imageInfo -> iInfo -> iImageInfoArrayJacket;	//  僕儍働僢僩夋憸忣曬攝楍
				}
			else if ((aImageType == ESmbMusicAPSyncEngineImageTypeLyric) &&
					 (imageInfo -> iIsLyric != EFalse))
				{	//  巜掕偑壧帉夋憸偱壧帉夋憸忣曬桳
				isExist = ETrue;
				aImageTypeInfo.iCount		= imageInfo -> iInfo -> iImageNumLyric;			//  壧帉夋憸枃悢
				aImageTypeInfo.iImageInfo	= imageInfo -> iInfo -> iImageInfoArrayLyric;	//  壧帉夋憸忣曬攝楍
				}
			break;
			}
		}

	return isExist;
	}

/**
 *  巜掕夋憸庬暿偺夋憸忣曬傪搊榐偡傞
 *
 *  @param[in]	aSongItem		嬋巜掕忣曬(儕僗僩僴儞僪儖偲僀儞僨僢僋僗)
 *  @param[in]	aImageType		庢摼夋憸庬暿
 *  @param[in]	aExType			奼挘僼儔僌
 *  @param[in]	aImageTypeInfo	巜掕庬暿夋憸忣曬
 *
 *	@return	庢摼偱偒偨偐偳偆偐(ETrue:忣曬庢摼偱偒偨丄EFalse:忣曬偑側偐偭偨)
 **/
TInt CSmbMusicAPSyncServerContentsImageDataManager::SetImageTypeInfo(
		TSmbMusicAPSyncEngineItemIndex& aSongItem,
		TSmbMusicAPSyncEngineImageType aImageType,
		TInt aExType,
		TSmbMusicAPSyncEngineImageTypeInfo& aImageTypeInfo
		)
	{
	TBool	isExist(EFalse);
	TInt	result(KErrNone);

	//  僉儍僢僔儏偑偁傞偐偳偆偐僠僃僢僋
	TImageControllerImageInfoStr* imageInfo(NULL);
	for (TInt i = 0; i < iImageInfo.Count(); i++)
		{
		imageInfo = iImageInfo[i];
		if ((imageInfo -> iSongItem.iListHandle == aSongItem.iListHandle) &&
			(imageInfo -> iSongItem.iIndex == aSongItem.iIndex))
			{
			isExist = ETrue;
			break;
			}
		}

	if (isExist != EFalse)
		{	//  儕僗僩僴儞僪儖偲僀儞僨僢僋僗偑堦抳偡傞僉儍僢僔儏偑懚嵼偟偨
		imageInfo -> iExType = aExType;	//  奼挘僼儔僌偼枅夞峏怴偡傞
		if (aImageType == ESmbMusicAPSyncEngineImageTypeJacket)
			{	//  庢摼偟偨夋憸忣曬偼僕儍働僢僩夋憸偺傕偺
			if (imageInfo -> iIsJacket != EFalse)
				{	//  側偤偩偐婛偵僕儍働僢僩夋憸忣曬偑懚嵼偟偨
				//  Fale-Safe偲偟偰屆偄忣曬偼嶍彍偡傞
				delete imageInfo -> iInfo -> iImageInfoArrayJacket;
				imageInfo -> iInfo -> iImageInfoArrayJacket = NULL;
				}
			//  僕儍働僢僩夋憸忣曬傪愝掕偡傞
			imageInfo -> iIsJacket = ETrue;
			imageInfo -> iInfo -> iImageNumJacket		= aImageTypeInfo.iCount;
			imageInfo -> iInfo -> iImageInfoArrayJacket	= aImageTypeInfo.iImageInfo;
			}
		else if (aImageType == ESmbMusicAPSyncEngineImageTypeLyric)
			{	//  庢摼偟偨夋憸忣曬偼壧帉夋憸偺傕偺
			if (imageInfo -> iIsLyric != EFalse)
				{	//  側偤偩偐婛偵壧帉夋憸忣曬偑懚嵼偟偨
				//  Fale-Safe偲偟偰屆偄忣曬偼嶍彍偡傞
				delete imageInfo -> iInfo -> iImageInfoArrayLyric;
				imageInfo -> iInfo -> iImageInfoArrayLyric = NULL;
				}
			//  壧帉夋憸忣曬傪愝掕偡傞
			imageInfo -> iIsLyric = ETrue;
			imageInfo -> iInfo -> iImageNumLyric		= aImageTypeInfo.iCount;
			imageInfo -> iInfo -> iImageInfoArrayLyric	= aImageTypeInfo.iImageInfo;
			}
		else
			{	//  夋憸庬暿偑僕儍働僢僩丒壧帉偺偳偪傜偱傕側偐偭偨
			//  夋憸庬暿偑偍偐偟偄両
			TUint32 log = EMusicAPSyncServerClassNumber_ContentsImageDataManager | EMusicAPSyncServerLocationNumber02;
			_LIT(KContentsImageDataManager02, "SyncServerContentsServiceGetImageInfo::SetImageTypeInfo Illegal ImageType(A):%d");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KContentsImageDataManager02, aImageType);

			result = KErrArgument;
			}
		}
	else
		{	//  儕僗僩僴儞僪儖偲僀儞僨僢僋僗偑堦抳偡傞僉儍僢僔儏偑懚嵼偟側偐偭偨
		imageInfo = NULL;
		TRAP(result,
			imageInfo = new(ELeave)TImageControllerImageInfoStr;
			imageInfo -> iInfo = NULL;	//  CBase攈惗偠傖側偄偺偱
			imageInfo -> iInfo = new(ELeave)TSmbMusicAPSyncEngineImageInfoInSongItem;
			imageInfo -> iInfo -> iImageInfoArrayJacket	= NULL;	//  CBase攈惗偠傖側偄偺偱
			imageInfo -> iInfo -> iImageInfoArrayLyric	= NULL;	//  CBase攈惗偠傖側偄偺偱
			);
		if (result != KErrNone)
			{	//  僉儍僢僔儏偺惗惉偵幐攕
			TUint32 log = EMusicAPSyncServerClassNumber_ContentsImageDataManager | EMusicAPSyncServerLocationNumber03;
			_LIT(KContentsImageDataManager03, "SyncServerContentsServiceGetImageInfo::SetImageTypeInfo Make Cache is Leave");
			SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KContentsImageDataManager03);
			}
		else
			{  //  奿擺応強嶌惉惉岟
			if (iImageInfo.Count() > KMaxImageDataNumber)
				{	//  嵟戝僉儍僢僔儏悢傪挻夁偟偨応崌
				//  挻夁暘偺僉儍僢僔儏傪嶍彍
				DeleteImageInfo(KMaxImageDataNumber);

				//惓忢宯偩偗偳儘僌偼弌偟偲偒傑偟傚偆
				TInt32 log = EMusicAPSyncServerClassNumber_ContentsImageDataManager | EMusicAPSyncServerLocationNumber04;
				_LIT(KContentsImageDataManager04, "SyncServerContentsServiceGetImageInfo::SetImageTypeInfo Delete Cache:%d");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelLowest, KContentsImageDataManager04, KMaxImageDataNumber);
				}
			//  嬋忣曬傪愝掕偲僼儔僌偺弶婜壔
			imageInfo -> iSongItem	= aSongItem;
			imageInfo -> iIsJacket	= EFalse;
			imageInfo -> iIsLyric	= EFalse;
			imageInfo -> iExType	= aExType;

			//  庢摼偟偨忣曬傪僉儍僢僔儏
			if (aImageType == ESmbMusicAPSyncEngineImageTypeJacket)
				{	//  庢摼偟偨夋憸忣曬偼僕儍働僢僩夋憸偺傕偺
				//  僕儍働僢僩夋憸忣曬傪愝掕偡傞
				imageInfo -> iIsJacket = ETrue;
				imageInfo -> iInfo -> iImageNumJacket		= aImageTypeInfo.iCount;
				imageInfo -> iInfo -> iImageInfoArrayJacket	= aImageTypeInfo.iImageInfo;

				result = iImageInfo.Insert(imageInfo, 0);
				if (result != KErrNone)
					{
					TUint32 log = EMusicAPSyncServerClassNumber_ContentsImageDataManager | EMusicAPSyncServerLocationNumber05;
					_LIT(KContentsImageDataManager05, "SyncServerContentsServiceGetImageInfo::SetImageTypeInfo Jacket Append Error:%d");
					SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KContentsImageDataManager05, result);
					}
				}
			else if (aImageType == ESmbMusicAPSyncEngineImageTypeLyric)
				{	//  庢摼偟偨夋憸忣曬偼壧帉夋憸偺傕偺
				//  壧帉夋憸忣曬傪愝掕偡傞
				imageInfo -> iIsLyric = ETrue;
				imageInfo -> iInfo -> iImageNumLyric		= aImageTypeInfo.iCount;
				imageInfo -> iInfo -> iImageInfoArrayLyric	= aImageTypeInfo.iImageInfo;

				result = iImageInfo.Insert(imageInfo, 0);
				if (result != KErrNone)
					{
					TUint32 log = EMusicAPSyncServerClassNumber_ContentsImageDataManager | EMusicAPSyncServerLocationNumber06;
					_LIT(KContentsImageDataManager06, "SyncServerContentsServiceGetImageInfo::SetImageTypeInfo Lyric Append Error:%d");
					SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KContentsImageDataManager06, result);
					}
				}
			else
				{	//  夋憸庬暿偑僕儍働僢僩丒壧帉偺偳偪傜偱傕側偐偭偨
				//  夋憸庬暿偑偍偐偟偄両
				TUint32 log = EMusicAPSyncServerClassNumber_ContentsImageDataManager | EMusicAPSyncServerLocationNumber07;
				_LIT(KContentsImageDataManager07, "SyncServerContentsServiceGetImageInfo::SetImageTypeInfo Illegal ImageType(B):%d");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHigh, KContentsImageDataManager07, aImageType);

				result = KErrArgument;
				}
			}
		if (result != KErrNone)
			{	//  怴婯捛壛偺偳偙偐偱僄儔乕偑敪惗偟偨応崌偺屻張棟
			//  CleanupStack偵愊傫偱偄側偄偺偱柧帵揑偵嶍彍
			if (imageInfo != NULL)
				{
				delete imageInfo -> iInfo;
				}
			delete imageInfo;
			}
		}

	return result;
	}

/**
 *  巜掕僀儞僨僢僋僗偵奿擺偝傟偨夋憸忣曬偺僉儍僢僔儏傪僋儕傾偡傞
 *
 *  @param[in]	aIndex	嶍彍偟偨偄夋憸忣曬偺僀儞僨僢僋僗
 **/
void CSmbMusicAPSyncServerContentsImageDataManager::DeleteImageInfo(TInt aIndex)
	{
	if ((aIndex >= iImageInfo.Count()) ||
		(aIndex < 0))
		{	//  巜掕僀儞僨僢僋僗偑斖埻奜偺応崌
		//  壗傕偣偢廔椆
		return;
		}

	TImageControllerImageInfoStr* itemIndex = iImageInfo[aIndex];
	iImageInfo.Remove(aIndex);
	delete itemIndex -> iInfo -> iImageInfoArrayJacket;
	delete itemIndex -> iInfo -> iImageInfoArrayLyric;
	delete itemIndex -> iInfo;
	delete itemIndex;
	}
//  ADD-E PTX824 k3-sugimoto


// end of SmbMusicAPSyncServerContentsImageDataManager.cpp

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

⌨️ 快捷键说明

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