photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h
branchRCL_3
changeset 35 420f6808bf21
parent 25 191387a8b767
--- a/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h	Tue May 25 12:42:31 2010 +0300
+++ b/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h	Wed Jun 09 09:41:51 2010 +0300
@@ -25,6 +25,7 @@
 #include "graphics/surface.h"
 #include "graphics/surfaceupdateclient.h"
 #include <graphics/surfaceconfiguration.h>
+#include "mglxhdmidecoderobserver.h" //For MGlxHDMIDecoderObserver
 
 // forward decleration
 class CGlxActiveCallBack;
@@ -41,10 +42,12 @@
     {
 public:
     /*
-     * NewL
-     */
-    static CGlxHdmiSurfaceUpdater* NewL(RWindow* aWindow, const TDesC& aImageFile, 
-            CFbsBitmap* aFsBitmap, MGlxGenCallback* aCallBack);
+	 * NewL
+	 */
+	static CGlxHdmiSurfaceUpdater* NewL(RWindow* aWindow,
+			const TDesC& aImageFile, const TDesC& aNextImageFile,
+			CFbsBitmap* aFsBitmap, MGlxGenCallback* aCallBack,
+			MGlxHDMIDecoderObserver& aDecoderObserver);
 
     /*
      * Destructor
@@ -60,7 +63,8 @@
     /*
      * This updates the new image.
      */
-    void UpdateNewImageL(const TDesC& aImageFile,CFbsBitmap* aFsBitmap);
+    void UpdateNewImageL(const TDesC& aImageFile,
+            const TDesC& aNextImageFile, CFbsBitmap* aFsBitmap);
 
     /*
      * Activate Zoom 
@@ -87,14 +91,16 @@
 
 private:
     /*
-     * Constructor 
-     */
-    CGlxHdmiSurfaceUpdater(RWindow* aWindow, MGlxGenCallback* aCallBack);
+	 * Constructor 
+	 */
+	CGlxHdmiSurfaceUpdater(RWindow* aWindow, MGlxGenCallback* aCallBack,
+			MGlxHDMIDecoderObserver& aDecoderObserver);
 
     /*
      * ConstructL()
      */
-    void ConstructL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile);   
+    void ConstructL(CFbsBitmap* aFsBitmap, const TDesC& aImageFile,
+			const TDesC& aNextImageFile);   
 
     /*
      * Create a New surface with given size
@@ -109,7 +115,7 @@
      * This fundtion wont be called , could be used if double buffering is planned in future
      * to start the second decoder AO and update the surface with a new session. 
      */
-    static TInt SurfBuffer0Ready(TAny* aObject);    
+    static TInt SurfBuffer0ReadyL(TAny* aObject);    
     
     /*
      * Call a refresh on the screen  
@@ -185,15 +191,19 @@
     void ScaleDecodedBitmapL(TInt aBitmapIndex);
 
     /*
-     * InitiateHDMI
-     */
-    void InitiateHdmiL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile);
+	 * Initiate HDMI
+	 */
+	void InitiateHdmiL(CFbsBitmap* aFsBitmap, const TDesC& aImageFile,
+			const TDesC& aNextImageFile);
+    
+    void DecodeNextImageL();
 
 private:
     RWindow*        iWindow;                        // window object
     CFbsBitmap*     iFsBitmap;                      // FS bitmap
     MGlxGenCallback* iCallBack;                     // callback to the HdmiContainer window
-    HBufC*          iImagePath;                     // To store the image uri path
+    HBufC*          iImagePath;                     // To store the image uri path    
+    HBufC*          iNextImagePath;                 // To store the image uri path
 
     // GCE Surface
     RSurfaceUpdateSession iSurfUpdateSession;
@@ -227,9 +237,13 @@
     TBool       iBitmapReady;                       // If the bitmap is decoded and ready
     TBool       iAutoZoomOut;                       // If the UI has asked for auto zoomout
     TBool       iSurfSessionConnected;              // If surface session is connected
-	TBool iShiftToCloning;
+    TBool       iShiftToCloning;
     TBool       iShwFsThumbnail;                    // If the Fs thumbnail is to be shown before decoding HD images
     TBool       iIsNonJpeg;                         // If the item is non jpeg
+    MGlxHDMIDecoderObserver& iDecoderObserver;      // doesn't own
+    TBool       iDecodingCurrent;                   // Decoding Current Image
+    TBool       iDecodingNext;                      // Decoding Next Image
+    TBool       iDecodingNextFailed;                // Decoding Next Image
 
 #ifdef _DEBUG
     TTime iStartTime;