📄 smbmusicapfilemgrlistcmd.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
/**
* @file SmbMusicAPFileMgrListCmd.cpp
* @brief 儈儏乕僕僢僋僼傽僀儖娗棟儕僗僩View僐儅儞僪僋儔僗
*/
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+-------------------------------------------
//2006/07/04 |SDNA挿旜 |怴婯嶌惉
//2006/07/06 |SDNA挿旜 |HandleViewOnHookL()傪捛壛
//2006/07/11 |SDNA挿旜 |僒僽儊僯儏乕偺敿婸搙敾掕張棟傪捛壛
// | | - IsUimConformityFile()偺捛壛
// | | - IsIncompleteFile()偺捛壛
// | | - GetImageCount()偺捛壛
//2006/07/13 |SDNA挿旜 |僒僽儊僯儏乕偺敿婸搙敾掕張棟傪捛壛
// | | - IsPlayRestrictedFile()偺捛壛
//2006/07/13 |SDNA挿旜 |HandleBackViewL()傪捛壛
// | | - Reset()偺捛壛
//2006/07/13 |SDNA挿旜 |HandleViewOnHookL()傪廋惓
// | | - 乽SD僇乕僪撉崬拞乿僟僀傾儘僌偺応崌偼廔榖僉乕傪桳岠偲偡傞
//2006/07/15 |SDNA挿旜 |GetImageCount()傪廋惓
//2006/07/15 |SDNA挿旜 |HandleBackViewL()傪廋惓
// | | - 僼儖妝嬋-僼僅儖僟&僼傽僀儖堦棗夋柺(僨乕僞BOX)偺応崌偼丆
// | | 儊儌儕堦棗夋柺偺乽僨乕僞BOX乿偵僼僅乕僇僗偑偁偨傞傛偆偵廋惓
// | | - MP3懠-僼僅儖僟&僼傽僀儖堦棗夋柺(杮懱奼挘儊儌儕)偺応崌偼丆
// | | 儊儌儕堦棗夋柺偺乽杮懱奼挘儊儌儕乿偵僼僅乕僇僗偑偁偨傞傛偆偵廋惓
//2006/07/18 |SDNA挿旜 |儘僌弌椡偺捛壛
// | | - IsUimConformityFile()
// | | - IsIncompleteFile()
// | | - GetImageCount()
// | | - IsPlayRestrictedFile()
//2006/07/20 |SDNA挿旜 |HandlePlaySongL()偱堷悢(TBool aDeleteSong)傪捛壛
//2006/07/20 |SDNA挿旜 |張棟懳徾偺儈儏乕僕僢僋傾僀僥儉傪堷悢偱搉偡傛偆偵曄峏
// | | - IsUimConformityFile()
// | | - IsIncompleteFile()
// | | - GetImageCount()
// | | - IsPlayRestrictedFile()
//2006/07/22 |SDNA挿旜 |NotifyConfirmRestrictListItemL()傪捛壛
//2006/07/22 |SDNA挿旜 |慜夋柺慗堏偵偍偄偰岆偭偰僼傽僀儖堦棗夋柺慗堏偡傞偺傪廋惓 (HandleBackViewL())
//2006/07/26 |SDNA挿旜 |懠婡擻愝掕僨乕僞嶍彍僟僀傾儘僌昞帵拞偵廔榖僉乕偑婡擻偟側偄栤戣傪廋惓 (HandleViewOnHookL())
//2006/07/26 |SDNA挿旜 |HandleCloseEventL()廔椆屻偵僟僀傾儘僌傪徚嫀偡傞僔乕働儞僗偵曄峏
// | | - 慜夋柺偵慗堏偟偨傜丆僟僀傾儘僌傪徚嫀偡傞張棟傪捛壛 (HandleBackViewL())
//2006/07/27 |SDNA挿旜 |廔榖僉乕墴壓帪偵僞僗僋廔椆偡傞傛偆偵廋惓 (TRK4979)
// | | - HandleViewOnHookL()傪廋惓
//2006/07/28 |SDNA挿旜 |TSmbMusicAPFileMgrViewType::ETypeMsMsaGroup傪嶍彍 (ETypeMsMsaFile偵摑崌)
// | | - HandleBackViewL()傪曄峏
//2006/07/28 |SDNA挿旜 |TRK5292偺廋惓
//2006/08/01 |SDNA挿旜 |儘僌弌椡儊僢僙乕僕傪廋惓 (IsUimConformityFile(), IsIncompleteFile(), GetImageCount())
//2006/08/05 |SDNA挿旜 |SetReadyFocusedItem()傪捛壛
//2006/08/24 |SDNA挿旜 |張棟僔乕働儞僗偺尒捈偟 (IsUimConformityFile(), IsIncompleteFile(), IsPlayRestrictedFile())
//2006/08/28 |SDNA挿旜 |僼傽僀儖堏摦(杮懱傊)偵偍偗傞堏摦拞僟僀傾儘僌傪乽BIND僼傽僀儖堏摦拞乿偵曄峏 (TRK7471)
// | | - HandleBackViewL()傪廋惓
//2006/09/01 |SDNA挿旜 |儘乕僇儖價儏乕愗傝懼偊帪偵丆儕僗僩儃僢僋僗傪儕僼儗僢僔儏偡傞傛偆曄峏 (TRK6426)
// | | - HandleChangeLocalViewL()傪廋惓
//2006/09/01 |SDNA挿旜 |TRK5537偵傛傞TSmbMusicAPFileMgrViewType偺曄峏偵懳墳
// | | - HandleBackViewL()傪曄峏
//2006/09/04 |SDNA挿旜 |僇儗儞僩傾僀僥儉偑枹弨旛偱傕NotifyReadyFocusItemL()偑屇傃弌偝傟傞栤戣偵懳墳
// | | - NotifyReadyFocusItemL()傪曄峏
//2006/09/16 |SDNA挿旜 |儘僌弌椡張棟偺曄峏
//2006/09/16 |SDNA挿旜 |2006/09/04偺曄峏傪攋婞 (NotifyReadyFocusItemL())
//2006/09/21 |SDNA挿旜 |摨婜壔娭悢偺巊梡傪庢傝傗傔傞傛偆偵廋惓
// | | - 嵞惗惂尷忣曬偺旕摨婜壔 (PlaySongL(), NotifyRequestLimitConditionInfoCompleteL())
//2006/09/26 |SDNA挿旜 |僼僅乕僇僗偑堏摦偟偨応崌丆僜僼僩僉乕傪僋儕傾偡傞傛偆偵廋惓 (NotifyChangedFocusItemL())
//2006/09/28 |SDNA挿旜 |僒僽儊僯儏乕昞帵帪偵巊梡偟偰偄偨摨婜壔API傪攑巭
// | | - GetImageCount(), IsPlayRestrictedFile()傪嶍彍
//2006/09/28 |SDNA挿旜 |僼僅乕僇僗堏摦帪偵僉乕僀儀儞僩傪梷惂偡傞傛偆偵廋惓
// | | - NotifyChangedFocusItemL(), NotifyReadyFocusItemL()傪廋惓
//2006/10/01 |SDNA挿旜 |捠抦宯僐儅儞僪偺僀儀儞僩僴儞僪儖傪HandleNotifyCommandL()偱峴偆傛偆偵曄峏
// | | - HandleChangeLocalView()傪曄峏
//2006/10/04 |SDNA挿旜 |僐乕僨傿儞僌婯栺忋偺廋惓
//2006/10/06 |SDNA挿旜 |僉乕僈僀僟儞僗偺偪傜偮偒傪彮側偔偡傞傛偆偵廋惓
// | | - 傾僀僥儉偺僼僅乕僇僗堏摦帪偵僜僼僩僉乕傪僋儕傾偡傞張棟傪嶍彍 (NotifyChangedFocusItemL())
//2006/10/16 |SDNA挿旜 |儘乕僇儖價儏乕愗傝懼偊帪偵丆儕僗僩儃僢僋僗偺僨傿儗僋僩儕傪暵偠傞傛偆偵廋惓 (TRK11601)
// | | - HandleChangeLocalViewL()傪廋惓
//2006/10/16 |SDNA挿旜 |儘僌僒乕僶傪僐儞僗僩儔僋僞偐傜庢摼偟側偄傛偆偵曄峏
//2006/10/16 |SDNA挿旜 |NotifyChangedFocusItemL()偺僄儔乕僴儞僪儕儞僌傪捛壛 (NotifyChangedFocusItemL())
//--------------+-----------+-------------------------------------------
//PTX824
//2007/03/15 |SEMC崃绮 |僒僽僗僋儕僾僔儑儞嵞僟僂儞儘乕僪幚憰丒嵞惗惂尷忬懺庢摼張棟傪嵞惗惂尷忣曬庢摼張棟傊曄峏幚憰
//2007/03/16 |SEMC崃绮 |僼僅儖僟慖戰夋柺乮杮懱奼挘儊儌儕乯偺幚憰捛壛
//2007/03/16 |SEMC崃绮 |M.S.僆乕僨傿僆-僌儖乕僾堦棗夋柺(杮懱奼挘)偺幚憰捛壛
//2007/03/26 |SEMC崃绮 |嵞惗惂尷柍岠偐偳偆偐敾掕API捛壛
//--------------+-----------+-------------------------------------------
//PTX825
//2007/06/29 |SDNA彑枔 | 拝怣壒愝掕懳墳
//2007/07/23 |SDNA彑枔 | CQ-TRK D_82400012627懳墳丂僒僽僗僋儕僾僔儑儞僐儞僥儞僣帪偺嵞惗壜斲妋擣僷儔儊乕僞曄峏偵敽偆廋惓
//2007/09/11 |SDNA彑枔 | CQ-TRK D_82400014576懳墳
//2007/09/12 |SDNA彑枔 | CQ-TRK D_82400014771懳墳 824儅乕僕偵敽偆丄825張棟慾奞懳墳
//2007/09/19 |SDNA彑枔 | CQ-TRK D_82400015243懳墳 拝怣壒愝掕懳墳帪偺嶍彍儈僗
#include <SmbMusicAPFileMgrExternalInterface.h>
#include "SmbMusicAPFileMgrCommonDef.h"
#include "SmbMusicAPFileMgrListCmd.h"
#include "SmbMusicAPFileMgrListView.h"
#include "SmbMusicAPFileMgrDebugLog.h"
#include "SmbMusicAPFileMgr.hrh"
#ifdef __PTX825MUSICAP__ // 825_katsu 伀
#include <SmbMusicMWImExpAnalyzer.h>
#include <DCMPlatformUtility.h>
#endif // __PTX825MUSICAP__ 825_katsu 仾
#include <SmbMusicAPFileMgr.rsg>
USING_NAMESPACE_SEMCJ
/**
* @param[in] aAppUi 傾僾儕働乕僔儑儞UI
* @param[in] aView 傾僾儕働乕僔儑儞價儏乕
* @param[in] aController 傾僋僔儑儞僐儞僩儘乕儔
*/
CSmbMusicAPFileMgrListCmd::CSmbMusicAPFileMgrListCmd(CSmbMusicAPFileMgrAppUi& aAppUi,
CSmbMusicAPFileMgrViewBase& aView,
CSmbMusicAPFileMgrActionController& aController)
:CSmbMusicAPFileMgrCmdBase(aAppUi, aView, aController), iListBoxModel(NULL), iReadyFocusedItem(EFalse)
{
//
}
/**
* @note 嬻幚憰偱偡
*/
CSmbMusicAPFileMgrListCmd::~CSmbMusicAPFileMgrListCmd()
{
}
/**
* @param[in] aListBoxModel 儕僗僩儃僢僋僗儌僨儖
*/
void CSmbMusicAPFileMgrListCmd::SetListBoxModel(MSmbMusicAPFileSystemComListBoxModel& aListBoxModel)
{
iListBoxModel = &aListBoxModel;
iListBoxModel->SetObserver(this);
}
/**
* @return 儕僗僩儃僢僋僗儌僨儖
* @panic CSmbMusicAPFileMgrFileCmd::iListBoxModel 偑NULL偺応崌
* @note 嶲徠宆偱曉媝偡傞偨傔丆昁偢 SetListBoxModel() 幚峴屻偵庢摼偡傞偙偲丏
*/
MSmbMusicAPFileSystemComListBoxModel& CSmbMusicAPFileMgrListCmd::ListBoxModel(void) const
{
__ASSERT_ALWAYS(iListBoxModel != NULL, PANIC(EInvalidStatus));
return *iListBoxModel;
}
#ifdef __PTX825MUSICAP__ // 825_katsu 伀
/*
* i-Motion僼傽僀儖偲偟偰丄嵞惗偱偒傞偐斲偐傪丄僠僃僢僋偡傞
* 偙偙偱嵞惗晄壜偲敾掕偝傟偨応崌偼丄偨偲偊Music偱嵞惗偱偒偰傕丄拝怣壒偱壒偑柭傜側偄僐儞僥儞僣偱偁傞
*
* @param [in] aMusicItem MusicItem偺億僀儞僞
* @retval ETrue 拝怣愝掕偟偰傕嵞惗偱偒傞僐儞僥儞僣偱偁傞
* @retval EFalse 拝怣愝掕偟偰傕嵞惗偱偒側偄僐儞僥儞僣偱偁傞丅傕偟偔偼Item偑晄惓
*/
TBool CSmbMusicAPFileMgrListCmd::CheckPlayableRingingContent(const CSmbMusicAPFileSystemComMusicItem& aMusicItem)
{
// 僆乕僨傿僆忣曬庢摼
const TSmbMusicMWLibAudioInfo* audioinfo = aMusicItem.GetAudioInfomation();
if (audioinfo == NULL)
{
return EFalse;
}
// 僆乕僨傿僆僗儁僢僋敾掕
/// TSmbMusicMWLibAudioCodecType仺TSmbVideoAnalyzerAudioCodecType
TSmbVideoAnalyzerAudioCodecType codectype;
switch (audioinfo->iCodecType)
{
case ESmbMusicMWLibCodecAAC: ///< AAC
codectype = ESmbVideoAnalyzerAudioCodecAAC;
break;
case ESmbMusicMWLibCodecHEAAC: ///< HE-AAC
codectype = ESmbVideoAnalyzerAudioCodecHEAAC;
break;
case ESmbMusicMWLibCodecEaacPlus: ///< Enhanced aacPlus
codectype = ESmbVideoAnalyzerAudioCodecEaacPlus;
break;
case ESmbMusicMWLibCodecNotSupported: ///< 僒億乕僩奜codec
case ESmbMusicMWLibCodecMP3: ///< MP3
case ESmbMusicMWLibCodecMSAT3: ///< ATRAC-3
case ESmbMusicMWLibCodecMSATX: ///< ATRAC-X
default:
return EFalse;
}
/// TSmbMusicMWLibChannel仺1or2(僗僥儗僆丄儌僲儔儖)
TUint channel;
switch (audioinfo->iChannel)
{
case ESmbMusicMWLibChannelMono: ///<儌僲儔儖
channel = KSmbMusicAPFileMgrMono;
break;
case ESmbMusicMWLibChannelStereo: ///<僗僥儗僆
case ESmbMusicMWLibChannelDual: ///<Dual
case ESmbMusicMWLibFChannelJoint: ///<Joint Stereo
channel = KSmbMusicAPFileMgrStereo;
break;
case ESmbMusicMWLibNoChannel: ///<僠儍儞僱儖忣曬側偟
case ESmbMusicMWLibNotSupported: ///<僒億乕僩奜僐儞僥儞僣
default:
return EFalse;
}
// 僆乕僨傿僆僗儁僢僋敾掕
return CSmbVideoAnalyzerUtility::IsAudioPlayable(
codectype, // 僐乕僨僢僋庬暿
audioinfo->iBitRate, // 價僢僩儗乕僩
audioinfo->iFs, // 僒儞僾儕儞僌儗乕僩
channel); // 僠儍儞僱儖忣曬
}
/*
* 僼儖妝嬋偲偟偰丄嵞惗偱偒傞偐斲偐傪丄僠僃僢僋偡傞
*
* @param [in] aMusicItem MusicItem偺億僀儞僞
* @retval ETrue 僼儖妝嬋偲偟偰嵞惗偱偒傞僐儞僥儞僣偱偁傞
* @retval EFalse 僼儖妝嬋偲偟偰嵞惗偱偒側偄僐儞僥儞僣偱偁傞丅
*/
TBool CSmbMusicAPFileMgrListCmd::CheckPlayableContent(const CSmbMusicAPFileSystemComMusicItem& aMusicItem)
{
OUTPUT_FUNC_MUST;
TBool isPlayable = EFalse;
#ifdef __PTX825MUSICAP__ // INSERT Start CQ-TRK D_82400012627
TBool isSubscription = EFalse;
TSmbMusicMWLibLimitation limitation = ESmbMusicMWLibLimitNone;
TRAPD(error, limitation = aMusicItem.SongLimitationInfoL());
if(KErrNone != error)
{
OUTPUT_LOG1_MUST("LEAVE:aMusicItem.SongLimitationInfoL()::%d", error);
return EFalse;
}
// 僒僽僗僋儕僾僔儑儞僐儞僥儞僣偺応崌
if(ESmbMusicMWLibLimitSubscription == limitation)
{
isSubscription = ETrue;
}
#endif // __PTX825MUSICAP__ INSERT End CQ-TRK D_82400012627
const TDesC* filepath = aMusicItem.GetFilePath();
#ifdef __PTX825MUSICAP__ // UPDATE Start CQ-TRK D_82400012627
// TRAPD(error, CSmbMusicMWImotionExtAnalyzer::IsPlayableL(*filepath, isPlayable));
TRAP(error, CSmbMusicMWImotionExtAnalyzer::IsPlayableL(*filepath, isPlayable, isSubscription));
#endif // __PTX825MUSICAP__ UPDATE End CQ-TRK D_82400012627
if(KErrNone != error)
{
return EFalse;
}
return isPlayable;
}
/**
* 惂尷忬懺偐偳偆偐偺敾掕傪峴偆丏
* *
* @param[in] aMusicItem 儈儏乕僕僢僋傾僀僥儉
* @retval ETrue 惂尷忬懺偱偁傞
* @retval EFalse 惂尷忬懺偱側偄
*/
//UPDATE Start PTX825 CQ-TRK D_82400014771
TBool CSmbMusicAPFileMgrListCmd::IsCurrentItemRestricted(CSmbMusicAPFileSystemComMusicItem& aMusicItem, TBool aIsLimit)
//TBool CSmbMusicAPFileMgrListCmd::IsCurrentItemRestricted(CSmbMusicAPFileSystemComMusicItem& aMusicItem)
//UPDATE End PTX825 CQ-TRK D_82400014771
{
//DEL-START PTX824梊掕
// 嵞惗惂尷忣曬庢摼
// if(aMusicItem.IsLimit())
// {
// return ETrue;
// }
//DEL-END PTX824梊掕
//ADD-START PTX824
// 嵞惗惂尷庬暿偵娭偡傞敿婸搙
//UPDATE Start PTX825 CQ-TRK D_82400014771
if(aIsLimit && IsLimitedContentsRestricted(aMusicItem))
// if(IsLimitedContentsRestricted(aMusicItem))
//UPDATE Start PTX825 CQ-TRK D_82400014771
{
return ETrue;
}
//ADD-END PTX824
// UIM忣曬庢摼丄惂尷晅偒偺傕偺偼CP愗傝弌偟偼惂尷偁傝
if(!IsUimConformityFile(&aMusicItem))
{
return ETrue;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -