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

📄 smbmusicapsonginfodetailresource.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSongInfoDetailResource.cpp
//
// Description:
//	儈儏乕僕僢僋梡徻嵶忣曬昞帵-徻嵶忣曬昞帵夋柺梡儕僜乕僗採嫙僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/04/20		|SEMCJ嬥岝		|怴婯嶌惉
//2006/09/28		|SEMCJ憊		|SD_Bind僼僅儖僟撪偺UIM幚峴惂尷僼傽僀儖偺堦晹昞帵崁栚傪屌掕崁栚偵偡傞傛偆懳墳(i-keeper TRK No.4227懳墳)
//2006/09/28		|SEMCJ憊		|SD-BIND椞堟偺僼儖妝嬋偺僼傽僀儖奼挘巕偱偁傞SB2偺応崌丄僼僅乕儅僢僩傪僼儖妝嬋偵偡傞case暥傪捛壛(i-keeper TRK No.5491懳墳)
//2007/03/22		|SEMDJ汭弐		|MW偵偁傢偣傞偨傔偵丄僩儔僢僋斣崋偺宆傪TUint偵廋惓偡傞
//2007/04/04		|SEMDJ汭弐		|嵞惗惂尷偺愗傟偨僼儖妝嬋乮旕僒僽僗僋儕僾僔儑儞偺応崌乯偼崁栚乽僐儞僥儞僣堏峴/杮懱傊偺堏摦乿偑乽晄壜乿偲昞帵偡傞傛偆懳墳乮i-keeper 824 TRK No.354, 355懳墳乯
//2007/04/05		|SEMCJ汭弐		|乽僆儕僕僫儖僞僀僩儖乿傪乽娗棟梡僞僀僩儖乿偵廋惓偟偰丄弴斣偼2斣栚偐傜1斣栚偵挷惍偡傞
//2007/04/05		|SEMCJ汭弐		|乽僼儖妝嬋丄UIM惂尷側偟乿偺乽庢摼尦乿偑僾儕僙僢僩僨乕僞傪乽嬻敀乿偱丄晄惓偺応崌偼乽嬻敀乿傪乽晄柧乿偵廋惓
//2007/04/05		|SEMCJ汭弐		|昞帵撪梕乽僼儖妝嬋丆姰慡丆UIM惂尷側偟乿偺昞帵崁栚乽愝掕忬嫷乿偵乽帇挳梊栺傾儔乕儉壒乿偺捛壛
//2007/04/05		|SEMCJ汭弐		|昞帵撪梕乽僼儖妝嬋乿偺昞帵崁栚乽僼傽僀儖庬暿乿偵乽儈儏乕僕僢僋乮夛堳惂乯乿偺捛壛
//2007/04/10		|SEMCJ汭弐		|拝怣壒愝掕晄壜僐儞僥儞僣偺懳墳
//2007/04/12		|SEMCJ汭弐		|乽WMA乿僼僅乕儅僢僩偺捛壛
//2007/04/12		|SEMCJ汭弐		|乽壒乮僆乕僨傿僆乯乿偺僼傿乕儖僪偑晄惓側応崌丄乽嬻敀乿傪乽晄柧乿偵廋惓
//2007/04/12		|SEMCJ汭弐		|TSmbMusicMWLibDetailSongInfo偺嵞惗惂尷偺堦晹偺懏惈傪TSmbMusicMWLibSongLimit偵曄峏(i-keeper(UIQ):PTX824 No.560)偵懳偟偰偺廋惓
//2007/04/12		|SEMCJ汭弐		|嵞惗嬛巭丄傕偟偔偼DRM忣曬偑側偄僒僽僗僋儕僾僔儑儞僐儞僥儞僣偼丄乽----擭--寧--擔乿乮塸岅丗乽--/--/----乿乯偲昞帵偡傞偙偲偵廋惓
//2007/04/19		|SEMCJ汭弐		|SmbMusicAPLibFileInfoFunc::GetName偺乽暥帤楍偺挿偝乿偺堷悢傪default抣偵廋惓
//2007/04/23		|SEMCJ汭弐		|僒僽僗僋儕僾僔儑儞偺乽嵞惗惂尷乿崁栚偺偨傔丄娭悢乽SetDateTextL乿傪捛壛
//2007/06/13		|SEMCJ汭弐		|乽嵞惗惂尷乿偑晄惓偺応崌丄乽嬻敀乿傪乽晄柧乿偵廋惓
//2007/06/13		|SEMCJ汭弐		|乽婜娫惂尷乿偲僼傽僀儖僼僅乕儅僢僩偑晄堦抳偺応崌丄乽Leave張棟乿傪乽晄柧乿偵廋惓
//2007/07/05		|SEMCJ汭弐		|TSmbMusicAPSongInfoDetailInfomation偺宍偵const傪捛壛
//2007/07/27		|SEMCJ汭弐		|WMA僐儞僥儞僣懳墳偺偨傔丄崁栚乽挊嶌尃娗棟乿傪捛壛
//PTX825---------------------------------------------------------------------
//2007/07/10		|SDNA彑枔		|僗儔僀僪僔儑乕懳墳
//2007/09/03		|SDNA彑枔		| CQ-TRK D_82400013806懳墳 DTV梷惂儅僋儘捛壛

#ifndef __EIKENV_H__
#include <eikenv.h>
#endif

#ifndef __BARSREAD_H__
#include <barsread.h>
#endif

#ifndef __SMBBRURLCH_H__
#include <SmbBrurlch.h>
#endif

#ifndef __SMBAFWORDINGFORMATTER_H__
#include <SmbAfWordingFormatter.h>
#endif

#ifndef __SMBMUSICAPLIB_H__
#include "SmbMusicAPLib.h"
#endif

#ifndef FJIVVERSIT_H__
#include <fjivversit.h>
#endif

#include <FjpgPropAgent.h>
#include <FjpgBasicLaServer.h>

//ADD-S 汭弐丂拝怣壒愝掕晄壜僐儞僥儞僣偺懳墳
#include <DCMPlatformUtility.h>
#include <SmbMusicMWImExpAnalyzer.h>
//ADD-E 汭弐

#include "SmbMusicAPSongInfoDetailResource.h"
USING_NAMESPACE_SEMCJ

#ifdef _DEBUG
_LIT(KPanicCategory, "SmbMusicAPSongInfoDetailResource");
#endif

///////////////////////////////////////////////////////////////////////////////
/**
 * 僼僅乕儅僢僩暿憓擖僀儞僨僢僋僗傊偺昞帵崁栚偍傛傃昞帵崁栚悢
 */
 
//MODIFY-S MAEJI 弴彉偺擖傟懼偊
//僼儖妝嬋姰慡
const TInt KImotionEXCompleteItemIdTable[] =
	{
	ESongInfoZero,
//MODIFY-S 汭弐 乽僆儕僕僫儖僞僀僩儖乿傪乽娗棟梡僞僀僩儖乿偵廋惓偟偰丄弴斣偼2斣栚偐傜1斣栚偵挷惍偡傞
// 	ESongInfoFileName, 
// 	ESongInfoOrgTitle,
	ESongInfoMgrTitle, 
	ESongInfoFileName, 
//MODIFY-E 汭弐
	ESongInfoFileFormat,
	ESongInfoRedistribute, 
	ESongInfoPlayLimit,
	ESongInfoSetRingTone,
	ESongInfoSaveimotion, 
	ESongInfoSaveJacket,
	ESongInfoSaveDesktop,
	ESongInfoSaveLyric,
	ESongInfoTitle, 
	ESongInfoArtist, 
	ESongInfoAlbum, 
	ESongInfoYear, 
	ESongInfoGenre,
	ESongInfoComment, 
	ESongInfoTrackNum, 
	ESongInfoComposer, 
	ESongInfoLyricist,
	ESongInfoRightsHolder, 
	ESongInfoSellingAgency, 
	ESongInfoRightsInfo, 
	ESongInfoLabel,
	ESongInfoURL, 
	ESongInfoCodec, 
	ESongInfoPlayTime, 
	ESongInfoFileSize,
	ESongInfoAcquisition, 
	ESongInfoLastUpdate, 
	ESongInfoSaveMemory,
	ESongInfoIsSetting
	};
const TInt KImotionEXCompleteItemNum = 31;

//僼儖妝嬋晄姰慡
const TInt KImotionEXInCompleteItemIdTable[] =
	{
	ESongInfoZero,
//MODIFY-S 汭弐 乽僆儕僕僫儖僞僀僩儖乿傪乽娗棟梡僞僀僩儖乿偵廋惓偟偰丄弴斣偼2斣栚偐傜1斣栚偵挷惍偡傞
// 	ESongInfoFileName, 
// 	ESongInfoOrgTitle,
	ESongInfoMgrTitle, 
	ESongInfoFileName, 
//MODIFY-E 汭弐
	ESongInfoFileFormat,
	ESongInfoRedistribute, 
	ESongInfoPlayLimit,	 
	ESongInfoAcquisition, 
	ESongInfoSaveMemory
	};
const TInt KImotionEXInCompleteItemNum = 7;

//M.S.乛M.S.Pro僆乕僨傿僆
const TInt KMsAudioItemIdTable[] =
	{
	ESongInfoZero,
	ESongInfoFileName, 
	ESongInfoFileFormat,
	ESongInfoPlayLimit,	 
	ESongInfoTitle, 
	ESongInfoArtist, 
	ESongInfoAlbum, 
	ESongInfoYear, 
	ESongInfoGenre,
//	ESongInfoTrackNum, 乮TRK7423乯
	ESongInfoCodec, 
	ESongInfoPlayTime,
	ESongInfoFileSize 
//	ESongInfoLastUpdate乮TRK7423乯
//	ESongInfoSaveMemory乮TRK7403乯
	};
const TInt KMsAudioItemNum = 11;

//MP3
const TInt KMp3ItemIdTable[] =
	{
	ESongInfoZero,
	ESongInfoFileName, 
	ESongInfoFileFormat,
	ESongInfoTitle, 
	ESongInfoArtist, 
	ESongInfoAlbum, 
	ESongInfoYear, 
	ESongInfoGenre,
	ESongInfoComment,
//	ESongInfoTrackNum, 乮TRK5949乯
	ESongInfoComposer, 
	ESongInfoLyricist,
	ESongInfoLabel,
	ESongInfoCodec, 
	ESongInfoPlayTime,
	ESongInfoFileSize 
//	ESongInfoSaveMemory乮TRK7403乯
	};
const TInt KMp3ItemNum = 14;

//3GPACC
const TInt K3gpAccItemIdTable[] =
	{
	ESongInfoZero,
	ESongInfoFileName, 
	ESongInfoFileFormat,
	ESongInfoTitle, 
	ESongInfoArtist, 
	ESongInfoAlbum, 
	ESongInfoYear, 
	ESongInfoGenre,
	ESongInfoComment,
	ESongInfoComposer, 
	ESongInfoLyricist,
	ESongInfoRightsInfo, 
	ESongInfoLabel,
	ESongInfoCodec, 
	ESongInfoPlayTime,
	ESongInfoFileSize
	//ESongInfoSaveMemory乮TRK7403乯
	};
const TInt K3gpAccItemNum = 15;
//MODIFY-E

//ADD-S 汭弐 乽WMA乿僼僅乕儅僢僩偺捛壛
//WMA
const TInt KWmaItemIdTable[] =
	{
	ESongInfoZero,
	ESongInfoFileName, 
	ESongInfoFileFormat,
	ESongInfoRightsManagement,	 
	ESongInfoTitle, 
	ESongInfoArtist, 
	ESongInfoAlbum, 
	ESongInfoYear, 
	ESongInfoGenre,
	ESongInfoTrackNum, 
	ESongInfoRightsHolder, 
	ESongInfoSellingAgency, 
	ESongInfoCodec, 
	ESongInfoPlayTime,
	ESongInfoFileSize,
	ESongInfoAcquisition, 
	ESongInfoLastUpdate
	};
const TInt KWmaItemNum = 16;
//ADD-E 汭弐

/**
 * [杮懱傊偺曐懚]傪昞帵偡傞悅捈曽岦僐儞僥僫偺僀儞僨僢僋僗
 * 仸悅捈曽岦僐儞僥僫偺僀儞僨僢僋僗偼0偐傜巒傑傞偨傔丄
 * 丂僀儞僨僢僋僗抣傪-1偟偰偄傞
 * 丂崁栚偑懚嵼偟側偄僼僅乕儅僢僩偺応崌偼-1傪愝掕
 */
const TInt KImotionEXCompleteSavePhoneIndex = 29;	//僼儖妝嬋姰慡
const TInt KImotionEXInCompleteSavePhoneIndex = 6;	//僼儖妝嬋晄姰慡
const TInt KMsAudioSavePhoneIndex = -1;				//M.S.乛M.S.Pro僆乕僨傿僆
const TInt KMp3SavePhoneIndex = -1;					//MP3
const TInt K3gpAccSavePhoneIndex = -1;				//3GPACC

//ADD-S 汭弐 乽WMA乿僼僅乕儅僢僩偺捛壛
const TInt KWmaSavePhoneIndex = -1;				//WMA
//ADD-E 汭弐

const TInt KMaxSongInfoTextLength = 512;			//昞帵梡僥僉僗僩Length

/**
 * 僐儞僗僩儔僋僞
 *
 * @param[in]	aInfo		徻嵶忣曬娗棟僋儔僗
 * @param[in]	aLog		儘僌僒乕僶偺僙僢僔儑儞
 */
//MODIFY-S 汭弐 const傪捛壛
//CSmbMusicAPSongInfoDetailResource::CSmbMusicAPSongInfoDetailResource(TSmbMusicAPSongInfoDetailInfomation& aInfo, RLog& aLog)
CSmbMusicAPSongInfoDetailResource::CSmbMusicAPSongInfoDetailResource(const TSmbMusicAPSongInfoDetailInfomation& aInfo, RLog& aLog)
//MODIFY-E 汭弐
	:iInfo(aInfo), iLog(aLog)
	{
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPSongInfoDetailResource::~CSmbMusicAPSongInfoDetailResource()
	{
	delete iText;
	}

/**
 * 2僼僃乕僘僐儞僗僩儔僋僞
 */
void CSmbMusicAPSongInfoDetailResource::ConstructL()
	{
	iText = HBufC::NewL(KMaxSongInfoTextLength);
	}

/**
 * 崁栚堦棗偺儕僜乕僗ID傪庢摼偡傞
 *
 * @return		僼傽僀儖僼僅乕儅僢僩偵墳偠偨崁栚堦棗偺儕僜乕僗ID
 */
TInt CSmbMusicAPSongInfoDetailResource::ContainerResourceIdL()
	{
	//僼僅乕儅僢僩傪庢摼偡傞
	TSmbMusicMWLibFileFormat songformat = iInfo.iDetailSongInfo->DetailSongInfo()->iFormat;
	const TSmbMusicMWLibFileFormat orgformat = songformat;

	//儘僌弌椡
	SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo189, ELogLevelLow, orgformat, KSmbMusicAPSongInfoLogFileFormat);

	if(ESmbMusicMWLibFileFormatOther == songformat)
		{
		//僼傽僀儖柤傪嶲徠偟丄偦偺奼挘巕偵懳墳偟偨僼僅乕儅僢僩偲偟偰埖偆
//MODIFY-S MAEJI
		const TFileName fileName = iInfo.iDetailSongInfo->DetailSongInfo()->iFileName;
		songformat = FilenameToSongformat(fileName);
//		songformat = ESmbMusicMWLibFileFormatiMotionEx;
//MODIFY-E MAEJI
		}

	TInt resourceId = 0;
	//僼僅乕儅僢僩偵墳偠偨儕僜乕僗傪庢摼偡傞
	switch(songformat)
		{
		case ESmbMusicMWLibFileFormatiMotionEx :
			{
			//晄姰慡僼傽僀儖偱偁傞偐偳偆偐僠僃僢僋偡傞
			if(EFalse != iInfo.iIncompleteContents)
				{
				//晄姰慡僼傽僀儖
				resourceId = R_SONGINFO_DETAIL_INFO_IMOTIONEXISCOMPLETEITEM;
				iItemIdArray = KImotionEXInCompleteItemIdTable;
				iItemNum = KImotionEXInCompleteItemNum;
				iSavePhoneIndex = KImotionEXInCompleteSavePhoneIndex;
				}
			else
				{
				//姰慡僼傽僀儖
				resourceId = R_SONGINFO_DETAIL_INFO_IMOTIONEXCOMPLETEITEM;
				iItemIdArray = KImotionEXCompleteItemIdTable;
				iItemNum = KImotionEXCompleteItemNum;
				iSavePhoneIndex = KImotionEXCompleteSavePhoneIndex;
				}
			}
			break;

		case ESmbMusicMWLibFileFormatMP3 :
			{
			resourceId = R_SONGINFO_DETAIL_INFO_MP3ITEM;
			iItemIdArray = KMp3ItemIdTable;
			iItemNum = KMp3ItemNum;
			iSavePhoneIndex = KMp3SavePhoneIndex;

			}
			break;

		case ESmbMusicMWLibFileFormatMSAudio :
			{
			resourceId = R_SONGINFO_DETAIL_INFO_MSAUDIOITEM;
			iItemIdArray = KMsAudioItemIdTable;
			iItemNum = KMsAudioItemNum;
			iSavePhoneIndex = KMsAudioSavePhoneIndex;
			}
			break;

		case ESmbMusicMWLibFileFormat3GPPAAC :
			{
			resourceId = R_SONGINFO_DETAIL_INFO_3GPACCITEM;
			iItemIdArray = K3gpAccItemIdTable;
			iItemNum = K3gpAccItemNum;
			iSavePhoneIndex = K3gpAccSavePhoneIndex;
			}
			break;

//ADD-S 汭弐 乽WMA乿僼僅乕儅僢僩偺捛壛
		case ESmbMusicMWLibFileFormatMtpModeWMA :
		case ESmbMusicMWLibFileFormatMemoryModeWMA :
			{
			resourceId = R_SONGINFO_DETAIL_INFO_WMAITEM;
			iItemIdArray = KWmaItemIdTable;
			iItemNum = KWmaItemNum;
			iSavePhoneIndex = KWmaSavePhoneIndex;
			}
			break;
//ADD-E 汭弐

		case ESmbMusicMWLibFileFormatOther :	//嵟弶偵懠偺僼僅乕儅僢僩偵曄姺偟偰偄傞偨傔丄偁傝偊側偄
		default :
			{
			//儘僌弌椡
			SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo189, ELogLevelHighest, orgformat, KSmbMusicAPSongInfoLogSongFormatErr);
			//儕乕僽張棟
			User::Leave(KErrArgument);
			}
			break;
		}
	return resourceId;
	}

/**
 * 巜掕偟偨崁栚庬暿偺僥僉僗僩傪庢摼偡傞
 *
 * @param[in]	aIndex		庢摼偡傞崁栚偺僀儞僨僢僋僗
 * @param[out]	aTextLabel	僥僉僗僩儔儀儖僋儔僗
 * @return		巜掕偟偨崁栚偵昞帵偡傞僥僉僗僩
 */
TPtr CSmbMusicAPSongInfoDetailResource::DetailTextL(const TInt aIndex) const
	{
	//堷悢偺抣偑嵟戝崁栚悢傪挻偊偰偄側偄偐僠僃僢僋偡傞
	if(aIndex > iItemNum)
		{
		//儘僌弌椡
		SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo173, ELogLevelHighest, KErrOverflow, KSmbMusicAPSongInfoLogDetailTextLErr);
		//儕乕僽張棟
		User::Leave(KErrOverflow);
		}	

	//僀儞僨僢僋僗埵抲偵昞帵偡傞崁栚庬暿傪庢摼偡傞
	TInt itemId = iItemIdArray[aIndex];
	//崁栚庬暿偛偲偵僥僉僗僩傪庢摼偡傞API傪屇傃暘偗傞
	switch(itemId)
		{
		case ESongInfoTitle :			//僞僀僩儖
		case ESongInfoArtist :			//傾乕僥傿僗僩柤
		case ESongInfoAlbum :			//傾儖僶儉柤
		case ESongInfoGenre :			//僕儍儞儖
		case ESongInfoComment :			//僐儊儞僩

⌨️ 快捷键说明

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