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

📄 smbmusicapsingleplayermodel.cpp

📁 symbian代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		{
		return KErrNotReady;
		}

	TInt ret = iPlayerSession->CancelPlayFF();

	if(KErrNone == ret)
		{
		TUint32 time(0);
		TInt playtimeErr = iPlayerSession->GetPlayTime(time);	//	憗憲傝僉儍儞僙儖梫媮偑KErrNotReady側偺偱帪娫庢摼偼壜擻.
		TInt counterErr = iReportCounter->Pause(time, CSmbMusicAPLibReportCounter::EPosition);

		if(KErrNone != counterErr || KErrNone != playtimeErr)
			{
			SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelLow,_L("ReportCounterPauseErr:%d(cancelPlayFF) playtime:%d"), counterErr, playtimeErr);
			}
		}
	else if(KErrNotReady == ret && ESmbMusicMWPlayerStatePlayFF == iServerState)
		{
		//	僒乕僶忬懺偑憗憲傝(MW僾儗僀儎乕惂屼偐傜偺捠抦偱愝掕)偱丄KErrNotReady偲偄偆偙偲偼
		//	偙偺屻丄Pause/ListEnd偑Notify偱棃傞丅僞僀儅偼丄偦偺帪偵Reset偡傞偨傔偙偙偼曻抲
		iPlayerState->CancelCancelPlayFFRequest();
		ret = KErrNone;
		}
	
	return ret;
	}

/**
 *	憗栠偟夝彍(仺捠忢嵞惗)
 *
 *	@memo MOD824(For PlayReport)
 *	@param	側偟
 *	@return TInt	KErrNone:幚峴/KErrNotReady:幚峴偝傟偰偄側偄
 */
TInt CSmbMusicAPSinglePlayerModel::CancelPlayFR()
	{
	if(EFalse == iPlayerState->SetCancelPlayFRRequest())
		{
		return KErrNotReady;
		}
		
	//	捠忢嵞惗傪巒傔傛偆偲偟偰偄傞
	TInt ret = iPlayerSession->CancelPlayFR();

	if(KErrNone == ret)
		{
		TUint32 time(0);
		TInt playtimeErr = iPlayerSession->GetPlayTime(time);	//	憗栠偟僉儍儞僙儖梫媮偑KErrNotReady側偺偱帪娫庢摼偼壜擻.
		TInt counterErr = iReportCounter->Pause(time, CSmbMusicAPLibReportCounter::EPosition);

		if(KErrNone != counterErr || KErrNone != playtimeErr)
			{
			SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelLow,_L("ReportCounterPauseErr:%d(cancelPlayFR) playtime:%d"), counterErr, playtimeErr);
			}
		}
	else if(KErrNotReady == ret && ESmbMusicMWPlayerStatePlayFR == iServerState)
		{
		//	僒乕僶忬懺偑憗栠偟(MW僾儗僀儎乕惂屼偐傜偺捠抦偱愝掕)偱丄KErrNotReady偲偄偆偙偲偼
		//	偙偺屻丄Pause/ListEnd偑Notify偱棃傞丅僞僀儅偼丄偦偺帪偵Reset偡傞偨傔偙偙偼曻抲
		iPlayerState->CancelCancelPlayFRRequest();
		ret = KErrNone;
		}
	return ret;
	}
	
/**
 *	壒検愝掕
 *
 *	@param	TUint aVolume	怴婯偵愝掕偡傞壒検
 *	@return	TInt			KErrorNone:惓忢廔椆
 */
TInt CSmbMusicAPSinglePlayerModel::SetVolume(TUint aVolume)
	{
	if(KMaxVolume < aVolume)	//	斖埻奜側傜偽(TUint側偺偱丄0埲忋偼専嵏側偟)
		{
		return KErrArgument;
		}
	
//DEL-S	D_82400015989
//	iVolume = aVolume;
//	TUint volume;
//	TInt  ret = iPlayerSession->GetVolume(volume);	//	壒検庢摼帪僄儔乕偑偁偭偨応崌丄壒検愝掕偵峴偐側偄
//
//	if(KErrNone == ret && iVolume != volume)
//		{
//		ret = iPlayerSession->SetVolume(aVolume);
//		}
//		
//	if(KErrNotReady == ret)	//	愙懕偟偰偄側偄側傜(壒検庢摼偱傕愝掕偱傕)丄僄儔乕偼側偄偙偲偵偡傞
//		{					//	墘憈奐巒帪(儕僜乕僗庢摼帪)偵丄儊儞僶偺抣偱壒検愝掕傪峴偆丅
//							//	偦偺偨傔丄偙偙偱愝掕偟側偔偲傕丄柕弬偼弌側偄
//		ret = KErrNone;	
//		}
//	else if(KErrArgument == ret)	//	斖埻寁嶼傪偟偰偄傞偺偩偐傜丄偦傟偼側偄偼偢偩偑擮偺偨傔
//		{
//		iVolume = volume;
//		}
//
//DEL-E

//ADD-S	D_82400015989
	if(aVolume == iVolume)
		{
		return KErrNone;
		}

#ifndef __SMBMUSICAP_DESABLE_SUPERDUKE__
	TInt ret = iPlayerSession->SetVolume(aVolume);
#else
	TInt ret = iAudioRouting->SetVolume(DCM_NAMESPACE::KMdaExtVolumeControlOff |
										DCM_NAMESPACE::KMdaVolumeTypeNormal
										| DCM_NAMESPACE::KMdaVolumeRangeLong
										| aVolume);
#endif

	if(KErrNotReady == ret)	//	愙懕偟偰偄側偄側傜(壒検庢摼偱傕愝掕偱傕)丄僄儔乕偼側偄偙偲偵偡傞
		{					//	墘憈奐巒帪(儕僜乕僗庢摼帪)偵丄儊儞僶偺抣偱壒検愝掕傪峴偆丅
							//	偦偺偨傔丄偙偙偱愝掕偟側偔偲傕丄柕弬偼弌側偄
		ret = KErrNone;	
		}

	if(KErrArgument != ret)		//斖埻堘斀偺応崌埲奜偼丄愝掕抣傪彂偒姺偊傞丅
		{						//KErrNotReady偺応崌(=NotConnect)偼師夞Connect帪偵愝掕偡傞偺偱儊儞僶偺抣傪曄峏偡傞
		iVolume = aVolume;
		}
//ADD-E	D_82400015989
	return ret;
	}

//////////////////////////////////////////
//	ActiveObject
//	Start
/**
 *	SetPlayContextL傪峴偆
 *
 *	@param 側偟
 *	@return void	
 */
void CSmbMusicAPSinglePlayerModel::SetPlayContextL()
	{	
	//	儕僜乕僗偲杮摉偵僐僱僋僩偟偰偄傞偐
	if(EFalse == IsConnectRsc())
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelLowest,_L("SetPlayContext Don't ConnectRSC"));
		PlayPrepareL();
		}
		
	//	旕摨婜張棟妋擣
	if(EFalse == iPlayerState->SetSetPlayContextRequest())	//	忋偺if傛傝丄偙偙偵擖偭偰偒偰偄傞偲偄偆偙偲偼丄SongItem偼偱偒偰偄傞
		{
		return;
		}
		//	偡偱偵嬋傾僀僥儉偑嶌傜傟偰偄傞偺偱丄SetPlayContext傪峴偆
	if(NULL == iSetPlayContext)
		{
		SmbMusicAPSinglePlayerLog::OutputLog(KModel, EModel, ELogLevelLowest,_L("SetPlayContext SetPlayContext is NULL"));
		iSetPlayContext = CSmbMusicAPSinglePlayerSetPlayContext::NewL(iPlayerSession, this);
		}
	
	//	堦嬋嵞惗梡僐儞僥僋僗僩
	iOneSongContext.iSongID = iInitialSettings.iSongId;
	iOneSongContext.iPlayStartTime = iStartTime;
	iOneSongContext.iPlayEndTime = iInitialSettings.iPlayEndTime;
	
	//MOD-S D_8240000430俈 堷悢曄峏
	//	夞悢惂尷傪専嵏偡傞帪偵偼丄僇僂儞僩傪僾儔僗偡傞偺偱丄摨偠傕偺傪搉偟偰偄傞
	TInt ret = iSetPlayContext->SetPlayContext(iOneSongContext, iInitialSettings.iCountPlayLimit, iInitialSettings.iCountPlayLimit, iInitialSettings.iLicenseCheck);
	//MOD-E D_8240000430俈
		
	if(KErrNotFound == ret)
		{
		iPlayerSession->CancelPlayContext();	//	SetPlayContext偑堎忢廔椆偟偨偺偱梫媮拞傪夝彍偡傞
		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateSongNotFound);	//	NotFound
		}
	else if(KErrNone != ret)
		{
		User::Leave(ret);	//SetPlayContextL偱曉抣偦偺傑傑偺儘僌偼揻偄偰偄傞偺偱丄偙偙偱偼揻偐側偔偰傕偄偄
		}
	}

/**
 *	嬋Item傪嶌惉偡傞
 *
 *	@param 側偟
 *	@return void
 */	
void CSmbMusicAPSinglePlayerModel::CreateSongItemL()
	{
	//	旕摨婜張棟妋擣
	if(EFalse == iPlayerState->SetCreateSongItemRequest())
		{
		__ASSERT_DEBUG( EFalse != iPlayerState->IsFinishedCreateSongItem(), User::Panic(KPanicCategory, EInvalidRequest));
		return;
		}
	
	//	弶夞暘偺iStartTime傪愝掕
	InitialStartTime();

	__ASSERT_DEBUG( NULL ==iCreateSongItem, User::Panic(KPanicCategory, EICreateSongItemIsNotNULL));
	__ASSERT_DEBUG( NULL ==iSongItem, User::Panic(KPanicCategory, EISongItemIsNotNULL));

	iCreateSongItem = CSmbMusicAPSinglePlayerCreateSongItem::NewL(*iMWLibSession, this);
	iSongItem = CSmbMusicMWLibSongItem::NewL();

	if(EContentsId == iInitialSettings.iCreateSongItemState)
		{
		iCreateSongItem->CreateSongItemL(iInitialSettings.iContentsId, *iSongItem);
		}
	else
		{
		iCreateSongItem->CreateSongItemL(iInitialSettings.iSongId, *iSongItem);
		}
	}
	
/**
 *	僕儍働夋憸庢摼
 *	@memo	屻偱廋惓
 *	@param	CFbsBitmap& aBitmap		僕儍働夋憸out
 *	@param	CFbsBitmap&	aBitmap_m	儅僗僋夋憸out
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::GetImageL()
	{
	if(EFalse == iPlayerState->SetGetImageRequest())
		{
		return;
		}
	
	__ASSERT_DEBUG( NULL ==iGetImage, User::Panic(KPanicCategory, EIGetImageIsNotNULL));

	iGetImage = CSmbMusicAPSinglePlayerImage::NewL(iMWLibSession,this,*iSongItem);
	iGetImage->GetImageL(iJacketImage);
	}
	

/**
 *	NoImage夋憸傪庢摼偡傞
 *
 *	@memo ADD For D_82400009845 
 *	@param 側偟
 *	@return void
 */
TInt CSmbMusicAPSinglePlayerModel::GetDefaultImageL()
	{
	iGetDefaultImage = CSmbMusicAPSinglePlayerGetDefaultImage::NewL(this, KSmbMusicBmpFileName, KNoImageId);
	return iGetDefaultImage->GetDefaultImage(iJacketImage);	
	}


/**
 *	嬋嶍彍
 *
 *	@param	側偟
 *	@void	void
 */
void CSmbMusicAPSinglePlayerModel::DeleteItemL()
	{
	if(EFalse == iPlayerState->SetDeleteItemRequest())
		{
//ADD-S D_82400016111
		if(EFalse == iPlayerState->IsExecRecordPlayReportRequest())
			{
//ADD-E D_82400016111
			iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateDeleteItemFailed);	//	嶍彍偱偒傑偣傫偱偟偨偺屻廔椆
//ADD-S D_82400016111
			}
//ADD-E D_82400016111
		return;
		}

	__ASSERT_DEBUG( NULL ==iDeleteItem, User::Panic(KPanicCategory, EIDeleteItemIsNotNULL));
	
	if(EFalse != IsSettingContentsInfoL())
		{
		DefaultMelodySetting();
		}

	iDeleteItem = CSmbMusicAPSinglePlayerDeleteItem::NewL(iMWLibSession, this);
	iDeleteItem->DeleteItemL(iSongItem);
	}


/**
 *	昞帵梡嬋忣曬庢摼
 *
 *	@memo MOD824 暋悢夞懳墳
 *	@param	側偟
 *	@void	void
 */
void CSmbMusicAPSinglePlayerModel::DispSongInfoL()
	{
	if(EFalse == iPlayerState->SetGetDispSongInfoRequest())
		{
		return;
		}
	
	delete iDispInfo;	//	暋悢夞懳墳
	iDispInfo = NULL;
	iDispInfo = CSmbMusicMWLibPlayingDispInfo::NewL();
	
	if(NULL == iDispSongInfo)
		{
		iDispSongInfo = CSmbMusicAPSinglePlayerSongInfo::NewL(iSongItem, this);
		}
		
	iDispSongInfo->DispSongInfoL(*iDispInfo);
	}


//	RunL
/**
 *	墘憈梡嬋傾僀僥儉偺嶌惉姰椆屻張棟
 *
 *	@param	TBool aIsFound	Efalse:嬋傾僀僥儉偑嶌惉偱偒側偐偭偨/ETrue:嶌惉偱偒偨
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::CreateSongItemCompleteL(TBool aIsFound)
	{
	if(EFalse != aIsFound)
		{
		if(ESongId == iInitialSettings.iCreateSongItemState)
			{
			iInitialSettings.iContentsId = iSongItem->ContentsId();
			}
		else if(EContentsId == iInitialSettings.iCreateSongItemState)
			{
			iSongItem->SongId(iInitialSettings.iSongId);
			}
		
		iInitialSettings.iCreateSongItemState = ENeedlessCreateSongItem;					//	嬋Item傪嶌傝廔傢偭偨
		
		//	棜楌婰榐僋儔僗嶌惉
		iRecordPlayReport = CSmbMusicAPSinglePlayerRecordPlayReport::NewL(iSongItem, this);
		
		//	CrateSongItem偑廔傢偭偨偺偱丄夋憸丒嬋忣曬偺庢摼偑幚峴偱偒傞(CreateSongItem偼堦嬋嵞惗偱偼堦搙偟偐幚峴偟側偄)
		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateCreateSongItemComplete);
		}
	else
		{
		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateSongNotFound);	//	NotFound
		}
	}


/**
 *	墘憈梡嬋傾僀僥儉愝掕姰椆屻張棟
 *
 *	@param	TInt aErr	KErrNone:惓忢廔椆/KErrNotFound:嬋傾僀僥儉偑懚嵼偟側偐偭偨/偦偺懠:憐掕奜偺僄儔乕
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::SetPlayContextCompleteL(TInt aErr)
	{	
	if(KErrNotFound == aErr)
		{
		//	偙偺傑傑丄廔椆偡傞
		iPlayerState->CancelSetPlayContextRequest();	//	堎忢廔椆
		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateSongNotFound);	//	NotFound
		}
	else if(KErrNone != aErr)
		{
		User::Leave(aErr);	//SetPlayContextL(RunL)偱曉抣偦偺傑傑偺儘僌偼揻偄偰偄傞偺偱丄偙偙偱偼揻偐側偔偰傕偄偄
		}
	else
		{
		//	惓忢側傜偽SetPlayContext姰椆傪忬懺娗棟僋儔僗偵愝掕偡傞
		iPlayerState->SetFinishedSetPlayContext();
		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateSetPlayContextComplete);	//SetPlayContext姰惉傪AppUi偵抦傜偣傞
		}
	}

		
/**
 *	僕儍働夋憸庢摼屻張棟
 *
 *	@param	TBool aCanGetImage	EFalse:庢摼偱偒側偐偭偨/ETrue:庢摼姰椆
 *	@return void
 */
void CSmbMusicAPSinglePlayerModel::GetImageCompleteL(TGetImageResult aCanGetImage)
	{
//ADD-S D_82400009845
	TGetImageResult result = aCanGetImage;
	if(ECannotGetImage == result)
		{
		if(KErrNone == GetDefaultImageL())
			{
			//	NoImage夋憸傪庢摼偟偰偔傞傑偱丄旕摨婜墳摎懸偪
			return;
			}
		else
			{
			result = ECannotGetDefaultImage;
			}
		}

	if(ECannotGetDefaultImage == result)
		{
		iGetDefaultImage->GetDefaultImageSrc(iJacketImage);	//	NoImage夋憸偺弅彫偵幐攕偟偨偺偱丄弅彫側偟偺NoImage夋憸傪愝掕偡傞
		}

	iPlayerState->GetLibInfoComplete();	
//	iPlayerState->SetCreateSongItemRequest();
	iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateGetImageComplete);	
//ADD-E D_82400009845

//DEL-S D_82400009845
//	if(EFalse == aCanGetImage)
//		{
//		delete iJacketImage.iMainBitmap;
//		iJacketImage.iMainBitmap = NULL;
//		delete iJacketImage.iMaskedBitmap;
//		iJacketImage.iMaskedBitmap= NULL;
//		
//		iJacketImage.iMainBitmap = new(ELeave)CFbsBitmap();
//		User::LeaveIfError(iJacketImage.iMainBitmap->Load(KSmbMusicBmpFileName, EMbmMusicMc_no_image));	//	僨僼僅儖僩夋憸愝掕
//		}
//	else
//		{
//		iPlayerState->GetLibInfoComplete();	
//		iPlayerState->SetCreateSongItemRequest();
//		iObserver->HandlePlayerEventL(ESmbMusicAPSinglePlayerStateGetImageComplete);	
//		}
//DEL-E D_82400009845
	}

⌨️ 快捷键说明

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