diff -r 78ad99c24f08 -r 420f6808bf21 photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h --- 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 +#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;