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

📄 smbmusicapsonginfomodel.h

📁 索爱手机代码
💻 H
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSongInfoModel.h
//
// Description:
//	儈儏乕僕僢僋梡徻嵶忣曬昞帵儌僨儖僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/04/14		|SEMCJ嬥岝		|怴婯嶌惉
//2006/09/28		|SEMCJ憊		|SD_Bind僼僅儖僟撪偺UIM幚峴惂尷僼傽僀儖偺堦晹昞帵崁栚傪屌掕崁栚偵偡傞傛偆懳墳(i-keeper TRK No.4227懳墳)
//2006/09/28		|SEMCJ憊		|旕僒億乕僩僐儞僥儞僣偺徻嵶忣曬昞帵偵幐攕偡傞嵺偵丄僄儔乕僟僀傾儘僌傪昞帵偡傞張棟傪捛壛(i-keeper TRK No.5785懳墳)
//2006/09/28		|SEMCJ憊		|SD僶僀儞僪僐儞僥儞僣偵偰丄僿僢僟堎忢偺僐儞僥儞僣偺徻嵶忣曬昞帵偵幐攕偡傞嵺偵丄僄儔乕僟僀傾儘僌傪昞帵偡傞張棟傪捛壛(i-keeper TRK No.7438懳墳)
//2007/04/06		|SEMCJ汭弐		|徻嵶忣曬曇廤偺捛壛
//2007/04/10		|SEMCJ汭弐		|嵞惗晄壜嬋偺拝怣壒愝掕晄壜偺懳墳偺偨傔丄CSmbMusicMWLibSongItem::FilePath偱庢摼偺暥帤楍傪TSmbMusicAPSongInfoDetailInfomation偵捛壛
//2007/07/05		|SEMCJ汭弐		|CSmbMusicAPSongInfoReflectEditInfoAPIItem偵戙傢傝偨傔丄CSmbMusicAPSongInfoUpdateInfoAPIItem傪嶍彍

#ifndef __SMBMUSICAPSONGINFOMODEL_H__
#define __SMBMUSICAPSONGINFOMODEL_H__

#ifndef __SMBCOMMONDEF_H__
#include <SmbCommonDef.h>
#endif

#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h>
#endif

#include "SmbMusicAPSongInfoInternalInterface.h"

SEMCJ_NAMESPACE_BEGIN
class CSmbMusicAPSongInfoNotifyAPIItem;
class CSmbMusicAPSongInfoCreateAPIItem;
class CSmbMusicAPSongInfoGetDetailInfoAPIItem;
class CSmbMusicAPSongInfoGetPlayDispInfoAPIItem;
//DEL-S 汭弐 PTX824偱偼CSmbMusicAPSongInfoReflectEditInfoAPIItem偵戙傢傝傑偟偨
//class CSmbMusicAPSongInfoUpdateInfoAPIItem;
//DEL-E 汭弐
//ADD-S 汭弐 徻嵶忣曬曇廤偺捛壛
class CSmbMusicAPSongInfoGetEditInfoAPIItem;
class CSmbMusicAPSongInfoReflectEditInfoAPIItem;
//ADD-E 汭弐

/**
 * 徻嵶忣曬娗棟峔憿懱
 */
struct TSmbMusicAPSongInfoDetailInfomation
	{
	/** 嬋傾僀僥儉偺徻嵶忣曬(嬋嵞惗拞忣曬) */
//	CSmbMusicMWLibPlayingDispInfo* iDispSongInfo;  //DEL by MAEJI
	/** 嬋傾僀僥儉偺徻嵶忣曬(徻嵶忣曬) */
	CSmbMusicMWLibDetailSongInfo* iDetailSongInfo;
	/** 價僢僩儗乕僩 */
	TInt32 iBitRate;
	/** 奿擺応強忣曬 */
	TSmbMusicMWLibWhereabouts iWhereabouts;
	/** 晄姰慡僐儞僥儞僣忣曬(ETrue丗晄姰慡) */
	TBool iIncompleteContents;
	/** 僐儞僥儞僣ID */
	TInt iContentsId;
//ADD-S 憊 TRK4227
	/**  UIM揔崌忣曬 */
	TSmbMusicMWLibUimConformity iUimInfo;
//ADD-E
//ADD-S 汭弐  嵞惗晄壜嬋偺拝怣壒愝掕晄壜偺懳墳
	  const TDesC* iFilePath;
//ADD-E
//ADD-S 汭弐  徻嵶忣曬曇廤傪懳墳偨傔偺捛壛
	/** 嬋ID */
	  TUint64 iSongId;
	/** 曇廤偟偨崁栚敾掕梡價僢僩 */
	  TUint iEditPattern;
//ADD-E
	};

/**
 * API庬暿
 */
enum TSmbMusicAPSongInfoAPIKind
	{
	ECreateAPI = 0,		//嬋傾僀僥儉惗惉API
	EGetDetailAPI,		//徻嵶忣曬庢摼API
//	EGetDispAPI,		//嬋嵞惗拞忣曬庢摼API  //DEL by MAEJI
//DEL-S 汭弐 PTX824偱偼EReflectEditInfoAPI偵戙傢傝傑偟偨
//	EUpdateAPI,			//徻嵶忣曬峏怴API
//DEL-E 汭弐
//ADD-S 憊 TRK5785,TRK7438
	EGetDetailFail,		//徻嵶忣曬庢摼幐攕	
//ADD-E	
//ADD-S 汭弐 徻嵶忣曬曇廤偺捛壛
	EGetEditInfoAPI,		//徻嵶忣曬曇廤椞堟庢摼API
	EReflectEditInfoAPI	//徻嵶忣曬曇廤斀塮API
//ADD-E 汭弐
	};

/**
 * 儌僨儖曄峏棟桼
 */
enum TSmbMusicAPSongInfoChangeModelReason
	{
	EGetDetailInfo = 0,		//庢摼梫媮偵懳偟偰傾僀僥儉偺庢摼偑姰椆偟偨
	EUpdateDetailInfo,		//帺傾僾儕偺峏怴張棟偵傛傝徻嵶忣曬偑峏怴偝傟偨
	EItemDelete,				//懳徾嬋偑嶍彍丒堏摦偝傟偨
//ADD-S 憊 TRK5785,TRK7438
	EInvalidSong,			//旕僒億乕僩嬋丄僿僢僟堎忢偺僐儞僥儞僣偱偁傞
//ADD-E	
//ADD-S 汭弐 徻嵶忣曬曇廤偺捛壛
	EGetEditInfo,		//徻嵶忣曬曇廤椞堟偺庢摼偑姰椆偟偨
	EReflectEditInfo,	//徻嵶忣曬曇廤偺斀塮偑姰椆偟偨
	EDeleteEditInfo	//徻嵶忣曬曇廤椞堟嶍彍API
//ADD-E 汭弐
	};

/**
 * 儌僨儖僆僽僓乕僶僋儔僗
 */
class MSmbMusicAPSongInfoModelObserver
	{
public:
	/**
	 * 儌僨儖曄峏捠抦偵懳偡傞張棟
	 *
	 * @param[in]	aReason		儌僨儖曄峏棟桼
	 */
	virtual void HandleChangeModelL(TSmbMusicAPSongInfoChangeModelReason aReason) = 0;
	};

/**
 * 儌僨儖僋儔僗
 */
class CSmbMusicAPSongInfoModel : public CBase
	{
	public:
	  /**
	   * 僐儞僗僩儔僋僞
	   *
	   * @param[in]	aLog	儘僌僒乕僶偺僙僢僔儑儞
	   */
	  CSmbMusicAPSongInfoModel(RLog& aLog);
	  /**
	   * 僨僗僩儔僋僞
	   */
	  ~CSmbMusicAPSongInfoModel();
	  /**
	   * 2僼僃乕僘僐儞僗僩儔僋僞
	   */
	  void ConstructL();
	  /**
	   * MW儔僀僽儔儕偲偺僙僢僔儑儞傪愙懕偡傞
	   */
	  void ConnectMWSessionL();
	  /**
	   * 傾僀僥儉惗惉
	   *
	   * @param[in]	aSongId		嬋ID
	   * @return	僄儔乕掕悢
	   */
	  TInt CreateSongItemL(TUint64 aSongId);
	  /**
	   * 徻嵶忣曬傪MW偐傜嵞庢摼偡傞
	   *
	   * @return	僄儔乕掕悢
	   */
	  TInt ReacquisitionDetailInfoL();
	  /**
	   * 徻嵶忣曬峔憿懱偺億僀儞僞傪曉媝偡傞
	   *
	   * @return	徻嵶忣曬娗棟峔憿懱
	   */
	  const TSmbMusicAPSongInfoDetailInfomation& DetailInfo();
//DEL-S 汭弐 PTX824偱偼CSmbMusicAPSongInfoReflectEditInfoAPIItem偵戙傢傝傑偟偨
//	  /**
//	   * 徻嵶忣曬峏怴
//	   *
//	   * @param[in]	aEditInfo	峏怴撪梕
//	   * @return	僄儔乕掕悢
//	   */
//	  TInt SetEditInfoL(TSmbMusicMWLibSongEditInfo& aEditInfo);
//DEL-E 汭弐
	  /**
	   * 儌僨儖僆僽僓乕僶偺搊榐
	   *
	   * @param[in]	aObserver	儌僨儖僆僽僓乕僶億僀儞僞乮View億僀儞僞乯
	   */
	  void SetModelObserver(MSmbMusicAPSongInfoModelObserver* aObserver);
//DEL-S 汭弐 PTX824偱偼CSmbMusicAPSongInfoReflectEditInfoAPIItem偵戙傢傝傑偟偨
//	  /**
//	   * 徻嵶忣曬峏怴偺僉儍儞僙儖
//	   */
//	  void CancelSetEditInfo();
//DEL-E 汭弐
	  /**
	   * API傊偺梫媮姰椆捠抦
	   *
	   * @param[in]		aKind		梫媮偑姰椆偟偨API庬暿
	   */
	  void APIRequestCompleteL(TSmbMusicAPSongInfoAPIKind aKind);

	  /**
	   * A忣曬庢摼姰椆偐斲偐傪敾掕偡傞(僙僢僔儑儞枹愙懕偺応崌偼敾掕偱偒偢乯
	   *
	   * @return	ETrue:庢摼姰椆 EFalse:庢摼拞
	   */
	  TBool IsGotDetailInfo();

//ADD-S 汭弐 徻嵶忣曬曇廤偺捛壛
	  /**
	   * 曇廤椞堟偺庢摼
	   *
	   * @leave		error		梫媮僋儔僗偺惗惉丄埥偄偼梫媮偺敪峴偑幐攕偟偨応崌
	   */
	  void GetEditInfomationL();
	  /**
	   * 曇廤椞堟庢摼拞忬懺偺僠僃僢僋
	   *
	   * @return	曇廤椞堟庢摼拞偺応崌偼丄ETrue傪曉媝
	   */
	  TBool IsRequestGetEditInfo();
	  /**
	   * 忣曬曇廤椞堟庢摼偺僉儍儞僙儖
	   */
	  void CancelGetEditInfo();
	  /**
	   * 曇廤斀塮
	   *
	   * @return	僄儔乕掕悢
	   */	
	  TInt ReflectEditInfomationL();
	  /**
	   * 曇廤斀塮偺僉儍儞僙儖
	   */
	  void CancelReflectEditInfo();
	  /**
	   * 妝嬋忣曬曇廤梡椞堟偺嶍彍
	   * 僋儔僗CSmbMusicMWLibSongEditInfo偼丄僨僗僩儔僋僞偑旕摨婜梫媮ReflectEditInfo偺僉儍儞僙儖傪寭柋偡傞
	   */
	  void DeleteEditInfo();
	  /**
	   * 曇廤斀塮拞忬懺偺僠僃僢僋
	   *
	   * @return	曇廤斀塮拞偺応崌偼丄ETrue傪曉媝
	   */
	  TBool IsRequestReflectEditInfo();
	  /**
	   * 妝嬋忣曬曇廤梡椞堟億僀儞僞偺庢摼
	   *
	   * @return	妝嬋忣曬曇廤梡椞堟億僀儞僞 乮僄儔乕偺応崌偼丄NULL傪曉媝偡傞乯
	   */
	  TSmbMusicMWLibSongEditInfo* EditInfo();
	  /**
	   * 妝嬋忣曬曇廤梡椞堟偺巜掕妝嬋忣曬傪弶婜壔
	   *
	   * @param[in]		aEditInfoPattern	弶婜壔偡傞忣曬偺敾掕價僢僩
	   * @return	張棟寢壥
	   */
	  TInt ResetEditInfo(TUint aEditInfoPattern);
	  /**
	   * 嬋ID偺庢摼
	   *
	   * @return		嬋ID
	   */
	  TUint64 SongId() const;
	  /**
	   * 嬋ID傪僙僢僩
	   *
	   * @param[in]	aSongId		嬋ID
	   */
	  void SetSongId(TUint64 aSongId);
	  /**
	   * 曇廤偟偨崁栚敾掕梡價僢僩偺庢摼
	   *
	   * @return		曇廤偟偨崁栚敾掕梡價僢僩
	   */
	  TUint EditPattern();
	  /**
	   * 曇廤偟偨崁栚敾掕梡價僢僩偺壛偊傞
	   *
	   * @param[in]	aEditPattern	曇廤偟偨崁栚價僢僩
	   */
	  void CombineEditPattern(TUint aEditPattern);
//ADD-E 汭弐
	private:
	  /**
	   * 儌僨儖曄峏捠抦張棟
	   *
	   * @param[in]		aReason		儌僨儖曄峏棟桼
	   */
	  void HandleChangeModelsL(TSmbMusicAPSongInfoChangeModelReason aReason);
	  /**
	   * 峏怴撪梕僀儀儞僩張棟
	   *
	   * @param[in]		aUpdateType	峏怴撪梕庬暿
	   * @return	僄儔乕掕悢
	   */
	  TInt UpdateInfoEventL(TSmbMusicMWLibUpdateType aUpdateType);

	private:
	  /** 徻嵶忣曬娗棟峔憿懱 */
	  TSmbMusicAPSongInfoDetailInfomation iDetailInfo;
	  /** MusicMW儔僀僽儔儕偲偺僙僢僔儑儞僋儔僗 */
	  RSmbMusicMWLibSession* iMWLibSession;
	  /** 嬋傾僀僥儉僋儔僗 */
	  CSmbMusicMWLibSongItem* iSongItem;
	  /** 儌僨儖僆僽僓乕僶乕 */
	  RPointerArray<MSmbMusicAPSongInfoModelObserver> iModelObserver;
	  /** 儘僌僒乕僶偺僙僢僔儑儞 */
	  RLog& iLog;
	  /** MW偐傜偺捠抦傪庴偗庢傞傾僋僥傿僽僆僽僕僃僋僩僋儔僗 */
	  //	CSmbMusicAPSongInfoNotifyAPIItem* iNotifyAPIItem;
	  /** 嬋傾僀僥儉僋儔僗惗惉梡傾僋僥傿僽僆僽僕僃僋僩僋儔僗 */
	  CSmbMusicAPSongInfoCreateAPIItem* iCreateAPIItem;
	  /** 徻嵶忣曬庢摼梡傾僋僥傿僽僆僽僕僃僋僩僋儔僗 */
	  CSmbMusicAPSongInfoGetDetailInfoAPIItem* iGetDetailInfoAPIItem;
	  /** 嬋嵞惗拞忣曬庢摼梡傾僋僥傿僽僆僽僕僃僋僩僋儔僗 */
	  //	CSmbMusicAPSongInfoGetPlayDispInfoAPIItem* iGetPlayDispInfoAPIItem; //DEL by MAEJI
//DEL-S 汭弐 PTX824偱偼CSmbMusicAPSongInfoReflectEditInfoAPIItem偵戙傢傝傑偟偨
//	  /** 忣曬峏怴梡傾僋僥傿僽僆僽僕僃僋僩僋儔僗 */
//	  CSmbMusicAPSongInfoUpdateInfoAPIItem* iUpdateInfoAPIItem;
//DEL-E 汭弐
//ADD-S 汭弐 徻嵶忣曬曇廤偺捛壛
 	  /** 妝嬋忣曬曇廤梡椞堟偺奿擺愭椞堟丂乮has-a娭學乯 */
 	  CSmbMusicMWLibSongEditInfo* iEditInfo;
	  /** 忣曬曇廤椞堟庢摼梡傾僋僥傿僽僆僽僕僃僋僩僋儔僗丂乮has-a娭學乯 */
 	  CSmbMusicAPSongInfoGetEditInfoAPIItem* iGetEditInfoAPIItem;
	  /** 忣曬曇廤斀塮梡傾僋僥傿僽僆僽僕僃僋僩僋儔僗丂乮has-a娭學乯 */
 	  CSmbMusicAPSongInfoReflectEditInfoAPIItem* iReflectEditInfoAPIItem;
//ADD-E 汭弐
	};
SEMCJ_NAMESPACE_END
#endif	// __SMBMUSICAPSONGINFOMODEL_H__
// end of SmbMusicAPSongInfoModel.h
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -