⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicapfilemgrpartitioncmd.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPFileMgrPartitionCmd.cpp
//
// Description: 
//	儈儏乕僕僢僋僼傽僀儖慖戰丂僆僗僗儊愝掕僐儅儞僪僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰 	|撪梕
//--------------+-----------+-------------------------------------------
//PTX825
//2007/06/29	|SDNA彑枔	| 拝怣壒愝掕懳墳
//2007/08/07	|SDNA彑枔	| CQ-TRK D_82400009960懳墳丂僆僗僗儊忣曬傪愝掕屻偺柭摦忣曬弶婜壔嶍彍
//2007/08/07	|SDNA彑枔	| CQ-TRK D_82400010312懳墳丂柭摦忣曬夝曻張棟偺捛壛
//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
	
	// 柭摦忣曬傪嶍彍偡傞 + 儈儏乕僕僢僋傾僀僥儉傪嶍彍偡傞
	// 僼傽僀儖慖戰夋柺偱惗惉偟偰庴偗庢偭偨儈儏乕僕僢僋傾僀僥儉傪徚偟朰傟偰偼偄偗側偄
	HandleReset();

#if 0	//katsu
	// 柭摦忣曬傪嶍彍偡傞
	InitializeRingingInfo();
	// 儈儏乕僕僢僋傾僀僥儉傪嶍彍偡傞
	// 僼傽僀儖慖戰夋柺偱惗惉偟偰庴偗庢偭偨儈儏乕僕僢僋傾僀僥儉傪徚偟朰傟偰偼偄偗側偄
	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	
	// 嬋僼傽僀儖偺僼傽僀儖僷僗傪庢摼偡傞
	// 庢摼偟偨僼傽僀儖僷僗偼嶲徠側偺偱梫拲堄乮嶍彍偟偰偼僟儊乯
//	iExtractFilePath = (TDesC*)iMusicItem->GetFilePath();
//DEL-END PTX824
	}

/**
 * 柭摦壒忣曬僋儔僗傪僙僢僩
 *
 * @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嬫娫巜掕慖戰
			HandleCpToneInfoSelectL(iExtractIndex);
			break;

#ifdef __PTX825MUSICAP__							// 825_katsu 伀
		case ECmdMoveOneFileToDbx:
			HandleShowFolderSelectViewL();			
//INSERT Start PTX825 CQ-TRK D_82400010312 懳墳
			// 柭摦忣曬傪嶍彍偡傞
			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;
			}
		}
	}

/**
 * 柭摦忣曬偺奐曻
 */
void CSmbMusicAPFileMgrPartitionCmd::HandleReset(void)
	{
	// 柭摦忣曬傪嶍彍偡傞
	InitializeRingingInfo();
	// 儈儏乕僕僢僋傾僀僥儉傪嶍彍偡傞
	// 僼傽僀儖慖戰夋柺偱惗惉偟偰庴偗庢偭偨儈儏乕僕僢僋傾僀僥儉傪徚偟朰傟偰偼偄偗側偄
	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昩側偄応崌偼丄昞帵奐巒帪娫=廔椆帪娫偲偡傞
	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)
		{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -