📄 smbmusicapsingleplayermodel.h
字号:
/*----------------------------------------------------------------------------*/
// Copyright (c) 2004 Sony Ericsson Mobile Communications Japan, Inc.
// All rights reserved.
/*----------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSinglePlayerModel.h
//
// Description:
// 儈儏乕僕僢僋堦嬋嵞惗僾儗僀儎儌僨儖僋儔僗僿僢僟
//
// Modify:
// 2006-07-07 僐乕僪惍棟 K3Hirono
// 2006-07-11 MW偲偺Disconnect慜張棟傪捛壛 K3Hirono
// 2006-07-12 嵞惗婜尷慜懳墳丒Disconnect廋惓 K3Hirono
// 2006-07-18 SuperDuke揹尮懳嶔偺偨傔丄壒検庢摼娭悢偺宍懺傪曄峏 K3Hirono
// 2006-10-11 ReleaseResource拞偵偱偒側偄摦嶌傪曄峏 K3Hirono
// 2006-10-30 CanCancelPlayFF(),CanCancelPlayFR()偺忦審傪廋惓(TRK12167)
// 嬛巭忦審偐傜嬋忣曬庢摼丒夋憸庢摼傪嶍彍 K3Hirono
//
// 2007-02-01 PTX824Start
// 2007-08-07 D_82400009845 NoImage夋憸庢摼僋儔僗傪捛壛
// 2007-10-02 D_82400016111
/*------------------------------------------------------------------------*/
// $NoKeywords: $
#ifndef SMBMUSICAPSINGLEPLAYERMODEL_H_
#define SMBMUSICAPSINGLEPLAYERMODEL_H_
#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h> // MW儔僀僽儔儕僋儔僀傾儞僩
#endif //__SMBMUSICMWLIBCLIENT_H__
#ifndef __SMBMUSICMWPLAYERIF_H__
#include <SmbMusicMWPlayerIF.h> // MW僾儗僀儎乕惂屼
#endif //__SMBMUSICMWPLAYERIF_H__
#ifndef SMBMUSICAPSINGLEPLAYERRSCCONTROLLER_H_
#include "SmbMusicAPSinglePlayerRscController.h" // 儕僜乕僗丒傾僾儕嫞崌娗棟
#endif //SMBMUSICAPSINGLEPLAYERRSCCONTROLLER_H_
#ifndef DCMMMAUDIOROUTINGCLIENT_H__
#include <DCMMMAudioRoutingClient.h> // 壒惡僷僗惂屼
#endif //DCMMMAUDIOROUTINGCLIENT_H__
#ifndef __SMBMUSICAPLIBDEF_H__
#include "SmbMusicAPLibImageDef.h" // APLib:夋憸庢摼
#endif //__SMBMUSICAPLIBDEF_H__
#ifndef SMBMUSICAPSINGLEPLAYERSTATE_H_
#include "SmbMusicAPSinglePlayerState.h" // 忬懺娗棟僋儔僗
#endif //SMBMUSICAPSINGLEPLAYERSTATE_H_
//ADD-S D_82400009845
#ifndef SMBMUSICAPSINGLEPLAYERIMAGE_H_
#include "SmbMusicAPSinglePlayerImage.h" //堦嬋嵞惗僕儍働僢僩夋憸庢摼僋儔僗(寢壥梡)
#endif //SMBMUSICAPSINGLEPLAYERIMAGE_H_
//ADD-E D_82400009845
SEMCJ_NAMESPACE_BEGIN
#ifndef SMBMUSICAPSINGLEPLAYER_HRH__
#include "SmbMusicAPSinglePlayer.hrh"
#endif //SMBMUSICAPSINGLEPLAYER_HRH__
class MSmbMusicAPSinglePlayerObserver;
class CSmbMusicAPSinglePlayerNotify;
class CSmbMusicAPSinglePlayerSongInfo;
class CSmbMusicAPSinglePlayerImage;
class CSmbMusicAPSinglePlayerGetDefaultImage; //ADD For D_82400009845
class CSmbMusicAPSinglePlayerDeleteItem;
class CSmbMusicAPSinglePlayerCreateSongItem;
class CSmbMusicAPSinglePlayerSetPlayContext;
class TSmbMusicAPSinglePlayerStateController;
class TSmbMusicMWPlayerOneSongContext;
class CSmbMusicAPSinglePlayerRecordPlayReport;
class CSmbMusicAPLibReportCounter;
///////////////////////////////////////////////////////////////////////////////
// CSmbMusicAPSinglePlayerModel
class CSmbMusicAPSinglePlayerModel :public CBase,
public DCM::MMMAudioRoutingClientObserver
{
enum TPanicCode
{
EISongItemIsNotNULL =0,
EICreateSongItemIsNotNULL,
EIDeleteItemIsNotNULL,
EIGetImageIsNotNULL,
EIDispSongInfoIsNotNULL,
EObserverIsNULL,
EClearPlayContextIsNotNULL,
EInvalidRequest
};
public:
class TLimitCntInfo
{
public:
/** 尰嵼傑偱偺嵞惗夞悢 */
TInt16 iPlayCount;
/** 惂尷夞悢 */
TInt16 iLimitCount;
};
public:
static CSmbMusicAPSinglePlayerModel* NewL(); // 僼傽僋僩儕娭悢
~CSmbMusicAPSinglePlayerModel(); // 僨僗僩儔僋僞
public:
void SetPowerSaving(); // 僾儗僀儎惂屼徣揹椡(尰嵼愝掕偟偨偄抣偲偟偰儊儞僶偱書偊偰偄傞傕偺傪愝掕乿)
void SetPowerSaving(TBool aBool); // 僾儗僀儎惂屼徣揹椡
void SetObserver(MSmbMusicAPSinglePlayerObserver* aObserver); // 僆僽僓乕僶偺愝掕
void DisconnectAllL(); // 偡傋偰偺僒乕僶偲偺愙懕傪愗抐偡傞
TBool DefaultMelodySetting(); // 拝怣壒側偳傪僨僼僅儖僩偺儊儘僨傿偵栠偡
void SetConfirmPlay(); // 墘憈妋擣偑昁梫側嬋傪墘憈偡傞偐偳偆偐
// 壒惡僷僗
void MmmarcoHandleEvent(DCM::TMMAudioRoutingEventPckg aAudioRoutingEventPckg); // 壒惡僷僗惂屼僀儀儞僩捠抦
void StopAudioRouting(); // 壒傪愗傞
// 僾儗僀儎乕惂屼
void PlayPrepareL(); // 墘憈弨旛
TInt PlayL(); // 捠忢墘憈
TInt PlayFF(); // 憗憲傝
TInt PlayFR(); // 憗栠偟
TInt SetSongHead(TBool aPause = EFalse); // 摢弌偟
TInt Pause(); // 嵞惗掆巭
TInt CancelPlayFF(); // 憗憲傝僉儍儞僙儖
TInt CancelPlayFR(); // 憗栠偟僉儍儞僙儖
TInt SetVolume(TUint aVolume); // 壒検愝掕
void SetMuteL(TBool aBool); // mute嵞惗偺愝掕
TInt InitialPlayerControlL(); // 僾儗僀儎乕惂屼僒乕僶乕傪弶婜忬懺偵栠偡
void DisconnectPlayerControlL(); // Player惂屼偲偺愙懕傪愗傞
TInt DisconnectPlayerControlForce(); // 僾儗僀儎乕惂屼偲偺愙懕傪嫮惂揑偵愗傞
// ActiveObject
// Start
void GetImageL(); // 僀儊乕僕庢摼
TInt GetDefaultImageL(); // NoImage庢摼 //ADD For D_82400009845
void DeleteItemL(); // DeleteItem
void DispSongInfoL(); // 昞帵梡嬋忣曬庢摼
void SetPlayContextL();
void CreateSongItemL();
void CountTimerResetForCPPlay();
void ReportCounterReset();
TBool SetAllocateResource();
void CancelInfoRequestAndRecordPlayReportForceL(); // Lib偵懳偡傞忣曬庢摼傪僉儍儞僙儖偟偰丄嵞惗棜楌婰榐傪峴偆 // ADD For D_82400016111
TSmbMusicAPSinglePlayerStateController* SinglePlayerStateInfo() const;
// RunL
void CreateSongItemCompleteL(TBool aIsFound); // CreateSongItem
void SetPlayContextCompleteL(TInt aErr); // SetPlayContext
void PlayerStateChangedL(TSmbMusicMWPlayerInfo aPlayerInfo); // SetNotify
void GetImageCompleteL(TGetImageResult aCanGetImage); // GetImage, GetDefaultImage //MOD For D_82400009845(堷悢傪TBool仺3state)
void DeleteItemCompleteL(TInt aErr); // DeleteItem
void DispSongInfoCompleteL(); // DispSongInfo
// Setter仌Getter
void SetInitialSettings(TSmbMusicAPSinglePlayerInitialSettings aInitialSettings); // 僾儗僀儎弶婜愝掕傪愝掕偡傞
TUint Volume() const; // 壒検傪庢摼偡傞
TBool IsSettingContentsInfoL() const; // 拝怣壒側偳偵愝掕偝傟偰偄傞偐偳偆偐
TBool IsExitPlayerAtLastFrame() const;// 嬋傪嵟屻傑偱墘憈偟偨偲偙傠偱丄僾儗僀儎傪廔椆偡傞偐偳偆偐
TInt PlayTime(TUint32& aTime); // 墘憈屻宱夁帪娫庢摼
CFbsBitmap* GetImage() const; // 僕儍働僢僩夋憸庢摼
CFbsBitmap* GetImage_m() const; // 僕儍働僢僩夋憸儅僗僋庢摼
CSmbMusicMWLibPlayingDispInfo* DispInfo() const; // 嬋忣曬庢摼
TBool IsConnectRsc() const; // 儕僜乕僗偲愙懕偝傟偰偄傞偐偳偆偐傪曉媝
void SetConnectRsc(TBool aBool); // 儕僜乕僗偲愙懕偝傟偰偄傞偐偳偆偐傪愝掕
void SetExitErrCode(TInt aErr); // 廔椆梫場偺僄儔乕僐乕僪傪愝掕偡傞(僨僼僅儖僩偼KErrNone)
TInt ExitErrCode() const; // 廔椆梫場偺僄儔乕僐乕僪傪庢摼偡傞
TBool Mute() const; // 儈儏乕僩拞偐偳偆偐傪庢摼偡傞
void InitialStartTime(); // 嵞惗奐巒帪娫傪愝掕偡傞
// TSmbMusicMWPlayerPlayState ServerState() const; // 僾儗僀儎乕惂屼僒乕僶偺忬懺傪庢摼偡傞
TUint32 StartTime() const; // 嵞惗奐巒帪娫偺庢摼
TBool IsCpPlay() const;
TUint64 SongId() const; // 嵞惗偟偰偄傞嬋偺嬋ID傪庢摼偡傞
TLimitCntInfo LimitCountInfo() const; // 嵞惗夞悢惂尷忣曬傪庢摼偡傞
static TInt RecordPlayReportCallBackL(TAny* aAny); // 嵞惗夞悢棜楌婰榐(僐乕儖僶僢僋娭悢梊掕)
void RecordPlayReportL(); // 旕摨婜梫媮敪峴
void RecordPlayReportForceL(TInt aInt); // 嵞惗夞悢婰榐(WaitForRequest) //MOD For D_82400016111
void RecordPlayReportCompleteL(); // 嵞惗夞悢棜楌婰榐姰椆
private:
CSmbMusicAPSinglePlayerModel(); // 僐儞僗僩儔僋僞
void ConstructL(); // 2nd僐儞僗僩儔僋僞
void DisconnectMWLib(); // 儈僪儖僂僃傾儔僀僽儔儕偲偺愙懕傪愗傞(嶍彍偼偟側偄)
// 僾儗僀儎惂屼
void SetSpeakerOut(); // MakeRequest 壒惡僷僗偺愝掕
void SetConfigL(); // 墘憈愝掕(壒検傕娷傔偰堦捠傝)
void ChangeServerStateL(TSmbMusicMWPlayerPlayState aNesState); // 僒乕僶偺忬懺偑曄壔偟偨
void SetErrCause(TSmbMusicMWPlayerPlayFailCause aCause); // 嵞惗晄壜嬋帪偺僄儔乕僐乕僪怳傝暘偗
TInt InitialPlayStateL(); // 僾儗僀忬懺傪掆巭忬懺偵偟丄曄峏捠抦梫媮傪僉儍儞僙儖偡傞
// 儊儞僶曄悢
DCM::CMMAudioRoutingClient* iAudioRouting; ///< 壒惡僷僗惂屼
MSmbMusicAPSinglePlayerObserver* iObserver; ///< 忬懺曄峏捠抦梡
// MW
RSmbMusicMWLibSession* iMWLibSession; ///< 儈僪儖僂僃傾儔僀僽儔儕
RSmbMusicMWPlayerSession* iPlayerSession; ///< 儈僪儖僂僃傾僾儗僀儎乕
CSmbMusicMWLibSongItem* iSongItem; ///< 嬋傾僀僥儉
TSmbMusicMWPlayerOneSongContext iOneSongContext; ///< 堦嬋嵞惗僐儞僥僋僗僩
// CActive
CSmbMusicAPSinglePlayerNotify* iNotify; ///< 僾儗僀儎忬懺曄峏捠抦
CSmbMusicAPSinglePlayerCreateSongItem* iCreateSongItem; ///< 嬋傾僀僥儉嶌惉
CSmbMusicAPSinglePlayerSetPlayContext* iSetPlayContext; ///< 嬋傾僀僥儉偺愝掕
CSmbMusicAPSinglePlayerImage* iGetImage; ///< 僕儍働夋憸庢摼
CSmbMusicAPSinglePlayerDeleteItem* iDeleteItem; ///< 嬋嶍彍梡
CSmbMusicAPSinglePlayerSongInfo* iDispSongInfo; ///< 昞帵梡嬋忣曬庢摼
CSmbMusicAPSinglePlayerRecordPlayReport* iRecordPlayReport; ///< 棜楌婰榐
CSmbMusicAPSinglePlayerGetDefaultImage* iGetDefaultImage; ///< DefaultImage //ADD For D_82400009845
TUint iVolume; ///< 壒検
TSmbMusicAPSinglePlayerInitialSettings iInitialSettings; ///< 弶婜愝掕(偍傛傃丄CreateSongItem忬懺)
TSmbMusicAPSinglePlayerStateController* iPlayerState; ///< 旕摨婜梫媮忬懺娗棟僼儔僌
TBool iCurrentPowerSavingMode; ///< 尰嵼丄愝掕拞偺徣揹椡儌乕僪
TBool iPowerSavingMode; ///< 愝掕偟偨偄徣揹椡儌乕僪(旕摨婜張棟偺偁偄偩帩偪夞傞偨傔)
TSmbMusicAPLibImageBitmap iJacketImage; ///< 僕儍働僢僩夋憸
TSmbMusicAPLibImageBitmap iSrcDefaultImage; ///< 曄姺慜NoImage僀儊乕僕
CSmbMusicMWLibPlayingDispInfo* iDispInfo; ///< 嬋忣曬
TBool iConnectRsc; ///< 儕僜乕僗偵愙懕偟偰偄傞偐偳偆偐
TBool iSpeakerOut; ///< 壒惡僷僗愝掕偑峴傢傟偰偄傞偐偳偆偐
TSmbMusicMWPlayerPlayState iServerState; ///< 僾儗僀儎惂屼僒乕僶偺忬懺
TInt iExitErrCode; ///< 僄儔乕廔椆帪偺梫場
TUint32 iStartTime; ///< 拞抐帪偺墘憈宱夁帪娫
TBool iSetMute; ///< 儈儏乕僩愝掕拞偐偳偆偐(EFalse:愝掕偟偰偄側偄)
TLimitCntInfo iLimitCountInfo; ///< 夞悢惂尷帪丄嵞惗夞悢/憤嵞惗夞悢
CSmbMusicAPLibReportCounter* iReportCounter; ///< 儗億乕僩僇僂儞僞僋儔僗
TSmbMusicMWPlayerInfo iPlayerInfo; ///< 捠抦撪梕
void ChangeStateL(); ///< ChangeState偺拞恎(僒乕僶忬懺曄峏捠抦帪張棟)
void ChangeStateInInitializingL(); ///< 弶婜壔張棟拞偺Changestate(僒乕僶忬懺曄峏捠抦帪張棟)
void StartPlayL(); ///< Changestete偺拞恎(壒柭摦奐巒帪張棟)
void HWAbortL(); ///< Changestate偺拞恎(HWAbort)
void FailSongL(); ///< ChangeState偺拞恎(嬋嵞惗幐攕)
void PosModifyL(); ///< ChangeState偺拞恎(PosModify)
void SetNotifyPlayerEventL(); ///< 僾儗僀儎乕忬懺曄峏捠抦梫媮
TInt ClearPlayContext(); ///< ClearContext傪僋儔僗偐傜娭悢傊
void UserConfirmL(); ///< ChangeState偺拞恎(儐乕僓妋擣捠抦)
void ChangeServerStatePauseL(); ///< 堦帪掆巭捠抦帪偺張棟
};
SEMCJ_NAMESPACE_END
#endif //SMBMUSICAPSINGLEPLAYERMODEL_H_
// end of SmbMusicAPSinglePlayerModel.h
/* Copyright (C) 2007Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -