smbmusicapmainplayerlicensecheck.cpp

来自「symbian」· C++ 代码 · 共 441 行 · 第 1/2 页

CPP
441
字号
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerLicenseCheck.cpp
//
// Description: 
//  SmbMusicAPMainPlayerLicenseCheck class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2007/04/02	|暯壀		|怴婯嶌惉
//2007/06/25	|暯壀		|D_82400004484懳墳
//2007/07/05	|暯壀		|QAC++懳墳
//2007/09/18	|暯壀		|NULL僠僃僢僋僐乕僪捛壛

#include "SmbMusicAPMainPlayerLicenseCheck.h"
#include <SmbMusicAPSyncEngineDef.h>
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterViewModel.h"
#include "SmbMusicAPMainPlayerLCInterface.h"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerUtility.h"

SEMCJ_NAMESPACE_BEGIN

// -----------------------------
// 儔僀僙儞僗僠僃僢僋妋擣僋儔僗
// -----------------------------

	/**
	 僐儞僗僩儔僋僞
	 * @param[in]	aSyncCtrl			摨婜僒乕僶惂屼偺嶲徠
	 * @param[in]	aLCInterface		儔僀僙儞僗峏怴妋擣梡僀儞僞僼僃乕僗
	 * @param[in]	aSyncServer			摨婜僄儞僕儞偺嶲徠
	 * @return	側偟
	 */
TSmbMusicAPMainPlayerLicenseCheck::TSmbMusicAPMainPlayerLicenseCheck(CSmbMusicAPMainPlayerFilterSyncServerController& aSyncCtrl,
													MSmbMusicAPMainPlayerLCInterface& aLCInterface,
													CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::RLog& aLog) :
													iSyncServer(aSyncCtrl),iSyncEngine(aSyncEngine), iRequestID(0),
													iLCInterface(aLCInterface), iState(EFilterProcessLCStateIdle), iLog(aLog)
		{
		// 堦妵儔僀僙儞僗僠僃僢僋愝掕僼儔僌傪弶婜壔偡傞
		iSyncEngine.SetLicenceCheckCompletion(EFalse);
		}

	/**
	 儔僀僙儞僗峏怴妋擣
	 * @param[in]	aMessageID				儊僢僙乕僕ID
	 * @param[in]	aParam				儕僗僩嵞惗偺儊僢僙乕僕僷儔儊乕僞
	 * @retval		ETrue				旕摨婜梫媮傪弌偟偨/偡偱偵旕摨婜梫媮拞
	 * @retval		EFalse				旕摨婜梫媮傪弌偣側偐偭偨		
	 */
TBool TSmbMusicAPMainPlayerLicenseCheck::LicenseCheckReq(TUid aMessageID, TSmbMusicAPMainPlayerPrmPlayList aParam)
	{
#ifdef __DEBUG_LOG_MAINPLAYER__
	TInt logCode = CLASS_CODE_TSmbMusicAPMainPlayerLicenseCheck | 0x00;
	_LIT(KLogFmt, "TSmbMusicAPMainPlayerLicenseCheck::LicenseCheckReq() iState:%d MsgID:%d");
// Change-S QAC++懳墳丂暯壀丂2007.07.05
//	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, aMessageID);
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, aMessageID.iUid);
// Change-E QAC++懳墳丂暯壀丂2007.07.05
#endif

	TBool isRequesting = EFalse;
	
	// 枹張棟忬懺
	switch (iState)
		{
	case EFilterProcessLCStateIdle:
		{
		// 嬋慖戰嵞惗偐斲偐傪敾抐偡傞
		if (KSmbMusicAPMainPlayerPlaySongListMsgUid == aMessageID)			// 嬋慖戰嵞惗
			{
			// 慖戰嬋偑僒僽僗僋儕僾僔儑儞僐儞僥儞僣偐斲偐傪敾掕偡傞
			CSmbMusicAPMainPlayerFilterListItem* item = static_cast<CSmbMusicAPMainPlayerFilterListItem*>(iLCInterface.FilterViewModel()->ActiveListView()->Model()->ItemByIndex(aParam.iIndex));
// Add-S PTX-824 2007.09.18 暯壀
			if (NULL == item)
				{
				TInt logCode = CLASS_CODE_TSmbMusicAPMainPlayerLicenseCheck | 0x09;
				_LIT(KLogFmt1, "TSmbMusicAPMainPlayerLicenseCheck::LicenseCheckReq() item NULL");
				SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt1);

				// 僄儔乕側偺偱壗傕偣偢return
				isRequesting = EFalse;
				break;
				}
// Add-E PTX-824 2007.09.18 暯壀
			TSmbMusicAPSyncEngineLimitation limitInfo = item->Limitation();

			// 慖戰嬋偑僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺応崌
			if (ESmbMusicAPSyncEngineLimitSubscription == limitInfo)
				{
				// 惂尷忣曬庢摼梫媮嫟捠張棟
				isRequesting = CommonGetSongLimitInfo(aParam);
				}
			// 慖戰嬋偑僒僽僗僋儕僾僔儑儞僐儞僥儞僣埲奜応崌
			else
				{
				// 儔僀僙儞僗峏怴僠僃僢僋梫媮嫟捠張棟
				isRequesting = CommonGetCpList();
				}
			}
		else if (KSmbMusicAPMainPlayerPlayListMsgUid == aMessageID			// 儕僗僩嵞惗
			  || KSmbMusicAPMainPlayerPlayResumeMsgUid == aMessageID)		// 儗僕儏乕儉嵞惗
			{
			// 儔僀僙儞僗峏怴僠僃僢僋梫媮嫟捠張棟
			isRequesting = CommonGetCpList();
			}
		else																// 嬋慖戰嵞惗丒儕僗僩嵞惗偺偳偪傜偱傕側偄応崌
			{
			// 儘僌傪弌偡
			TInt log = CLASS_CODE_TSmbMusicAPMainPlayerLicenseCheck | 0x01;
			_LIT(KLogFmt, "TSmbMusicAPMainPlayerLicenseCheck::LicenseCheckReq() iState:%d MsgID:%d");
// Change-S QAC++懳墳丂暯壀丂2007.07.05
//			SmbMusicAPMainPlayerUtility::OutputLog(iLog, log, ELogLevelNormal, KLogFmt, iState, aMessageID);
			SmbMusicAPMainPlayerUtility::OutputLog(iLog, log, ELogLevelNormal, KLogFmt, iState, aMessageID.iUid);
// Change-E QAC++懳墳丂暯壀丂2007.07.05

			// 壗傕偣偢return
			}
		}
		break;
	// 儔僀僙儞僗峏怴僠僃僢僋梫媮
	case EFilterProcessLCStateGetCpListSetCommand:
		{
		// 儔僀僙儞僗峏怴僠僃僢僋梫媮嫟捠張棟
		isRequesting = CommonGetCpList();
		}
		break;
	// 忋婰埲奜偺忬懺
	default:
		// 儘僌傪弌偡
		TInt log = CLASS_CODE_TSmbMusicAPMainPlayerLicenseCheck | 0x02;
		_LIT(KLogFmt, "TSmbMusicAPMainPlayerLicenseCheck::LicenseCheckReq() iState:%d MsgID:%d");
// Change-S QAC++懳墳丂暯壀丂2007.07.05
//		SmbMusicAPMainPlayerUtility::OutputLog(iLog, log, ELogLevelNormal, KLogFmt, iState, aMessageID);
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, log, ELogLevelNormal, KLogFmt, iState, aMessageID.iUid);
// Change-E QAC++懳墳丂暯壀丂2007.07.05
		// 張棟拞側偺偱壗傕偣偢return
		isRequesting = ETrue;
		break;
		}
	
	return isRequesting;
	}

	/**
	 惂尷忣曬庢摼梫媮嫟捠張棟
	 * @param[in]	aParam				儕僗僩嵞惗偺儊僢僙乕僕僷儔儊乕僞
	 * @retval		ETrue				旕摨婜梫媮傪弌偟偨/偡偱偵旕摨婜梫媮拞
	 * @retval		EFalse				旕摨婜梫媮傪弌偣側偐偭偨		
	 */
TBool TSmbMusicAPMainPlayerLicenseCheck::CommonGetSongLimitInfo(TSmbMusicAPMainPlayerPrmPlayList aParam)
	{
	// 旕摨婜梫媮傪峴偭偨偐斲偐
	TBool isRequesting = EFalse;

	// 惂尷忣曬庢摼張棟奐巒懸偪
	iState = EFilterProcessLCStateGetSongLimitInfoWaitStart;
			
	// 惂尷忣曬庢摼梫媮
	TInt result = iSyncServer.GetSongLimitInfo(aParam.iListHandle, aParam.iIndex, EOwnerType_Filter, iRequestID, *this);
	if (KErrNone == result)
		{
		// 惂尷忣曬庢摼梫媮拞
		iState = EFilterProcessLCStateGetSongLimitInfo;
		isRequesting = ETrue;
		}
	else
		{
		// 儘僌傪弌偡
		TInt logCode = CLASS_CODE_TSmbMusicAPMainPlayerLicenseCheck | 0x03;
		_LIT(KLogFmt, "TSmbMusicAPMainPlayerLicenseCheck::CommonGetSongLimitInfo() iState:%d result:%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, result);
		// 僄儔乕偺応崌丄僗僥乕僞僗傪Idle偵偟偰return
		iState = EFilterProcessLCStateIdle;
		}
	
	return isRequesting;
	}

	/**
	 儔僀僙儞僗峏怴僠僃僢僋梫媮嫟捠張棟
	 * @retval		ETrue				旕摨婜梫媮傪弌偟偨/偡偱偵旕摨婜梫媮拞
	 * @retval		EFalse				旕摨婜梫媮傪弌偣側偐偭偨		
	 */
TBool TSmbMusicAPMainPlayerLicenseCheck::CommonGetCpList()
	{
	// 旕摨婜梫媮傪峴偭偨偐斲偐
	TBool isRequesting = EFalse;
	
	// 堦妵儔僀僙儞僗僠僃僢僋幚峴嵪傒僼儔僌偺妋擣
	if (EFalse != iSyncEngine.IsLicenceCheckCompletion())
		{
		// 偡偱偵堦妵儔僀僙儞僗僠僃僢僋幚峴嵪傒偺偨傔弶婜忬懺傊
		iState = EFilterProcessLCStateIdle;
		return isRequesting;	// 旕摨婜梫媮拞偱側偄
		}
		
	// 儔僀僙儞僗峏怴僠僃僢僋張棟奐巒懸偪
	iState = EFilterProcessLCStateGetCpListWaitStart;
		
	// 儔僀僙儞僗峏怴僠僃僢僋梫媮
	TInt result = iSyncServer.GetCpList(EOwnerType_Filter, iRequestID, *this);
	if (KErrNone == result)
		{
		// 儔僀僙儞僗峏怴僠僃僢僋梫媮拞
		iState = EFilterProcessLCStateGetCpList;
		isRequesting = ETrue;
		}
	else
		{
		// 儘僌傪弌偡
		TInt logCode = CLASS_CODE_TSmbMusicAPMainPlayerLicenseCheck | 0x04;
		_LIT(KLogFmt, "TSmbMusicAPMainPlayerLicenseCheck::CommonGetCpList() iState:%d result:%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, result);
		// 僄儔乕偺応崌丄僗僥乕僞僗傪Idle偵偟偰return
		iState = EFilterProcessLCStateIdle;
		}

⌨️ 快捷键说明

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