📄 smbmusicapsyncservercontentsserviceplinsertitem.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerContentsServicePLInsertItem.cpp
//
// Description:
// 僾儗僀儕僗僩傊偺嬋傾僀僥儉捛壛梫媮僒乕價僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/12 |K3悪杮 | 怴婯嶌惉
//2006/07/06 |K3悪杮 | 傾僾儕-僒乕僶娫偺index僆儕僕儞傪挷惍
// | | 儘僌弌椡廋惓
//2006/07/12 |K3悪杮 | CheckCancel偑惓偟偔宲彸偱偒偰偄側偐偭偨偺偱廋惓
//2006/07/13 |K3悪杮 | delete偟偰偄側偄僆僽僕僃僋僩偑偁偭偨偺偱廋惓
//2006/07/18 |K3悪杮 | 僾儗僀儕僗僩偺僆乕僾儞/僋儘乕僘偺昁梫偑偁傞偨傔張棟捛壛
//2006/08/15 |K3悪杮 | 捠抦梡僾儗僀儕僗僩撪嬋悢偺庢摼偑惓偟偔側偐偭偨偺偱廋惓
//2006/09/07 |SDNA 壀嶳 | 孞傝曉偟梫媮偵懳墳偡傞偨傔丄僨僗僩儔僋僞偱DeleteOriginalPLList()傪幚峴偟側偄傛偆偵偟傑偟偨(TRK5139)
//2006/10/20 |K3悪杮 | [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張
// | | 僐儊儞僩廋惓
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEPLINSERTITEM_H__
#include "SmbMusicAPSyncServerContentsServicePLInsertItem.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSSERVICEPLINSERTITEM_H__
#ifndef __E32ERR_H__
#include <e32err.h> // 僄儔乕僐乕僪
#endif // __E32ERR_H__
#ifndef __SMBMUSICAPSYNCSERVERDEF_H__
#include <SmbMusicAPSyncServerDef.h>
#endif // __SMBMUSICAPSYNCSERVERDEF_H__
#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h> // CSmbMusicMWLibPLItem
#endif // __SMBMUSICMWLIBCLIENT_H__
#ifndef __SMBMUSICAPSYNCSERVERMODEL_H__
#include "SmbMusicAPSyncServerModel.h"
#endif // __SMBMUSICAPSYNCSERVERMODEL_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSFUNC_H__
#include "SmbMusicAPSyncServerContentsFunc.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSFUNC_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__
#include "SmbMusicAPSyncServerContentsScreenTraceManager.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__
#include "SmbMusicAPSyncServerContentsAsyncObserver.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__
#include "SmbMusicAPSyncServerContentsList.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#include "SmbMusicAPSyncServerContentsManagerInterface.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSAPPNOTIFYMANAGER_H__
#include "SmbMusicAPSyncServerContentsAppNotifyManager.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSAPPNOTIFYMANAGER_H__
// ADD-S [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
#include "SmbMusicAPSyncServerContentsImageDataManager.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
// ADD-E [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張
USING_NAMESPACE_SEMCJ
/**
* 僐儞僗僩儔僋僞
*
* @param[in] aRlog 儘僌僒乕僶
* @param[in] aModel 摨婜僒乕僶儌僨儖
* @param[in] aObserver 旕摨婜僆僽僓乕僶
* @param[in] aFunc 僼傽儞僋僔儑儞
* @param[in] aManagerInterface 儅僱乕僕儍僀儞僞僼僃乕僗
* @param[in] aScreenData 僗僋儕乕儞僩儗乕僗儅僱乕僕儍
* @param[in] aRMessage 僋儔僀傾儞僩偐傜偺儊僢僙乕僕
**/
CSmbMusicAPSyncServerContentsServicePLInsertItem::CSmbMusicAPSyncServerContentsServicePLInsertItem(
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
),
KPlayListMaxItem(10), // 傾僀僥儉僴儞僪儖攝楍偺棻搙
iHandleArray(KPlayListMaxItem) // 捛壛傾僀僥儉僴儞僪儖摦揑攝楍偺棻搙傪愝掕
{
}
/**
* 僨僗僩儔僋僞
**/
CSmbMusicAPSyncServerContentsServicePLInsertItem::~CSmbMusicAPSyncServerContentsServicePLInsertItem()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber00;
_LIT(KServicePLInsertItemDestruct01, "SyncServerContentsServicePLInsertItem::~Destruct()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemDestruct01);
#endif
if (IsActive() != EFalse)
{
CancelService();
}
iHandleArray.Reset();
if (iPLItem != NULL)
{ // 捛壛愭僾儗僀儕僗僩偑偁傞応崌
PLListClose(); // 僾儗僀儕僗僩僋儘乕僘張棟
}
// 嬋傾僀僥儉偺攋婞
iSongArray.ResetAndDestroy();
iSongArray.Close();
delete iItemArray;
delete iIndexArray;
delete iPLItem;
// iScreenData.DeleteOriginalPLList();
}
/**
* 僉儍儞僙儖梫媮偵懳偡傞僒乕價僗僉儍儞僙儖敾掕
*
* @param[in] aCancelEvent 僉儍儞僙儖梫媮偝傟偨僀儀儞僩僞僀僾
*
* @return 僉儍儞僙儖傪庴偗傞偐偳偆偐偺敾掕(ETrue:梫媮僉儍儞僙儖丄EFalse:梫媮傪僉儍儞僙儖偟側偄)
**/
TBool CSmbMusicAPSyncServerContentsServicePLInsertItem::CheckCancel(TSmbMusicAPSyncServerFunction aCancelEvent)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber01;
_LIT(KServicePLInsertItemCheckCancel01, "SyncServerContentsServicePLInsertItem::CheckCancel(%d)");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemCheckCancel01, aCancelEvent);
#endif
if (aCancelEvent == ESmbMusicAPSyncServerFuncCancelInsertItemsToPlaylist)
{ // 帺僒乕價僗偺僉儍儞僙儖梫媮偺応崌
return ETrue;
}
return EFalse;
}
/**
* 僒乕價僗偺奐巒梫媮
*
* @return 僒乕價僗張棟偺宲懕忬嫷
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLInsertItem::StartServiceL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber02;
_LIT(KServicePLInsertItemStartServiceL01, "SyncServerContentsServicePLInsertItem::StartServiceL Start");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemStartServiceL01);
#endif
if (iItemArray == NULL)
{ // 儕僗僩攝楍偑惗惉偝傟偰偄側偄応崌
// 儕僗僩傾僀僥儉庢摼梡儕僗僩攝楍惗惉
iItemArray = CSmbMusicMWLibItemArray::NewL(1); // 1嬋暘
}
// RMessage偐傜僷儔儊乕僞撉崬
if (LoadParamL() == EFalse)
{ // 摨婜僄儞僕儞偐傜偺儊僢僙乕僕偑晄惓偩偭偨
MessageComplete(KErrArgument);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
// 僾儗僀儕僗僩嬋堦棗儕僗僩庢摼
iPLList = iScreenData.GetList(iPLHandle);
if (iPLList == NULL)
{ // 儕僗僩偺庢摼偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber03;
_LIT(KServicePLInsertItemStartServiceL02, "SyncServerContentsServicePLInsertItem::StartServiceL GetList Error");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemStartServiceL02);
#endif
MessageComplete(KErrNotFound);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
// 傾僀僥儉儕僗僩偺弶婜壔
ItemArray().Reset();
// 捛壛懳徾僾儗僀儕僗僩傾僀僥儉庢摼
TInt retState(KErrNone);
retState = iPLList -> CreateNewItem(ItemArray(), iIndex, 1, iStatus);
if (retState != KErrNone)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber04;
_LIT(KServicePLInsertItemStartServiceL03, "SyncServerContentsServicePLInsertItem::StartServiceL CreateNewItem Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemStartServiceL03, retState);
#endif
MessageComplete(retState);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
// 傾僀僥儉庢摼懸偪忬懺傊
iServiceState = EContentsServicePLInsertItemStateGetPLList;
CSmbMusicAPSyncServerContentsServiceBase::Start();
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber05;
_LIT(KServicePLInsertItemStartServiceL04, "SyncServerContentsServicePLInsertItem::StartServiceL End");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServicePLInsertItemStartServiceL04);
#endif
return ESmbMusicAPSyncServerContetnsServiceStateContinue;
}
/**
* 僒乕價僗僄儔乕捠抦
*
* @param[in] aError 僄儔乕僐乕僪
*
* @return 僒乕價僗張棟偺宲懕忬嫷
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLInsertItem::ServiceErr(TInt aError)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber06;
_LIT(KServicePLInsertItemServiceErr01, "SyncServerContentsServicePLInsertItem::ServiceErr(%d):%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemServiceErr01, aError, iServiceState);
#endif
if (iServiceState == EContentsServicePLInsertItemStateOpenPLList) // 捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
{ // 捛壛愭僾儗僀儕僗僩偺僆乕僾儞偵幐攕
// 僾儗僀儕僗僩僆乕僾儞僼儔僌傪僋儕傾
iListOpen = EFalse;
}
MessageComplete(aError);
iServiceState = EContentsServicePLInsertItemStateIdle; // 僒乕價僗忬懺傪張棟柍偟忬懺傊
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
/**
* 僒乕價僗僉儍儞僙儖捠抦
**/
void CSmbMusicAPSyncServerContentsServicePLInsertItem::CancelService()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber07;
_LIT(KServicePLInsertItemCancelService01, "SyncServerContentsServicePLInsertItem::CancelService()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemCancelService01);
#endif
switch(iServiceState)
{
case EContentsServicePLInsertItemStateGetPLList: // 捛壛愭僾儗僀儕僗僩庢摼拞
{
ASSERT(iPLList != NULL);
// 僾儗僀儕僗僩傾僀僥儉惗惉僉儍儞僙儖
iPLList -> CancelCreateNewItem();
}
break;
case EContentsServicePLInsertItemStateOpenPLList: // 捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
{
// 僾儗僀儕僗僩偺僆乕僾儞僉儍儞僙儖
PLListClose();
}
break;
case EContentsServicePLInsertItemStateGetSongItem: // 捛壛偡傞傾僀僥儉偺僴儞僪儖庢摼拞
{
ASSERT(iItemList != NULL);
// 嬋傾僀僥儉惗惉僉儍儞僙儖
iItemList -> CancelCreateNewItem();
}
break;
case EContentsServicePLInsertItemStateInsertItem: // 嬋傾僀僥儉捛壛張棟拞
{
ASSERT(iPLItem != NULL);
// 嬋傾僀僥儉捛壛僉儍儞僙儖
iPLItem -> CancelInsertItem();
// 傾僀僥儉偑憹偊偰偄傟偽丄傾僀僥儉捛壛偺捠抦傪偡傞
TInt count = iPLItem -> Count();
if(iOriginalCount < count)
{
iManagers.AppNotifyManager().NotifyAddItem(iPLHandle, count - iOriginalCount);
}
}
break;
case EContentsServicePLInsertItemStateIdle: // 張棟柍偟
break;
default:
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber08;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -