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

📄 smbmusicapfilemgractioncontroller.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:

	delete iImageFunc;
	iImageFunc = CSmbMusicAPLibImageFunc::NewL();
	
	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestBitmapData;

	// ImageFunc偵Bitmap僨乕僞庢摼傪埶棅偡傞
	TInt result = iImageFunc->ConvertImage(aFileName, aSize, aBitmap, iStatus);
	if (result == KErrNone)
		{
		SetActive();
		}
	else
		{
		Reset();		// 旕摨婜張棟奐巒慜偵栠偡
		}

	return result;
#else
	return KErrNotSupported;
#endif
	}
//TRK6799 8/25 end
//ADD-START PTX824 Lib懳墳偑昁梫
/**
 * @param[in]		aFileName				夋憸偺曐懚僼傽僀儖柤
 * @param[in]		aSize					夋憸偺嵟戝昤夋僒僀僘
 * @param[in,out]	aBitmap					夋憸偺Bitmap僨乕僞
 * @return			CSmbMusicAPLibImageFunc::ConvertImage()偺栠傝抣
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌
 * @note			杮梫媮偺姰椆偼 MObserver::NotifyRequestBitmapDataCompleteL() 偵偰捠抦偝傟傞丏
 */
TInt CSmbMusicAPFileMgrActionController::RequestBitmapDataL(const TDesC& aFileName, RArray<TSmbMusicAPLibImageSizeInfo>& aImageSizeInfo,
                                                           RPointerArray<TSmbMusicAPLibImageBitmap>& aBitmap)
	{
//MOD-START PTX824
//	__ASSERT_ALWAYS(iActionStatus == EIdle, PANIC(EActionControllerBusy));
	if(EIdle != iActionStatus)
		{
		return KErrServerBusy;
		}
//MOD-END PTX824

	delete iImageFunc;
	iImageFunc = CSmbMusicAPLibImageFunc::NewL();
	
	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestBitmapData;

	// ImageFunc偵Bitmap僨乕僞庢摼傪埶棅偡傞
	TInt result = iImageFunc->ConvertImage(aFileName, aImageSizeInfo, aBitmap, iStatus);
	if (result == KErrNone)
		{
		SetActive();
		}
	else
		{
		Reset();		// 旕摨婜張棟奐巒慜偵栠偡
		}

	return result;
	}
//ADD-START PTX824

/**
 * @param[in]		aWhereabouts			奿擺応強
 * @param[in,out]	aSongCountInfo			搊榐審悢忣曬
 * @return			CSmbMusicAPFileSystemComEngine::SongCountInfoL()偺栠傝抣
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌
 * @note			杮梫媮偺姰椆偼 MObserver::NotifyRequestSongCountInfoCompleteL() 偵偰捠抦偝傟傞丏
 */
TInt CSmbMusicAPFileMgrActionController::RequestSongCountInfoL(TSmbMusicMWLibWhereabouts aWhereabouts,
                                                               TSmbMusicMWLibSongCountInfo& aSongCountInfo)
	{
//MOD-START PTX824
//	__ASSERT_ALWAYS(iActionStatus == EIdle, PANIC(EActionControllerBusy));
	if(EIdle != iActionStatus)
		{
		return KErrServerBusy;
		}
//MOD-END PTX824
	
	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestSongCountInfo;

	// 僄儞僕儞偵搊榐審悢庢摼傪埶棅偡傞
	TInt result = iEngine->SongCountInfoL(aWhereabouts, aSongCountInfo, iStatus);
	if (result == KErrNone)
		{
		SetActive();
		}
	else
		{
		Reset();		// 旕摨婜張棟奐巒慜偵栠偡
		}

	return result;
	}

//MOD-START PTX824
/**
 * @param[in]		aMusicItem				庢摼懳徾偺僼傽僀儖
 * @param[in,out]	aDetailSongInfo			徻嵶忣曬
 * @return			CSmbMusicAPFileSystemComMusicItem::GetDetailSongInfo()偺栠傝抣
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌
 * @note			杮梫媮偺姰椆偼 MObserver::NotifyRequestDetailSongInfoCompleteL() 偵偰捠抦偝傟傞丏
 */
TInt CSmbMusicAPFileMgrActionController::RequestDetailSongInfo(CSmbMusicAPFileSystemComMusicItem* /*aMusicItem*/,
                                                                CSmbMusicMWLibDetailSongInfo& /*aDetailSongInfo*/)
	{
//枹僒億乕僩API
#if 0
	__ASSERT_ALWAYS(iActionStatus == EIdle, PANIC(EActionControllerBusy));
	
	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestDetailSongInfo;

	// 張棟懳徾偺僼傽僀儖傪搊榐偡傞(強桳尃偼曐帩)
	iTargetItem = aMusicItem;

	// 徻嵶忣曬庢摼傪埶棅偡傞
	TInt result = aMusicItem->GetDetailSongInfo(aDetailSongInfo, iStatus);
	if (result == KErrNone)
		{
		SetActive();
		}
	else
		{
		Reset();		// 旕摨婜張棟奐巒慜偵栠偡
		}

	return result;
#else
	return KErrNotSupported;
#endif
	}
//MOD-END PTX824

/**
 * @param[in]		aMusicItem				庢摼懳徾偺僼傽僀儖
 * @param[in,out]	aLimitConditionInfo		嵞惗惂尷忣曬
 * @return			CSmbMusicAPFileSystemComMusicItem::GetLimitCondition()偺栠傝抣
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌
 * @note			杮梫媮偺姰椆偼 MObserver::NotifyRequestLimitConditionInfoCompleteL() 偵偰捠抦偝傟傞丏
 */
TInt CSmbMusicAPFileMgrActionController::RequestLimitConditionInfo(CSmbMusicAPFileSystemComMusicItem* aMusicItem,
	                                                               TSmbMusicMWLibLimitConditionInfo& aLimitConditionInfo)
	{
	__ASSERT_ALWAYS(iActionStatus == EIdle, PANIC(EActionControllerBusy));

	if (aMusicItem == NULL)
		{
		return KErrArgument;
		}
	
	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestLimitConditionInfo;

	// 張棟懳徾偺僼傽僀儖傪搊榐偡傞
	iTargetItem = aMusicItem;

	// 嵞惗惂尷忣曬庢摼傪埶棅偡傞
	TInt result = aMusicItem->GetLimitCondition(aLimitConditionInfo, iStatus);
	if (result == KErrNone)
		{
		SetActive();
		}
	else
		{
		Reset();		// 旕摨婜張棟奐巒慜偵栠偡
		}

	return result;
	}
	
//ADD-START PTX824
/**
 * @param[in]		aMusicItem				庢摼懳徾偺僼傽僀儖
 * @param[in,out]	aSongLimit				嵞惗惂尷忣曬
 * @return			CSmbMusicAPFileSystemComMusicItem::GetLimitInfo()偺栠傝抣
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌
 * @note			杮梫媮偺姰椆偼 MObserver::NotifyRequestLimitInfoCompleteL() 偵偰捠抦偝傟傞丏
 */
TInt CSmbMusicAPFileMgrActionController::RequestLimitInfomation(CSmbMusicAPFileSystemComMusicItem* aMusicItem,
	                                                               TSmbMusicMWLibSongLimit& aSongLimit)
	{
	OUTPUT_FUNC;
//MOD-START PTX824
//	__ASSERT_ALWAYS(iActionStatus == EIdle, PANIC(EActionControllerBusy));
	if(EIdle != iActionStatus)
		{
		delete aMusicItem;
		aMusicItem = NULL;
		return KErrServerBusy;
		}
//MOD-END PTX824

	if (aMusicItem == NULL)
		{
		return KErrArgument;
		}
	
	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestLimitInfo;

	// 張棟懳徾偺僼傽僀儖傪搊榐偡傞
	iTargetItem = aMusicItem;

	// 嵞惗惂尷忣曬庢摼傪埶棅偡傞
	TInt result = aMusicItem->GetLimitInfo(aSongLimit, iStatus);
	if (result == KErrNone)
		{
		SetActive();
		}
	else
		{
		Reset();		// 旕摨婜張棟奐巒慜偵栠偡
		}

	return result;
	}
	
/**
 * @param[in]		aFormatType				僼僅乕儅僢僩庬暿
 * @return			StartActionL()偺栠傝抣
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌
 * @note			杮梫媮偺姰椆偼 MObserver::NotifyRequestFormatMusicDataCompleteL() 偵偰捠抦偝傟傞丏
 */
TInt CSmbMusicAPFileMgrActionController::RequestFormatMusicDataL(TSmbMusicAPFileSystemComFormatType aFormatType)
	{
	__ASSERT_ALWAYS(iActionStatus == EIdle, PANIC(EInvalidStatus));

	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestFormatMusicData;

	// 傾僋僔儑儞偺姰椆傪NotifyRequestDeleteOneFileCompleteL()偱捠抦偡傞
	iNotifyActionCompleteL = &MObserver::NotifyRequestFormatMusicDataCompleteL;
	
	//張棟審悢傪1審偲偡傞乮恑捇僟僀傾儘僌偱巊梡乯
	iTotalItemCount = 1;
	iProcessedItemCount = 0;
	iProcessFailedItemCount = 0;
//CQ-TRK15750 ADD-START PTX824
	iSettingFaileItemCount = 0;
//CQ-TRK15750 ADD-END PTX824
	
	// 僼僅乕儅僢僩傪埶棅偡傞
	TInt result = iEngine->FormatMusicData(aFormatType, iStatus);
	if (result == KErrNone)
		{
		SetActive();

		iObserver->RequestProgressDialogL(R_PROGRESS_DIALOG_MP04P001_FORMAT, ETrue);
		UpdateProgress();
		iObserver->StartUpdatingProgress(50000000, KSmbMusicAPFileMgrBpsFormatMusicData);
		}
	else						// 摨婜張棟偵幐攕偟偨応崌
		{
		iObserver->RequestWarningDialogL(R_WARNING_DIALOG_MP04P015);
		}

	return result;
	}
//ADD-END PTX824
#ifdef __PTX825MUSICAP__								//  825_katsu 伀
/**
 * @param[in]		aMusicItem				庢摼懳徾偺僼傽僀儖
 * @param[in,out]	aRingingInfo			柭摦忣曬
 * @return			CSmbMusicAPFileSystemComMusicItem::GetImageInfo()偺栠傝抣
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌
 */
TInt CSmbMusicAPFileMgrActionController::RequestRingingInfo(CSmbMusicAPFileSystemComMusicItem& aMusicItem,
                                                          CSmbMusicMWLibRingingInfo& aRingingInfo)
	{
	__ASSERT_ALWAYS(iActionStatus == EIdle, PANIC(EActionControllerBusy));

	// 僐儞僩儘乕儔張棟忬懺傪愝掕偡傞
	iActionStatus = ERequestRingingInfo;
	
	// 張棟懳徾偺僼傽僀儖傪搊榐偡傞(強桳尃偼曐帩偟側偄)
	iMusicItemOwnedExternally = &aMusicItem;

	// RunL偺幚懺傪RunRequestImageInfoL偵偡傞
	iRunImplL = &RunRequestRingingInfoL;

	// 柭摦忣曬庢摼傪埶棅偡傞	
	TInt result = aMusicItem.GetRingingInfo(aRingingInfo, iStatus);
	if (result == KErrNone)
		{
		SetActive();
		}
	else
		{
		//儘僌
		OUTPUT_LOG1_ERROR("ERROR::aMusicItem.GetRingingInfo():%d", result);
		Reset();		// 旕摨婜張棟奐巒慜偵栠偡
		}

	return result;
	}





/**
 * @param[in]		aTargetFile			庢摼懳徾偺僼傽僀儖
 * @param[in,out]	aLimitConditionInfo	嵞惗惂尷忬懺
 * @retval			KErrNone			惓忢廔椆
 * @retval			KErrNotReady		嬻偺傾僀僥儉
 * @panic			EActionControllerBusy	CSmbMusicAPFileMgrActionController::iActionStatus偑 CSmbMusicAPFileMgrActionController::EIdle埲奜偺応崌

⌨️ 快捷键说明

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