smbmusicapmainplayerfilterprocess.cpp
来自「symbian」· C++ 代码 · 共 332 行
CPP
332 行
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterProcess.cpp
//
// Description:
// 儈儏乕僕僢僋儊僀儞僾儗僀儎
// 僼傿儖僞夋柺價儏乕 僔乕働儞僗張棟拪徾僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//---------------------------------------------------------------------------
//2006/08/?? |SEMCJ嶳壀 |怴婯嶌惉
//2006/08/11 |SDNA壀嶳 |張棟傪娙棯壔
//2006/09/08 |SDNA壀嶳 |楢懕偱AO傪Complete偟偰偟傑偆晄嬶崌傪廋惓(TRK7988懳墳)
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
#include "SmbMusicAPMainPlayerFilterProcess.h"
USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN
/**
僐儞僗僩儔僋僞
* @param[in] aObserver 僆僽僓乕僶偺億僀儞僞
* @param[in] aTargetModel 儌僨儖偺嶲徠
* @param[in] aSyncServerController 摨婜僒乕僶惂屼偺嶲徠
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcess::CSmbMusicAPMainPlayerFilterProcess( MSmbMusicAPMainPlayerFilterProcessObserver& aObserver)
: CActive(CActive::EPriorityStandard)
, iObserver(aObserver)
, iState(EStateIdling)
, iLog(CAfEnv::Static()->Log())
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 00;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::CSmbMusicAPMainPlayerFilterProcess()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//傾僋僥傿僽僗働僕儏乕儔偵搊榐偡傞
CActiveScheduler::Add(this);
}
/**
* 僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcess::~CSmbMusicAPMainPlayerFilterProcess()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 10;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::~CSmbMusicAPMainPlayerFilterProcess()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//傾僋僥傿僽僆僽僕僃僋僩傪僉儍儞僙儖偡傞
Cancel();
if(NULL!=iClientStatus)
{
//僋儔僀傾儞僩偺傾僋僥傿僽僆僽僕僃僋僩偵姰椆傪捠抦偡傞
User::RequestComplete(iClientStatus, KErrCancel);
iClientStatus = NULL;
}
}
/**
* 傾僋僥傿僽僆僽僕僃僋僩偺RunL娭悢傪幚憰偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::RunL()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 20;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::RunL()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
switch(iState)
{
// 梫媮拞忬懺
case EStateRequesting:
{
// 師偺僐儅儞僪偑側偗傟偽姰椆忬懺偵慗堏偡傞
if(EFalse!=IsSequenceFinished())
{
iState = EStateCompleted;
// 幚峴姰椆張棟傪偡傞
if(NULL!=iClientStatus)
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 21;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::RunL() - User::RequestComplete");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
User::RequestComplete(iClientStatus,iResult);
iClientStatus = NULL;
}
//偡傋偰偺僐儅儞僪幚峴傪姰椆偡傞
FinishSequence();
}
// 師偺僐儅儞僪偑偁傟偽幚峴梫媮偡傞
else
{
// 師偺僐儅儞僪傪幚峴偡傞
DoSequence();
}
}
break;
// 傾僀僪儕儞僌忬懺
case EStateIdling:
// 姰椆忬懺
case EStateCompleted:
// 晄柧側忬懺
default:
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 22;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::RunL() Unknown State %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt,iState);
break;
}
}
}
/**
* 傾僋僥傿僽僆僽僕僃僋僩偺僉儍儞僙儖張棟傪峴偆
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::DoCancel()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 30;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::DoCancel()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
// 壗傕偟側偄両両
// 偙偙偱張棟傪峴偆偲丄攈惗僋儔僗偺僔乕働儞僗張棟偑攋抅偡傞壜擻惈偑偁傝傑偡丅
}
/**
* 斈梡僐儅儞僪幚峴
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::StartProcess()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 40;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::StartProcess()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
if(EStateIdling == iState)
{
iState = EStateRequesting;
//僐儅儞僪幚峴拞偱偁傟偽僉儍儞僙儖偡傞
Cancel();
//張棟奐巒
CompleteSelf();
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 41;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::StartProcess() Invalid State %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState);
}
}
/**
* 斈梡僐儅儞僪幚峴
* @param [in,out] aStatus 旕摨婜墳摎梡偺傾僋僥傿僽僆僽僕僃僋僩僗僥乕僞僗
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::StartProcess(TRequestStatus* aStatus)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 50;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::StartProcess()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
if(EStateIdling == iState)
{
iState = EStateRequesting;
//僐儅儞僪幚峴拞偱偁傟偽僉儍儞僙儖偡傞
Cancel();
//張棟奐巒
CompleteSelf();
//梫媮尦傾僋僥傿僽僆僽僕僃僋僩偺梫媮傪Pending偡傞
iClientStatus = aStatus;
if(NULL!=iClientStatus)
{
*iClientStatus = KRequestPending;
}
}
else
{
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 51;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::StartProcess() Invalid State %d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelHigh, KLogFmt, iState);
}
}
/**
* 僾儘僙僗偺僉儍儞僙儖
* @return 僉儍儞僙儖偺惉斲(ETrue:僉儍儞僙儖張棟幚巤 EFalse:僉儍儞僙儖枹懳墳)
*/
TBool CSmbMusicAPMainPlayerFilterProcess::CancelProcess()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 60;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::CancelProcess()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
return CancelSequence();
}
/**
* 僾儘僙僗幚峴拞偐偳偆偐偺庢摼
* @param 側偟
* @return 幚峴忬懺乮ETrue:幚峴拞丄EFalse:枹幚峴乯
*/
TBool CSmbMusicAPMainPlayerFilterProcess::InService()
{
if(EStateIdling == iState || EStateCompleted == iState)
{
return EFalse;
}
else
{
return ETrue;
}
}
/**
* 撪晹忬懺傪儕僙僢僩偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::Reset()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 70;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::Reset()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
Cancel();
iState = EStateIdling;
iResult = KErrNone;
}
/**
* 傾僋僥傿僽僆僽僕僃僋僩偺忬懺慗堏傪峴偆
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::NextState()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 80;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::NextState()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//傾僋僥傿僽僆僽僕僃僋僩傪嵞搙傾僋僥傿僽偵偡傞
if(EFalse==IsActive()) // 偡偱偵Active側応崌偵SetActive傪偡傞偲PANIC
{
// 師偺忬懺偵慗堏偡傞
CompleteSelf();
}
}
/**
* 傾僋僥傿僽僆僽僕僃僋僩帺恎傪姰椆偟偰嵞搙傾僋僥傿僽偵偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::CompleteSelf()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess | 90;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::CompleteSelf()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//傾僋僥傿僽僆僽僕僃僋僩傪傾僋僥傿僽偵偡傞
SetActive();
//傾僋僥傿僽僆僽僕僃僋僩帺恎偺梫媮傪姰椆偡傞
TRequestStatus* status = &iStatus;
User::RequestComplete(status, KErrNone);
}
/**
* 偡傋偰偺僐儅儞僪幚峴傪姰椆偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcess::FinishSequence()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterProcess |100;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterProcess::FinishSequence()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
// 僆僽僓乕僶偵幚峴姰椆傪捠抦偡傞
iObserver.ProcessComplete(iResult, *this);
}
SEMCJ_NAMESPACE_END
// end of SmbMusicAPMainPlayerFilterProcess.cpp
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?