imagingandcamerafws/imagingfws/src/Test/TImageDisplay/TImageDisplay.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/src/Test/TImageDisplay/TImageDisplay.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,186 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef TIMAGEDISPLAY_H
+#define TIMAGEDISPLAY_H
+
+#include <eikappui.h>
+#include <eikapp.h>
+
+#include <eikdoc.h>
+
+#include <imageconversion.h>
+#include <imagedisplay.h>
+#include "app_uid.h"
+
+const TUid KUidTVideo={ APPUID };
+
+// class CImgDisplayAppView
+class CImageDisplay;
+class CDisplayModeDialog;
+class CImgDisplayAppView;
+
+class CVideoWalker;
+
+// CImgDisplAppUi
+
+class CImgDisplAppUi : public CEikAppUi, public MIclImageDisplayObserver
+    {
+	friend class CVideoWalker;
+private:
+	enum TFileType
+		{
+		EFileTypeUnknown,
+		EFileTypeWbmp,
+		EFileTypeOta
+		};
+	enum TState
+		{
+		EIdle,
+		ELoading,
+		EPlaying,
+		EPlayPaused,
+		EPlayingWait,
+		ESaving,
+		EFolderWait
+		};
+public:
+    void ConstructL();
+	CImgDisplAppUi();
+	~CImgDisplAppUi();
+protected:
+	virtual void MiidoImageReady(const CFbsBitmap* aBitmap, TUint aStatus, const TRect& aUpdatedArea, TInt aError) ;
+private:
+	// From CCoeAppUi
+	virtual TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+	// From CEikAppUi
+	virtual void HandleCommandL(TInt aCommand);
+	virtual TBool ProcessCommandParametersL(TApaCommand aCommand,TFileName& aDocumentName,const TDesC8& aTail);
+	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
+	TBool CheckHotKeyNotDimmedL(TInt aCommandId);
+	TUint ImageOptions() const;
+
+	void OpenFileL(TFileType aFileType);
+	void LoadFileL();
+	void SaveAsL();
+	void DisplayModeL();
+	void ScalingQualityL();
+	void ClipRectParamsL();
+	void DrmParamsL();
+	void BackgroundColorL();
+	void ExtractFrameL();
+	void Pause();
+	void PlayClipL();
+	void NextFrameL();
+	void StreamPlayL(TFileType aFileType = EFileTypeUnknown, TBool aMultiFrameStreaming=EFalse);
+	void FrameInfoL();
+	void FrameRotateL(TBool aClockwise);
+	void FrameFlipL(TBool aVertical);
+	void AutoRotateL();
+	void MaxReductionL();
+
+	void RunL(CVideoWalker* aWalker, TInt aStatus);
+	void DoCancel(CVideoWalker* aWalker);
+	void Cancel();
+
+	void HandleNewlyOpenedImageL();
+	void HandleConvertCompleteL();
+	void DrawConvertedFrame();
+	void ResizeBitmapsToSuitL();
+	void StartFrameOpen(TState aNextState);
+	void StartFrameSave();
+
+	void HandleRunError(CVideoWalker* aWalker, TInt aError);
+
+	void OpenFolderL();
+	void LoadFolderWait();
+	void LoadFolderL(const TDesC& aFolderName);
+	void OpenNextFolderEntry();
+
+	void MakeName(const TDesC& aDir, TBool aIsMask, TDes& aFileName) const;
+
+	static void ReplaceNewlinesWithLineBreaks(TDes& aDes);
+
+private:
+	CImageDisplay* iImageDisplay;
+	const CFbsBitmap* iFrame;	// not owned
+	const CFbsBitmap* iMask;	// not owned
+	TSize iImageDisplaySize;
+	TPoint iOffset;
+	TInt iFrameNumber;
+	TInt iPrevFrameNumber;
+	TInt iRotationAngle;
+	TUint iLatestStatus;
+	TInt iLatestError;
+	TBool iUseThumbnail;
+	TBool iPauseAfterEachFrame;
+	TFileName iDrmContentId;
+	ContentAccess::TIntent iDrmIntent;
+	TBool iClippingSet;
+	TRect iClipRect;
+	TInt  iScalingQuality;
+    CImgDisplayAppView* iAppView;
+	TInt iZoomFactor;
+	TFileName iLoadFileName;
+	TFileName iSaveFileName;
+	TFileSaveInfo iSaveInfo;
+	TTime iTime;
+	TInt iBackgroundColor;
+	TBool iOverrideBackgroundColor;
+	TSize iOverallSize;
+	TFileType iLastFileType;
+	TUint32 iLastFrameFlags;
+	TSize iScaleSize;
+	TBool iViewResized;
+	TBool iDisableMask;
+	TBool iDumpFrames;
+	TInt  iMaxReduction;
+
+	CImageEncoder* iSaveUtil;
+	CFrameImageData* iFrameImageData; 
+	TState iState;
+	CVideoWalker* iWalker;
+	RTimer iTimer;
+
+	// for folder opens
+	TFileName iDirName;
+	CDir* iDir;
+	TInt iDirIndex;
+	TBool iOpeningFolder;
+    };
+
+// CImgDisplDocument
+
+class CImgDisplDocument : public CEikDocument
+	{
+public:
+	CImgDisplDocument(CEikApplication& aApp);
+private:
+	 // from CEikDocument
+	CEikAppUi* CreateAppUiL();
+	};
+
+// CImgDisplApp
+
+class CImgDisplApp : public CEikApplication
+	{
+private:
+	// from CApaApplication
+	CApaDocument* CreateDocumentL();
+	TUid AppDllUid() const;
+	};
+
+#endif
+