smbmusicapmainplayerplayproc.cpp

来自「symbian」· C++ 代码 · 共 1,024 行 · 第 1/3 页

CPP
1,024
字号

	if (EFalse != IsActive())
		{
		// 旕摨婜張棟拞偺応崌
		SetWaitQueue(ESmbMusicAPMainPlayerReqPlayPrev);
		iPrevCount = aCount;
		return ETrue;
		}
	
	// 嬋栠偟梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
	iSyncEngine.RequestPrevSong(iIndex, iStatus, aCount);
	SetActiveRequest(ESmbMusicAPMainPlayerReqPlayPrev);
	
	return ETrue;
	}

/**
 * 摢弌偟傪梫媮偡傞丅
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::PlaySongHead()
	{
	if (EFalse != IsActive())
		{
		// 旕摨婜張棟拞偺応崌
		SetWaitQueue(ESmbMusicAPMainPlayerReqPlaySongHead);
		return ETrue;
		}
	
	// 摢弌偟梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
	iSyncEngine.RequestSongHead(iStatus);
	SetActiveRequest(ESmbMusicAPMainPlayerReqPlaySongHead);
	
	return ETrue;
	}

/**
 * 壒検愝掕傪梫媮偡傞丅
 * @param aVolume 壒検愝掕僨乕僞
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::SetVolume(TInt aVolume)
	{
	// SetVolume梫媮偼忢偵怴偟偄active object傪惗惉丄梫媮傪峴偆
	CSmbMusicAPMainPlayerSetVolume* setAsyncVolume = CSmbMusicAPMainPlayerSetVolume::NewL(iSyncEngine, iLog, *this);

	// issues a setvolume request
	setAsyncVolume->SetVolume(aVolume);
	// append a pointer to active object to the array
	iVoluneSetterArray.AppendL(setAsyncVolume);
	return ETrue;
	}

/**
 * 摨婜僒乕僶傊偺壒検愝掕偺旕摨婜墳摎張棟
 * @parm aResult ETrue 愝掕偑惓忢丄EFlase 愝掕偑幐攕
 * @parm aAsyncVolume CSmbMusicAPMainPlayerSetVolume僀儞僗僞儞僗偺億僀儞僞
 */
void CSmbMusicAPMainPlayerPlayProc::RespSetVolumeL(TBool aResult, CSmbMusicAPMainPlayerSetVolume* aAsyncVolume)
	{
	TInt index = iVoluneSetterArray.Find(aAsyncVolume);
	ASSERT(index != KErrNotFound);
	ASSERT(EFalse == iVoluneSetterArray[index]->IsActive());

	if (KErrNotFound == index || EFalse != iVoluneSetterArray[index]->IsActive())
		{
		_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::RespSetVolumeL Failed index:%d, isActive():%d");
		SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220018, ELogLevelHigh, KLogFmt, index,iVoluneSetterArray[index]->IsActive());
		User::Leave(KErrNotFound);
		}

	// delete object
	delete iVoluneSetterArray[index];
	// delete item from the array
	iVoluneSetterArray.Remove(index);
	iObserver->RespSetVolumeL(aResult);
	}

/**
 * 壒埑儗儀儖庢摼奐巒傪MusicMW偵愝掕偡傞丅
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::StartSoundLevel()
	{
	// 壒埑儗儀儖庢摼奐巒傪摨婜僄儞僕儞偵敪峴偡傞丅
	TInt ret = iSyncEngine.SetSoundLevelMode(ETrue);
	
	return ((KErrNone == ret) ? ETrue : EFalse);
	}

/**
 * 壒埑儗儀儖傪庢摼偡傞丅
 * @param[out] aLeft 嵍僠儍僱儖偺壒埑
 * @param[out] aRight 塃僠儍僱儖偺壒埑
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::GetSoundLevel(TInt& aLeft, TInt& aRight)
	{
	// 壒埑儗儀儖傪庢摼傪摨婜僄儞僕儞偵敪峴偡傞丅
	TSmbMusicAPSyncEngineSoundLevel level;
	TInt ret = iSyncEngine.GetSoundLevel(level);
	
	if (KErrNone == ret)
		{
		aLeft = level.aLeftLevel;
		aRight = level.aRightLevel;
		return ETrue;
		}
	return EFalse;
	}

/**
 * 壒埑儗儀儖庢摼廔椆傪MusicMW偵愝掕偡傞丅
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::EndSoundLevel()
	{
	// 壒埑儗儀儖庢摼廔椆傪摨婜僄儞僕儞偵敪峴偡傞丅
	TInt ret = iSyncEngine.SetSoundLevelMode(EFalse);
	
	return ((KErrNone == ret) ? ETrue : EFalse);
	}

/**
 * 嵞惗宱夁帪娫庢摼傪梫媮偡傞丅
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::GetPlayTime()
	{
	if (EFalse != IsActive())
		{
		// 旕摨婜張棟拞偺応崌
		SetWaitQueue(ESmbMusicAPMainPlayerReqGetPlayTime);
		return ETrue;
		}
	
	// 嵞惗宱夁帪娫庢摼梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
	iSyncEngine.GetPlayTime(iPlayTime, iStatus);
	SetActiveRequest(ESmbMusicAPMainPlayerReqGetPlayTime);
	
	return ETrue;
	}

/**
 * 儗僕儏乕儉忣曬庢摼傪梫媮偡傞丅
 * @param[out] aInfo 儗僕儏乕儉忣曬奿擺椞堟
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::GetResumeInfo(TSmbMusicAPSyncEngineResumeInfo& aInfo)
	{
	return iSyncEngine.GetResumeInfo(aInfo);
	}

/**
 * 儗僕儏乕儉忣曬攋婞傪梫媮偡傞丅
 * @retval ETrue 張棟梫媮惉岟
 * @retval EFalse 張棟梫媮幐攕
 */
TBool CSmbMusicAPMainPlayerPlayProc::DeleteResumeInfo()
	{
	iSyncEngine.DeleteResumeInfo();
	return ETrue;
	}

/**
 * 昞帵忣曬曄峏捠抦傪梫媮偡傞丅
 * @param[in] aViewID 曄峏偟偨ViewID
 * @param[in] aItem 嬋傾僀僥儉忣曬
 * @param[in] aShuffle 慡嬋僔儍僢僼儖巜掕
 * @retval KErrNone 張棟梫媮惉岟
 * @retval 偦偺懠 張棟梫媮幐攕
 */
TInt CSmbMusicAPMainPlayerPlayProc::UpdateDisplayInfo(TSmbMusicAPPlayerChangeViewEvent aViewID, TSmbMusicAPSyncEngineItemIndex& aItem, TInt aShuffle)
	{
	TSmbMusicAPSyncEngineAppSyncInfo info;
	info.iParam1 = static_cast<TInt>(aViewID);
	if (ESmbMusicAPPlayerMannerModePlayEvent != aViewID)
		{
		info.iParam2 = aItem.iListHandle;
		if (ESmbMusicAPPlayerPlayViewChangeSongIndexEvent == aViewID ||
		    ESmbMusicAPPlayerPlayViewResourceErrorEvent   == aViewID		// 2006.09.30
		   )
			{
			info.iParam2 = aItem.iIndex;
			}
		else
			{
			info.iParam3 = aShuffle;
			}
		}
	return iSyncEngine.UpdateDisplayInfo(info);
	}

/**		2006.08.24
 * 僒僽僾儗僀儎乕偺儐乕僓憖嶌傪嬛巭偡傞丅
 * @param aReason HOLD棟桼
 */
void CSmbMusicAPMainPlayerPlayProc::HoldApp(TInt aReason)
	{
	iSyncEngine.HoldApp(aReason);
	}

/**		2006.08.24
 * 僒僽僾儗僀儎乕偺儐乕僓憖嶌嬛巭傪夝彍偡傞丅
 */
void CSmbMusicAPMainPlayerPlayProc::CancelHoldApp()
	{
	iSyncEngine.CancelHoldApp();
	}

/**
 * 摨婜僒乕僶傊偺梫媮傪僉儍儞僙儖偡傞丅
 */
void CSmbMusicAPMainPlayerPlayProc::CancelAction()
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::CancelAction iRequestKind=%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220005, ELogLevelNormal, KLogFmt, iRequestKind);

	iWaitQueue->Reset();
	}

// Add 2006.10.10  TRK:11261
/**
 * 摨婜僒乕僶傊偺憗憲傝傪僉儍儞僙儖偡傞丅
 */
void CSmbMusicAPMainPlayerPlayProc::ReturnPlayFromFF()
	{
	iSyncEngine.ReturnPlayFromFF();
	}
	
/**
 * 摨婜僒乕僶傊偺憗栠偟傪僉儍儞僙儖偡傞丅
 */
void CSmbMusicAPMainPlayerPlayProc::ReturnPlayFromFR()
	{
	iSyncEngine.ReturnPlayFromFR();
	}
// Add 2006.10.10  TRK:11261

/**
 * 摨婜僄儞僕儞傊偺張棟梫媮庬暿傪曉憲偡傞丅
 * @return	嵞惗宯張棟庬暿
 */
TSmbMusicAPMainPlayerPlayRequest CSmbMusicAPMainPlayerPlayProc::RequestKind()
	{
 	return iRequestKind;
	}

// PTX824懳墳
// Add 2007.03.20
/**
 * 嵞惗妋擣乮嵞惗夞悢惂尷嬋妋擣丄僌儗乕僗僺儕僆僪斖埻撪妋擣乯
 */
void CSmbMusicAPMainPlayerPlayProc::ConfirmedPlay()
	{
	if (EFalse != IsActive())
		{
		// 旕摨婜張棟拞偺応崌
		SetWaitQueue(ESmbMusicAPMainPlayerReqConfirmedPlay);
		return;
		}

	TInt ret = iSyncEngine.ConfirmedPlay(iStatus);
	if (ret == KErrNone)
		{
		SetActiveRequest(ESmbMusicAPMainPlayerReqConfirmedPlay);
		}
	}
// Add End 2007.03.20

/**
 * 旕摨婜姰椆張棟乮摨婜僄儞僕儞丄MusicAPLib丄MusicMWLib乯
 */
void CSmbMusicAPMainPlayerPlayProc::RunL()
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::RunL iStatus=%d iRequestKind=%d");
	SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220016, ELogLevelNormal, KLogFmt, iStatus.Int(), iRequestKind);
	
	TSmbMusicAPMainPlayerPlayRequest kind = iRequestKind;
	iRequestKind = ESmbMusicAPMainPlayerReqNone;
	TInt status = iStatus.Int();

	// Add 2006.10.20
	if (KErrServerTerminated == status)
		{
		iObserver->RespServerTerminatedL();
		return;
		}
	// Add End 2006.10.20

// Add 2007.09.11
	if (KErrPermissionDenied == status)
		{
		// 僒乕僶傾僋僙僗巊梡尃側偟
		iObserver->RespPermissionDenied(static_cast<TInt>(kind));
		return;
		}
// Add End 2007.09.11

	CheckWaitQueueL();
	
	// 張棟庬暿敾掕
	switch (kind)
		{
		case ESmbMusicAPMainPlayerReqPreparePlay:
			// 嵞惗弨旛梫媮
			iObserver->RespPreparePlayL(status);
			break;
		
		case ESmbMusicAPMainPlayerReqPlayStart:
			// 嵞惗奐巒梫媮
			iObserver->RespPlayStartL(status, iIndex);
			break;
		
		case ESmbMusicAPMainPlayerReqPause:
			// 堦帪掆巭梫媮
			iObserver->RespPlayStopL((KErrNone == status) ? ETrue : EFalse);
			break;
		
		case ESmbMusicAPMainPlayerReqStartPlayFF:
			// 憗憲傝奐巒梫媮
			iObserver->RespStartPlayFFL((KErrNone == status) ? ETrue : EFalse);
			break;
		
		case ESmbMusicAPMainPlayerReqCancelPlayFF:
			// 憗憲傝夝彍梫媮
// Change 2007.07.24
//			iObserver->RespCancelPlayFFL((KErrNone == status) ? ETrue : EFalse);
			iObserver->RespCancelPlayFFL(status);
// Change End 2007.07.24
			break;
		
		case ESmbMusicAPMainPlayerReqStartPlayFR:
			// 憗栠偟奐巒梫媮
			iObserver->RespStartPlayFRL((KErrNone == status) ? ETrue : EFalse);

⌨️ 快捷键说明

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