smbmusicapmainplayerplayproc.cpp
来自「symbian」· C++ 代码 · 共 1,024 行 · 第 1/3 页
CPP
1,024 行
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerPlayProc.cpp
//
// Description:
// 儈儏乕僕僢僋僾儗僀儎乕嵞惗宯偺摨婜僄儞僕儞惂屼僋儔僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/13 |K3拞堜 | 弶斉儕儕乕僗
//2006/07/06 |K3拞堜 | RequestKind()捛壛
//2006/07/10 |K3拞堜 | 傾僋僥傿僽拞偺張棟梫媮傪曐棷偡傞丅
//2006/07/14 |K3拞堜 | 僕儍働僢僩夋憸庢摼張棟傪曄峏
//2006/07/17 |K3拞堜 | [TRK:4057]僕儍働僢僩夋憸庢摼張棟傪曄峏
//2006/07/19 |K3拞堜 | 僕儍働僢僩夋憸庢摼張棟丄價僢僩儅僢僾曄姺張棟傪曄峏
//2006/07/24 |K3拞堜 | 夋憸枃悢庢摼張棟偺晄嬶崌傪廋惓
//2006/07/27 |K3拞堜 | 夋憸枃悢庢摼張棟偺晄嬶崌傪廋惓(2)
//2006/07/28 |K3拞堜 | 忬懺曄壔捠抦偵儗僕儏乕儉忣曬傪捛壛
//2006/07/31 |K3拞堜 | 價僢僩儅僢僾曄姺張棟偺曄峏
//2006/07/31 |K3拞堜 | 夋憸忣曬庢摼墳摎張棟偺曄峏
//2006/08/03 |K3拞堜 | RunL()張棟傪曄峏
//2006/08/03 |K3拞堜 | ConvertImage()偺栠傝抣傪専嵏偡傞傛偆偵懳張
//2006/08/11 |K3拞堜 | TRK:6212 摢弌偟帪偵嵞惗惂尷僆乕僶乕偲側偭偨応崌偺懳張
//2006/08/17 |K3拞堜 | CancelAction()偱梫媮懸偪僉儏乕傪儕僙僢僩
//2006/08/23 |K3拞堜 | TRK:7039懳墳 嵞惗嬋愗懼偊帪偺嵞惗弨旛姰椆偱僒僽僾儗僀儎乕偵Mute忬懺傪捠抦偡傞丅
//2006/08/23 |K3拞堜 | TRK:7118懳墳 嬋曄峏帪偺僀儞僨僢僋僗斣崋捠抦偺晄嬶崌傪懳張
//2006/08/24 |K3拞堜 | HOLD梫媮乛夝彍儊僜僢僪傪捛壛
//2006/09/07 |K3戝嫶 | CancelConvertImage()帪偺儊儌儕儕乕僋懳嶔
//2006/09/12 |K3拞堜 | 嵞惗嬋忣曬庢摼墳摎偺堷悢傪曄峏
//2006/09/13 |K3拞堜 | 僨僼僅儖僩夋憸偺傾僀僐儞梡價僢僩儅僢僾曄姺張棟傪嶍彍
//2006/09/20 |K3拞堜 | TRK:7935懳墳 RespGetImageNum()偺堷悢偵SDBind妝嬋僼儔僌傪捛壛
//2006/09/25 |K3拞堜 | StartPlay()丄Play()偺堷悢傪曄峏
//2006/09/26 |K3拞堜 | RespPlay()偺堷悢傪曄峏
//2006/09/29 |K3拞堜 | TRK:7935 GetImageCount儊僜僢僪偺巇條曄峏懳墳
//2006/09/30 |K3拞堜 | CancelGetPlaySongImage()傊偺曄峏
//2006/10/01 |K3拞堜 | GetListType()儊僜僢僪捛壛丄摨婜僒乕僶偺僉儍儞僙儖張棟偺曄峏
//2006/10/10 |K3拞堜 | RequestKind() 傪 GetRequestKind()偵曄峏
//2006/10/10 |K3拞堜 | SetVolume()梫媮偼偦偺搒搙active object惗惉偟偰摨婜僒乕僶偵梫媮傪峴偆
//2006/10/11 |K3拞堜 | ReturnPlayFormFF(), ReturnPlayFormFR() 捛壛
//2006/10/14 |K3拞堜 | DoCancel()偺張棟傪嶍彍
//2006/10/20 |K3拞堜 | 摨婜僒乕僶偐傜偺KErrServerTerminated傪捠抦偝傟偨帪偺張棟傪捛壛
//2006/10/27 |K3拞堜 | TRK:11935 僨僗僩儔僋僞偱摨婜僒乕僶偺Cancel()傪峴傢側偄
//2006/11/06 |K3拞堜 | TRK:12335 僨僗僩儔僋僞偱摨婜僒乕僶偺Cancel()傪峴偆
/// 嵞惗宯摨婜僄儞僕儞惂屼僋儔僗
/**
* @file SmbMusicAPMainPlayerPlayProc.cpp
*
* 儈儏乕僕僢僋僾儗僀儎乕嵞惗宯偺摨婜僄儞僕儞惂屼僋儔僗
*/
#include "SmbMusicAPMainPlayerPlayDebug.h"
#ifndef __SMBMUSICAPMAINPLAYERUTILITY_H__
#include "SmbMusicAPMainPlayerUtility.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERPLAYPROC_H__
#include "SmbMusicAPMainPlayerPlayProc.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERPLAYINFOPROC_H__
#include "SmbMusicAPMainPlayerPlayInfoProc.h"
#endif
SEMCJ_NAMESPACE_BEGIN
USING_NAMESPACE_DCM
/**
* 僋儔僗惗惉
* @param[in] aInfoProc 嬋忣曬張棟僄儞僕儞
* @param[in] aMusicSyncEngine 摨婜僄儞僕儞
* @param[in] aLog RLog僆僽僕僃僋僩
* @return 惗惉偟偨CSmbMusicAPMainPlayerPlayProc僆僽僕僃僋僩
*/
CSmbMusicAPMainPlayerPlayProc* CSmbMusicAPMainPlayerPlayProc::NewL(CSmbMusicAPMainPlayerPlayInfoProc & aInfoProc, CSmbMusicAPSyncEngine& aMusicSyncEngine, RLog& aLog)
{
CSmbMusicAPMainPlayerPlayProc* self = new(ELeave) CSmbMusicAPMainPlayerPlayProc(aInfoProc, aMusicSyncEngine, aLog);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(); // self
return self;
}
/**
* 僀儞僗僞儞僗惗惉
* CActive(EPriorityStandard)
* @param[in] aInfoProc 嬋忣曬張棟僄儞僕儞
* @param[in] aMusicSyncEngine 摨婜僄儞僕儞
* @param[in] aLog RLog僆僽僕僃僋僩
*/
CSmbMusicAPMainPlayerPlayProc::CSmbMusicAPMainPlayerPlayProc(CSmbMusicAPMainPlayerPlayInfoProc & aInfoProc, CSmbMusicAPSyncEngine& aMusicSyncEngine, RLog& aLog)
: CActive(EPriorityStandard), iInfoProc(aInfoProc), iSyncEngine(aMusicSyncEngine), iLog(aLog)
{
}
/**
* 擇師僐儞僗僩儔僋僞
*/
void CSmbMusicAPMainPlayerPlayProc::ConstructL()
{
// 傾僋僥傿僽僗働僕儏乕儔傊搊榐
CActiveScheduler::Add(this);
iSyncEngine.AppendEngineObserver(this);
iWaitQueue = new(ELeave) CArrayFixFlat<TSmbMusicAPMainPlayerPlayRequest>(16);
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPMainPlayerPlayProc::~CSmbMusicAPMainPlayerPlayProc()
{
// 旕摨婜張棟傪僉儍儞僙儖
// Add 2006.11.06 TRK:12335
Cancel();
iSyncEngine.RemoveEngineObserver(this);
iWaitQueue->Reset();
delete iWaitQueue;
// Add 2006.10.10 by sato
iVoluneSetterArray.ResetAndDestroy();
iVoluneSetterArray.Close();
// Add End 2006.10.10 by sato
}
/**
* 僐儅儞僪張棟僆僽僓乕僶搊榐
* @param[in] aObserver 僐儅儞僪張棟僆僽僓乕僶僋儔僗
*/
void CSmbMusicAPMainPlayerPlayProc::SetObserver(MSmbMusicAPMainPlayerPlayObserver* aObserver)
{
iObserver = aObserver;
}
/**
* 嵞惗弨旛傪梫媮偡傞丅
* @param aPlaySongInfo 嵞惗儕僗僩忣曬
* @param aAllShuffle 慡嬋僔儍僢僼儖巜掕乮ETrue:慡嬋僔儍僢僼儖乯
* @param[in] aResume 儗僕儏乕儉嵞惗巜掕乮ETrue:儗僕儏乕儉嵞惗乯
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::PreparePlay(TSmbMusicAPSyncEngineItemIndex aPlaySongInfo, TBool aAllShuffle, TBool aResume)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPlayProc::PreparePlay ListHandle=%X index=%d shuffle=%d resume%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 220102, ELogLevelNormal, KLogFmt, aPlaySongInfo.iListHandle, aPlaySongInfo.iIndex, aAllShuffle, aResume);
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
iSaveSongInfo = aPlaySongInfo;
iSaveAllShuffle = aAllShuffle;
iSAveResume = aResume;
SetWaitQueue(ESmbMusicAPMainPlayerReqPreparePlay);
return ETrue;
}
// 嵞惗弨旛梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.PreparePlay(reinterpret_cast<const TSmbMusicAPSyncEngineItemIndex&>(aPlaySongInfo),
aResume, aAllShuffle, iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqPreparePlay);
return ETrue;
}
/**
* 嵞惗奐巒傪梫媮偡傞丅
* @param [in] aPlayConfirm 嵞惗奐巒帪偺儐乕僓妋擣乮儅僫乕儌乕僪愝掕帪偺傒桳岠乯 2006.09.25
* @param [in] aAutoResume ETrue:僆乕僩儗僕儏乕儉偵傛傞嵞惗 Add 2007.09.04
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::PlayStart(TBool aPlayConfirm, TBool aAutoResume/* = EFalse*/)
{
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
iPlayConfirm = aPlayConfirm; // 2006.09.25
SetWaitQueue(ESmbMusicAPMainPlayerReqPlayStart);
return ETrue;
}
// 嵞惗奐巒梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.Play(aPlayConfirm, iIndex, iStatus, aAutoResume);
SetActiveRequest(ESmbMusicAPMainPlayerReqPlayStart);
return ETrue;
}
/**
* 堦帪掆巭傪梫媮偡傞丅
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::Pause()
{
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
SetWaitQueue(ESmbMusicAPMainPlayerReqPause);
return ETrue;
}
// 堦帪掆巭梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.Pause(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqPause);
return ETrue;
}
/**
* 憗憲傝奐巒傪梫媮偡傞丅
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::StartPlayFF()
{
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
SetWaitQueue(ESmbMusicAPMainPlayerReqStartPlayFF);
return ETrue;
}
// 憗憲傝奐巒梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.PlayFF(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqStartPlayFF);
return ETrue;
}
/**
* 憗憲傝夝彍傪梫媮偡傞丅
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::CancelPlayFF()
{
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
SetWaitQueue(ESmbMusicAPMainPlayerReqCancelPlayFF);
return ETrue;
}
// 憗憲傝夝彍梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.ReturnPlayFromFF(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqCancelPlayFF);
return ETrue;
}
/**
* 憗栠偟奐巒傪梫媮偡傞丅
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::StartPlayFR()
{
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
SetWaitQueue(ESmbMusicAPMainPlayerReqStartPlayFR);
return ETrue;
}
// 憗栠偟奐巒梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.PlayFR(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqStartPlayFR);
return ETrue;
}
/**
* 憗栠偟夝彍傪梫媮偡傞丅
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::CancelPlayFR()
{
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
SetWaitQueue(ESmbMusicAPMainPlayerReqCancelPlayFR);
return ETrue;
}
// 憗栠偟夝彍梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.ReturnPlayFromFR(iStatus);
SetActiveRequest(ESmbMusicAPMainPlayerReqCancelPlayFR);
return ETrue;
}
// PTX824懳墳
/**
* 嬋憲傝傪梫媮偡傞丅
* @param aCount 嬋憲傝偡傞嬋悢 2007.03.23
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::PlayNext(TInt aCount)
{
if (KSmbMusicAPSyncEngineMaxSongMovement < aCount)
{
aCount = KSmbMusicAPSyncEngineMaxSongMovement;
}
if (EFalse != IsActive())
{
// 旕摨婜張棟拞偺応崌
SetWaitQueue(ESmbMusicAPMainPlayerReqPlayNext);
iNextCount = aCount;
return ETrue;
}
// 嬋憲傝梫媮傪摨婜僄儞僕儞偵敪峴偡傞丅
iSyncEngine.RequestNextSong(iIndex, iStatus, aCount);
SetActiveRequest(ESmbMusicAPMainPlayerReqPlayNext);
return ETrue;
}
// PTX824懳墳
/**
* 嬋栠偟傪梫媮偡傞丅
* @param aCount 嬋栠偟偡傞嬋悢 2007.03.23
* @retval ETrue 張棟梫媮惉岟
* @retval EFalse 張棟梫媮幐攕
*/
TBool CSmbMusicAPMainPlayerPlayProc::PlayPrev(TInt aCount)
{
if (KSmbMusicAPSyncEngineMaxSongMovement < aCount)
{
aCount = KSmbMusicAPSyncEngineMaxSongMovement;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?