videoengine.h
上传用户:xinrui0099
上传日期:2010-03-05
资源大小:48k
文件大小:4k
源码类别:

Symbian

开发平台:

C/C++

  1. /*
  2. * ============================================================================
  3. *  Name : CVideoEngine.h
  4. *  Part of : Video
  5. *  Created : 10/14/2003 by Forum Nokia
  6. *  Implementation notes:
  7. *  Description : Video engine
  8. *  Version :
  9. *  Copyright : Nokia Corporation, 2003
  10. * ============================================================================
  11. */
  12. #ifndef __VIDEO_ENGINE_H__
  13. #define __VIDEO_ENGINE_H__
  14. #include <e32base.h>
  15. #include <VideoPlayer.h>
  16. class CVideoPlayerUtility;
  17. class MPlayerUIControllerListener;
  18. class CDocumentHandler;
  19. class CVideoFileDetails;
  20. class DRMCommon;
  21. class CHeartbeat;
  22. enum TPlayerErrCode
  23. {
  24. KErrReOpen = 101,
  25. KErrAutoDisconnect,
  26. KErrAudioLost
  27. };
  28. // UI controller states
  29. enum TPlayState
  30.     {
  31.     EPNotInitialised,
  32.     EPInitialising,
  33.     EPStopped,
  34.     EPPlaying,     
  35.     EPPaused
  36.     };
  37. /**
  38.  *  CVideoEngine class
  39.  *  Used to load, play, stop and pause a video clip
  40.  */
  41. class CVideoEngine : public MVideoPlayerUtilityObserver, public MBeating, public CBase
  42. {
  43. private:
  44. /**
  45.  * Constructor
  46.  */
  47. CVideoEngine( );
  48. /** 
  49.  * Second phase constructor
  50.  */
  51. void ConstructL();
  52. public:
  53. /**
  54.  * Destructor
  55.  */
  56. ~CVideoEngine();
  57. public:  // New function
  58. /**
  59.  * Stop a playing video clip
  60.  */
  61. void DoStop();
  62. /**
  63.  * Play a vide clip
  64.  */
  65. void DoPlayL();
  66. /** 
  67.  * Set the new video file to be played
  68.  */
  69. void SetNewFileL(const TDesC& aFileName);
  70. /** 
  71.  * Two-phased constructor
  72.  */
  73. static CVideoEngine* NewL( );
  74. /** 
  75.  * Pause a playing video clip
  76.  */
  77.     void DoPauseL();
  78. /**
  79.  * Get the engine state
  80.  * @Return return the engine state, playing, paused, stopped...
  81.  */
  82.     TInt GetEngineState();
  83. /**
  84.  * Returns a document handler
  85.  */
  86.     CDocumentHandler& DocumentHandlerL();
  87.         /**
  88.          * Initializes controller. Sets the Display Window, area of 
  89.          * the display to render the current video frame.
  90.          * @param aCallback UI controller callback
  91.          * @param aWs A session with the window server
  92.          * @param aScreenDevice The screen device
  93.          * @param aWindow The window to display
  94.          * @param aWindowRect The rectangle to display
  95.          * @param aClipRect The clip rectangle
  96.          * @leaves Can leave with one of the system wide error codes
  97.          * @return void
  98.          */
  99.         void InitControllerL( MPlayerUIControllerListener* aCallback,
  100.                               RWsSession& aWs,
  101.                               CWsScreenDevice& aScreenDevice,
  102.                               RWindowBase& aWindow,
  103.                               TRect& aScreenRect,
  104.                               TRect& aClipRect);                                    
  105.     public: // Functions from MBeating
  106.         /** 
  107.  * See MBeating::Beat() 
  108.  */
  109.         void Beat();
  110.         
  111.         /** 
  112.  * See MBeating::Synchronize() 
  113.  */
  114.         void Synchronize();
  115.     public: // Functions from MVideoPlayerUtilityObserver
  116.         /** 
  117.  * See MVideoPlayerUtilityObserver::MvpuoOpenComplete 
  118.  */
  119.         void MvpuoOpenComplete(TInt aError);
  120.         /** 
  121.  * See MVideoPlayerUtilityObserver::MvpuoPrepareComplete 
  122.  */
  123.         void MvpuoPrepareComplete(TInt aError);
  124.         /** 
  125.  * See MVideoPlayerUtilityObserver::MvpuoFrameReady 
  126.  */
  127.         void MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError);
  128.         /** 
  129.  * See MVideoPlayerUtilityObserver::MvpuoPlayComplete 
  130.  */
  131.         void MvpuoPlayComplete(TInt aError);
  132.         
  133.         /** 
  134.  * See MVideoPlayerUtilityObserver::MvpuoEvent 
  135.  */
  136.         void MvpuoEvent(const TMMFEvent& aEvent);
  137. private:
  138. // Video player uitility
  139. CVideoPlayerUtility* iPlayer;
  140. HBufC* iMediaFile;
  141. // The vide file details
  142. CVideoFileDetails* iFileDetails;
  143. // The state of video player engine
  144. TPlayState iMyState;
  145. // The UI listener for the video engine
  146. MPlayerUIControllerListener* iCallback;
  147. // Document handler
  148. CDocumentHandler* iDocHandler;
  149. // Update the time progress when video is playing
  150. CHeartbeat* iProgressUpdater;  
  151. // The poistion of a playing video clip
  152. TInt64 iPlayPosition;
  153. };
  154. #endif // __VIDEO_ENGINE_H__