⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicapsingleplayermodel.h

📁 symbian代码
💻 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 + -