00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef GFXVIDEOPLAYER_H_
00030 #define GFXVIDEOPLAYER_H_
00031
00032 #include <VideoPlayer.h>
00033 #include <COECNTRL.H>
00034
00035 class CVideoPlayerControl;
00036 class CGfxVideoPlayer : public CBase ,public MVideoPlayerUtilityObserver
00037 {
00038 public:
00039 CGfxVideoPlayer ();
00040 void ConstructL(CVideoPlayerControl* aView);
00041 static CGfxVideoPlayer * NewL(CVideoPlayerControl* aView );
00042 ~CGfxVideoPlayer();
00043
00044
00045 public:
00046 void MvpuoOpenComplete(TInt aError);
00047 void MvpuoPrepareComplete(TInt aError);
00048 void MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError);
00049 void MvpuoPlayComplete(TInt aError);
00050 void MvpuoEvent(const TMMFEvent& aEvent);
00051
00052 public:
00053 void InitControllerL();
00054 void PauseL();
00055 TTimeIntervalMicroSeconds PositionL() ;
00056 TTimeIntervalMicroSeconds DurationL() ;
00057 void Stop();
00058
00059 private:
00060 CVideoPlayerUtility* iPlayer;
00061 CVideoPlayerControl* iView;
00062 };
00063
00064
00065
00066
00067 class CVideoPlayerControl : public CCoeControl
00068 {
00069 public:
00070 static CVideoPlayerControl* NewL(const TRect& aRect);
00071 static CVideoPlayerControl* NewLC(const TRect& aRect);
00072 void ConstructL(const TRect& aRect);
00073 CVideoPlayerControl();
00074 ~CVideoPlayerControl();
00075
00076 void StartL();
00077 void StopL();
00078
00079 public:
00080 void SignalError(const TDesC& aCallBack, TInt aErrorCode);
00081
00082 public:
00083 void Draw(const TRect& aRect) const;
00084 inline RWindow& ClientWindow();
00085 inline TRect VideoRect() const;
00086 inline RWsSession& ClientWsSession();
00087 inline CWsScreenDevice& ScreenDevice();
00088 private:
00089 TRect iVideoRect;
00090 CGfxVideoPlayer* iPlayer;
00091 };
00092
00093 #endif