smbmusicapfilemgrfilecmd.cpp
来自「索爱手机代码」· C++ 代码 · 共 1,610 行 · 第 1/5 页
CPP
1,610 行
// 僋儕乕儞傾僢僾僗僞僢僋偺奐曻
CleanupStack::PopAndDestroy(musicItem);
#endif // __PTX825MUSICAP__
//弶婜壔
// InitializeRingingInfo();
// HandleReset();
// 乽傑傞偛偲愝掕乿偺僐儞僥儞僣忣曬傪曐帩偡傞
CSmbMusicAPFileMgrDocument* doc = iAppUi.Document();
ASSERT(doc);
// 愝掕僷儔儊乕僞
TSmbMusicAPFileMgrSettingParam& setting = doc->SettingParam();
setting.iContentsID = contentsId;
setting.iContentsKind = ESmbDbxMusicFile;
setting.iIntervalSettingFlag = EFalse; // 傑傞偛偲愝掕
setting.iMusicIntervalStartTime = 0;
setting.iMusicIntervalEndTime = 0;
// 拝怣壒愝掕 慖戰僼僅儖僟乮杮懱/SD乯妋擣
if (iAppUi.StorageType() == EStorageTypeDataBox) // DataBox撪僨乕僞偺応崌
{//杮懱懁愝掕
HandleCheckFolders();
// // 愝掕AP傊搊榐
// SmbMusicAPFileMgrUtility::HandleSetSoundL(CAfEnv::Static()->PropAgent(), setting);
// // 搊榐姰椆昞帵
// SettingCompleteAlertL();
}
else
{//SD懁愝掕
// 杮懱堏峴妋擣傊
// 堏摦懳徾僼傽僀儖傪庢摼偟丆傾僋僔儑儞僐儞僩儘乕儔偵張棟懳徾傾僀僥儉偲偟偰僙僢僩偡傞
CSmbMusicAPFileSystemComMusicItem* musicItem = iListBoxModel->GetCurrentItemL();
iController.SetTargetItem(musicItem, iListBoxModel);
//UPDETA Start PTX825 CQ-TRK D_82400015433
// iView.ShowSelectionDialogL(R_SELECTION_DIALOG_MP02P029);
iView.ShowSelectionDialogL(R_SELECTION_DIALOG_MP02P031);
//UPDETA End PTX825 CQ-TRK D_82400015433
}
}
/**
* 僆僗僗儊愝掕堦棗夋柺偺昞帵
*/
void CSmbMusicAPFileMgrFileCmd::HandleShowPartitionViewL(void)
{
__ASSERT_ALWAYS(iListBoxModel, PANIC(EInvalidStatus));
// 婲摦僷儔儊乕僞(僇僗僞儉儊僢僙乕僕)傪嶌惉偡傞
TSmbMusicAPFileMgrLocalViewStartParam param;
param.iViewType = ETypePartitionView;
param.iMusicItem = iListBoxModel->GetCurrentItemL(); // 懳徾僼傽僀儖傪庢摼偡傞
param.iRingingInfo = iRingingInfo;
if (iAppUi.StorageType() == EStorageTypeSD) // SD撪僨乕僞偺応崌
{
CSmbMusicAPFileSystemComMusicItem* musicItem = iListBoxModel->GetCurrentItemL();
iController.SetTargetItem(musicItem, iListBoxModel);
param.iViewType = ETypePartitionViewSD;
}
//強桳尃傪忳搉
iRingingInfo = NULL;
TPckgC<TSmbMusicAPFileMgrLocalViewStartParam> paramBuf(param);
// Item偑桳岠偵側偭偨帪揰偱昤夋偡傞堊丄
// 嵞惗丄徻嵶忣曬傪徚偟偰偍偔
iView.KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
iView.KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRightBottom, EFalse);
// 儘乕僇儖價儏乕愗傝懼偊傪峴偆
TInt result = ChangeLocalView(TUid::Uid(ESmbMusicAPFileMgrPartitionView), paramBuf);
if (result != KErrNone)
{
//儘僌
OUTPUT_LOG1_ERROR("ERROR::ChangeLocalView():%d", result);
// 儕乕僽張棟
User::Leave(result);
}
}
/**
* 嵞惗惂尷忣曬庢摼梫媮
*/
void CSmbMusicAPFileMgrFileCmd::HandleGetLimitInfoL(void)
{
OUTPUT_FUNC;
//弶婜壔
HandleReset();
// 懳徾僼傽僀儖傪庢摼偡傞
iMusicItem = iListBoxModel->GetCurrentItemL();
if(NULL == iMusicItem)
{
//儘僌
OUTPUT_LOG_MUST("ERROR::iController.RequestRingingInfo():%d");
// 愝掕晄壜僟僀傾儘僌
iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
return;
}
// 嵞惗惂尷忣曬偺庢摼梫媮偡傞
TInt result = iController.RequestLimitInfomation(iMusicItem, iSongLimit);
if (result == KErrNone)
{
iView.DisableKeyEvent(); // 僉乕僀儀儞僩傪梷惂偡傞
}
else
{
//儘僌
OUTPUT_LOG1_ERROR("ERROR::iController.RequestLimitInfomation():%d", result);
// 愝掕晄壜僟僀傾儘僌
iView.ShowWarningDialogL(R_WARNING_DIALOG_MP02P013);
}
}
/**
* 慖戰拞巭墴壓張棟
*/
void CSmbMusicAPFileMgrFileCmd::HandleCancleSelectionsL(void)
{
iAppUi.ReturnSelectSuspensionClearAppL();
}
void CSmbMusicAPFileMgrFileCmd::HandleReset(void)
{
// iMusicItem偼NULL偺働乕僗偑偁傞
if(NULL!=iMusicItem)
{
delete iMusicItem;
iMusicItem = NULL;
}
}
/**
* 拝怣壒愝掕 亄 姰椆傾儔乕僩梫媮
*/
void CSmbMusicAPFileMgrFileCmd::HandleCheckFolders(void)
{
CSmbMusicAPFileMgrDocument* doc = iAppUi.Document();
ASSERT(doc);
// 愝掕僷儔儊乕僞
TSmbMusicAPFileMgrSettingParam& setting = doc->SettingParam();
//弶婜壔
InitializeRingingInfo();
HandleReset();
if (iAppUi.StorageType() == EStorageTypeDataBox) // DataBox撪僨乕僞偺応崌
{//杮懱懁愝掕
// 愝掕AP傊搊榐
TBool result = SmbMusicAPFileMgrUtility::HandleSetSoundL(CAfEnv::Static()->PropAgent(), setting);
// 搊榐姰椆昞帵
SettingCompleteAlertL(result);
}
// else
// {//SD懁愝掕
// // 杮懱堏峴妋擣傊
// iView.ShowSelectionDialogL(R_SELECTION_DIALOG_MP02P029);
// }
}
/**
* @param 側偟
* @retval丂張棟寢壥
*/
void CSmbMusicAPFileMgrFileCmd::InitializeRingingInfo()
{
// 柭摦忣曬傪嶍彍偡傞
if(NULL!=iRingingInfo)
{
// CP巜掕愗傝弌偟忣曬攋婞
iRingingInfo->UnloadCpToneInfo();
// 柭摦忣曬傪嶍彍偡傞
delete iRingingInfo;
iRingingInfo = NULL;
}
}
#endif // __PTX825MUSICAP__ 825_katsu 仾
/**
* -# 僼儖妝嬋-僼僅儖僟&僼傽僀儖堦棗夋柺(僨乕僞BOX)昞帵拞偺応崌丆MP3懠-僼僅儖僟&僼傽僀儖堦棗夋柺(杮懱奼挘儊儌儕)傪昞帵偡傞
* -# MP3懠-僼僅儖僟&僼傽僀儖堦棗夋柺(杮懱奼挘儊儌儕)昞帵拞偺応崌丆奜晹儊儌儕傪昞帵偡傞丏
*/
void CSmbMusicAPFileMgrFileCmd::HandleChangeMemory(void)
{
switch (iView.ViewType())
{
case ETypeDbxImotionFile: // 僼儖妝嬋-僼僅儖僟&僼傽僀儖堦棗夋柺(僨乕僞BOX)昞帵拞偺応崌
//MOD-START PTX824
// HandleChangeLocalView(ETypeMassMp3File); // 仺 MP3懠-僼僅儖僟&僼傽僀儖堦棗夋柺(杮懱奼挘儊儌儕)偵慗堏
// HandleChangeLocalView(ETypeMassCategory); // 仺 僼僅儖僟慖戰夋柺(杮懱奼挘儊儌儕)偵慗堏
HandleShowExtMemoryView(); // 仺 奜晹儊儌儕傪昞帵偡傞
//MOD-END PTX824
break;
case ETypeMassMp3File: // MP3懠-僼僅儖僟&僼傽僀儖堦棗夋柺(杮懱奼挘儊儌儕)昞帵拞偺応崌
//TRK3829 7/28 start
// HandleChangeLocalViewL(ETypeDbxImotionFile); // 仺 僼儖妝嬋-僼僅儖僟&僼傽僀儖堦棗夋柺(僨乕僞BOX)偵慗堏偡傞
HandleShowExtMemoryView(); // 仺 奜晹儊儌儕傪昞帵偡傞
//TRK3829 7/28 end
break;
default:
__ASSERT_DEBUG(EFalse, PANIC(KErrArgument));
break;
}
}
/**
* @param[in] aStatus 僒僽儊僯儏乕昞帵僐儅儞僪僀儀儞僩忬懺
* @panic EInvalidStatus CSmbMusicAPFileMgrFileCmd::iListBoxModel偑NULL偺応崌
*/
void CSmbMusicAPFileMgrFileCmd::HandleShowSubMenuL(TSubMenuStatus aStatus)
{
__ASSERT_ALWAYS(iListBoxModel, PANIC(EInvalidStatus));
TSmbMusicAPFileSystemComMusicItemType itemType = EMusicItemTypeUnknown;
switch (aStatus)
{
case ERequestFilterList: // == EStart
// 僼僅乕僇僗偝傟偨傾僀僥儉偑弨旛姰椆偝傟傞傑偱僉乕僈僀僟儞僗傪昞帵偝偣側偄丏
if (iListBoxModel->Count() > 0 && !iReadyFocusedItem) // 僉乕僈僀僟儞僗偑弨旛
{
return;
}
// 儕僗僩儃僢僋僗偺昞帵張棟傪堦帪拞抐偡傞丏(僒僽儊僯儏乕昞帵惈擻岦忋偺偨傔)
static_cast<CSmbMusicAPFileMgrFileView&>(iView).SuspendListBox();
/* 傾僀僥儉庬暿傪庢摼偡傞
* 尰嵼奐偄偰偄傞儕僗僩偵傾僀僥儉偁傞応崌丆僼僅乕僇僗偑摉偨偭偰偄傞傾僀僥儉偺庬暿(僼僅儖僟,僼傽僀儖側偳)傪庢摼偡傞
* 尰嵼奐偄偰偄傞儕僗僩偵傾僀僥儉偑側偄応崌丆乽傾僀僥儉側偟乿偲偡傞
*/
itemType = EMusicItemTypeUnknown; // 傾僀僥儉庬暿
if (iListBoxModel->Count() > 0)
{
itemType= iListBoxModel->GetCurrentItemTypeL();
}
iSubMenuResourceId = SubMenuResourceId(itemType);
iImageCount.iJacketCount = 0;
iImageCount.iLyricCount = 0;
iLimitConditionInfo.iLimitCondition = ESmbMusicMWLibLimitAnythingGoes;
if (iSubMenuResourceId == R_SUBMENU_MP03S001 // 僼儖妝嬋僼僅儖僟僒僽儊僯儏乕
|| iSubMenuResourceId == R_SUBMENU_MP03S002 // 僼儖妝嬋僼傽僀儖僒僽儊僯儏乕
|| iSubMenuResourceId == R_SUBMENU_MP03S007) // 嬻儕僗僩(僼儖妝嬋)僒僽儊僯儏乕
{
// 儕僗僩儃僢僋僗儌僨儖偵懳偟儕僗僩庢摼埶棅(旕摨婜)傪峴偆丏
TInt result = iListBoxModel->RequestCurrentFilterListL(EMusicItemTypeFolderItem);
if (result == KErrNone)
{
OUTPUT_LOG1("MSmbMusicAPFileSystemComListBoxModel::RequestCurrentFilterListL(%d)", EMusicItemTypeSongItem);
iView.DisableKeyEvent(); // 僉乕僀儀儞僩傪梷惂偡傞
iRequestingCommand = ECmdShowSubMenu; // 杮價儏乕僐儅儞僪傪乽梫媮拞乿偵愝掕 (NotifyReadyFilterList懳墳偺偨傔)
}
else
{
OUTPUT_LOG2_ERROR("MSmbMusicAPFileSystemComListBoxModel::RequestCurrentFilterListL(%d): %d", EMusicItemTypeSongItem, result);
HandleShowSubMenuL(ERequestImageCount);
}
}
else
{
HandleShowSubMenuL(ERequestImageCount);
}
break;
case ERequestImageCount:
if (iSubMenuResourceId == R_SUBMENU_MP03S002 // 僼儖妝嬋僼傽僀儖僒僽儊僯儏乕
|| iSubMenuResourceId == R_SUBMENU_MP03S004 // 儊儌儕乕僗僥傿僢僋僼傽僀儖僒僽儊僯儏乕
|| iSubMenuResourceId == R_SUBMENU_MP03S005) // SD僇乕僪僼傽僀儖僒僽儊僯儏乕
{
// 夋憸枃悢偺庢摼(旕摨婜)傪埶棅偡傞
CSmbMusicAPFileSystemComMusicItem* musicItem = iListBoxModel->GetCurrentItemL();
//ADD-START PTX824
//嵞惗惂尷柍岠偺応崌偼夋憸枃悢傪庢摼偣偢丆嵞惗惂尷忬懺庢摼張棟傊埲崀
if(IsLimitInvalidationFile(musicItem))
{
delete musicItem;
OUTPUT_LOG("IsLimitInvalidationFile() is ETrue !!");
HandleShowSubMenuL(ERequestLimitCondition);
}
//ADD-END PTX824
TInt result = iController.RequestImageCount(musicItem, iImageCount);
if (result == KErrNone)
{
OUTPUT_LOG("CSmbMusicAPFileMgrActionController::RequestImageCount()");
iView.DisableKeyEvent(); // 僉乕僀儀儞僩傪梷惂偡傞
}
else
{
OUTPUT_LOG1_ERROR("CSmbMusicAPFileMgrActionController::RequestImageCount(): %d", result);
HandleShowSubMenuL(ERequestLimitCondition);
}
}
else
{
HandleShowSubMenuL(ERequestLimitCondition);
}
break;
case ERequestLimitCondition:
if (iSubMenuResourceId == R_SUBMENU_MP03S002 // 僼儖妝嬋僼傽僀儖僒僽儊僯儏乕
|| iSubMenuResourceId == R_SUBMENU_MP03S005) // SD僇乕僪僼傽僀儖僒僽儊僯儏乕
{
// 嵞惗惂尷忣曬偺庢摼(旕摨婜)傪埶棅偡傞
CSmbMusicAPFileSystemComMusicItem* musicItem = iListBoxModel->GetCurrentItemL();
//CQ-TRK12911 DEL-START PTX824
//MOD-START PTX824
// TInt result = iController.RequestLimitConditionInfo(musicItem, iLimitConditionInfo);
// TInt result = iController.RequestLimitInfomation(musicItem, iSongLimit);
//MOD-START PTX824
// if (result == KErrNone)
// {
// OUTPUT_LOG("CSmbMusicAPFileMgrActionController::RequestLimitConditionInfo()");
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?