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

📄 smbmusicapsingleplayermodel.cpp

📁 symbian代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:

/**
 *	僕儍働僢僩夋憸Bitmap庢摼
 *
 *	@param 側偟
 *	@return CFbsBitmap*	僕儍働僢僩夋憸偺Bitmap
 */
CFbsBitmap* CSmbMusicAPSinglePlayerModel::GetImage() const
	{
	return iJacketImage.iMainBitmap;
	}

/**
 *	僕儍働僢僩夋憸儅僗僋Bitmap庢摼
 *
 *	@param 	側偟
 *	@return CDbsBitmap*	僕儍働僢僩夋憸偺儅僗僋Bitmap
 */
CFbsBitmap* CSmbMusicAPSinglePlayerModel::GetImage_m() const
	{
	return iJacketImage.iMaskedBitmap;
	}

/**
 *	嬋嶍彍姰椆屻張棟
 *
 *	@param	TInt aErr	KErrNone:嶍彍姰椆/偦偺懠:嶍彍偱偒側偐偭偨
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::DeleteItemCompleteL(TInt aErr)
	{
	CSmbMusicAPSinglePlayerAppUi* appui = static_cast<CSmbMusicAPSinglePlayerAppUi*>(CEikonEnv::Static()->EikAppUi());
	appui->SetAPResumeInfoDeleteIndicationL();

	iPlayerState->SetDeleteItemComplete();

	if(KErrNone != aErr)
		{
		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateDeleteItemFailed);
		}
	else
		{
		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateDeleteItem);
		}
	}

/**
 *	昞帵梡嬋忣曬庢摼屻張棟
 *
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::DispSongInfoCompleteL()
	{
	GetImageL();	//	昞帵梡嬋忣曬庢摼偵懕偄偰丄夋憸庢摼傪峴偆丅
	iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateDispSongInfoComplete);	
	}

////////////////////////getter//////////////////////////
/**
 *	壒検傪庢摼偡傞
 *	
 *	@param	側偟
 *	@return TUint	尰嵼偺壒検
 *	@memo	幚嵺偵MW僾儗僀儎乕惂屼偵愝掕偟偰偄傞壒検偱偼側偔丄壒傪柭傜偡帪揰偱愝掕偡傞梊掕偺壒検傪庢摼偡傞
 */
TUint CSmbMusicAPSinglePlayerModel::Volume() const
	{
	return iVolume;
	}

/**
 *	嵞惗奐巒屻宱夁帪娫庢摼
 *
 *	@param		TUint32	嵞惗奐巒屻宱夁帪娫
 *	@return 	TInt	KErrNone:惓忢廔椆/KErrNotReady:SuperDuke偺揹尮偑擖偭偰偄側偄/偦偺懠:憐掕奜
 */
TInt CSmbMusicAPSinglePlayerModel::PlayTime(TUint32& aTime)
	{
	//MOD-S D_82400005934	SuperDuke偺徣揹椡儌乕僪ON仺儕僜乕僗偲愙懕偟偰偄側偄偵曄峏
	if(EFalse == iConnectRsc)	//	儕僜乕僗偲愙懕偟偰偄側偄応崌偼丄弨旛偑偱偒偰偄側偄偲曉偡
	//MOD-E D_82400005934
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelLowest,_L("GetPlayTime NotReady"));
		aTime = StartTime();	//奐巒帪娫傪愝掕
		return KErrNotReady;
		}
	TInt ret = iPlayerSession->GetPlayTime(aTime);

//ADD-S D_82400014757
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelLowest,_L("GetPlayTime Err:%d playTime;%d startTime:%d"), ret, aTime, StartTime());
		aTime = StartTime();	//	ClearPlayContext屻
		}
//ADD-E D_82400014757

	return ret;
	}

/**
 *	墘憈拞偺嬋偑丄拝怣壒偦偺懠偵愝掕偝傟偰偄傞偐偳偆偐
 *	
 *	@param	側偟
 *	@return TBool	ETrue:愝掕偝傟偰偄傞/EFalse:愝掕偝傟偰偄側偄
 *	@memo	PTX810偱偼塣梡忋枹巊梡
 */
TBool CSmbMusicAPSinglePlayerModel::IsSettingContentsInfoL() const
	{
//	__UHEAP_FAILNEXT(1);	//?? CONE36
	return SmbMusicAPLibIsSettingFunc::IsSettingContentsInfoL(iInitialSettings.iContentsId);
	}

/**
 *	嵟廔僼儗乕儉傑偱墘憈偟偨帪揰偱丄僾儗僀儎傪廔椆偡傞偐偳偆偐
 *
 *	@param	側偟
 *	@return TBool	ETrue:廔椆/EFalse:廔椆偟側偄
 *	@memo	僽儔僂僓婲摦偐偦傟埲奜偐偲偄偆敾掕偵傕棙梡偟偰偄傞丅嵟廔僼儗乕儉偱廔椆=僽儔僂僓婲摦
 */
TBool CSmbMusicAPSinglePlayerModel::IsExitPlayerAtLastFrame() const
	{
	return iInitialSettings.iPlayEnd;
	}

/**
 *	僾儗僀儎偺弶婜忬懺傪愝掕偡傞
 *
 *	@param CSmbMusicAPSinglePlayerAppUi 	僾儗僀儎弶婜忬懺
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::SetInitialSettings(TSmbMusicAPSinglePlayerInitialSettings aInitialSettings)
	{
	iInitialSettings = aInitialSettings;
	}

/**
 *	儕僜乕僗偲愙懕偝傟偰偄傞偐偳偆偐傪庢摼偡傞
 *
 *	@param 側偟
 *	@return TBool	ETrue:MW僾儗僀儎乕惂屼儕僜乕僗偲愙懕偝傟偰偄傞/EFalse:愙懕偝傟偰偄側偄
 */
TBool CSmbMusicAPSinglePlayerModel::IsConnectRsc() const
	{
	return iConnectRsc;
	}
	
/**
 *	儕僜乕僗偲愙懕偟偰偄傞偐偳偆偐傪愝掕
 *
 *	@param TBool aBool EFalse:愙懕偟偰偄側偄/ETrue:愙懕偟偰偄傞
 *
 */
void CSmbMusicAPSinglePlayerModel::SetConnectRsc(TBool aBool)
	{
	iConnectRsc = aBool;
	}

/**
 *	夋柺昞帵忣曬傪曉偡
 *
 *	@param 側偟
 *	@return  CSmbMusicMWLibPlayingDispInfo*
 */
CSmbMusicMWLibPlayingDispInfo* CSmbMusicAPSinglePlayerModel::DispInfo() const
 	{
 	return iDispInfo;
 	}
 	
/**
 *	嬫娫嵞惗拞偐偳偆偐
 *
 *	@param 側偟
 *	@return TBool
 */
TBool CSmbMusicAPSinglePlayerModel::IsCpPlay() const
	{
	return iInitialSettings.iIsCpPlay;
	}

////////////////////////private/////////////////////////
//	僾儗僀儎惂屼//
/**
 *	墘憈弶婜愝掕傪峴偆
 *	@memo	屻偱徻嵶巇條廋惓丅Leave偝偣傞
 *	@param	側偟
 *	@return void
 */
#ifndef __SMBMUSICAP_DESABLE_SUPERDUKE__
void CSmbMusicAPSinglePlayerModel::SetConfigL()
	{
	//	DNormalizer
	TInt ret = KErrNone;

	ret = iPlayerSession->SetAutoLevel(KDNormalizer);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("SetConfig(SetAutoLevel) Err:%d"), ret);
		User::Leave(ret);
		}
	
	//	BASS
	ret = iPlayerSession->SetBass(KBASS);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("SetConfig(SetBASS) Err:%d"), ret);
		User::Leave(ret);
		}
		
	//	壒検愝掕
	ret = iPlayerSession->SetVolume(iVolume);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("SetConfig(Volume) Err:%d"), ret);
		User::Leave(ret);
		}

	//	僀僐儔僀僓
	TInt equalizer[KSmbMusicMWPlayerEqualizerArrayMaxNum];
	for(TInt i = 0; i < KSmbMusicMWPlayerEqualizerArrayMaxNum; i++)
		{
		equalizer[i] = KEqualizer[i];
		}
	ret = iPlayerSession->SetEqualizer(equalizer);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("SetConfig(Equalizer) Err:%d"), ret);
		User::Leave(ret);
		}

	//	儈儏乕僩
	ret = iPlayerSession->SetMute(KMute);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("SetConfig(Mute) Err:%d"), ret);
		User::Leave(ret);
		}
		
	//	VPT
	ret = iPlayerSession->SetSurround(KVPT);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("SetConfig(VPT) Err:%d"), ret);
		User::Leave(ret);
		}

	//	儕僺乕僩
	ret = iPlayerSession->SetRepeatMode(KRepeatMode);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("SetConfig(RepeatMode) Err:%d"), ret);
		User::Leave(ret);
		}
	}
#else
void CSmbMusicAPSinglePlayerModel::SetConfigL()
	{
	TInt ret = KErrNone;

	//	壒検愝掕
	ret = iAudioRouting->SetVolume(DCM_NAMESPACE::KMdaExtVolumeControlOff |
								   DCM_NAMESPACE::KMdaVolumeTypeNormal
								   | DCM_NAMESPACE::KMdaVolumeRangeLong
								   | iVolume);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelNormal,_L("SetConfig(Volume) Err:%d"), ret);
		User::Leave(ret);
		}

	//	儈儏乕僩
	ret = iAudioRouting->MuteSpeaker(KMute);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelNormal,_L("SetConfig(Mute) Err:%d"), ret);
		User::Leave(ret);
		}

	//	儕僺乕僩
	ret = iPlayerSession->SetRepeatMode(KRepeatMode);
	if(KErrNone != ret)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelNormal,_L("SetConfig(RepeatMode) Err:%d"), ret);
		User::Leave(ret);
		}
	}
#endif // __SMBMUSICAP_DESABLE_SUPERDUKE__


/**
 *	MW儔僀僽儔儕偲偺愙懕傪愗傞
 *
 *	@memo MOD824	NewClass(iRecordPlayReport)
 *	@param	側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::DisconnectMWLib()
	{
	if(NULL == iMWLibSession)
		{
		//	MWLib僋儔僀傾儞僩IF僋儔僗偑惗惉偝傟偰偄側偄忬懺側傜偽丄愙懕傪愗傞昁梫偼側偄
		//	埲壓偺delete傕丄惗惉帪偵昁偢MWLib僋儔僀傾儞僩IF僋儔僗丄傕偟偔偼丄SongItem(梫MWLib僋儔僀傾儞僩IF僋儔僗)偑昁梫
		return;
		}
	TInt count(0);	//	棜楌婰榐偑暋悢夞偁偭偨応崌偺夞悢
	TSmbMusicAPSinglePlayerLibRequestState::TLibRequest request(TSmbMusicAPSinglePlayerLibRequestState::ENone);
	TInt err = iPlayerState->GetCachedRequest(ETrue, request, count);
	SmbMusicAPSinglePlayerLog::OutputLogWithServerConnect(KModel, EModel, ELogLevelLowest,_L("LibCache:%d(%d)"),request, count);
		
	delete iCreateSongItem;
	iCreateSongItem = NULL;
	
	delete iGetImage;
	iGetImage = NULL;
	
	delete iDeleteItem;
	iDeleteItem = NULL;
	
	delete iDispSongInfo;	
	iDispSongInfo = NULL;
	
	delete iRecordPlayReport;
	iRecordPlayReport = NULL;
	
	delete iSongItem;
	iSongItem = NULL;

	iMWLibSession->Disconnect();
	}

/**
 *	僒乕僶偺忬懺曄壔帪偺張棟傪峴偆
 *
 *	@memo MOD824(儕僼傽僋僞儕儞僌)
 *	@param	TSmbMusicMWPlayerPlayState	怴婯僒乕僶忬懺
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::ChangeServerStateL(TSmbMusicMWPlayerPlayState aNewState)
	{
	iServerState = aNewState;

	switch(aNewState)
		{
		case ESmbMusicMWPlayerStatePause:	//	掆巭偑棃偨応崌
			{
			ChangeServerStatePauseL();
			break;
			}
			
		case ESmbMusicMWPlayerStatePlayFF:
			{
			iPlayerState->SetPlayFFState();
			break;
			}
		
		case ESmbMusicMWPlayerStatePlayFR:
			{
			iPlayerState->SetPlayFRState();
			break;
			}
		
		case ESmbMusicMWPlayerStatePlay:
			{
			iPlayerState->SetPlayState();
			
			break;
			}
			
		case ESmbMusicMWPlayerStateInitial:
			{
			iPlayerState->SetInitialState();
			break;
			}
		}
	}

/**
 *	僒乕僶忬懺曄峏捠抦(堦帪掆巭)帪偺嫟捠張棟
 *
 *	@memo MOD824 ForRecordPlayReportCounter
 *	@param 側偟
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::ChangeServerStatePauseL()
	{
	//	堦帪掆巭梫場偵傛偭偰応崌傢偗傪峴偆
	switch(iPlayerInfo.iModifyCause)
		{
		case ESmbMusicMWPlayerFFSongEnd:	///< 憗憲傝嵞惗拞偵嬋廔抂偵払偟偨
		case ESmbMusicMWPlayerListEnd:		///< 儕僗僩嵞惗姰椆傕偟偔偼1嬋嵞惗姰椆
			{
			iReportCounter->Reset(CSmbMusicAPLibReportCounter::EStart);
			break;
			}
		
		case ESmbMusicMWPlayerFRSongFront:	///< 憗栠偟嵞惗拞偵嬋愭摢偵払偟偨
			{/*
			TUint32 time(0);
			iPlayerSession->GetPlayTime(time);
			iReportCounter->Pause(time, CSmbMusicAPLibReportCounter::EPosition);
			*/
			iReportCounter->Reset(CSmbMusicAPLibReportCounter::EContinue);
			break;	
			}
			
		case ESmbMusicMWPlayerUserOperation:///< 棙梡幰偐傜偺梫媮
			{
			TUint32 time(0);
			TInt playtimeErr = iPlayerSession->GetPlayTime(time);
			TInt counterErr = iReportCounter->Pause(time, CSmbMusicAPLibReportCounter::EPause);
	
			if(KErrNone != counterErr || KErrNone != playtimeErr)
				{
				SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelLow,_L("ReportCounterPauseErr:%d(%d) playtimeErr:%d"), counterErr, iPlayerInfo.iModifyCause, playtimeErr);
				}
			break;
			}
			
		default:
			{
			SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelHigh,_L("ChangeState(Pause) cause:%d "), iPlayerInfo.iModifyCause);
			User::Leave(KErrArgument);
			break;
			}

⌨️ 快捷键说明

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