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

📄 smbmusicapsyncservercontentsservicegetimagecount.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPSyncServerContentsServiceGetImageCount.cpp
//
// Description:
//  嬋傾僀僥儉偺僒僽儊僯儏乕梡徻嵶忣曬庢摼梫媮偵懳偡傞僒乕價僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16	|K3悪杮		| [iKeeper(TRK):5472] 栤戣偺懳墳偺偨傔怴婯嶌惉
//2006/08/25	|K3悪杮		| 壧帉夋憸庢摼幐攕帪偵僄儔乕傪曉偟偰偄偨栤戣偺廋惓
//				|			| 庢摼夋憸悢偵嵟戝抣敾掕傪捛壛
//2006/08/25	|K3悪杮		| [iKeeper(TRK):7935] SDBind忣曬庢摼懳墳
//2006/09/15	|SDNA壀嶳	| [iKeeper(TRK):9423] ImageDataManager傊傾僋僙僗偡傞Index傪1僆儕僕儞偵廋惓
//2006/09/25	|K3悪杮		| [iKeeper(TRK):7935] 僒僽儊僯儏乕梡徻嵶忣曬庢摼懳墳
//2006/10/26	|K3悪杮		| 僜乕僗僐乕僪惍棟(SDBind僼儔僌偺張棟嶍彍)
//----PTX824----+-----------+----------------------------------------------
//2007/04/02	|K3悪杮		| PTX824懳墳(嵞惗惂尷忣曬捛壛)
//2007/05/17	|K3悪杮		| 僼傽僀儖僼僅乕儅僢僩偵WMA庬暿2審捛壛
//2007/05/29	|K3悪杮		| 嵞惗惂尷忣曬偺WMDRM嵞惗惂尷(挊嶌尃曐岇偁傝)捛壛偵懳墳
//2007/06/23	|K3悪杮		| AAA夋憸懳墳


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGECOUNT_H__
#include "SmbMusicAPSyncServerContentsServiceGetImageCount.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGECOUNT_H__


#ifndef __E32ERR_H__
#include <e32err.h>	//  僄儔乕僐乕僪
#endif	//  __E32ERR_H__


#ifndef __SMBMUSICAPSYNCSERVERDEF_H__
#include <SmbMusicAPSyncServerDef.h>
#endif	//  __SMBMUSICAPSYNCSERVERDEF_H__

#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h>	//  CSmbMusicMWLibSongItem
#endif	//  __SMBMUSICMWLIBCLIENT_H__


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__
#include "SmbMusicAPSyncServerContentsScreenTraceManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#include "SmbMusicAPSyncServerContentsManagerInterface.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
#include "SmbMusicAPSyncServerContentsImageDataManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__
#include "SmbMusicAPSyncServerContentsList.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__

//  ADD-S PTX824 k3-sugimoto
#ifndef	__SMBMUSICAPSYNCSERVERCONVERTER_H__
#include "SmbMusicAPSyncServerConverter.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONVERTER_H__
//  ADD-E PTX824 k3-sugimoto


USING_NAMESPACE_SEMCJ

#define	KSmbMusicAPSyncServerMaxAAAImageCount		(1)	///<  AAA夋憸嵟戝悢
#define	KSmbMusicAPSyncServerMaxJacketImageCount	(1)	///<  僕儍働僢僩夋憸嵟戝悢
#define	KSmbMusicAPSyncServerMaxLyricImageCount		(7)	///<  壧帉夋憸嵟戝悢

/**
 *  僐儞僗僩儔僋僞
 *
 *  @param[in]	aRlog				儘僌僒乕僶
 *  @param[in]	aModel				摨婜僒乕僶儌僨儖
 *  @param[in]	aObserver			旕摨婜僆僽僓乕僶
 *  @param[in]	aFunc				僼傽儞僋僔儑儞
 *  @param[in]	aManagerInterface	儅僱乕僕儍僀儞僞僼僃乕僗
 *  @param[in]	aScreenData			僗僋儕乕儞僩儗乕僗儅僱乕僕儍
 *  @param[in]	aRMessage			僋儔僀傾儞僩偐傜偺儊僢僙乕僕
 **/
CSmbMusicAPSyncServerContentsServiceGetImageCount::CSmbMusicAPSyncServerContentsServiceGetImageCount(
		DCM_NAMESPACE::RLog& aRlog,
		CSmbMusicAPSyncServerModel& aModel,
		MSmbMusicAPSyncServerContentsAsyncObserver& aObserver,
		CSmbMusicAPSyncServerContentsFunc& aFunc,
		MSmbMusicAPSyncServerContentsManagerInterface& aManagerInterface,
		CSmbMusicAPSyncServerContentsScreenTraceManager& aScreenData,
		const RMessage2& aRMessage
		)
	:CSmbMusicAPSyncServerContentsServiceBase(
			aRlog, aModel, aObserver, aFunc, aManagerInterface, aScreenData, aRMessage
			)
	{
	}


/**
 *  僨僗僩儔僋僞
 **/
CSmbMusicAPSyncServerContentsServiceGetImageCount::~CSmbMusicAPSyncServerContentsServiceGetImageCount()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber00;
	_LIT(KServiceGetImageCountDestruct01, "SyncServerContentsServiceGetImageCount::~Destruct()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetImageCountDestruct01);
#endif

	if (iItemArray != NULL)
		{
		iItemArray -> Reset();
		}

	delete iItemArray;

	delete iImageInfo;

	delete iSongItem;
	}


/**
 *  僉儍儞僙儖梫媮偵懳偡傞僒乕價僗僉儍儞僙儖敾掕
 *
 *  @param[in]	aCancelEvent	僉儍儞僙儖梫媮偝傟偨僀儀儞僩僞僀僾
 *
 *  @return	僉儍儞僙儖傪庴偗傞偐偳偆偐偺敾掕(ETrue:梫媮僉儍儞僙儖丄EFalse:梫媮傪僉儍儞僙儖偟側偄)
 **/
TBool CSmbMusicAPSyncServerContentsServiceGetImageCount::CheckCancel(TSmbMusicAPSyncServerFunction aCancelEvent)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber01;
	_LIT(KServiceGetImageCountCheckCancel01, "SyncServerContentsServiceGetImageCount::CheckCancel(%d)");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageCountCheckCancel01, aCancelEvent);
#endif

	if (aCancelEvent == ESmbMusicAPSyncServerFuncCancelGetImageCount)
		{	//  帺僒乕價僗偺僉儍儞僙儖梫媮偺応崌
		return ETrue;
		}
	return EFalse;
	}


/**
 *  僒乕價僗偺奐巒梫媮
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageCount::StartServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber02;
	_LIT(KServiceGetImageCountStartServiceL01, "SyncServerContentsServiceGetImageCount::StartServiceL Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageCountStartServiceL01);
#endif

	//  RMessage偐傜僷儔儊乕僞撉崬
	if (LoadParam() == EFalse)
		{	//  摨婜僄儞僕儞偐傜偺儊僢僙乕僕偑晄惓偩偭偨
		MessageComplete(KErrArgument);
		return ESmbMusicAPSyncServerContetnsServiceStateEnd;
		}

	//  傑偢偼ImageDataManager偵忣曬偑側偄偐僠僃僢僋偡傞
	if (iManagers.ImageDataManager().GetImageCount(iItemIndex, iExType, iImageCount) != EFalse)
		{	//  ImageDataManager偵忣曬偑懚嵼偟偨応崌
		//  夋憸悢庢摼僼儔僌傪棫偰偰張棟懕峴
		iCompleteGetCount = ETrue;
		}

	if (iItemArray == NULL)
		{  //  儕僗僩攝楍偑惗惉偝傟偰偄側偄応崌
		//  儕僗僩傾僀僥儉庢摼梡儕僗僩攝楍惗惉
		iItemArray = CSmbMusicMWLibItemArray::NewL(1);	//  1嬋暘
		}

	//  捛壛懳徾嬋傪娷傓儕僗僩偺庢摼
	iSongList = iScreenData.GetList(iItemIndex.iListHandle);
	if (iSongList == NULL)
		{	//  儕僗僩偺庢摼偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber03;
		_LIT(KServiceGetImageCountStartServiceL02, "SyncServerContentsServiceGetImageCount::StartServiceL GetList Error");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetImageCountStartServiceL02);
#endif
		MessageComplete(KErrNotFound);
		return ESmbMusicAPSyncServerContetnsServiceStateEnd;
		}

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

	//  懳徾嬋傾僀僥儉庢摼
	TInt result(KErrNone);
	result = iSongList -> CreateNewItem(*iItemArray, iItemIndex.iIndex, 1, iStatus);
	if (result != KErrNone)
		{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber04;
		_LIT(KServiceGetImageCountStartServiceL03, "SyncServerContentsServiceGetImageCount::StartServiceL CreateNewItem Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetImageCountStartServiceL03, result);
#endif
		MessageComplete(result);
		return ESmbMusicAPSyncServerContetnsServiceStateEnd;
		}

	//  嬋傾僀僥儉庢摼懸偪忬懺傊
	iServiceState = EContentsServiceGetImageCountStateGetSongItem;
	CSmbMusicAPSyncServerContentsServiceBase::Start();

#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber05;
	_LIT(KServiceGetImageCountStartServiceL04, "SyncServerContentsServiceGetImageCount::StartServiceL End");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServiceGetImageCountStartServiceL04);
#endif

	return ESmbMusicAPSyncServerContetnsServiceStateContinue;
	}


/**
 *  僒乕價僗僄儔乕捠抦
 *
 *  @param[in]	aError	僄儔乕僐乕僪
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageCount::ServiceErr(TInt aError)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber06;
	_LIT(KServiceGetImageCountServiceErr01, "SyncServerContentsServiceGetImageCount::ServiceErr(%d):%d");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetImageCountServiceErr01, aError, iServiceState);
#endif
	TInt result(aError);
	TSmbMusicAPSyncServerContentsServiceState retState(ESmbMusicAPSyncServerContetnsServiceStateErr);

	//  夋憸偑側偄応崌KErrNotFound偑偒偰傕懴偊傜傟傞傛偆偵丄
	//  夋憸忣曬庢摼梫媮(僕儍働僢僩丄壧帉嫟)偺墳摎偑僄儔乕偺応崌丄
	//  夋憸悢傪0庢摼偱偒偨傕偺偲偟偰張棟傪懕峴偝偣傞丅
	switch(iServiceState)
		{
		case EContentsServiceGetImageCountStateGetAAAInfo:		//  AAA夋憸忣曬庢摼拞
			{
			//  AAA夋憸悢愝掕
			iImageCount.iJacketCount = 0;
			result = GetImageInformationL(ESmbMusicMWLibImageTypeJacket);
			if (result == KErrNone)
				{	//  夋憸忣曬庢摼梫媮偵惉岟
				iServiceState = EContentsServiceGetImageCountStateGetJacketInfo;

				CSmbMusicAPSyncServerContentsServiceBase::Start();
				//  張棟宲懕
				return ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}

			}
			break;
		case EContentsServiceGetImageCountStateGetJacketInfo:	//  僕儍働僢僩忣曬庢摼拞
			{
			//  僕儍働僢僩夋憸悢愝掕
			iImageCount.iJacketCount = 0;
			result = GetImageInformationL(ESmbMusicMWLibImageTypeLylic);
			if (result == KErrNone)
				{	//  夋憸忣曬庢摼梫媮偵惉岟
				iServiceState = EContentsServiceGetImageCountStateGetLyricInfo;

				CSmbMusicAPSyncServerContentsServiceBase::Start();
				//  張棟宲懕
				return ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}
			}
			break;
		case EContentsServiceGetImageCountStateGetLyricInfo:	//  壧帉忣曬庢摼拞
			{
			//  壧帉夋憸悢愝掕
			iImageCount.iLyricCount = 0;

			result = CompletionGetImageCount();

			//  張棟寢壥偑壗偱偁傠偆偲廔椆偡傞
			retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
			}
			break;
		case EContentsServiceGetImageCountStateGetSongItem:		//  懳徾嬋傾僀僥儉庢摼拞
		case EContentsServiceGetImageCountStateIdle:			//  張棟柍偟
			break;
		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber07;
			_LIT(KServiceGetImageCountServiceErr02, "SyncServerContentsServiceGetImageCount::ServiceErr illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServiceGetImageCountServiceErr02, iServiceState);

			ASSERT(EFalse);
			}
			break;
		}

	MessageComplete(result);
	iServiceState = EContentsServiceGetImageCountStateIdle;	//  僒乕價僗忬懺傪張棟柍偟忬懺傊

	return retState;
	}


/**
 *  僒乕價僗僉儍儞僙儖捠抦
 **/
void CSmbMusicAPSyncServerContentsServiceGetImageCount::CancelService()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageCount | EMusicAPSyncServerLocationNumber08;
	_LIT(KServiceGetImageCountCancelService01, "SyncServerContentsServiceGetImageCount::CancelService()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageCountCancelService01);
#endif

	switch(iServiceState)
		{
		case EContentsServiceGetImageCountStateGetSongItem:		//  懳徾嬋傾僀僥儉庢摼拞
			{
			ASSERT(iSongList != NULL);
			//  懳徾嬋傾僀僥儉庢摼偺僉儍儞僙儖
			iSongList -> CancelCreateNewItem();
			}
			break;
		case EContentsServiceGetImageCountStateGetAAAInfo:		//  AAA夋憸忣曬庢摼拞

⌨️ 快捷键说明

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