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 + -
显示快捷键?