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

📄 smbmusicapsyncservercontentsservicegetimageinfo.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	{
	TInt msgRes = KErrNone;
	TInt log = 0;
	//娭悢偺墳摎梡曄悢
	TInt res = KErrNone;

	//墳摎儊僢僙乕僕偺撪梕傪撉傒崬傓
	TSmbMusicAPSyncEngineImageInfoInSongItem reqMsg;
	TPckg<TSmbMusicAPSyncEngineImageInfoInSongItem> reqPckg(reqMsg);
	msgRes = iRMessage.Read(KSmbMusicAPSyncEngineMsgOut1, reqPckg);
	if(KErrNone != msgRes)
		{
		log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber20;
		_LIT(KContentsServiceGetImageInfo20, "SyncServerContentsServiceGetImageInfo::WriteToMsgL Read Error = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo20, msgRes);
		//娭悢偺墳摎梡曄悢
		res = msgRes;
		}

	//僕儍働僢僩丄壧帉偦傟偧傟偺夋憸枃悢傪曐懚偡傞
	reqMsg.iImageNumJacket 	= aImageInfo.iImageNumJacket;
	reqMsg.iImageNumLyric 	= aImageInfo.iImageNumLyric;

	//撉傒崬傫偩儊僢僙乕僕傪峏怴偟偰丄墳摎梡儊僢僙乕僕偵撪梕傪彂偒崬傓
	TPckg<TSmbMusicAPSyncEngineImageInfoInSongItem> resPkg(reqMsg);
	msgRes = iRMessage.Write(KSmbMusicAPSyncEngineMsgOut1, resPkg);
	if(KErrNone != msgRes)
		{
		log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber21;
		_LIT(KContentsServiceGetImageInfo21, "SyncServerContentsServiceGetImageInfo::WriteToMsgL Write Error = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo21, msgRes);
		res = msgRes;
		}

	//墳摎撪梕偺攝楍傪僔儕傾儔僀僘壔偟傑偡
	if(aImageInfo.iImageNumJacket > 0)
		{
		//僕儍働僢僩夋憸偺忣曬傪彂偒崬傒傑偡
		TPtrC8 res1( (const TUint8*)&(*aImageInfo.iImageInfoArrayJacket)[0],
		aImageInfo.iImageInfoArrayJacket->Count() * sizeof(TSmbMusicAPSyncEngineImageIndividualInfo));
		msgRes = iRMessage.Write(KSmbMusicAPSyncEngineMsgIn2, res1);
		if(KErrNone != msgRes)
			{
			log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber22;
			_LIT(KContentsServiceGetImageInfo22, "SyncServerContentsServiceGetImageInfo::WriteToMsgL Write Error = %d");
			SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo22, msgRes);
			res = msgRes;
			}
		}
	if(aImageInfo.iImageNumLyric > 0)
		{
		//壧帉夋憸偺忣曬傪彂偒崬傒傑偡
		TPtrC8 res2( (const TUint8*)&(*aImageInfo.iImageInfoArrayLyric)[0],
		aImageInfo.iImageInfoArrayLyric->Count() * sizeof(TSmbMusicAPSyncEngineImageIndividualInfo));
		msgRes = iRMessage.Write(KSmbMusicAPSyncEngineMsgIn3, res2);
		if(KErrNone != msgRes)
			{
			log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber23;
			_LIT(KContentsServiceGetImageInfo23, "SyncServerContentsServiceGetImageInfo::WriteToMsgL Write Error = %d");
			SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo23, msgRes);
			res = msgRes;
			}

		}
	return res;
	}

/**
 *  偙偺僒乕價僗偺廔椆乮張棟傪廔椆偡傞帪偵偼昁偢僐乕儖偡傞偙偲乯
 * @param [in]	aResult	張棟寢壥
 * @return		側偟
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageInfo::CompleteThisService(TInt aResult)
	{
	//墳摎儊僢僙乕僕傪敪峴偡傞
	MessageComplete(aResult);

	//埨掕忬懺偵栠偡
	iState = EIdleState;

	//張棟偼廔椆
	return ESmbMusicAPSyncServerContetnsServiceStateEnd;
	}

/**
 *  嬋傾僀僥儉偐傜夋憸忣曬傪庢摼偡傞乮惗惉偡傞乯
 * @param [in]	側偟
 * @return		側偟
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageInfo::StartGetImageInfoL()
	{
	iLibItem = iLibImteArray->GetMusicItemL(0);
	//傾僀僥儉偐傜偺夋憸忣曬庢摼傪埶棅偡傞
	if(NULL == iLibItem)
		{
		//傾僀僥儉偑偁傝傑偣傫
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber15;
		_LIT(KContentsServiceGetImageInfo15, "SyncServerContentsServiceGetImageInfo::StartGetImageInfoL NotFound Item");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo15);

		//傕偭偰偄傞僆僽僕僃僋僩傪嶍彍偡傞
		DeleteObject();
		return CompleteThisService(KErrNotFound);
		}

	//夋憸忣曬奿擺僋儔僗傪惗惉偡傞
	iImageInfo = new(ELeave)TSmbMusicAPLibImageInfo;
	//夋憸忣曬庢摼梫媮傪敪峴偡傞
	TInt res = iFunc.GetImageInfo(*iLibItem, iExType, *iImageInfo, iStatus);

	if(KErrNone != res)
		{
		//僄儔乕偑敪惗
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber02;
		_LIT(KContentsServiceGetImageInfo02, "SyncServerContentsServiceGetImageInfo::StartGetImageInfoL");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo02);

		//傕偭偰偄傞僆僽僕僃僋僩傪嶍彍偡傞
		DeleteObject();
		return CompleteThisService(res);
		}

	//ActiveObject傪妶惈壔偡傞
	Start();
	//夋憸僼傽僀儖庢摼忬懺偵慗堏
	iState = EGetImageInfoState;
	return ESmbMusicAPSyncServerContetnsServiceStateContinue;
	}

/**
 *  嬋傾僀僥儉偐傜夋憸忣曬傪惗惉偟偨屻偺張棟
 * @param [in]	側偟
 * @return		張棟寢壥
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageInfo::CompleteGetImageInfoL(TInt /* aResult */)
	{
	CSmbMusicAPSyncServerContentsImageDataManager& imageData = iManagers.ImageDataManager();
	//Music傾僾儕儔僀僽儔儕偱掕媊偝傟偰偄傞傕偺傪摨婜僄儞僕儞偱掕媊偝傟偰偄傞抣偵曄姺偡傞昁梫偑偁傞
	TSmbMusicAPSyncEngineImageInfoInSongItem imageInfo;
	TInt cnt = iImageInfo->iImageJacketInfo.Count();
	//枃悢傪曐懚
	imageInfo.iImageNumJacket = cnt;

	CArrayFixFlat<TSmbMusicAPSyncEngineImageIndividualInfo>* arrayData;
	//僕儍働僢僩夋憸偑偁傞応崌
	if(cnt > 0)
		{
		//枃悢暘偺奿擺椞堟傪惗惉偡傞
		arrayData = new(ELeave)CArrayFixFlat<TSmbMusicAPSyncEngineImageIndividualInfo>(cnt);
		CleanupStack::PushL(arrayData);
		for(TInt i = 0; i < cnt; i++)
			{
			//1枃枅偵抧摴偵僨乕僞傪幨偟傑偡
			TSmbMusicAPSyncEngineImageIndividualInfo info;
			info.iStoreFlag 	= iImageInfo->iImageJacketInfo[i].iStoreFlag;
			info.iContentType	= ExchangeImageType(iImageInfo->iImageJacketInfo[i].iContentsType);
			info.iFileName		= iImageInfo->iImageJacketInfo[i].iFileName;
			info.iImageSize		= iImageInfo->iImageJacketInfo[i].iImageSize;
//@@TRK5393懳墳	Start
			info.iDCMAdditional	= iImageInfo->iImageJacketInfo[i].iXDcmAdditional;
			info.iDCMMove		= iImageInfo->iImageJacketInfo[i].iXDcmMove;
//@@TRK5393懳墳	End

			arrayData->AppendL(info);
			}
		imageInfo.iImageInfoArrayJacket = arrayData;
		CleanupStack::Pop(arrayData);
		}
	else
		{
		//僕儍働僢僩夋憸側偟
		imageInfo.iImageInfoArrayJacket = NULL;
		}

	cnt = iImageInfo->iImageLyricInfo.Count();
	//壧帉夋憸偺枃悢傪曐懚偡傞
	imageInfo.iImageNumLyric = cnt;
	//壧帉夋憸偑偁傞応崌
	if(cnt > 0)
		{
		arrayData = new(ELeave)CArrayFixFlat<TSmbMusicAPSyncEngineImageIndividualInfo>(cnt);
		CleanupStack::PushL(arrayData);
		for(TInt i = 0; i < cnt; i++)
			{
			//1枃枅偵抧摴偵僨乕僞傪幨偟傑偡
			TSmbMusicAPSyncEngineImageIndividualInfo info;
			info.iStoreFlag 	= iImageInfo->iImageLyricInfo[i].iStoreFlag;
			info.iContentType	= ExchangeImageType(iImageInfo->iImageLyricInfo[i].iContentsType);
			info.iFileName		= iImageInfo->iImageLyricInfo[i].iFileName;
			info.iImageSize		= iImageInfo->iImageLyricInfo[i].iImageSize;
//@@TRK5393懳墳	Start
			info.iDCMAdditional	= iImageInfo->iImageLyricInfo[i].iXDcmAdditional;
			info.iDCMMove		= iImageInfo->iImageLyricInfo[i].iXDcmMove;
//@@TRK5393懳墳	End

			arrayData->AppendL(info);
			}
		imageInfo.iImageInfoArrayLyric = arrayData;
		CleanupStack::Pop(arrayData);
		}
	else
		{
		//壧帉夋憸側偟
		imageInfo.iImageInfoArrayLyric = NULL;
		}

	//嬋傾僀僥儉偺僼僅乕儅僢僩傪庢摼偡傞
	GetItemFormat(imageInfo);

	//夋憸忣曬傪搊榐偡傞
	imageData.SetImageInfoL(iReqPkg->iData.iGetImageInfo.iSongItem, iExType, imageInfo);

	//夋憸忣曬傪儊僢僙乕僕偵彂偒崬傓
	TInt res = WriteToMsg(imageInfo);
	//張棟傪廔椆偡傞
	return 	CompleteThisService(res);
	}

/**
 *  傾僀僥儉惗惉傪拞巭偡傞
 * @param [in]	側偟
 * @return		張棟寢壥
 */
void CSmbMusicAPSyncServerContentsServiceGetImageInfo::CancelCreateItem()
	{
	//傾僀僥儉惗惉傪僉儍儞僙儖偡傞
	iList->CancelCreateNewItem();
	}

/**
 *  夋憸忣曬庢摼傪拞巭偡傞
 * @param [in]	側偟
 * @return		張棟寢壥
 */
void CSmbMusicAPSyncServerContentsServiceGetImageInfo::CancelGetImageInfo()
	{
	//夋憸忣曬偺庢摼傪拞巭偡傞
	iFunc.CancelGetImageInfo();
	}

/**
 *  夋憸庬暿傪曄姺偡傞
 * @param [in]	夋憸庬暿乮Music傾僾儕儔僀僽儔儕掕媊乯
 * @return		夋憸庬暿乮摨婜僄儞僕儞掕媊乯
 */
TSmbMusicAPSyncEngineImageFormat CSmbMusicAPSyncServerContentsServiceGetImageInfo::ExchangeImageType(
		TSmbMusicAPLibImageFormat aType
		)
	{
	TSmbMusicAPSyncEngineImageFormat type = ESmbMusicAPSyncEngineOther;
	switch(aType)
		{
	//Jpeg
	case ESmbMusicAPLibJpeg:
		type = 	ESmbMusicAPSyncEngineJpeg;
		break;

	//Gif
	case ESmbMusicAPLibGif:
		type = 	ESmbMusicAPSyncEngineGif;
		break;

	default:
		//僄儔乕偑敪惗
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber03;
		_LIT(KContentsServiceGetImageInfo03, "SyncServerContentsServiceGetImageInfo::StartGetImageInfoL");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo03, aType);
		break;
		}
	return type;
	}


	//嬋傾僀僥儉偺僼僅乕儅僢僩傪庢摼偡傞
void  CSmbMusicAPSyncServerContentsServiceGetImageInfo::GetItemFormat(TSmbMusicAPSyncEngineImageInfoInSongItem& imageInfo)
	{
	TSmbMusicMWLibItemType itemType = iLibItem->ItemType();
	if(ESmbMusicMWLibItemTypeSong != itemType)
		{
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber27;
		_LIT(KContentsServiceGetImageInfo27, "SyncServerContentsServiceGetImageInfo::GetItemFormat UnKnow Fotmat = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo27, itemType);
		//枹僒億乕僩偲偄偆偙偲偱丒丒丒
		imageInfo.iFileFormat = TSmbMusicAPSyncEngineFileOther;
		return ;
		}

	//SongItem偵僉儍僗僩偡傞
	CSmbMusicMWLibSongItem* songItem = static_cast<CSmbMusicMWLibSongItem*>(iLibItem);
	TSmbMusicMWLibFileFormat format;
	//僼傽僀儖僼僅乕儅僢僩傪庢摼偡傞
	TInt res = songItem->Format(format);
	if(KErrNone != res)
		{
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber28;
		_LIT(KContentsServiceGetImageInfo28, "SyncServerContentsServiceGetImageInfo::GetItemFormat UnKnow Fotmat = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo28, itemType);
		//枹僒億乕僩偲偄偆偙偲偱丒丒丒
		imageInfo.iFileFormat = TSmbMusicAPSyncEngineFileOther;
		return;
		}

	switch(format)
		{
	///<i儌乕僔儑儞奼挘僼傽僀儖
	case ESmbMusicMWLibFileFormatiMotionEx:
		imageInfo.iFileFormat = TSmbMusicAPSyncEngineFileiMotionEx;
		break;

	///<MP3僼傽僀儖
	case ESmbMusicMWLibFileFormatMP3:
		imageInfo.iFileFormat = TSmbMusicAPSyncEngineFileMP3;
		break;

	///<MS/MSPro Audio僼傽僀儖
	case ESmbMusicMWLibFileFormatMSAudio:
		imageInfo.iFileFormat = TSmbMusicAPSyncEngineFileMSAudio;
		break;

	///<3GPP AAC僼傽僀儖
	case ESmbMusicMWLibFileFormat3GPPAAC:
		imageInfo.iFileFormat = TSmbMusicAPSyncEngineFile3GPPAAC;
		break;

	///<偦偺懠乮僒億乕僩奜乯
	default:
		imageInfo.iFileFormat = TSmbMusicAPSyncEngineFileOther;
		break;
		}

	TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber29;
	_LIT(KContentsServiceGetImageInfo29, "SyncServerContentsServiceGetImageInfo::GetItemFormat Fotmat = %d");
	SmbMusicAPSyncServerLog(iRLog, log, ELogLevelLowest, KContentsServiceGetImageInfo29, format);
	//枹僒億乕僩偲偄偆偙偲偱丒丒丒

	return;
	}

/**
 *  強桳偟偰偄傞傾僀僥儉傪嶍彍偡傞
 * @param[in]	側偟
 * @return		側偟
 **/
void CSmbMusicAPSyncServerContentsServiceGetImageInfo::DeleteObject()
	{
	delete iReqPkg;
	iReqPkg = NULL;
	delete iReqTPckg;
	iReqTPckg = NULL;
	delete iLibItem;
	iLibItem = NULL;

	//僆僽僕僃僋僩偺幚懱偑偁傟偽
	if(NULL != iImageInfo)
		{
		//Array傪僋儘乕僘偡傞
		iImageInfo->iImageJacketInfo.Close();
		iImageInfo->iImageLyricInfo.Close();
		}
	delete iImageInfo;
	iImageInfo = NULL;

	delete iLibImteArray;
	iLibImteArray = NULL;
	}


// end of SmbMusicAPSyncServerContentsServiceGetImageFile.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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