📄 smbmusicapsyncservercontentsservicegetcontentsid.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerContentsServiceGetContentsID.cpp
//
// Description:
// PTX810 Music傾僾儕 摨婜僒乕僶 僐儞僥儞僣僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+---------------+--------------------------------------
//2006/06/20 |SDNA 壀嶳 |怴婯嶌惉
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETCONTENTSID_H__
#include "SmbMusicAPSyncServerContentsServiceGetContentsID.h"
#endif
#ifndef FJLOG_H__
#include <FjLog.h>
#endif
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__
#include "SmbMusicAPSyncServerContentsList.h"
#endif
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSITEM_H__
#include "SmbMusicAPSyncServerContentsItem.h"
#endif
USING_NAMESPACE_SEMCJ
/**
僐儞僗僩儔僋僞
* @param [in] aRlog RLog偺嶲徠
* @param [in] aModel 儌僨儖僋儔僗偺嶲徠
* @param [in] aObserver 僒乕價僗姰椆捠抦愭僋儔僗偺嶲徠
* @param [in] aFunc 僐儞僥儞僣僼傽儞僋儔僗偺嶲徠
* @param [in] aManagerInterface 奺儅僱乕僕儍傪娗棟偡傞僋儔僗偺嶲徠
* @param [in] aScreenData 夋柺慗堏僨乕僞娗棟僋儔僗偺嶲徠
* @param [in,out] aRMessage RMessage偺億僀儞僞
* @return 側偟
*/
CSmbMusicAPSyncServerContentsServiceGetContentsID::CSmbMusicAPSyncServerContentsServiceGetContentsID(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),
iServiceState(ESmbMusicAPSyncServerContentsServiceGetContentsIDState_Init)
{
}
/**
僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPSyncServerContentsServiceGetContentsID::~CSmbMusicAPSyncServerContentsServiceGetContentsID()
{
if (IsActive() != EFalse)
{
CancelService();
}
// 擮偺偨傔丄僉儍儞僙儖偵偰Complete偡傞
CompleteErr(KErrCancel);
delete iTempItemArray;
iTempItemArray = 0;
}
/**
僒乕價僗傪奐巒偡傞
* @param 側偟
* @return 僒乕價僗張棟忬懺
*/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetContentsID::StartServiceL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
_LIT(KContentsServiceGetContentsID00, "SyncServerContentsServiceGetContentsID::StartServiceL() ");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetContentsID|EMusicAPSyncServerLocationNumber00),
ELogLevelLowest,
KContentsServiceGetContentsID00);
#endif
if(ESmbMusicAPSyncServerContentsServiceGetContentsIDState_Init == iServiceState)
{
// 僷儔儊乕僞傪撉傒崬傓
if(EFalse != LoadParam())
{
CSmbMusicAPSyncServerContentsList* list = iScreenData.GetList(iParamListHandle);
if(list)
{
iList = list;
// 傾僀僥儉攝楍傪惗惉偡傞
iTempItemArray = CSmbMusicMWLibItemArray::NewL(1);
// 傾僀僥儉傪庢摼偡傞
TInt result = iList->CreateNewItem(*iTempItemArray, iParamIndex, 1, iStatus);
if(KErrNone == result)
{
// 僒乕價僗僋儔僗傪傾僋僥傿僽偵偡傞
Start();
// 傾僀僥儉庢摼懸偪忬懺偵偡傞
iServiceState = ESmbMusicAPSyncServerContentsServiceGetContentsIDState_WaitItem;
return ESmbMusicAPSyncServerContetnsServiceStateContinue;
}
else
{
_LIT(KContentsServiceGetContentsID01, "SyncServerContentsServiceGetContentsID::StartServiceL() CreateNewItem() Err %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetContentsID|EMusicAPSyncServerLocationNumber01),
ELogLevelHigh,
KContentsServiceGetContentsID01,
result);
// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
CompleteErr(KErrNotReady);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
_LIT(KContentsServiceGetContentsID02, "SyncServerContentsServiceGetContentsID::StartServiceL() List Not Found 0x%08x");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetContentsID|EMusicAPSyncServerLocationNumber02),
ELogLevelHigh,
KContentsServiceGetContentsID02,
iParamListHandle);
// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
CompleteErr(KErrArgument);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
CompleteErr(KErrArgument);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
_LIT(KContentsServiceGetContentsID03, "SyncServerContentsServiceGetContentsID::StartServiceL() Invalid State %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetContentsID|EMusicAPSyncServerLocationNumber03),
ELogLevelHigh,
KContentsServiceGetContentsID03,
iServiceState);
// 僒乕價僗傪僄儔乕偱姰椆偡傞
CompleteErr();
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
/**
旕摨婜墳摎偐傜僒乕價僗傪宲懕偡傞
* @param 側偟
* @return 僒乕價僗張棟忬懺
*/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetContentsID::ContinueServiceL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
_LIT(KContentsServiceGetContentsID04, "SyncServerContentsServiceGetContentsID::ContinueServiceL() state:%d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetContentsID|EMusicAPSyncServerLocationNumber04),
ELogLevelLowest,
KContentsServiceGetContentsID04,
iServiceState);
#endif
if(ESmbMusicAPSyncServerContentsServiceGetContentsIDState_WaitItem == iServiceState)
{
// 傾僀僥儉傪庢摼偡傞
CSmbMusicMWLibMusicItem* item = iTempItemArray->GetMusicItemL(0);
if(item)
{
// 傾僀僥儉偑嬋傾僀僥儉偺応崌
TSmbMusicMWLibItemType type = item->ItemType();
if(ESmbMusicMWLibItemTypeSong == type)
{
// 嬋傾僀僥儉僋儔僗偵僉儍僗僩偟丄僐儞僥儞僣ID傪庢摼偡傞
CSmbMusicMWLibSongItem* songItem = static_cast<CSmbMusicMWLibSongItem*>(item);
TInt contentsID = songItem->ContentsId ();
delete item;
item = 0;
if(0 <= contentsID)
{
Complete(contentsID);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
else
{
_LIT(KContentsServiceGetContentsID05, "SyncServerContentsServiceGetContentsID::ContinueServiceL() ContentsId() Err %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetContentsID|EMusicAPSyncServerLocationNumber05),
ELogLevelHigh,
KContentsServiceGetContentsID05,
contentsID);
// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
CompleteErr(KErrNotReady);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
delete item;
item = 0;
_LIT(KContentsServiceGetContentsID06, "SyncServerContentsServiceGetContentsID::ContinueServiceL() ItemType Not Song %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetContentsID|EMusicAPSyncServerLocationNumber06),
ELogLevelHigh,
KContentsServiceGetContentsID06,
type);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -