diff -r 735348f59235 -r 948c7f65f6d4 imagingandcamerafws/imagingfws/ImageProcessor/inc/imageprocessorpreview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagingandcamerafws/imagingfws/ImageProcessor/inc/imageprocessorpreview.h Wed Sep 01 12:38:50 2010 +0100 @@ -0,0 +1,121 @@ +// Copyright (c) 2008-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: +// + +/** + @file + @publishedAll + @released +*/ + +#ifndef __IMAGE_PROCESSOR_PREVIEW_H__ +#define __IMAGE_PROCESSOR_PREVIEW_H__ + +#include +#include +#include + +class CFbsBitmap; +class CImageFrame; + +namespace ImageProcessor + { + +class CImageProcessorImpl; + +namespace Plugin + { + class MPreview; + } + +/** +A preview representation of the rendered image after effects and geometric operations have been applied. Has the ability to zoom and pan the output image in the +supplied pixel buffer. Typically this is a low resolution representation of the image which allows effects and operations +to be applied quickly to the image without needing to process the whole image. + +@publishedAll +@released +*/ +class TPreview + { +public: + /** + The state of the preview screen + */ + enum TState + { + /** State means the preview has not been initialized, need to call InitializeL() to initialize*/ + EUninitialized, + /** State means the preview is being initialized by async call of InitializeL()*/ + EInitializing, + /** State means the initialize process has finished and preview is available to be rendered*/ + EInitialized, + /** State means the preview is being rendered by async call of RenderL()*/ + ERendering, + + /** Count of valid preview states (boundary marker - not a true state). */ + EStatesCount + }; + +public: + IMPORT_C void SupportedImageFrameFormatsL(RArray& aFormats) const; + IMPORT_C void SupportedOutputDisplayModesL(RArray& aDisplayModes) const; + + IMPORT_C void SetOutputL(CFbsBitmap& aBitmap); + IMPORT_C void SetOutputL(CImageFrame& aPixelBuffer); + + IMPORT_C CImageFrame* CreateOutputL(const TSize &aFrameSize, const TFrameFormatBase &aFrameFormat, const TFrameLayoutBase &aFrameLayout); + + IMPORT_C void InitializeL(); + IMPORT_C void UninitializeL(); + + IMPORT_C void RenderL(); + IMPORT_C void ResetL(); + IMPORT_C void Cancel(); + + IMPORT_C void SetZoomL(TReal32 aZoom); + IMPORT_C void SetPanL(TReal32 aPanX, TReal32 aPanY); + IMPORT_C void SetPreviewId(TInt aPreviewId); + IMPORT_C void GetZoomLevelSettings(TReal32& aMinimumLevel, TReal32& aMaximumLevel); + IMPORT_C void GetPanLevelSettings(TReal32& aMinimumLevel, TReal32& aMaximumLevel); + + IMPORT_C TReal32 ZoomL() const; + IMPORT_C void PanL(TReal32& aPanX, TReal32& aPanY) const; + IMPORT_C TSize SizeL() const; + IMPORT_C TRect CanvasAreaL() const; + IMPORT_C TInt PreviewId() const; + + IMPORT_C void PreviewToCurrentCoordL(const TPoint& aPreviewPoint, TPoint& aCurrentPoint) const; + IMPORT_C void CanvasToCurrentCoordL(const TPoint& aCanvasPoint, TPoint& aCurrentPoint) const; + + IMPORT_C TPreview::TState State() const; + +private: + friend class CImageProcessorImpl; + CImageProcessorImpl& iImageProcessorImpl; + TPreview(Plugin::MPreview& aPreviewImpl, CImageProcessorImpl& aImageProcessorImpl); + + void SetStateL(TPreview::TState aState); + + static const TBool iValidStates[TPreview::EStatesCount][TPreview::EStatesCount]; + Plugin::MPreview& iPreviewImpl; + + TPreview::TState iState; + TBool iIsOutputSet; + TInt iReserved; // future proof + }; + + } //namespace ImageProcessor + +#endif //__IMAGE_PROCESSOR_PREVIEW_H__