📄 smbmusicapsyncservercontentsservicegetsongid.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerContentsServiceGetSongID.cpp
//
// Description:
// PTX810 Music傾僾儕 摨婜僒乕僶 僐儞僥儞僣僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+---------------+--------------------------------------
//2006/06/16 |SDNA 壀嶳 |怴婯嶌惉
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETSONGID_H__
#include "SmbMusicAPSyncServerContentsServiceGetSongID.h"
#endif
#ifndef __SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.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 側偟
*/
CSmbMusicAPSyncServerContentsServiceGetSongID::CSmbMusicAPSyncServerContentsServiceGetSongID(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(ESmbMusicAPSyncServerContentsServiceGetSongIDState_Init)
{
}
/**
僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPSyncServerContentsServiceGetSongID::~CSmbMusicAPSyncServerContentsServiceGetSongID()
{
if (IsActive() != EFalse)
{
CancelService();
}
// 擮偺偨傔丄僉儍儞僙儖偵偰Complete偡傞
CompleteErr(KErrCancel);
delete iTempItemArray;
iTempItemArray = 0;
}
/**
僒乕價僗傪奐巒偡傞
* @param 側偟
* @return 僒乕價僗張棟忬懺
*/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetSongID::StartServiceL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
_LIT(KContentsServiceGetSongID00, "SyncServerContentsServiceGetSongID::StartServiceL() ");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber00),
ELogLevelLowest,
KContentsServiceGetSongID00);
#endif
if(ESmbMusicAPSyncServerContentsServiceGetSongIDState_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 = ESmbMusicAPSyncServerContentsServiceGetSongIDState_WaitItem;
return ESmbMusicAPSyncServerContetnsServiceStateContinue;
}
else
{
_LIT(KContentsServiceGetSongID01, "SyncServerContentsServiceGetSongID::StartServiceL() CreateNewItem() Err %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber01),
ELogLevelHigh,
KContentsServiceGetSongID01,
result);
// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
CompleteErr(KErrNotReady);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
_LIT(KContentsServiceGetSongID02, "SyncServerContentsServiceGetSongID::StartServiceL() List Not Found Handle:%d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber02),
ELogLevelHigh,
KContentsServiceGetSongID02,
iParamListHandle);
// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
CompleteErr(KErrArgument);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
// 僷儔儊乕僞僄儔乕偵偰姰椆偡傞
CompleteErr(KErrArgument);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
_LIT(KContentsServiceGetSongID03, "SyncServerContentsServiceGetSongID::StartServiceL() Invalid State %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber03),
ELogLevelHigh,
KContentsServiceGetSongID03,
iServiceState);
// 僒乕價僗傪僄儔乕偱姰椆偡傞
CompleteErr();
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
/**
旕摨婜墳摎偐傜僒乕價僗傪宲懕偡傞
* @param 側偟
* @return 僒乕價僗張棟忬懺
*/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetSongID::ContinueServiceL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
_LIT(KContentsServiceGetSongID04, "SyncServerContentsServiceGetSongID::ContinueServiceL() state:%d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber04),
ELogLevelLowest,
KContentsServiceGetSongID04,
iServiceState);
#endif
if(ESmbMusicAPSyncServerContentsServiceGetSongIDState_WaitItem == iServiceState)
{
// 傾僀僥儉傪庢摼偡傞
CSmbMusicMWLibMusicItem* item = iTempItemArray->GetMusicItemL(0);
if(item)
{
// 傾僀僥儉偑嬋傾僀僥儉偺応崌
if(item->ItemType() == ESmbMusicMWLibItemTypeSong)
{
// 嬋傾僀僥儉僋儔僗偵僉儍僗僩偟丄嬋ID傪庢摼偡傞
CSmbMusicMWLibSongItem* songItem = static_cast<CSmbMusicMWLibSongItem*>(item);
TUint64 songID;
TInt result = songItem->SongId(songID);
delete item;
item = 0;
if(KErrNone == result)
{
Complete(songID);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
else
{
_LIT(KContentsServiceGetSongID05, "SyncServerContentsServiceGetSongID::ContinueServiceL() SongId() Err %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber05),
ELogLevelHigh,
KContentsServiceGetSongID05,
result);
// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
CompleteErr(KErrNotReady);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
}
else
{
_LIT(KContentsServiceGetSongID06, "SyncServerContentsServiceGetSongID::ContinueServiceL() ItemType is not Song Type:%d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber06),
ELogLevelHigh,
KContentsServiceGetSongID06,
item->ItemType());
delete item;
item = 0;
// 儔僀僽儔儕MW僄儔乕偵偰姰椆偡傞
CompleteErr(KErrNotReady);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
}
else
{
_LIT(KContentsServiceGetSongID07, "SyncServerContentsServiceGetSongID::ContinueServiceL() GetMusicItemL() Err");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber07),
ELogLevelHigh,
KContentsServiceGetSongID07);
// 僒乕價僗傪僄儔乕偱姰椆偡傞
CompleteErr();
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
else
{
_LIT(KContentsServiceGetSongID08, "SyncServerContentsServiceGetSongID::ContinueServiceL() Invalid State %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber08),
ELogLevelHigh,
KContentsServiceGetSongID08,
iServiceState);
// 僒乕價僗傪僄儔乕偱姰椆偡傞
CompleteErr();
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
/**
僒乕價僗偺僉儍儞僙儖張棟傪峴偆
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPSyncServerContentsServiceGetSongID::CancelService()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
_LIT(KContentsServiceGetSongID09, "SyncServerContentsServiceGetSongID::CancelService() state:%d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber09),
ELogLevelLowest,
KContentsServiceGetSongID09,
iServiceState);
#endif
if(ESmbMusicAPSyncServerContentsServiceGetSongIDState_WaitItem == iServiceState)
{
iList->CancelCreateNewItem();
CompleteErr();
}
Cancel();
}
/**
旕摨婜墳摎僄儔乕偺張棟傪峴偆
* @param [in] aError 僄儔乕僐乕僪
* @return 僒乕價僗張棟忬懺
*/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetSongID::ServiceErr(TInt aError)
{
_LIT(KContentsServiceGetSongID10, "SyncServerContentsServiceGetSongID::ServiceErr() Called %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber10),
ELogLevelHigh,
KContentsServiceGetSongID10,
aError);
// 僒乕價僗傪僄儔乕偱姰椆偡傞
CompleteErr(aError);
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
/**
僷儔儊乕僞傪撉傒崬傓
* @param 側偟
* @return
*/
TBool CSmbMusicAPSyncServerContentsServiceGetSongID::LoadParam()
{
// 僷儔儊乕僞僷僢働乕僕傪撉傒崬傓
TSmbMusicAPSyncServerContentsReqPkg reqPkg;
TPckg<TSmbMusicAPSyncServerContentsReqPkg> pkg(reqPkg);
TInt err = iRMessage.Read(0,pkg);
if (KErrNone == err)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
_LIT(KContentsServiceGetSongID11, "SyncServerContentsServiceGetSongID::LoadParam() ListHandle:0x%08x Index:%d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber11),
ELogLevelLowest,
KContentsServiceGetSongID11,
reqPkg.iData.iGetSongID.iItems.iListHandle,
reqPkg.iData.iGetSongID.iItems.iIndex);
#endif
iParamListHandle = reqPkg.iData.iGetSongID.iItems.iListHandle; // 儕僗僩僴儞僪儖乮RMessage傛傝庢摼乯
// 儕僗僩僴儞僪儖偺僷儔儊乕僞僠僃僢僋偼偟側偄
iParamIndex = reqPkg.iData.iGetSongID.iItems.iIndex; // 僀儞僨僢僋僗乮RMessage傛傝庢摼乯
if(0 <= iParamIndex)
{
iParamIndex+=1; // 乮MWLib偱偼Index偑1乣偺偨傔丄0乣偐傜1乣偵曄姺偡傞乯
return ETrue;
}
else
{
_LIT(KContentsServiceGetSongID12, "SyncServerContentsServiceGetSongID::LoadParam() Invalid Index %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber12),
ELogLevelHigh,
KContentsServiceGetSongID12,
iParamIndex);
return EFalse;
}
}
else
{
_LIT(KContentsServiceGetSongID13, "SyncServerContentsServiceGetSongID::LoadParam() Read() Err %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber13),
ELogLevelHigh,
KContentsServiceGetSongID13,
err);
return EFalse;
}
}
/**
僒乕價僗傪惓忢偵姰椆偡傞
* @param [in] aSongId 嬋ID
* @return 側偟
*/
void CSmbMusicAPSyncServerContentsServiceGetSongID::Complete(TUint64 aSongId)
{
if(ESmbMusicAPSyncServerContentsServiceGetSongIDState_End != iServiceState)
{
MessageComplete(aSongId);
iServiceState = ESmbMusicAPSyncServerContentsServiceGetSongIDState_End;
}
else
{
_LIT(KContentsServiceGetSongID14, "SyncServerContentsServiceGetSongID::Complete() Invalid State %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber14),
ELogLevelHigh,
KContentsServiceGetSongID14,
iServiceState);
}
}
/**
僒乕價僗傪僄儔乕偱姰椆偡傞
* @param [in] aResult 僒乕價僗廔椆帪偺寢壥
* @return 側偟
*/
void CSmbMusicAPSyncServerContentsServiceGetSongID::CompleteErr(TInt aResult)
{
if(ESmbMusicAPSyncServerContentsServiceGetSongIDState_End != iServiceState)
{
if(KErrNone == aResult)
{
_LIT(KContentsServiceGetSongID15, "SyncServerContentsServiceGetSongID::CompleteErr() ErrCode Is KErrNone");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber15),
ELogLevelHigh,
KContentsServiceGetSongID15);
MessageComplete(KErrServiceFailure);
}
else
{
MessageComplete(aResult);
}
iServiceState = ESmbMusicAPSyncServerContentsServiceGetSongIDState_End;
}
else
{
_LIT(KContentsServiceGetSongID16, "SyncServerContentsServiceGetSongID::CompleteErr() Invalid State %d");
SmbMusicAPSyncServerLog(iRLog,
(EMusicAPSyncServerClassNumber_ContentsServiceGetSongID|EMusicAPSyncServerLocationNumber16),
ELogLevelHigh,
KContentsServiceGetSongID16,
iServiceState);
}
}
// end of SmbMusicAPSyncServerContentsServiceGetSongID.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -