📄 smbmusicapfilemgrpartitioncmd.cpp
字号:
return ESmbMusicAPFileMgrErr;
}
// 嬋偺僼傽僀儖僷僗偼SetMusicItem偺偲偒偵愝掕嵪傒偺偼偢
// 奐巒帪娫傪愝掕偡傞
iExtractStartTime = aCPInfo->iStartTime;
// 奐巒帪娫偑99:59埲忋偺応崌丄99:59偵挷惍
if(iExtractStartTime > KSmbMusicAPFileMgrDispMaxSec)
{
iExtractStartTime = KSmbMusicAPFileMgrDispMaxSec;
}
// 廔椆帪娫傪愝掕偡傞
iExtractEndTime = aCPInfo->iEndTime;
// 廔椆帪娫偑99:59埲忋偺応崌丄99:59偵挷惍
if(iExtractEndTime > KSmbMusicAPFileMgrDispMaxSec)
{
iExtractEndTime = KSmbMusicAPFileMgrDispMaxSec;
}
// 儕僜乕僗娗棟僋儔僀傾儞僩傪惗惉偡傞
if(NULL==iRscMgrRscClient)
{
iRscMgrRscClient = CSmbRscMgrRscClient::NewL(this, this);
}
TInt filesize = GetFileSizeL(iExtractFilePath);
// 僼傽僀儖僒僀僘偑5MB埲忋偺応崌
if(filesize > KSmbMusicAPFileMgrLimitSize)
{
return ESmbMusicAPFileMgrErr;
}
// 僼傽僀儖僒僀僘偺暘+屌掕抣偩偗儊儌儕巊梡検傪僙僢僩(Byte仺KByte傊)
SetExtractWorkSize((filesize/KSmbMusicAPFileMgrKilo) + KSmbAfMemValTrimmingMusicFileFromMusicFileSelect);
// 儊儌儕巊梡尃傪庢摼偡傞
if(EFalse == CAfEnv::Static()->LauncherSession().ReserveMemory(GetExtractWorkSize()))
{
return ESmbMusicAPFileMgrNoMemoryErr;
}
// 儕僜乕僗巊梡忬懺傪僠僃僢僋偡傞
if (ESmbMusicAPFileMgrRscUseNone!=iRscUseState)
{
//儊儌儕巊梡尃偺奐曻.
CAfEnv::Static()->LauncherSession().ReserveMemory(-1 * GetExtractWorkSize());
return ESmbMusicAPFileMgrResInUseErr;
}
// 愗傝弌偟張棟拞忬懺偵偡傞
iRscUseState = ESmbMusicAPFileMgrRscExtractSong;
// 俵俵僒乕僶儕僜乕僗梫媮偡傞乮旕摨婜乯
RequestAllocMMServerResourceL(EFalse);
return ESmbMusicAPFileMgrNoErr;
}*/
//DEL-END PTX824
//DEL-START PTX824
/**
* MM僒乕僶儕僜乕僗梫媮
*/
/*TInt CSmbMusicAPFileMgrPartitionCmd::RequestAllocMMServerResourceL(TBool aSyncProcess)
{
TInt errCode = ESmbMusicAPFileMgrNoErr;
if (ESmbMusicAPFileMgrRscExtractSong==iRscUseState)
{
//妉摼儕僜乕僗儕僗僩惗惉
CArrayFixFlat<TSmbRscMgrRscPriority>* rscPriorityList = new (ELeave) CArrayFixFlat<TSmbRscMgrRscPriority>(KSmbRscMgrAppRscListMax);
CleanupStack::PushL(rscPriorityList);
TSmbRscMgrRscPriority rscPriority;
rscPriority.iRscId = ESmbRscMgrRscMMServer; // MM僒乕僶
rscPriority.iPriority = KSmbRscMgrRscPriorityValueNormalHigh;
rscPriorityList->AppendL(rscPriority);
rscPriority.iRscId = ESmbRscMgrRscVideoPlane2; // VideoPlane2
rscPriority.iPriority = KSmbRscMgrRscPriorityValueNormalHigh;
rscPriorityList->AppendL(rscPriority);
rscPriority.iRscId = ESmbRscMgrRscDsp; // DSP
rscPriority.iPriority = KSmbRscMgrRscPriorityValueNormal;
rscPriorityList->AppendL(rscPriority);
if (NULL == iRscResultList)
{
iRscResultList = new (ELeave) CArrayFixFlat<TSmbRscMgrRscAllocId>(KSmbRscMgrAppRscListMax);
}
//儕僜乕僗妉摼梫媮
if (EFalse == aSyncProcess) // 旕摨婜
{
iRscMgrRscClient->AllocationResourceReqL(rscPriorityList, iRscResultList);
}
else // 摨婜
{
TSmbRscMgrRscResult rscResult;
TSmbRscMgrRes result = iRscMgrRscClient->AllocationResourceReqSyncL(rscPriorityList, iRscResultList, rscResult);
if (ESmbRscMgrResultOK != result || ESmbRscMgrRscResultOK != rscResult)
{
errCode = ESmbMusicAPFileMgrResErr;
}
}
CleanupStack::PopAndDestroy(); //rscPriorityList
}
return errCode;
}*/
//DEL-END PTX824
//DEL-START PTX824
//
// MSmbRscMgrRscCallback
//
/**
* 儕僜乕僗棙梡尃妉摼墳摎傪捠抦
*
* @param[in] aResult 儕僜乕僗妉摼梫媮偺敾掕寢壥
*/
/*void CSmbMusicAPFileMgrPartitionCmd::AllocationResourceResL(TSmbRscMgrRscResult aResult)
{
switch(aResult)
{
case ESmbRscMgrRscResultOK: //儕僜乕僗棙梡尃妉摼嫋壜丄儕僜乕僗忳搉OK丄儕僜乕僗嫞崌側偟
switch (iRscUseState)
{
case ESmbMusicAPFileMgrRscExtractSong: //愗傝弌偟梫媮
iRscUseState = ESmbMusicAPFileMgrRscCanUse;
// 愗傝弌偟張棟傪奐巒偡傞
ProcessExtractSongL();
// non break
return;
// break;
default:
break;
}
break;
case ESmbRscMgrRscResultNG: //儕僜乕僗棙梡尃妉摼嫅斲丄儕僜乕僗忳搉NG丄儕僜乕僗嫞崌偁傝
iRscUseState = ESmbMusicAPFileMgrRscUseNone;
// 儕僜乕僗妉摼幐攕傪UI偵捠抦偡傞
iView.HandleExtractEventL(ESmbMusicAPFileMgrResErr, NULL);
break;
case ESmbRscMgrRscResultCanceled: //僉儍儞僙儖張棟惉岟
break;
case ESmbRscMgrRscResultAbort: //張棟偺拞抐
break;
default:
break;
}
// 婛偵儊儌儕巊梡尃傪庢摼偟偰偄傞偺偱丄奐曻偡傞昁梫桳傝
//儊儌儕巊梡尃偺奐曻
CAfEnv::Static()->LauncherSession().ReserveMemory(-1 * GetExtractWorkSize());
}*/
//DEL-END PTX824
//DEL-START PTX824
/**
* 儕僜乕僗棙梡尃忳搉墳摎傪捠抦
*
* @param[in] aResult 儕僜乕僗忳搉梫媮偺敾掕寢壥
*/
/*void CSmbMusicAPFileMgrPartitionCmd::ReallocationResourceResL(TSmbRscMgrRscResult aResult)
{
// 摿偵壗傕張棟偟側偄
switch(aResult)
{
case ESmbRscMgrRscResultOK: //儕僜乕僗棙梡尃妉摼嫋壜丄儕僜乕僗忳搉OK丄儕僜乕僗嫞崌側偟
break;
case ESmbRscMgrRscResultNG: //儕僜乕僗棙梡尃妉摼嫅斲丄儕僜乕僗忳搉NG丄儕僜乕僗嫞崌偁傝
break;
case ESmbRscMgrRscResultCanceled: //僉儍儞僙儖張棟惉岟
break;
case ESmbRscMgrRscResultAbort: //張棟偺拞抐
break;
}
}*/
//DEL-END PTX824
//DEL-START PTX824
/**
* 儕僜乕僗嫞崌妋擣墳摎傪捠抦
*
* @param[in] aResult 儕僜乕僗嫞崌妋擣梫媮偺敾掕寢壥
*/
/*void CSmbMusicAPFileMgrPartitionCmd::CheckResourceCompetitionResL(TSmbRscMgrRscResult aResult)
{
// 摿偵壗傕張棟偟側偄
switch(aResult)
{
case ESmbRscMgrRscResultOK: //儕僜乕僗棙梡尃妉摼嫋壜丄儕僜乕僗忳搉OK丄儕僜乕僗嫞崌側偟
break;
case ESmbRscMgrRscResultNG: //儕僜乕僗棙梡尃妉摼嫅斲丄儕僜乕僗忳搉NG丄儕僜乕僗嫞崌偁傝
break;
case ESmbRscMgrRscResultCanceled: //僉儍儞僙儖張棟惉岟
break;
case ESmbRscMgrRscResultAbort: //張棟偺拞抐
break;
}
}*/
//DEL-END PTX824
//DEL-START PTX824
//
// MSmbRscMgrRscWatcher
//
/**
* 儕僜乕僗奐曻梫媮傪捠抦
*
* @param[in] aList 奐曻傪梫媮偡傞儕僜乕僗偺儕僗僩
*/
//void CSmbMusicAPFileMgrPartitionCmd::ReleaseResourceReqL(CArrayFixFlat<TSmbRscMgrRsc>* /*aList*/)
/* {
//愗傝弌偟拞偱偁傟偽張棟拞巭偡傞
if(ESmbMusicAPFileMgrRscInUse == iRscUseState)
{
// 撉傒崬傒拞僟僀傾儘僌僋儘乕僘
iView.CloseAndDeleteDialog();
// 愗傝弌偟張棟傪拞巭
ProcessExtractStopL();
// 張棟拞抐傪UI偵捠抦偡傞
iView.HandleExtractEventL(ESmbMusicAPFileMgrResInUseErr, NULL);
}
}*/
//DEL-END PTX824
//DEL-START PTX824
/**
* 愗傝弌偟張棟
*/
/*void CSmbMusicAPFileMgrPartitionCmd::ProcessExtractSongL(void)
{
// CP巜掕愗傝弌偟忣曬奿擺悢庢摼
TInt entrycount = iRingingInfo->EntryCount();
// 嬫娫忣曬偑暋悢娷傑傟傞応崌偼丄嵟戝10審傑偱昞帵傪峴偆
TInt count = ECpToneInfoEntryMax>entrycount ? entrycount : ECpToneInfoEntryMax;
// 傾僀僥儉傪柍岠偵愝掕偟丄儕僗僩儃僢僋僗偺昞帵挷惍
for(TInt index=0;index<count;index++)
{
iView.SetItemDisableL( index, ETrue);
}
iView.AdjustListBox();
//僟僀傾儘僌昞帵
iView.ShowProgressDialogL(R_FILESELECT_PROCESSING);
// 僼傽僀儖僒乕僶僙僢僔儑儞傪庢摼偡傞
RFs& fs = CEikonEnv::Static()->FsSession();
// 僨傿儗僋僩儕傪嶌惉偟偰傒傞
TInt result = fs.MkDirAll(KSmbMusicAPFileMgrTempFileDir);
if ((KErrNone != result) && (KErrAlreadyExists != result))
{
// 撉傒崬傒拞僟僀傾儘僌僋儘乕僘
iView.CloseAndDeleteDialog();
// 張棟拞抐傪UI偵捠抦偡傞
iView.HandleExtractEventL(ESmbMusicAPFileMgrErr, NULL);
User::Leave(result);
}
else if (KErrAlreadyExists == result)
{
result = fs.Delete(KSmbMusicAPFileMgrTempFilePath);
if((KErrNone != result) && (KErrNotFound != result))
{
// 撉傒崬傒拞僟僀傾儘僌僋儘乕僘
iView.CloseAndDeleteDialog();
// 張棟拞抐傪UI偵捠抦偡傞
iView.HandleExtractEventL(ESmbMusicAPFileMgrErr, NULL);
User::Leave(result);
}
}
// 俵俵僒乕僶偵愙懕偡傞
TRAPD(err, iMovie.ConnectL(*this));
if(KErrNone != err)
{
// 撉傒崬傒拞僟僀傾儘僌僋儘乕僘
iView.CloseAndDeleteDialog();
// 張棟拞抐傪UI偵捠抦偡傞
iView.HandleExtractEventL(ESmbMusicAPFileMgrErr, NULL);
User::Leave(err);
}
iRscUseState = ESmbMusicAPFileMgrRscInUse;
//丂俵俵僒乕僶偱愗傝弌偟張棟傪幚峴偡傞
//2006.07.19 嶳壀 Cutter偐傜MMFCutter偵曄峏
//MMFCutter
//儕僞乕儞抣丗
//丂惓忢乮KMovieComplete乯
//丂晄惓側梫媮(KMovieInvalidRequest)
//丂堷悢堎忢乮KMovieInvalidArgument乯
//丂偦偺懠偺堎忢乮KMovieUnknownError乯
//
//旕摨婜捠抦丗
//丂MFF僼傽僀儖愗傝弌偟姰椆捠抦乮EMFFCutterNotify乯仼僿僢僟偵偼側偄掕媊抣丠
//丂僄儔乕捠抦乮EErrorNotify乯
TInt errCode = iMovie.MFFCutter(*iExtractFilePath, // 曄姺慜僼傽僀儖僷僗
KSmbMusicAPFileMgrTempFilePath, // 曄姺屻僼傽僀儖僷僗
iExtractStartTime, // 奐巒帪娫
iExtractEndTime, // 廔椆帪娫 巜掕偟側偄応崌偼0偱椙偄丠
KSmbMusicAPFileMgrExtractMaxSize, // 忋尷僒僀僘
EMovieIFrame); // IFrame or PFrame 偲傝偁偊偢IFrame
if (errCode != KMovieComplete) // 幐攕
{
// 撉傒崬傒拞僟僀傾儘僌僋儘乕僘
iView.CloseAndDeleteDialog();
// 俵俵僒乕僶傪掆巭偟偰儕僜乕僗傪奐曻偡傞
ProcessExtractStopL();
// 張棟拞抐傪UI偵捠抦偡傞
iView.HandleExtractEventL(ESmbMusicAPFileMgrErr, NULL);
}
}*/
//DEL-END PTX824
//DEL-START PTX824
/**
* 愗傝弌偟僉儍儞僙儖
*/
/*void CSmbMusicAPFileMgrPartitionCmd::ProcessExtractStopL(void)
{
// 儕僜乕僗巊梡忬懺傪僠僃僢僋偡傞
if (ESmbMusicAPFileMgrRscInUse == iRscUseState)
{
// 俵俵僒乕僶傪掆巭偡傞
// iMovie.Stop(EMovieStopNormalSync);
// 俵俵僒乕僶傪僋儘乕僘偡傞
iMovie.Close();
}
// 儕僜乕僗奐曻偡傞
ReleaseMMServerResourceL();
}*/
//DEL-END PTX824
//DEL-START PTX824
//
// MMovieObserver
//
/**
* @brief UI捠抦僀儞僞僼僃乕僗僋儔僗乮奜晹嶲徠梡乯
*
* 僒僽僔僗僥儉柤丗SHMovie<BR>
* UI偲偺捠抦僀儞僞僼僃乕僗偱偁傝丄UI偐傜偺梫媮偵懳偡傞姰椆傪捠抦偡傞僋儔僗
*/
/*void CSmbMusicAPFileMgrPartitionCmd::MovieEventL(const TMovieEventInformation& aInfo)
{
// 撉傒崬傒拞僟僀傾儘僌僋儘乕僘
iView.CloseAndDeleteDialog();
switch(aInfo.iEvent)
{
case TMovieEventInformation::ECutterNotify: ///< 摦夋僇僢僞乕廔椆僀儀儞僩
// 2006.07.19 嶳壀
// 奐巒帪娫偲廔椆帪娫傪僐儞僥儞僣偺廔抂帪娫偵愝掕偟偨応崌丄巜掕偝傟偨帪娫偐傜偼僉乕僼儗乕儉偑庢摼偱偒偢
// 曇廤僼傽僀儖傕惗惉偝傟偢傾僾儕偵懳偟偰嵞惗廔椆捠抦偲偡傞丅
case TMovieEventInformation::EPlayEndNotify: ///< 嵞惗廔椆僀儀儞僩
//儊儌儕巊梡尃傪奐曻偡傞
//CAfEnv::Static()->LauncherSession().ReserveMemory(-KSmbAfMemValResizeImotionFromMail);
// 儕僜乕僗傪偡傋偰奐曻偟偰張棟姰椆偡傞
// TRAPD(err, ReleaseMMServerResourceL());
TRAPD(err, ProcessExtractStopL());
if(KErrNone != err)
{
User::Leave(err);
}
// 嶌惉偝傟偨僥儞億儔儕僼傽僀儖偑婯掕僒僀僘傛傝戝偒偄応崌丄廔椆
if( KSmbMusicAPFileMgrExtractMaxFileSize < GetFileSizeL(&KSmbMusicAPFileMgrTempFilePath))
{
TRAPD(err1, iView.HandleExtractEventL(ESmbMusicAPFileMgrErr, &KSmbMusicAPFileMgrTempFilePath));
break;
}
//愗傝弌偟姰椆偟偨偙偲傪UI偵捠抦偡傞
TRAPD(err2, iView.HandleExtractEventL(ESmbMusicAPFileMgrNoErr, &KSmbMusicAPFileMgrTempFilePath));
if(KErrNone != err2)
{
User::Leave(err2);
}
break;
case TMovieEventInformation::EErrorNotify: ///< 僄儔乕僀儀儞僩
case TMovieEventInformation::EAbortNotify:
//儊儌儕巊梡尃傪奐曻偡傞
//CAfEnv::Static()->LauncherSession().ReserveMemory(-1 * GetExtractWorkSize());
// 儕僜乕僗傪偡傋偰奐曻偟偰張棟姰椆偡傞
// TRAPD(err3, ReleaseMMServerResourceL());
TRAPD(err3, ProcessExtractStopL());
if(KErrNone != err3)
{
User::Leave(err3);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -