chxavplayerui.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:6k
源码类别:

Symbian

开发平台:

Visual C++

  1. /************************************************************************
  2.  * chxavplayerui.h
  3.  * ----------------
  4.  *
  5.  * Synopsis:
  6.  * Contains the declaration of the CHXAvPlayerUI class.  This is the main
  7.  * UI manager class.  It manages the views and communicates back any
  8.  * user input to the media object, implemented by CHXAvPlayerMediaEngine.
  9.  *
  10.  *
  11.  * Target:
  12.  * Symbian OS
  13.  *
  14.  *
  15.  * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
  16.  *
  17.  ************************************************************************/
  18. #ifndef _chxavplayerui_h_
  19. #define _chxavplayerui_h_
  20. #include <coeccntx.h>
  21. #include <eikenv.h>
  22. #include <eikappui.h>
  23. #include <eikapp.h>
  24. #include <eikdoc.h>
  25. #include <eikmenup.h>
  26. #include <eikon.hrh>
  27. #include <aknviewappui.h>
  28. #include <apchangeobserver.h>
  29. #include "hxwintyp.h"
  30. #include "hxcom.h"
  31. #include "hxcomm.h"
  32. #include "hxmon.h"
  33. #include "hxtypes.h"
  34. #include "hxassert.h"
  35. #include "unkimp.h"
  36. #include "ihxpckts.h"
  37. #include "chxavwaitnote.h"
  38. #include "chxclientenginemanager.h"
  39. #include "hxstring.h"
  40. #include "hxurl.h"
  41. #include "chxresourcetoken.h"
  42. #include "chxavwaitnote.h"
  43. #include "chxavurllist.h"
  44. #include "comptr.h"
  45. #include "ihxsymplayerstateobserver.h"
  46. #include "chxavmediafolderinfo.h"
  47. class CEnvironmentChangeNotifier;
  48. class CHXAvPresentationWindow;
  49. class CHXAvPlayView;
  50. class CHXAvPlayer;
  51. class CHXAvURLList;
  52. //class PrefChangeObserver
  53. class PrefChangeObserver
  54. {
  55. public:
  56.     virtual void OnPrefsChanged() = 0;
  57. };
  58. // class CHXAvPlayerUI
  59. class CHXAvPlayerUI 
  60. : public CAknViewAppUi
  61. {
  62. public:
  63. // enums
  64.     enum ViewIndex
  65.     {
  66. VID_FileView = 0,
  67. VID_PlayerView,
  68. VID_SelectSettingsView,
  69. VID_SettingsView
  70.     };
  71.     enum AlertType
  72.     {
  73.         AlertError = 0,
  74.         AlertInfo,
  75.         AlertConfirm,
  76.         AlertWarn
  77.     };
  78. public: 
  79. // ctor and dtor
  80.     CHXAvPlayerUI();
  81.     virtual ~CHXAvPlayerUI();
  82.     void ConstructL(); 
  83.   
  84. public:
  85. // CAknViewAppUi
  86.     void HandleCommandL(TInt aCommand);
  87.     void OpenFileL(const TDesC& fileArg);
  88. // CHXAvPlayerUI
  89.     CHXClientEngineManagerPtr GetClientEngineManager();
  90.     const TDesC& CHXAvPlayerUI::GetAppImageFilePath() const;
  91.     void ActivatePlayViewL(const TDesC& url);
  92.     void OnViewForegroundActivateL(TInt idxView);
  93.     bool IsRunningEmbedded() const;
  94.     void SetPrefChangeObserver(PrefChangeObserver* pObserver);
  95.     CHXAvURLListPtr GetRecentClipsList();
  96.     TPtrC GetGuideUrlL(bool bForceUpdate);
  97.     TInt GetRecentClipCount() const;
  98.     comptr<CHXAvPlayer> GetPlayer();
  99.     void HandleEnvChange();
  100.     const CHXAvVector<CHXAvMediaFolderInfoPtr>& GetMediaStoreInfoL(bool bForceUpdate = false);
  101.     //CPinbModel&  PinbModel();
  102. public:
  103. // ui implementation for user commands
  104.     void DoEditPlaylistL(const TDesC& playListPath);
  105.     void DoAboutL();
  106.     void DoOpenRecentL();
  107.     void DoOpenURLL();
  108.     void DoOpenGuideL();
  109.     void DoSelectSettingsL();
  110.     void DoRestoreDefaultSettingsL();
  111. private:
  112. // implementation helpers
  113.     void DoBackFromCurrentViewL();
  114.     void AppendMediaStoreInfoL(const CHXString& strRootPath, CHXAvMediaFolderInfo::PathCreateType pathType);
  115.     
  116.     CHXAvPlayView* GetPlayView();
  117.     void UpdateMediaStoreInfoL();
  118.     void ClearMediaFolderListL();
  119.     void CloseApp();
  120.     bool EnsureUniqueInstanceHelperL();
  121.     void EnsureUniqueInstanceL();
  122.     
  123. // CAknViewAppUi
  124.     //void HandleForegroundEventL(TBool bEnterForeground);
  125.     //TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
  126.     
  127.     void HandleViewDeactivation(const TVwsViewId& idOldView, const TVwsViewId& idNewView);
  128.     void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent);
  129.     void HandleWsEventL(const TWsEvent& event ,CCoeControl* pDest);
  130.     TBool ProcessCommandParametersL(TApaCommand aCommand,TFileName& aDocumentName,const TDesC8& aTail);
  131. //MSharedDataNotifyHandler
  132.     //void HandleNotifyL(const TUid uid, const TDesC& key, const TDesC& val);
  133. private:
  134.     CHXClientEngineManagerPtr   m_spEngineMgr;
  135.     CHXAvURLListPtr m_recentClips;
  136.     TInt m_idxDefaultView;
  137.     TInt m_lastErrorResId;
  138.     CHXString m_lastClipEntered;
  139.     
  140.     CHXAvVector<CHXAvMediaFolderInfoPtr> m_mediaStoreInfo;
  141.     refptr<HBufC>       m_spPendingOpenFile;
  142.     refptr<HBufC>       m_spGuideUrl;
  143.     refptr<HBufC>       m_spLocalMediaFolder;
  144.     refptr<HBufC>       m_spMmcMediaFolder;
  145.     refptr<HBufC>       m_spMemoryReserve;
  146.     refptr<TFileName>   m_spImageFilePath;
  147.     PrefChangeObserver* m_pPrefChangeObserver;
  148.     
  149.     bool m_bIsRunningEmbedded;
  150.     bool m_bLaunchAppWithClipPending;
  151.     //bool m_bDidScreenSaverSignal;
  152.     //bool m_bDidScreenSaverSignal;
  153.     //bool m_bIsActivePlaybackState;
  154.     //RSharedDataClient m_sysSdClient;
  155.     //RSharedDataClient m_sysApSdClient;
  156.     //refptr<CPinbModel> m_pPinbModel;
  157.     CEnvironmentChangeNotifier* m_pEnvChange;
  158.     bool m_bIgnoreFirstEnvChange;
  159.     CHXResourceToken   m_instanceToken;
  160.     CHXAvWaitNotePtr   m_spCloseAppWaitNote;
  161. };
  162. inline
  163. CHXClientEngineManagerPtr CHXAvPlayerUI::GetClientEngineManager()
  164. {
  165.     return m_spEngineMgr;
  166. }
  167. inline
  168. void CHXAvPlayerUI::SetPrefChangeObserver(PrefChangeObserver* pObserver)
  169. {
  170.     m_pPrefChangeObserver = pObserver;
  171. }
  172. /*
  173. inline
  174. CPinbModel& CHXAvPlayerUI::PinbModel()
  175. {
  176.     return *m_pPinbModel;
  177. }
  178. */
  179. inline
  180. bool CHXAvPlayerUI::IsRunningEmbedded() const
  181. {
  182.     return m_bIsRunningEmbedded;
  183. }
  184. // return path to main app image file
  185. inline
  186. const TDesC& CHXAvPlayerUI::GetAppImageFilePath() const
  187. {
  188.     HX_ASSERT(m_spImageFilePath);
  189.     return *m_spImageFilePath;
  190. }
  191. inline
  192. CHXAvURLListPtr CHXAvPlayerUI::GetRecentClipsList()
  193. {
  194.     return m_recentClips;
  195. }
  196. #endif //_chxavplayerui_h_