smbmusicapfilemgrfilecmd.cpp

来自「索爱手机代码」· C++ 代码 · 共 1,610 行 · 第 1/5 页

CPP
1,610
字号
	case ECmdHandleReset:
		HandleReset();		
		break;

	case ECmdSelectCallVoice:				// 揹榖拝怣愝掕
	case ECmdSelectCallTv:					// 僥儗價揹榖拝怣愝掕
	case ECmdSelectCallPoc:					// 僾僢僔儏僩乕僋揹榖拝怣愝掕
	case ECmdSelectCallMail:				// 儊乕儖拝怣愝掕
	case ECmdSelectCallMsgR:				// 儊僢僙乕僕R拝怣愝掕
	case ECmdSelectCallMsgF:				// 儊僢僙乕僕F拝怣愝掕
// INSERT Start CQ-TRK D_82400012628
	iRequestingCommand = ECmdSoundSet;		// 壒愝掕張棟
// INSERT End CQ-TRK D_82400012628
		// 愝掕僷儔儊乕僞
		CSmbMusicAPFileMgrDocument* doc = iAppUi.Document();
		TSmbMusicAPFileMgrSettingParam& setting = doc->SettingParam();
		setting.iSelectMenuItem = aCommand;			// 張棟梫媮庬暿僙僢僩
//DELETE Start PTX825 CQ-TRK D_82400014576
//		// View婲摦para
//		TSmbMusicAPFileMgrLocalViewStartParam param;
//		param.iBackView = EBackNormal;		// 張棟僼僅儖僟僋儕傾
//DELETE End PTX825 CQ-TRK D_82400014576
		HandleSelectSongL();
		break;

//		// 慖戰拞巭
//	case ECmdCancelSelections:
//		HandleCancleSelectionsL();
//		break;
//	// 嬋偺慖戰
//	case ECmdSelectSong:
//		HandleSelectSongL();
//		break;
	// 傑傞偛偲愝掕偟偰廔椆
	case ECmdSetOneSong:
		HandleSetOneSongL();
		break;
	// 僆僗僗儊愝掕堦棗偺昞帵
	case ECmdSetPartSong:
		// 僆僗僗儊愝掕堦棗(PartitionView)偵夋柺慗堏偡傞
		// CustomMessage偵musicItem傪擖傟偰屇傃弌偡
		HandleShowPartitionViewL();
		break;

	case ECmdFolderSelect:
		HandleShowFolderSelectViewL();
		break;


	case ECmdChkFolder:
		// 慖戰僼僅儖僟妋擣乮杮懱/SD乯
		HandleCheckFolders();
		break;

	case ECmdSelectCallEnd:
		SoundSetCompleteL();
		break;
	
#endif												// __PTX825MUSICAP__ katsu 仾
	default:
		break;
		}
	}
#ifdef __PTX825MUSICAP__					// 825_katsu 伀

/**
 * 嬋僼傽僀儖偺慖戰
 */
void CSmbMusicAPFileMgrFileCmd::HandleSelectSongL(void)
	{	
	__ASSERT_ALWAYS(iListBoxModel, PANIC(EInvalidStatus));

	// 懳徾僼傽僀儖傪庢摼偡傞
	CSmbMusicAPFileSystemComMusicItem* musicItem = iListBoxModel->GetCurrentItemL();
	if (NULL==musicItem)
		{
		//儘僌
		OUTPUT_LOG_ERROR("ERROR::NULL==musicItem");
		return;	
		}
	//嵞惗惂尷庬暿庢摼
	TSmbMusicMWLibLimitation limitation = musicItem->SongLimitationInfoL();
	delete musicItem;

	if(ESmbMusicMWLibLimitSubscription == limitation)
		{
		//僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺応崌
		//嵞惗惂尷忣曬庢摼
		HandleGetLimitInfoL();
		}
	//僒僽僗僋儕僾僔儑儞僐儞僥儞僣埲奜偺応崌偼偦偺傑傑柭摦壒庢摼張棟傊堏峴
	else
		{				
		//弶婜壔
		HandleReset();
		// 柭摦忣曬庢摼梫媮
		HandleGetRingingInfoL();
		}
	}

/**
 * 僆僗僗儊愝掕忣曬乮柭摦忣曬乯庢摼梫媮
 */
void CSmbMusicAPFileMgrFileCmd::HandleGetRingingInfoL(void)
	{
	// 柭摦忣曬傪嶍彍偡傞
	InitializeRingingInfo();

	// 懳徾僼傽僀儖傪庢摼偡傞
	iMusicItem = iListBoxModel->GetCurrentItemL();
	// 柭摦忣曬僋儔僗傪惗惉偡傞
	iRingingInfo = CSmbMusicMWLibRingingInfo::NewL();
	// 柭摦忣曬偺庢摼梫媮偡傞
	TInt result = iController.RequestRingingInfo(*iMusicItem, *iRingingInfo);
	if (result == KErrNone)
		{
		iView.DisableKeyEvent();					// 僉乕僀儀儞僩傪梷惂偡傞
		}
	else
		{
		//儘僌
		OUTPUT_LOG1_ERROR("ERROR::iController.RequestRingingInfo():%d", result);
		// 愝掕晄壜僟僀傾儘僌
		iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
		}
	}

/**
 * 僆僗僗儊愝掕忣曬乮柭摦忣曬乯庢摼墳摎
 *
 * @param[in]		aResult				張棟寢壥
 */
void CSmbMusicAPFileMgrFileCmd::NotifyRequestRingingInfoCompleteL(TInt aResult)
	{
	// RequestRingingInfo()屇傃弌偟偺嵺偵峴偭偨僉乕僀儀儞僩梷惂傪夝彍偡傞
	iView.EnableKeyEvent();

	if (aResult == KErrNone)
		{
		// 柭摦忣曬傪庢摼偱偒偨偺偱丄堷偒懕偒CP巜掕愗傝弌偟忣曬傪撉傒弌偡
		HandleLoadCpToneInfoL();
		}
	else
		{
		//儘僌
		OUTPUT_LOG1_ERROR("ERROR::NotifyRequestRingingInfoCompleteL():%d", aResult);
		// 愝掕晄壜僟僀傾儘僌
		iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
		}
	}

/**
 * CP巜掕愗傝弌偟忣曬庢摼梫媮
 */
void CSmbMusicAPFileMgrFileCmd::HandleLoadCpToneInfoL(void)
	{
	// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌庢摼
	TBool allsetting = iRingingInfo->AllSetting();
	// CP巜掕愗傝弌偟忣曬奿擺悢庢摼
	TInt entrycount = iRingingInfo->EntryCount();
	
	// CP巜掕忣曬奿擺悢=0偺応崌
	// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌晄壜丄CP巜掕忣曬奿擺悢亖侽偺応崌偼愝掕晄壜僟僀傾儘僌傪昞帵偡傞
	if(0==entrycount)
		{
		// 柭摦忣曬傪嶍彍偡傞
		InitializeRingingInfo();
		
		if(EFalse==allsetting)
			{
			// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌晄壜偱偁傟偽愝掕晄壜僟僀傾儘僌傪昞帵偡傞
			iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
			}
		else
			{
			// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌壜偱偁傟偽傑傞偛偲愝掕偟偰廔椆偡傞
			HandleSetOneSongL();
			}
		}
	// CP巜掕忣曬奿擺悢>0偺応崌
	else
		{
		TInt count = 10>entrycount ? entrycount : 10;
		// CP巜掕愗傝弌偟忣曬撉傒弌偟
		// CP巜掕愗傝弌偟忣曬偼嵟戝侾侽屄傑偱丄僀儞僨僢僋僗偼侾僆儕僕儞
		TInt result = iController.RequestLoadCpToneInfo(iRingingInfo, 1, count);
		if (result == KErrNone)
			{
			iView.DisableKeyEvent();					// 僉乕僀儀儞僩傪梷惂偡傞			
			}
		else
			{
			if(EFalse==allsetting)
				{
				//儘僌
				OUTPUT_LOG1_ERROR("ERROR::iController.RequestLoadCpToneInfo():%d,allsetting==EFalse", result);
				// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌晄壜偱偁傟偽愝掕晄壜僟僀傾儘僌傪昞帵偡傞
				iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
				}
			else
				{
				//儘僌
				OUTPUT_LOG1_ERROR("ERROR::iController.RequestLoadCpToneInfo():%d,allsetting==ETrue", result);
				// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌壜偱偁傟偽傑傞偛偲愝掕偟偰廔椆偡傞
				HandleSetOneSongL();
				}
			}
		}
	}

/**
 * CP巜掕愗傝弌偟忣曬撉傒弌偟墳摎
 *
 * @param[in]		aResult				張棟寢壥
 */
void CSmbMusicAPFileMgrFileCmd::NotifyRequestLoadCpToneInfoCompleteL(TInt aResult)
	{
	// RequestLoadCpToneInfo()屇傃弌偟偺嵺偵峴偭偨僉乕僀儀儞僩梷惂傪夝彍偡傞
	iView.EnableKeyEvent();

	// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌庢摼
	TBool allsetting = iRingingInfo->AllSetting();
	
	if (aResult == KErrNone)
		{
		// CP巜掕愗傝弌偟忣曬奿擺悢庢摼
		TInt entrycount = iRingingInfo->EntryCount();
		TInt count = 10>entrycount ? entrycount : 10;
		
		// 傾僀僥儉偺桳岠/柍岠傪愝掕
		TBool cptoneAvailable=EFalse;
		for(TInt index=0;index<count;index++)
			{
			const TSmbMusicMWLibCPRingingInfo* aCPInfo = iRingingInfo->CpToneInfo(index);
			// 拝怣愝掕壜斲僼儔僌傪僠僃僢僋
			if(EFalse!=aCPInfo->iIsPossibleRingingSetup
			// 奐巒帪娫偲廔椆帪娫偺懨摉惈傪僠僃僢僋
			&& aCPInfo->iStartTime<aCPInfo->iEndTime)
				{
				cptoneAvailable = ETrue;
				break;
				}
			}

		// CP巜掕忣曬愝掕晄壜偺応崌
		if(EFalse==cptoneAvailable)
			{
			if(EFalse==allsetting)
				{
				// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌晄壜偱偁傟偽愝掕晄壜僟僀傾儘僌傪昞帵偡傞
				iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
				}
			else
				{
				// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌壜偱偁傟偽傑傞偛偲愝掕偟偰廔椆偡傞
				HandleSetOneSongL();
				}
			}
		// CP巜掕忣曬愝掕壜偺応崌
		else
			{
			// 傑傞偛偲愝掕/僆僗僗儊愝掕慖戰僟僀傾儘僌傪昞帵偡傞
			// 傑傞偛偲愝掕/僆僗僗儊愝掕偑愝掕晄壜側応崌偼愝掕晄壜側崁栚傪敿婸搙偱昞帵偡傞
			iView.ShowSelectionDialogL(R_SELECTION_DIALOG_MP02P010, EFalse==allsetting, EFalse==cptoneAvailable);
			}
		}
	else
		{
		if(EFalse==allsetting)
			{
			// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌晄壜偱偁傟偽愝掕晄壜僟僀傾儘僌傪昞帵偡傞
			iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
			}
		else
			{
			// 1嬋偦偺傑傑偺拝怣愝掕僼儔僌壜偱偁傟偽傑傞偛偲愝掕偟偰廔椆偡傞
			HandleSetOneSongL();
			}
		}
	}

/**
 * 傑傞偛偲愝掕廔椆
 */
void CSmbMusicAPFileMgrFileCmd::HandleSetOneSongL(void)
	{
	__ASSERT_ALWAYS(iListBoxModel, PANIC(EInvalidStatus));

	// 懳徾僼傽僀儖傪庢摼偡傞
	CSmbMusicAPFileSystemComMusicItem* musicItem = iListBoxModel->GetCurrentItemL();
	// 僋儕乕儞傾僢僾僗僞僢僋偺妋曐
	CleanupStack::PushL(musicItem);
	TInt contentsId;
#ifdef __PTX825MUSICAP__
	if (iAppUi.StorageType() == EStorageTypeDataBox)		// DataBox撪僨乕僞偺応崌
		{
		TInt result = musicItem->GetContentsId(contentsId);
		if (result != KErrNone)
			{
			// 儘僌弌椡
			OUTPUT_LOG1_ERROR("ERROR::musicItem->GetContentsId():%d", result);
			// 儕乕僽張棟
			User::Leave(result);
			return;
			}
		}
	else													// SD偺応崌
		{
		contentsId = 0;										// 柧帵揑偵0傪戙擖
		}
	// 僋儕乕儞傾僢僾僗僞僢僋偺奐曻
	CleanupStack::PopAndDestroy(musicItem);
#else
	TInt result = musicItem->GetContentsId(contentsId);
	if (result != KErrNone)
		{
		// 儘僌弌椡
		OUTPUT_LOG1_ERROR("ERROR::musicItem->GetContentsId():%d", result);
		// 儕乕僽張棟
		User::Leave(result);
		return;
		}

⌨️ 快捷键说明

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