📄 smbmusicapsyncservercontentsserviceplinsertitemow.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerContentsServicePLInsertItemOW.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 __SMBMUSICAPSYNCSERVERCONTENTSSERVICEPLINSERTITEMOW_H__
#include "SmbMusicAPSyncServerContentsServicePLInsertItemOW.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSSERVICEPLINSERTITEMOW_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 僋儔僀傾儞僩偐傜偺儊僢僙乕僕
**/
CSmbMusicAPSyncServerContentsServicePLInsertItemOW::CSmbMusicAPSyncServerContentsServicePLInsertItemOW(
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) // 捛壛傾僀僥儉僴儞僪儖摦揑攝楍偺棻搙傪愝掕
{
}
/**
* 僨僗僩儔僋僞
**/
CSmbMusicAPSyncServerContentsServicePLInsertItemOW::~CSmbMusicAPSyncServerContentsServicePLInsertItemOW()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber00;
_LIT(KServicePLInsertItemOWDestruct01, "SyncServerContentsServicePLInsertItemOW::~Destruct()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWDestruct01);
#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 CSmbMusicAPSyncServerContentsServicePLInsertItemOW::CheckCancel(TSmbMusicAPSyncServerFunction aCancelEvent)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber01;
_LIT(KServicePLInsertItemOWCheckCancel01, "SyncServerContentsServicePLInsertItemOW::CheckCancel(%d)");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWCheckCancel01, aCancelEvent);
#endif
if (aCancelEvent == ESmbMusicAPSyncServerFuncCancelInsertItemsToPlaylist)
{ // 帺僒乕價僗偺僉儍儞僙儖梫媮偺応崌
return ETrue;
}
return EFalse;
}
/**
* 僒乕價僗偺奐巒梫媮
*
* @return 僒乕價僗張棟偺宲懕忬嫷
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLInsertItemOW::StartServiceL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber02;
_LIT(KServicePLInsertItemOWStartServiceL01, "SyncServerContentsServicePLInsertItemOW::StartServiceL Start");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWStartServiceL01);
#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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber03;
_LIT(KServicePLInsertItemOWStartServiceL02, "SyncServerContentsServicePLInsertItemOW::StartServiceL GetList Error");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWStartServiceL02);
#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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber04;
_LIT(KServicePLInsertItemOWStartServiceL03, "SyncServerContentsServicePLInsertItemOW::StartServiceL CreateNewItem Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWStartServiceL03, retState);
#endif
MessageComplete(retState);
return ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
// 傾僀僥儉庢摼懸偪忬懺傊
iServiceState = EContentsServicePLInsertItemOWStateGetPLList;
CSmbMusicAPSyncServerContentsServiceBase::Start();
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber05;
_LIT(KServicePLInsertItemOWStartServiceL04, "SyncServerContentsServicePLInsertItemOW::StartServiceL End");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServicePLInsertItemOWStartServiceL04);
#endif
return ESmbMusicAPSyncServerContetnsServiceStateContinue;
}
/**
* 僒乕價僗僄儔乕捠抦
*
* @param[in] aError 僄儔乕僐乕僪
*
* @return 僒乕價僗張棟偺宲懕忬嫷
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLInsertItemOW::ServiceErr(TInt aError)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber06;
_LIT(KServicePLInsertItemOWServiceErr01, "SyncServerContentsServicePLInsertItemOW::ServiceErr(%d):%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWServiceErr01, aError, iServiceState);
#endif
if (iServiceState == EContentsServicePLInsertItemOWStateOpenPLList) // 捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
{ // 捛壛愭僾儗僀儕僗僩偺僆乕僾儞偵幐攕
// 僾儗僀儕僗僩僆乕僾儞僼儔僌傪僋儕傾
iListOpen = EFalse;
}
MessageComplete(aError);
iServiceState = EContentsServicePLInsertItemOWStateIdle; // 僒乕價僗忬懺傪張棟柍偟忬懺傊
return ESmbMusicAPSyncServerContetnsServiceStateErr;
}
/**
* 僒乕價僗僉儍儞僙儖捠抦
**/
void CSmbMusicAPSyncServerContentsServicePLInsertItemOW::CancelService()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber07;
_LIT(KServicePLInsertItemOWCancelService01, "SyncServerContentsServicePLInsertItemOW::CancelService()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWCancelService01);
#endif
switch(iServiceState)
{
case EContentsServicePLInsertItemOWStateGetPLList: // 捛壛愭僾儗僀儕僗僩庢摼拞
{
ASSERT(iPLList != NULL);
// 僾儗僀儕僗僩傾僀僥儉惗惉僉儍儞僙儖
iPLList -> CancelCreateNewItem();
}
break;
case EContentsServicePLInsertItemOWStateOpenPLList: // 捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
{
// 僾儗僀儕僗僩偺僆乕僾儞僉儍儞僙儖
PLListClose();
}
break;
case EContentsServicePLInsertItemOWStateRemoveAll: // 僾儗僀儕僗僩慡傾僀僥儉搊榐夝彍拞
{
ASSERT(iPLItem != NULL);
// 慡搊榐嬋傾僀僥儉搊榐夝彍僉儍儞僙儖
iPLItem -> CancelRemoveItem();
// 傾僀僥儉悢偑曄傢偭偰偄傟偽丄傾僀僥儉忋彂偒偺捠抦傪偡傞
TInt count = iPLItem -> Count();
if(iOriginalCount != count)
{
iManagers.AppNotifyManager().NotifyOverWriteItem(iPLHandle);
}
}
break;
case EContentsServicePLInsertItemOWStateGetSongItem: // 捛壛偡傞傾僀僥儉偺僴儞僪儖庢摼拞
{
ASSERT(iItemList != NULL);
// 嬋傾僀僥儉惗惉僉儍儞僙儖
iItemList -> CancelCreateNewItem();
// 傾僀僥儉忋彂偒偺捠抦傪偡傞
iManagers.AppNotifyManager().NotifyOverWriteItem(iPLHandle);
}
break;
case EContentsServicePLInsertItemOWStateInsertItem: // 嬋傾僀僥儉捛壛張棟拞
{
ASSERT(iPLItem != NULL);
// 嬋傾僀僥儉捛壛僉儍儞僙儖
iPLItem -> CancelInsertItem();
// 傾僀僥儉忋彂偒偺捠抦傪偡傞
iManagers.AppNotifyManager().NotifyOverWriteItem(iPLHandle);
}
break;
case EContentsServicePLInsertItemOWStateIdle: // 張棟柍偟
break;
default:
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -