smbmusicapmainplayerfilterprocessgetthumbnail.cpp
来自「symbian」· C++ 代码 · 共 427 行
CPP
427 行
/* Copyright (C) 2005-2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterProcessGetThumbnail.cpp
//
// Description:
// 儈儏乕僕僢僋儊僀儞僾儗僀儎
// 僒儉僱僀儖庢摼張棟僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//---------------------------------------------------------------------------
//2006/08/14 |SDNA壀嶳 |怴婯嶌惉
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
#include "SmbMusicAPMainPlayerFilterProcessGetThumbnail.h"
USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN
/**
僐儞僗僩儔僋僞
* @param[in] aObserver 僆僽僓乕僶偺億僀儞僞
* @param[in] aSyncServerController 摨婜僒乕僶惂屼偺嶲徠
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessGetThumbnail::CSmbMusicAPMainPlayerFilterProcessGetThumbnail(
MSmbMusicAPMainPlayerFilterProcessObserver& aObserver,
CSmbMusicAPMainPlayerFilterSyncServerController& aSyncServerController)
:CSmbMusicAPMainPlayerFilterProcess(aObserver)
, iEvent(EFilterProcessGetThumbnailEventStart)
, iState(EFilterProcessGetThumbnailStateIdle)
, iSyncServer(aSyncServerController)
, iLog(CAfEnv::Static()->Log())
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 00;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::CSmbMusicAPMainPlayerFilterProcessGetThumbnail()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
}
/**
僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessGetThumbnail::~CSmbMusicAPMainPlayerFilterProcessGetThumbnail()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 10;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::~CSmbMusicAPMainPlayerFilterProcessGetThumbnail()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
Reset();
}
/**
儕僙僢僩
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcessGetThumbnail::Reset()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 20;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::Reset()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
if(EFilterProcessGetThumbnailStateMakeThumbnail == iState)
{
iSyncServer.CancelRequest(iRequestId, EFalse);
}
iEvent = EFilterProcessGetThumbnailEventStart;
iState = EFilterProcessGetThumbnailStateIdle;
iListHandle = NULL;
iIndex = NULL;
delete iMainBitmap;
iMainBitmap = NULL;
delete iMaskBitmap;
iMaskBitmap = NULL;
delete iResultThumbnail;
iResultThumbnail = NULL;
CSmbMusicAPMainPlayerFilterProcess::Reset();
}
/**
僷儔儊乕僞愝掕
* @param[in] aListHandle 儕僗僩僴儞僪儖
* @param[in] aIndex 僀儞僨僢僋僗
* @return 愝掕偺惉斲
*/
TBool CSmbMusicAPMainPlayerFilterProcessGetThumbnail::SetParam(TInt aListHandle, TInt aIndex)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 30;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::SetParam()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
if( EFilterProcessGetThumbnailStateIdle == iState ||
EFilterProcessGetThumbnailStateWaitStart == iState)
{
iListHandle = aListHandle;
iIndex = aIndex;
iState = EFilterProcessGetThumbnailStateWaitStart;
return ETrue;
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 31;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::SetParam() Cannot Set in This State %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState);
return EFalse;
}
}
/**
儕僗僩僴儞僪儖庢摼
* @param 側偟
* @return 儕僗僩僴儞僪儖
*/
TInt CSmbMusicAPMainPlayerFilterProcessGetThumbnail::GetParamListHandle()
{
return iListHandle;
}
/**
愭摢僀儞僨僢僋僗庢摼
* @param 側偟
* @return 僀儞僨僢僋僗
*/
TInt CSmbMusicAPMainPlayerFilterProcessGetThumbnail::GetParamIndex()
{
return iIndex;
}
/**
僒儉僱僀儖傾僀僐儞庢摼
* @param[out] aIcon 僒儉僱僀儖傾僀僐儞 奿擺応強偺嶲徠
* @return 庢摼偺惉斲乮張棟偑廔椆偟偰偄傞偐偳偆偐乯
*/
TBool CSmbMusicAPMainPlayerFilterProcessGetThumbnail::GetThumbnailIcon(CGulIcon*& aIcon)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 40;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::GetThumbnailBitmap() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
if(EFilterProcessGetThumbnailStateEnd == iState)
{
aIcon = iResultThumbnail;
iResultThumbnail = NULL;
return ETrue;
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 41;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::GetThumbnailBitmap() Process Not Complete %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState);
return EFalse;
}
}
/**
* 梫媮姰椆
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResult 張棟寢壥
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessGetThumbnail::RequestComplete(TSmbMusicAPMainPlayerRequest aKind,
TInt aResult,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& aResponse)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 50;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::RequestComplete() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
if(EDispRequestGetPlayThumbnailImage == aKind)
{
if(KErrNone == aResult)
{
RPointerArray<TSmbMusicAPLibImageBitmap>& array = aResponse.GetResultThumbnailArray();
if(0 < array.Count())
{
iMainBitmap = array[0]->iMainBitmap;
array[0]->iMainBitmap = NULL;
iMaskBitmap = array[0]->iMaskedBitmap;
array[0]->iMaskedBitmap = NULL;
iEvent = EFilterProcessGetThumbnailEventSyncServerComplete;
}
else
{
iResult = KErrGeneral;
iEvent = EFilterProcessGetThumbnailEventSyncServerErr;
}
}
else
{
iResult = aResult;
iEvent = EFilterProcessGetThumbnailEventSyncServerErr;
}
DoSequence();
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 51;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::RequestComplete() Unknown Event :%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
}
}
/**
* 梫媮僉儍儞僙儖
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessGetThumbnail::RequestCancel( TSmbMusicAPMainPlayerRequest aKind,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& /*aResponse*/)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 60;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::RequestCancel() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
if(EDispRequestGetPlayThumbnailImage == aKind)
{
iEvent = EFilterProcessGetThumbnailEventSyncServerCancel;
DoSequence();
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 61;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::RequestCancel() Unknown Event :%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, aKind);
}
}
/**
* 僐儅儞僪張棟傪幚峴偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 70;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence() iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState, iEvent);
#endif
switch(iState)
{
case EFilterProcessGetThumbnailStateWaitStart: // 張棟奐巒懸偪
{
if(EFilterProcessGetThumbnailEventStart == iEvent)
{
TInt result = iSyncServer.GetThumbnail(iListHandle,iIndex, EOwnerType_Filter, iRequestId, *this);
if(KErrNone == result)
{
iState = EFilterProcessGetThumbnailStateMakeThumbnail;
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 71;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence() GetThumbnail() Error :%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, result);
iResult = result;
iState = EFilterProcessGetThumbnailStateErr;
NextState();
}
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 72;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence() Unmatch Event iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
}
}
break;
case EFilterProcessGetThumbnailStateMakeThumbnail: // 夋憸庢摼拞
{
switch(iEvent)
{
case EFilterProcessGetThumbnailEventSyncServerComplete:
{
if(NULL != iMainBitmap)
{
TRAPD(error, iResultThumbnail = CGulIcon::NewL(iMainBitmap, iMaskBitmap););
if(KErrNone == error)
{
iMainBitmap = NULL;
iMaskBitmap = NULL;
iResult = KErrNone;
iState = EFilterProcessGetThumbnailStateEnd;
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 73;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence() CGulIcon::NewL Leave %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, error);
iResult = KErrGeneral;
iState = EFilterProcessGetThumbnailStateErr;
}
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 74;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence() iMainBitmap is Null");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt);
iResult = KErrGeneral;
iState = EFilterProcessGetThumbnailStateErr;
}
NextState();
}
break;
case EFilterProcessGetThumbnailEventSyncServerCancel:
{
// 僉儍儞僙儖偝傟偨応崌偼丄嵞庢摼傪峴偆
iEvent = EFilterProcessGetThumbnailEventStart;
iState = EFilterProcessGetThumbnailStateWaitStart;
NextState();
}
break;
case EFilterProcessGetThumbnailEventSyncServerErr:
{
iState = EFilterProcessGetThumbnailStateErr;
NextState();
}
break;
default:
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 75;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence() Unmatch Event iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
}
break;
}
}
break;
case EFilterProcessGetThumbnailStateIdle: // 枹張棟
case EFilterProcessGetThumbnailStateEnd: // 張棟廔椆
case EFilterProcessGetThumbnailStateErr: // 僄儔乕廔椆
default:
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 76;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::DoSequence() Invaild State iState:%d iEvent:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState, iEvent);
}
break;
}
}
/**
* 偡傋偰偺僐儅儞僪幚峴偑廔傢偭偨偐偳偆偐妋擣偡傞
* @param 側偟
* @return 廔椆敾掕(ETrue:姰椆嵪 EFalse丗枹姰椆)
*/
TBool CSmbMusicAPMainPlayerFilterProcessGetThumbnail::IsSequenceFinished()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcessGetThumbnail | 80;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcessGetThumbnail::IsSequenceFinished() iState:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, iState);
#endif
TBool finish = EFalse;
switch(iState)
{
case EFilterProcessGetThumbnailStateEnd:
case EFilterProcessGetThumbnailStateErr:
finish = ETrue;
break;
default:
break;
}
return finish;
}
SEMCJ_NAMESPACE_END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?