📄 smbmusicapsyncservercontentsplaysonginfomanager.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerContentsPlaySongInfoManager.cpp
//
// Description:
// 傾僀僥儉嶍彍梫媮僒乕價僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/11 |娵壀 | 怴婯嶌惉
//2006/09/11 |娵壀 | TRK8279懳墳
//2006/09/25 |K3悪杮 | [iKeeper(TRK):10184] 儗僕儏乕儉忣曬攋婞帪偵僀僥儗乕僞嶍彍傪捛壛
//2006/10/04 |娵壀 | [iKeeper(TRK):10861] 嵞惗嬋夋憸丄嵞惗嬋忣曬偺弴偱搊榐偟偨応崌偺懳張
//2006/10/13 |娵壀 | [iKeeper(TRK):11484] 僉儍僢僔儏僒僀僘傪係嬋仺俀嬋傊曄峏
//2006/10/30 |K3悪杮 | [iKeeper(TRK):12221] 屆偄嵞惗嬋忣曬偑庢摼偝傟偰偄偨栤戣偺懳張
#ifndef __E32ERR_H__
#include <e32err.h> // 僄儔乕僐乕僪
#endif // __E32ERR_H__
#include <f32file.h>
#ifndef __SMBMUSICAPSYNCSERVERDEF_H__
#include <SmbMusicAPSyncServerDef.h>
#endif // __SMBMUSICAPSYNCSERVERDEF_H__
#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h> // CSmbMusicMWLibPLItem
#endif // __SMBMUSICMWLIBCLIENT_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSPLAYSONGINFOMANAGER_H__
#include "SmbMusicAPSyncServerContentsPlaySongInfoManager.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
#ifndef __SMBMUSICAPSYNCSERVERINTERNALDEF_H__
#include "SmbMusicAPSyncServerInternalDef.h"
#endif
#ifndef __SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.h"
#endif // __SMBMUSICAPSYNCSERVERUTIL_H__
USING_NAMESPACE_SEMCJ
//嵞惗嬋偺僼傽僀儖柤攝楍
const TDesC* KSongImageName[KMaxPlaySongImageNumber] =
{
&KSmbMusicAPSyncServerPlaySongImage001,
&KSmbMusicAPSyncServerPlaySongImage002,
//@@TRK11484懳墳 Del Start
// &KSmbMusicAPSyncServerPlaySongImage003,
// &KSmbMusicAPSyncServerPlaySongImage004
//@@TRK11484懳墳 Del Start
};
/**
* 僐儞僗僩儔僋僞
* @param 側偟
* @return 側偟
**/
CSmbMusicAPSyncServerContentsPlaySongInfoManager::CSmbMusicAPSyncServerContentsPlaySongInfoManager(DCM_NAMESPACE::RLog& aLog):
iLog(aLog)
{
}
/**
* 僨僗僩儔僋僞
* @param 側偟
* @return 側偟
**/
CSmbMusicAPSyncServerContentsPlaySongInfoManager::~CSmbMusicAPSyncServerContentsPlaySongInfoManager()
{
TPlaySongInfoStr* p = NULL;
TInt cnt = iPlaySong.Count();
for(TInt i = cnt; i > 0; i--)
{
p = iPlaySong[0];
delete p->iArtistTitle;
delete p->iAlbumTitle;
delete p->iSongTitle;
if(NULL != p->iFile)
{
//僼傽僀儖僒乕僶偲僙僢僔儑儞傪奐偔
RFs fs;
fs.Connect();
//夋憸僼傽僀儖傪嶍彍偡傞
fs.Delete(*p->iFile);
//僼傽僀儖僒乕僶偲偺僙僢僔儑儞傪暵偠傞
fs.Close();
delete p->iFile;
}
delete p->iItem;
delete p;
iPlaySong.Remove(0);
}
iPlaySong.Close();
delete iPlaySongIterator;
}
/**
* 戞2僼僃乕僘僐儞僗僩儔僋僞
* @param 側偟
* @return 側偟
**/
void CSmbMusicAPSyncServerContentsPlaySongInfoManager::ConstructL()
{
//僼傽僀儖僒乕僶偲僙僢僔儑儞傪奐偔
RFs fs;
fs.Connect();
//夋憸僼傽僀儖曐懚愭偺僨傿儗僋僩儕傪嶌惉偡傞
TInt res = fs.MkDirAll(KSmbMusicAPSyncServerImageDir);
if( (KErrNone != res) && (KErrAlreadyExists != res) )
{
//傕偆堦搙傗偭偰傒傑偡
res = fs.MkDirAll(KSmbMusicAPSyncServerImageDir);
}
//偙偺僋儔僗偱巊梡偡傞僼傽僀儖偑婛偵懚嵼偡傟偽嶍彍偡傞乮Wins偱偼昁梫偲側傞張棟乯
for(TInt i = 0; i < KMaxPlaySongImageNumber; i++)
{
//夋憸僼傽僀儖傪嶍彍偡傞
fs.Delete(*KSongImageName[i]);
}
//僼傽僀儖僒乕僶偲偺僙僢僔儑儞傪暵偠傞
fs.Close();
}
/**
* 嵞惗嬋偵娷傑傟傞夋憸傪搊榐偡傞
* @param [in] aSongItem 嬋傾僀僥儉乮儕僗僩僴儞僪儖偲Index斣崋乯
* @param [in] aFile 夋憸僼傽僀儖偺惗惉僷僗乮僼儖僷僗偱僼傽僀儖柤傪巜掕乯
* @return 張棟寢壥
**/
TInt CSmbMusicAPSyncServerContentsPlaySongInfoManager::SetPlaySongImage(TSmbMusicAPSyncEngineItemIndex& aSongItem ,const TDesC& aFile)
{
TPlaySongInfoStr* p = NULL;
TInt log;
//僼傽僀儖柤偺奿擺椞堟傪惗惉偡傞
HBufC* file = NULL;
TRAPD(error, file = HBufC::NewL(aFile.Length()));
if(KErrNone != error)
{
//僼傽僀儖柤傪曐懚偱偒側偄応崌偼僼傽僀儖傪嶍彍偟傑偡
RFs fs;
fs.Connect();
//夋憸僼傽僀儖傪嶍彍偡傞
fs.Delete(aFile);
//僼傽僀儖僒乕僶偲偺僙僢僔儑儞傪暵偠傞
fs.Close();
log = EMusicAPSyncServerClassNumber_ContentsPlaySongInfoManager | EMusicAPSyncServerLocationNumber04;
_LIT(KContentsPlaySongInfoManager04, "SyncServerContentsPlaySongInfoManager::SetPlaySongImage Leave = %d");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KContentsPlaySongInfoManager04, error);
return error;
}
*file = aFile;
TInt cnt = iPlaySong.Count();
for(TInt i = 0; i < cnt; i++)
{
p = iPlaySong[i];
if((p->iSongItem.iIndex == aSongItem.iIndex) && (p->iSongItem.iListHandle == aSongItem.iListHandle))
{
//婛偵奩摉偡傞嬋忣曬偑搊榐偝傟偰偄傟偽僼傽僀儖柤傕搊榐偡傞
p->iFile = file;
//@@TRK10861 Add Start
//夋憸搊榐嵪傒
p->iImage = ETrue;
//@@TRK10861 Add End
return KErrNone;
}
}
//傑偩嬋忣曬偑搊榐偝傟偰偄側偗傟偽怴婯偵捛壛偡傞
TRAP(error, p = new(ELeave)TPlaySongInfoStr);
if(KErrNone != error)
{
//僼傽僀儖柤傪曐懚偱偒側偄応崌偼僼傽僀儖傪嶍彍偟傑偡
RFs fs;
fs.Connect();
//夋憸僼傽僀儖傪嶍彍偡傞
TInt ret = fs.Delete(aFile);
if((KErrNone != ret) && (KErrNotFound != ret))
{
log = EMusicAPSyncServerClassNumber_ContentsPlaySongInfoManager | EMusicAPSyncServerLocationNumber07;
_LIT(KContentsPlaySongInfoManager07, "SyncServerContentsPlaySongInfoManager::SetPlaySongImage File delete errot = %d");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KContentsPlaySongInfoManager07, ret);
}
//僼傽僀儖僒乕僶偲偺僙僢僔儑儞傪暵偠傞
fs.Close();
delete file;
log = EMusicAPSyncServerClassNumber_ContentsPlaySongInfoManager | EMusicAPSyncServerLocationNumber05;
_LIT(KContentsPlaySongInfoManager05, "SyncServerContentsPlaySongInfoManager::SetPlaySongImage Leave = %d");
SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KContentsPlaySongInfoManager05, error);
return error;
}
p->iSongItem = aSongItem;
p->iArtistTitle = NULL;
p->iAlbumTitle = NULL;
p->iSongTitle = NULL;
p->iFile = file;
//@@TRK10861 Add Start
//夋憸搊榐嵪傒
p->iImage = ETrue;
//嵞惗忣曬偼枹搊榐
p->iPlayInfo = EFalse;
//@@TRK10861 Add End
iPlaySong.Insert(p, 0);
//屆偄忣曬偼嶍彍偡傞
DeleteOldItem();
return KErrNone;
}
/**
* 夋憸偑懚嵼偡傟偽庢摼偡傞
* @param [in] aSongItem 嬋傾僀僥儉乮儕僗僩僴儞僪儖偲Index斣崋乯
* @param [in] aFile 夋憸僼傽僀儖偺惗惉僷僗乮僼儖僷僗偱僼傽僀儖柤傪巜掕乯
* @return 張棟寢壥 ETrue丗庢摼惉岟/EFalse丗庢摼幐攕
**/
TBool CSmbMusicAPSyncServerContentsPlaySongInfoManager::GetPlaySongImage(TSmbMusicAPSyncEngineItemIndex& aSongItem ,TDes& aFile)
{
TPlaySongInfoStr* p;
TInt cnt = iPlaySong.Count();
for(TInt i = 0; i < cnt; i++)
{
p = iPlaySong[i];
if((p->iSongItem.iIndex == aSongItem.iIndex) && (p->iSongItem.iListHandle == aSongItem.iListHandle))
{
//巜掕偝傟偨傾僀僥儉偼搊榐偝傟偰偄傞
// if(NULL != p->iFile)
//@@TRK10861 Add Start
//夋憸搊榐嵪傒
if(EFalse != p->iImage)
//@@TRK10861 Add End
{
//夋憸僼傽僀儖偑搊榐偝傟偰偄傞
aFile = *(p->iFile);
return ETrue;
}
//夋憸僼傽僀儖偼傑偩搊榐偝傟偰偄側偄
return EFalse;
}
}
//巜掕偝傟偨傾僀僥儉偼帺懱偑傑偩搊榐偝傟偰偄側偄
return EFalse;
}
/**
* 嵞惗嬋忣曬傪搊榐偡傞
* @param [in] aSongItem 嬋傾僀僥儉乮儕僗僩僴儞僪儖偲Index斣崋乯
* @param [in] aSongInfo 嬋忣曬乮僩乕僞儖嵞惗帪娫乯
* @param [in] aArtistTitle 嬋忣曬乮傾乕僥傿僗僩柤乯
* @param [in] aAlbumTitle 嬋忣曬乮傾儖僶儉柤乯
* @param [in] aSongTitle 嬋忣曬乮嬋僞僀僩儖乯
* @return 側偟
**/
void CSmbMusicAPSyncServerContentsPlaySongInfoManager::SetPlaySongInfoL(TSmbMusicAPSyncEngineItemIndex& aSongItem, const TInt& aTotalPlayTime,
const TDesC& aArtistTitle, const TDesC& aAlbumTitle, const TDesC& aSongTitle)
{
//CleanupStack::PushL偺僇僂儞僞
TInt pushCounter = 0;
HBufC* artist = NULL;
HBufC* album = NULL;
HBufC* song = NULL;
TInt leng = aArtistTitle.Length();
//僞僀僩儖偺挿偝偼0乣256傑偱偲偟傑偡
if( ( 0 < leng ) && (leng <= KSmMaxTitleLength))
{
//傾乕僥傿僗僩柤曐懚椞堟惗惉
artist = HBufC::NewL(leng);
CleanupStack::PushL(artist);
*artist = aArtistTitle;
pushCounter++;
}
leng = aAlbumTitle.Length();
//僞僀僩儖偺挿偝偼0乣256傑偱偲偟傑偡
if(( 0 < leng ) && (leng <= KSmMaxTitleLength))
{
//傾儖僶儉柤曐懚椞堟惗惉
album = HBufC::NewL(leng);
CleanupStack::PushL(album);
*album = aAlbumTitle;
pushCounter++;
}
leng = aSongTitle.Length();
//僞僀僩儖偺挿偝偼0乣256傑偱偲偟傑偡
if(( 0 < leng ) && (leng <= KSmMaxTitleLength))
{
//嬋僞僀僩儖柤曐懚椞堟
song = HBufC::NewL(leng);
CleanupStack::PushL(song);
*song = aSongTitle;
pushCounter++;
}
TPlaySongInfoStr* p = NULL;
TInt cnt = iPlaySong.Count();
for(TInt i = 0; i < cnt; i++)
{
p = iPlaySong[i];
//巜掕偝傟偨嬋傾僀僥儉偑婛偵搊榐嵪傒偱偁傟偽偦偺偵捛壛偡傞
if((p->iSongItem.iIndex == aSongItem.iIndex) && (p->iSongItem.iListHandle == aSongItem.iListHandle))
{
p->iArtistTitle = artist;
p->iAlbumTitle = album;
p->iSongTitle = song;
p->iTotalPlayTime = aTotalPlayTime;
//@@TRK10861 Add Start
//嵞惗忣曬搊榐嵪傒
p->iPlayInfo = ETrue;
//@@TRK10861 Add End
if(pushCounter > 0)
{
//Push偟偨暘栠偡
CleanupStack::Pop(pushCounter);
}
return;
}
}
//傑偩嬋忣曬偑搊榐偝傟偰偄側偗傟偽怴婯偵捛壛偡傞
p = new(ELeave)TPlaySongInfoStr;
p->iSongItem = aSongItem;
p->iArtistTitle = artist;
p->iAlbumTitle = album;
p->iSongTitle = song;
p->iTotalPlayTime = aTotalPlayTime;
p->iFile = NULL;
p->iItem = NULL;
//@@TRK10861 Add Start
//嵞惗忣曬搊榐嵪傒
p->iPlayInfo = ETrue;
//夋憸偼枹搊榐
p->iImage = EFalse;
//@@TRK10861 Add End
iPlaySong.Insert(p, 0);
if(pushCounter > 0)
{
//Push偟偨暘栠偡
CleanupStack::Pop(pushCounter);
}
//屆偄忣曬偼嶍彍偡傞
DeleteOldItem();
}
/**
* 嵞惗嬋忣曬傪庢摼偡傞
* @param [in] aSongItem 嬋傾僀僥儉乮儕僗僩僴儞僪儖偲Index斣崋乯
* @param [in,out] aSongInfo 嬋忣曬乮僩乕僞儖嵞惗帪娫乯
* @param [in,out] aArtistTitle 嬋忣曬乮傾乕僥傿僗僩柤乯
* @param [in,out] aAlbumTitle 嬋忣曬乮傾儖僶儉柤乯
* @param [in,out] aSongTitle 嬋忣曬乮嬋僞僀僩儖乯
* @return 張棟寢壥 ETrue丗庢摼惉岟/EFalse丗庢摼幐攕
**/
TBool CSmbMusicAPSyncServerContentsPlaySongInfoManager::GetPlaySongInfo(TSmbMusicAPSyncEngineItemIndex& aSongItem, TInt& aTotalPlayTime,
TDes& aArtistTitle, TDes& aAlbumTitle, TDes& aSongTitle)
{
TPlaySongInfoStr* p;
TInt cnt = iPlaySong.Count();
for(TInt i = 0; i < cnt; i++)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -