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

Symbian

开发平台:

C/C++

  1. /*
  2. * ============================================================================
  3. *  Name     : VideoAppUi.h
  4. *  Part of  : Video
  5. *  Created  : 10/14/2003 by Forum Nokia
  6. *  Description:
  7. *  Declares UI class for application.
  8. *  Version  :
  9. *  Copyright: Forum Corporation, 2003
  10. * ============================================================================
  11. */
  12. #ifndef VIDEOAPPUI_H
  13. #define VIDEOAPPUI_H
  14. #include <eikapp.h>
  15. #include <eikdoc.h>
  16. #include <e32std.h>
  17. #include <coeccntx.h>
  18. #include <aknappui.h>
  19. #include "VideoEngine.h"
  20. #include "MPlayerUIControllerListener.h"
  21. class CVideoContainer;
  22. class CVideoEngine;
  23. class CAknNavigationControlContainer;
  24. class CAknNavigationDecorator;
  25. class CEikButtonGroupContainer;
  26. /**
  27.  *  CVideoAppUi class.
  28.  *  UI class required by Symbian OS architecture
  29.  */
  30. class CVideoAppUi : public CAknAppUi, public MPlayerUIControllerListener
  31.     {
  32.     public: // // Constructors and destructor
  33.         /**
  34.         * Symbian default constructor.
  35.         */      
  36.         void ConstructL();
  37.         /**
  38.         * Destructor.
  39.         */      
  40.         ~CVideoAppUi();
  41.         
  42.     public: // New functions
  43.     CVideoEngine* GetVideoEngine();
  44.     void PlayVideoFileL(TDesC &aFileName );
  45.     public: // Functions from MPlayerUIControllerListener
  46.         /**
  47.  * Controller has been initialized completely.
  48.  * @param aError error code returned
  49.          */
  50.         void InitControllerCompletedL(TInt aError );
  51. /**
  52.  * Playing a video has been complete
  53.  * @param aError error code returned
  54.  */
  55.         void PlayCompletedL( TInt aError );
  56.         /** 
  57.      * See MPUIControllerListener::PlaybackPositionChangedL() 
  58.      */
  59.         void PlaybackPositionChangedL(TInt64 aPlaybackPosInSeconds, TInt64 aTotalLengthInSeconds);
  60.     private:
  61.         /** 
  62.      * From MEikMenuObserver
  63.      */
  64.         void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
  65.         /**
  66.      * Create the Time navi pane
  67.      */
  68.     CAknNavigationDecorator* CreateTimeNaviL();
  69.     private:
  70.         /**
  71.          * From CEikAppUi, takes care of command handling.
  72.          * @param aCommand command to be handled
  73.          */
  74.         void HandleCommandL(TInt aCommand);
  75.         /**
  76.          * From CEikAppUi, handles key events.
  77.          * @param aKeyEvent Event to handled.
  78.          * @param aType Type of the key event. 
  79.          * @return Response code (EKeyWasConsumed, EKeyWasNotConsumed). 
  80.          */
  81.         virtual TKeyResponse HandleKeyEventL(
  82.             const TKeyEvent& aKeyEvent,TEventCode aType);
  83.     protected:
  84.     /**
  85.      * Resume a playing video file
  86.      */
  87.     void DoResumeL();
  88.     /**
  89.      * Get the file information
  90.      */
  91.     void DoGetFileInfoL();
  92.         /**
  93.  * Play a video using a document handler
  94.  */
  95.     void DoDocPlayL();
  96. /**
  97.  * Pause a playing video clip
  98.  */
  99.     void DoPauseL();
  100. /**
  101.  * Initialize a video engine
  102.  */
  103.     void DoInitControllerL();
  104.         /**
  105.          * Stop a playing vide clip
  106.  */
  107.     void DoStopL();
  108. /**
  109.  * Play a video clip
  110.  */
  111.     void DoPlayL();
  112.         /**
  113.          * Set a text to the time navi pane
  114.          *  @param aLabel text to set
  115.          */
  116.     void SetNaviLabelL(const TDesC & aLabel);
  117.     private: //Data
  118.         CVideoContainer* iAppContainer; 
  119. CVideoEngine* iEngine;
  120.         CAknNavigationControlContainer* iNaviPane;
  121.         CAknNavigationDecorator* iTimeNavi;
  122.         HBufC* iMinSecFormatString;
  123.         HBufC* iHourMinSecFormatString;
  124. CEikButtonGroupContainer* iCba;
  125.     };
  126. #endif