?? smbmusicapfilemgrpartitioncmd.cpp
字號:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
// SmbMusicAPFileMgrPartitionCmd.cpp
//
// Description:
// 儈儏乕僕僢僋僼傽僀儖慖戰(zhàn)丂僆僗僗儊愝掕僐儅儞僪僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔(dān)晅 |曄峏幰 |撪梕
//--------------+-----------+-------------------------------------------
//PTX825
//2007/06/29 |SDNA彑枔 | 拝怣壒愝掕懳墳
//2007/08/07 |SDNA彑枔 | CQ-TRK D_82400009960懳墳丂僆僗僗儊忣曬傪愝掕屻偺柭?lián)畯顣駨墛鷫粛韽?//2007/08/07 |SDNA彑枔 | CQ-TRK D_82400010312懳墳丂柭?lián)畯顣駢饡鷱垪潅虙菈?//2007/08/07 |SDNA彑枔 | CQ-TRK D_82400010320懳墳丂CP巜掕嬫娫忣曬嬋嵞惗拞偺SD敳嫀
//2007/08/22 |SDNA彑枔 | CQ-TRK D_82400012344懳墳丂CP嬫娫柤徧偺昞帵BYTE悢
//2007/09/25 |SDNA彑枔 | CQ-TRK D_82400015433懳墳 巇條曄峏乮MP-02-P029仺MP-02-P031乯
#include <FjAfEnv.h>
#include <SmbMusicAPFileMgr.rsg>
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include "SmbMusicAPFileMgrCommonDef.h"
#include "SmbMusicAPFileMgrPartitionCmd.h"
#include "SmbMusicAPFileMgrUtility.h"
#include "SmbMusicAPFileMgrExternalInterface.h"
#include "SmbMusicAPFileMgr.hrh"
#include "SmbMusicAPFileMgrActionController.h"
#include "SmbMusicAPFileSystemComSpaceMgr.h"
#include "SmbMusicAPFileMgrDebugLog.h"
#include "SmbMusicAPFileMgrDocument.h"
USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN
/**
* 僐儞僗僩儔僋僞
*
* @param[in] aAppUi 傾僾儕働乕僔儑儞UI
* @param[in] aView 傾僾儕働乕僔儑儞價儏乕
* @param[in] aController 傾僋僔儑儞僐儞僩儘乕儔
* @param[in] aLog 儘僌僒乕僶
*/
CSmbMusicAPFileMgrPartitionCmd::CSmbMusicAPFileMgrPartitionCmd(CSmbMusicAPFileMgrAppUi& aAppUi,
CSmbMusicAPFileMgrPartitionView& aView,
CSmbMusicAPFileMgrActionController& aController
)
:CSmbMusicAPFileMgrCmdBase(aAppUi, aView, aController), iView(aView)
{
}
/**
* 戞2僼僃乕僘僐儞僗僩儔僋僞
*/
void CSmbMusicAPFileMgrPartitionCmd::ConstructL()
{
//DEL-START PTX824
// 堦帪僼傽僀儖偑懚嵼偡傞応崌丄嶍彍
// ClearTempFileL();
//DEL-START PTX824
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPFileMgrPartitionCmd::~CSmbMusicAPFileMgrPartitionCmd()
{
//DEL-START PTX824
// 愗傝弌偟梫媮拞偺応崌丄
// 俵俵僒乕僶傪掆巭偟丄儕僜乕僗奐曻偡傞
// ProcessExtractStopL();
//DEL-END PTX824
// 柭?lián)畯顣駛饙韽渹穫?+ 儈儏乕僕僢僋傾僀僥儉傪嶍彍偡傞
// 僼傽僀儖慖戰(zhàn)夋柺偱惗惉偟偰庴偗庢?zhèn)羵絻~儏乕僕僢僋傾僀僥儉傪徚偟朰傟偰偼偄偗側(cè)偄
HandleReset();
#if 0 //katsu
// 柭?lián)畯顣駛饙韽渹穫? InitializeRingingInfo();
// 儈儏乕僕僢僋傾僀僥儉傪嶍彍偡傞
// 僼傽僀儖慖戰(zhàn)夋柺偱惗惉偟偰庴偗庢?zhèn)羵絻~儏乕僕僢僋傾僀僥儉傪徚偟朰傟偰偼偄偗側(cè)偄
if(NULL!=iMusicItem)
{
delete iMusicItem;
iMusicItem = NULL;
}
#endif
//DEL-START PTX824
// 堦帪僼傽僀儖偑懚嵼偡傞応崌丄嶍彍
// ClearTempFileL();
//DEL-END PTX824
}
/**
* 儘乕僇儖價儏乕愗傝懼偊張棟
*
* @param[in] aViewType 儊僢僙乕僕ID
* @leave TBD 儘乕僇儖價儏乕愗傝懼偊偵幐攕?
*/
void CSmbMusicAPFileMgrPartitionCmd::HandleChangeLocalViewL(TSmbMusicAPFileMgrViewType aViewType)
{
TInt result = ChangeLocalView(aViewType);
if (result != KErrNone)
{
//儘僌
OUTPUT_LOG1_ERROR("ERROR::ChangeLocalView():%d", result);
// 儕乕僽張棟
User::Leave(result);
}
}
/**
* 僆僗僗儊愝掕忣曬傪曐桳偡傞儈儏乕僕僢僋傾僀僥儉
*
* @param[in] aMusicItem 儈儏乕僕僢僋傾僀僥儉
* @param[in] aImageType 夋憸庬暿
*/
void CSmbMusicAPFileMgrPartitionCmd::SetMusicItem(CSmbMusicAPFileSystemComMusicItem* aMusicItem)
{
if(NULL!=iMusicItem)
{
delete iMusicItem;
iMusicItem = NULL;
}
iMusicItem = aMusicItem;
//DEL-START PTX824
// 嬋僼傽僀儖偺僼傽僀儖僷僗傪庢摼偡傞
// 庢摼偟偨僼傽僀儖僷僗偼嶲徠側(cè)偺偱梫拲堄乮嶍彍偟偰偼僟儊乯
// iExtractFilePath = (TDesC*)iMusicItem->GetFilePath();
//DEL-END PTX824
}
/**
* 柭?lián)畨箯顣駜N儔僗傪僙僢僩
*
* @param[in] aMusicItem 儈儏乕僕僢僋傾僀僥儉
* @param[in] aImageType 夋憸庬暿
*/
void CSmbMusicAPFileMgrPartitionCmd::SetRingingInfo(CSmbMusicMWLibRingingInfo* aRingingInfo)
{
if(NULL != iRingingInfo)
{
delete iRingingInfo;
iRingingInfo = NULL;
}
iRingingInfo = aRingingInfo;
}
/**
* 愗傝弌偟偡傞俠俹忣曬偺僀儞僨僢僋僗傪愝掕偡傞
*
* @param[in] aItemIndex 僀儞僨僢僋僗斣崋
*/
void CSmbMusicAPFileMgrPartitionCmd::SetItemIndex(TInt aItemIndex)
{
iExtractIndex = aItemIndex;
}
/**
* 價儏乕僐儅儞僪張棟
*
* @param[in] aCommand 僐儅儞僪ID
*/
void CSmbMusicAPFileMgrPartitionCmd::HandleViewCommandImplL(TInt aCommand)
{
TSmbMusicAPFileMgrViewType viewType = iView.ViewType();
// 僆僗僗儊愝掕堦棗夋柺僐儅儞僪
#ifdef __PTX825MUSICAP__ // 825_katsu 伀
if((viewType == ETypePartitionView)
|| (viewType == ETypePartitionViewSD))
#else
if(viewType == ETypePartitionView)
#endif // __PTX825MUSICAP__ 825_katsu 仾
{
switch (aCommand)
{
case ECmdShowFileView:
///< 僼傽僀儖仌僼僅儖僟堦棗昞帵偵慗堏偡傞
HandleChangeLocalViewL(ETypeExploreView);
break;
case ECmdSetSongTitle:
///< 嬋柤庢摼張棟
HandleGetSongTitleL();
break;
case ECmdPlaySong:
///堦嬋嵞惗偡傞
HandlePlaySongL();
break;
case ECmdReset:
case ECmdHandleReset: // __PTX825MUSICAP__ katsu
HandleReset();
break;
case ECmdSetDisableCpList:
///愗傝弌偟嬫娫偺婸搙/敿婸搙昞帵
SetDisableCpListL();
break;
case ECmdCutterCancel:
//僉儍儞僙儖張棟
HandleCutterCancelL(ECmdCutterCancel);
break;
// i儌乕僔儑儞曐懚僟僀傾儘僌昞帵
case ECmdCutterCancelOnHook:
//僉儍儞僙儖張棟
HandleCutterCancelL(ECmdCutterCancelOnHook);
break;
case ECmdCreateCpToneInfoDisp:
//CP嬫娫巜掕夋柺惗惉
HandleCreateCpToneInfoL();
break;
case ECmdCpToneInfoSelect:
//CP嬫娫巜掕慖戰(zhàn)
HandleCpToneInfoSelectL(iExtractIndex);
break;
#ifdef __PTX825MUSICAP__ // 825_katsu 伀
case ECmdMoveOneFileToDbx:
HandleShowFolderSelectViewL();
//INSERT Start PTX825 CQ-TRK D_82400010312 懳墳
// 柭?lián)畯顣駛饙韽渹穫? InitializeRingingInfo();
//INSERT End PTX825 CQ-TRK D_82400010312 懳墳
break;
case ECmdChkFolder:
///< 僼傽僀儖仌僼僅儖僟堦棗昞帵偵慗堏偡傞
HandleChangeLocalViewL(ETypeBackView);
break;
case ECmdNotifyMountedMs: // 儊儌儕乕僗僥傿僢僋憓擖(巊梡壜擻)捠抦
case ECmdNotifyMountingMs: // 儊儌儕乕僗僥傿僢僋憓擖(Mount拞)捠抦
case ECmdNotifyUnMountedMs: // 儊儌儕乕僗僥傿僢僋敳偗捠抦
case ECmdNotifyErrorMs: // 儊儌儕乕僗僥傿僢僋Mount僄儔乕捠抦
case ECmdNotifyUpdatingDbMs: // 儊儌儕乕僗僥傿僢僋DB峔抸奐巒捠抦
case ECmdNotifyMountedSd: // SD僇乕僪憓擖(巊梡壜擻)捠抦
case ECmdNotifyMountingSd: // SD僇乕僪憓擖(Mount拞)捠抦
case ECmdNotifyUnMountedSd: // SD僇乕僪敳偗捠抦
case ECmdNotifyErrorSd: // SD僇乕僪Mount僄儔乕捠抦
case ECmdNotifyUpdatingDbSd: // SD僇乕僪DB峔抸奐巒捠抦
case ECmdNotifyUpdatingDbMass: // 杮懱奼挘儊儌儕DB峔抸奐巒捠抦
case ECmdNotifyReleaseSDBindResource: // SD-Bind儕僜乕僗夝曻僐儅儞僪
case ECmdNotifyReleaseMemoryModeResource: // 儊儌儕儌乕僪儕僜乕僗夝曻僐儅儞僪
case ECmdNotifyReleaseMTPModeResource: // MTP儌乕僪儕僜乕僗夝曻僐儅儞僪
case ECmdNotifyErrorCommsBreakSd: //儊儌儕儌乕僪拞捠抦
//INSERT Start PTX825 CQ-TRK D_82400010320 懳墳
if (iAppUi.StorageType() == EStorageTypeSD) // SD撪僨乕僞偺応崌丂CQ-TRK D_82400010320 懳墳伀
{//杮懱懁愝掕
HandleReset();
}
//INSERT End PTX825 CQ-TRK D_82400010320 懳墳
HandleNotifyCommand(aCommand);
break;
#endif // __PTX825MUSICAP__ 825_katsu 仾
default:
__ASSERT_DEBUG(EFalse, PANIC(KErrArgument));
break;
}
}
}
/**
* 柭?lián)畯顣駛虋J曻
*/
void CSmbMusicAPFileMgrPartitionCmd::HandleReset(void)
{
// 柭?lián)畯顣駛饙韽渹穫? InitializeRingingInfo();
// 儈儏乕僕僢僋傾僀僥儉傪嶍彍偡傞
// 僼傽僀儖慖戰(zhàn)夋柺偱惗惉偟偰庴偗庢?zhèn)羵絻~儏乕僕僢僋傾僀僥儉傪徚偟朰傟偰偼偄偗側(cè)偄
if(NULL!=iMusicItem)
{
delete iMusicItem;
iMusicItem = NULL;
}
}
/**
* CP巜掕愗傝弌偟忣曬ItemText偺惗惉
*
* @param[in] aCPInfo TSmbMusicMWLibCPRingingInfo
* @param[in] aItemFormat Item偺僼僅乕儅僢僩暥帤楍
* @param[in] aTimeFormat Time偺僼僅乕儅僢僩暥帤楍
* @param[out] aCPItemText 弌椡暥帤楍
* @return 惉斲
*/
TBool CSmbMusicAPFileMgrPartitionCmd::CreateCPItemTextL(const TSmbMusicMWLibCPRingingInfo* aCPInfo, const TDesC& aItemFormat, const TDesC& aTimeFormat, TDes& aCPItemText)
{
if (NULL==aCPInfo)
{
return EFalse;
}
aCPItemText.Zero();
///////////////////////////TITLE昞帵///////////////////////////////
// CP愢柧忣曬, CP忣曬暥帤楍傪惗惉偡傞
// INSERT Strt PTX825 CQ-TRK D_82400012344
// TBuf<ECpToneInfoItemDispTextLength> cpTitle;
TBuf<ECpToneInfoDescriptionMaxLength> cpTitle;
// INSERT End PTX825 CQ-TRK D_82400012344
// 嬫娫柤偑柍偄, 暥帤楍挿堎忢偺応崌偼乽晄柧乿傪昞帵偡傞
if(0==aCPInfo->iDescription.Length() || KSmbMusicMWLibDesctiption < aCPInfo->iDescription.Length())
{
// 乽晄柧乿僞僀僩儖傪愝掕偡傞 儕僜乕僗偐傜僞僀僩儖傪撉傒崬傓
HBufC* unknown = CEikonEnv::Static()->AllocReadResourceL(R_SMB_AF_STR_SUB138);
cpTitle.Copy(unknown->Des());
delete unknown;
}
else
{
// INSERT Strt PTX825 CQ-TRK D_82400012344
// cpTitle = aCPInfo->iDescription.Left(ECpToneInfoItemDispTextLength);
cpTitle = aCPInfo->iDescription.Left(ECpToneInfoDescriptionMaxLength);
// INSERT End PTX825 CQ-TRK D_82400012344
}
///////////////////////////昞帵帪崗///////////////////////////////
// 奐巒帪娫
TInt startTime = aCPInfo->iStartTime;
// 廔椆帪娫
TInt endTime = aCPInfo->iEndTime;
// 奐巒帪娫丄廔椆帪娫傪暥帤楍偵曄姺偡傞
TInt startMin, startSec, endMin, endSec;
// 奐巒帪娫偲廔椆帪娫偺嵎偑丄1昩側(cè)偄応崌偼丄昞帵奐巒帪娫=廔椆帪娫偲偡傞
if(endTime - startTime < KSmbMusicAPFileMgrOneSec)
{
endTime = startTime;
}
// 奐巒帪娫偑99:59埲忋偺応崌丄99:59偵挷惍
if(startTime > KSmbMusicAPFileMgrDispMaxSec)
{
startTime = KSmbMusicAPFileMgrDispMaxSec;
}
// 奐巒帪娫偺孞傝壓偘張棟
startTime = startTime - startTime % KSmbMusicAPFileMgrOneSec;
// 廔椆帪娫偑99:59埲忋偺応崌丄99:59偵挷惍
if(endTime > KSmbMusicAPFileMgrDispMaxSec)
{
endTime = KSmbMusicAPFileMgrDispMaxSec;
}
// 廔椆帪娫偺孞傝壓偘張棟
endTime = endTime - endTime % KSmbMusicAPFileMgrOneSec;
startMin = (startTime / KSmbMusicAPFileMgrOneSec) / KSmbMusicAPFileMgrSixtySec;
startSec = (startTime / KSmbMusicAPFileMgrOneSec) % KSmbMusicAPFileMgrSixtySec;
endMin = (endTime / KSmbMusicAPFileMgrOneSec) / KSmbMusicAPFileMgrSixtySec;
endSec = (endTime / KSmbMusicAPFileMgrOneSec) % KSmbMusicAPFileMgrSixtySec;
HBufC* durationText = SmbAfWordingFormatter::FormatLC(aTimeFormat, startMin, startSec, endMin, endSec);
///////////////////////////////// 弌椡暥帤楍偺惗惉. /////////////////////////////
// 俠俹愢柧忣曬丄奐巒帪娫丄廔椆帪娫偺暥帤楍傪僼僅乕儅僢僩偡傞
aCPItemText.AppendFormat(aItemFormat, &cpTitle, durationText);
CleanupStack::Pop();
delete durationText;
return ETrue;
}
//DEL-START PTX824
/**
* 愗傝弌偟張棟偺奐巒梫媮
*
*/
/*TInt CSmbMusicAPFileMgrPartitionCmd::RequestExtractSongL(TInt aIndex)
{
// 儕僜乕僗巊梡忬懺傪僠僃僢僋偡傞
if (ESmbMusicAPFileMgrRscCanUse == iRscUseState || ESmbMusicAPFileMgrRscInUse == iRscUseState)
{
// 儕僜乕僗傪奐曻偡傞
ReleaseMMServerResourceL();
}
// 愗傝弌偟忣曬傪愝掕偡傞
const TSmbMusicMWLibCPRingingInfo* aCPInfo = iRingingInfo->CpToneInfo(aIndex);
if(NULL==aCPInfo)
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -