smbmusicapmainplayerplayproc.cpp
来自「symbian」· C++ 代码 · 共 1,024 行 · 第 1/3 页
CPP
1,024 行
break;
case ESmbMusicAPMainPlayerReqCancelPlayFR:
// 憗栠偟夝彍梫媮
// Change 2007.07.10
// iObserver->RespCancelPlayFRL((KErrNone == status) ? ETrue : EFalse);
iObserver->RespCancelPlayFRL(status);
// Change End 2007.07.10
break;
case ESmbMusicAPMainPlayerReqPlayNext:
// 嬋憲傝梫媮
iObserver->RespPlayNextL(status, iIndex);
break;
case ESmbMusicAPMainPlayerReqPlayPrev:
// 嬋栠偟梫媮
iObserver->RespPlayPrevL(status, iIndex);
break;
case ESmbMusicAPMainPlayerReqPlaySongHead:
// 摢弌偟梫媮
iObserver->RespPlaySongHeadL(status);
break;
case ESmbMusicAPMainPlayerReqSetVolume:
// 壒検愝掕梫媮
iObserver->RespSetVolumeL((KErrNone == status) ? ETrue : EFalse);
break;
case ESmbMusicAPMainPlayerReqGetPlayTime:
// 嵞惗宱夁帪娫庢摼梫媮
iObserver->RespGetPlayTimeL(iPlayTime, status);
break;
// PTX824
case ESmbMusicAPMainPlayerReqConfirmedPlay:
// 嵞惗妋擣
iObserver->RespConfirmedPlayL(status);
break;
default:
break;
}
}
/**
* 旕摨婜僉儍儞僙儖張棟
*/
void CSmbMusicAPMainPlayerPlayProc::DoCancel()
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::DoCancel iRequestKind=%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220005, ELogLevelNormal, KLogFmt, iRequestKind);
iRequestKind = ESmbMusicAPMainPlayerReqNone;
}
/**
* 旕摨婜張棟梫媮傪愝掕偡傞丅
* @param[in] aKind 摨婜僄儞僕儞傊偺張棟梫媮庬暿
*/
void CSmbMusicAPMainPlayerPlayProc::SetActiveRequest(TSmbMusicAPMainPlayerPlayRequest aKind)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::SetActiveRequest iRequestKind=%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220017, ELogLevelNormal, KLogFmt, aKind);
// Add 2007.08.01
if (ESmbMusicAPMainPlayerReqPlayNext == aKind ||
ESmbMusicAPMainPlayerReqPlayPrev == aKind
)
{
iInfoProc.CancelAction();
}
// Add End 2007.08.01
iRequestKind = aKind;
SetActive();
}
/**
* 嵞惗宯僀儀儞僩捠抦張棟
* 摨婜僄儞僕儞偐傜偺嵞惗宯僀儀儞僩捠抦偺張棟傪峴偆丅
* @param[in] aEvent 僀儀儞僩忣曬
*/
void CSmbMusicAPMainPlayerPlayProc::HandlePlayerEventL(TSmbMusicAPSyncEnginePlayerEvent& aEvent)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::HandlePlayerEventL type=%d cause=%d index=%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220018, ELogLevelNormal, KLogFmt, aEvent.iType, aEvent.iInfo.iCause, aEvent.iInfo.iIndex);
iObserver->NotifyPlayerEventL(aEvent);
}
/**
* 僐儞僥儞僣宯僀儀儞僩捠抦張棟
* 摨婜僄儞僕儞偐傜偺僐儞僥儞僣宯僀儀儞僩捠抦偺張棟傪峴偆丅
* @param[in] aEvent 僀儀儞僩忣曬
*/
void CSmbMusicAPMainPlayerPlayProc::HandleContentsEventL(TSmbMusicAPSyncEngineContentsEvent& aEvent)
{
iObserver->NotifyContentsEvent(aEvent);
}
/**
* 摨婜宯僀儀儞僩捠抦張棟
* 摨婜僄儞僕儞偐傜偺摨婜宯僀儀儞僩捠抦偺張棟傪峴偆丅
* @param[in] aEvent 僀儀儞僩忣曬
*/
void CSmbMusicAPMainPlayerPlayProc::HandleSyncEventL(TSmbMusicAPSyncEngineSyncEvent& aEvent)
{
iObserver->NotifySyncEventL(aEvent);
}
/**
* Music僾儗僀儎乕偵懳偡傞奜晹僀儀儞僩傪庴怣偡傞乮僒乕僶偐傜偺捠抦僀儀儞僩偺傒偙偺娭悢偱捠抦偡傞乯
* @param [out] aEvent 僀儀儞僩
* @return 側偟
*/
void CSmbMusicAPMainPlayerPlayProc::HandleExtraEventL(TSmbMusicAPSyncEngineExtraEvent& /*aEvent*/)
{
}
/**
* 旕摨婜張棟梫媮傪旕摨婜懸偪僉儏乕傊搊榐偡傞丅
* @param[in] aKind 摨婜僄儞僕儞傊偺張棟梫媮庬暿
*/
void CSmbMusicAPMainPlayerPlayProc::SetWaitQueue(TSmbMusicAPMainPlayerPlayRequest aKind)
{
TRAPD(err, SetWaitQueueL(aKind));
if (KErrNone != err)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::SetWaitQueue Failed");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220018, ELogLevelHigh, KLogFmt);
PANIC(9220018);
}
}
/**
* 旕摨婜張棟梫媮傪旕摨婜懸偪僉儏乕傊搊榐偡傞丅乮幚懱乯
* @param[in] aKind 摨婜僄儞僕儞傊偺張棟梫媮庬暿
*/
void CSmbMusicAPMainPlayerPlayProc::SetWaitQueueL(TSmbMusicAPMainPlayerPlayRequest aKind)
{
iWaitQueue->AppendL(aKind);
}
TSmbMusicAPMainPlayerPlayRequest CSmbMusicAPMainPlayerPlayProc::WaitQueue()
{
if (!iWaitQueue->Count())
{
return ESmbMusicAPMainPlayerReqNone;
}
TSmbMusicAPMainPlayerPlayRequest kind;
kind = static_cast<TSmbMusicAPMainPlayerPlayRequest>(iWaitQueue->At(0));
iWaitQueue->Delete(0);
return kind;
}
void CSmbMusicAPMainPlayerPlayProc::CheckWaitQueueL()
{
TSmbMusicAPMainPlayerPlayRequest kind = WaitQueue();
// 張棟庬暿敾掕
switch (kind)
{
case ESmbMusicAPMainPlayerReqPreparePlay:
// 嵞惗弨旛梫媮
iSyncEngine.PreparePlay(reinterpret_cast<const TSmbMusicAPSyncEngineItemIndex&>(iSaveSongInfo),
iSAveResume, iSaveAllShuffle, iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqPreparePlay);
break;
case ESmbMusicAPMainPlayerReqPlayStart:
// 嵞惗奐巒梫媮
iSyncEngine.Play(iPlayConfirm, iIndex, iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqPlayStart);
break;
case ESmbMusicAPMainPlayerReqPause:
// 堦帪掆巭梫媮
iSyncEngine.Pause(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqPause);
break;
case ESmbMusicAPMainPlayerReqStartPlayFF:
// 憗憲傝奐巒梫媮
iSyncEngine.PlayFF(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqStartPlayFF);
break;
case ESmbMusicAPMainPlayerReqCancelPlayFF:
// 憗憲傝夝彍梫媮
iSyncEngine.ReturnPlayFromFF(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqCancelPlayFF);
break;
case ESmbMusicAPMainPlayerReqStartPlayFR:
// 憗栠偟奐巒梫媮
iSyncEngine.PlayFR(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqStartPlayFR);
break;
case ESmbMusicAPMainPlayerReqCancelPlayFR:
// 憗栠偟夝彍梫媮
iSyncEngine.ReturnPlayFromFR(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqCancelPlayFR);
break;
case ESmbMusicAPMainPlayerReqPlayNext:
// 嬋憲傝梫媮
iSyncEngine.RequestNextSong(iIndex, iStatus, iNextCount);
SetActiveRequest(ESmbMusicAPMainPlayerReqPlayNext);
break;
case ESmbMusicAPMainPlayerReqPlayPrev:
// 嬋栠偟梫媮
iSyncEngine.RequestPrevSong(iIndex, iStatus, iPrevCount);
SetActiveRequest(ESmbMusicAPMainPlayerReqPlayPrev);
break;
case ESmbMusicAPMainPlayerReqPlaySongHead:
// 摢弌偟梫媮
iSyncEngine.RequestSongHead(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqPlaySongHead);
break;
case ESmbMusicAPMainPlayerReqSetVolume:
// 壒検愝掕梫媮
iSyncEngine.SetVolume(iSaveVolume, iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqSetVolume);
break;
case ESmbMusicAPMainPlayerReqGetPlayTime:
// 嵞惗宱夁帪娫庢摼梫媮
iSyncEngine.GetPlayTime(iPlayTime, iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqGetPlayTime);
break;
// PTX824
case ESmbMusicAPMainPlayerReqConfirmedPlay:
// 嵞惗妋擣
iSyncEngine.ConfirmedPlay(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqConfirmedPlay);
break;
default:
break;
}
}
// Add 2006.10.10 by sato
/**
* 僋儔僗惗惉
* @param[in] aMusicSyncEngine 摨婜僄儞僕儞
* @param[in] aLog RLog僆僽僕僃僋僩
* @param[in] aProc CSmbMusicAPMainPlayerPlayProc僀儞僗僞儞僗
* @return 惗惉偟偨CSmbMusicAPMainPlayerSetVolume僆僽僕僃僋僩
*/
CSmbMusicAPMainPlayerSetVolume* CSmbMusicAPMainPlayerSetVolume::NewL(
CSmbMusicAPSyncEngine& aMusicSyncEngine, RLog& aLog, CSmbMusicAPMainPlayerPlayProc& aProc)
{
CSmbMusicAPMainPlayerSetVolume* self = new(ELeave) CSmbMusicAPMainPlayerSetVolume(aMusicSyncEngine, aLog, aProc);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(); // self
return self;
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPMainPlayerSetVolume::~CSmbMusicAPMainPlayerSetVolume()
{
Cancel();
}
/**
* 僀儞僗僞儞僗惗惉
* CActive(EPriorityStandard)
* @param[in] aMusicSyncEngine 摨婜僄儞僕儞
* @param[in] aLog RLog僆僽僕僃僋僩
*/
CSmbMusicAPMainPlayerSetVolume::CSmbMusicAPMainPlayerSetVolume(
CSmbMusicAPSyncEngine& aMusicSyncEngine, RLog& aLog, CSmbMusicAPMainPlayerPlayProc& aProc)
: CActive(EPriorityStandard), iSyncEngine(aMusicSyncEngine), iLog(aLog), iProc(aProc)
{
}
/**
* 擇師僐儞僗僩儔僋僞
*/
void CSmbMusicAPMainPlayerSetVolume::ConstructL()
{
// 傾僋僥傿僽僗働僕儏乕儔傊搊榐
CActiveScheduler::Add(this);
}
/**
* 壒検愝掕傪梫媮偡傞丅
* @param aVolume 壒検愝掕僨乕僞
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerSetVolume::SetVolume(TInt aVolume)
{
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
ASSERT(EFalse);
}
// 壒検愝掕梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.SetVolume(aVolume, iStatus);
SetActive();
return ETrue;
}
/**
* 旕摨婜姰椆張棟
*/
void CSmbMusicAPMainPlayerSetVolume::RunL()
{
TInt status = iStatus.Int();
// 壒検愝掕梫媮
iProc.RespSetVolumeL((KErrNone == status) ? ETrue : EFalse, this);
}
/**
* 梫媮僉儍儞僙儖
*/
void CSmbMusicAPMainPlayerSetVolume::DoCancel()
{
// 梫媮撪梕偵偼僉儍儞僙儖偡傞API偑側偄偨傔丄摿偵壗傕偟側偄
}
// Add End 2006.10.10 by sato
SEMCJ_NAMESPACE_END
// end of SmbMusicAPMainPlayerPlayProc.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?