--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/icl/squeezetransformextension.h Wed Mar 31 12:33:34 2010 +0100
@@ -0,0 +1,141 @@
+// 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:
+// This is Image Transform extension for Squeeze Transformation
+//
+//
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#ifndef __SQUEEZETRANFORMEEXTENSION_H__
+#define __SQUEEZETRANFORMEEXTENSION_H__
+
+#include <e32base.h>
+#include <icl/imagetransformpluginext.h>
+#include <imageframeconst.h>
+
+/**
+@publishedAll
+@released
+
+This class provides advanced parameters for squeezing
+*/
+class TAdvancedSqueezeParams
+ {
+public:
+ /**
+ The different behaviours of auto resize
+ */
+ enum TAutoResizeAction
+ {
+ /**
+ Preserves the source encoding quality while shrinking the width and height of the image
+ */
+ EAutoResizeActionPreserveSourceEncodingQuality,
+ /**
+ Tries to preserve the max image size while lowering the encoding quality
+ */
+ EAutoResizeActionPrioritizeLargeImageSize,
+ /**
+ Tries to preserve the highest possible encoding quality while shrinking the width and height of the image
+ */
+ EAutoResizeActionResizePrioritizeHighEncodingQuality,
+ /**
+ Simultaneously lower the encoding quality and shrink the width and height of the image
+ */
+ EAutoResizeActionMiddleCourse
+ };
+
+ IMPORT_C TAdvancedSqueezeParams();
+
+ /**
+ The desired max size of the transformed image in bytes.
+ */
+ TUint iMaxDestSizeInBytes;
+
+ /**
+ The transformed image must not be smaller than this. The
+ size must be smaller than the iMaxImageSize
+ */
+ TSize iMinImageSize;
+
+ /**
+ The transformed image must not be bigger than this. The size
+ must be bigger than the iMinImageSize
+ */
+ TSize iMaxImageSize;
+
+ /**
+ The desired behaviour of the auto resize
+ */
+ TInt iResizeAction;
+
+ /**
+ The lowest desired encoding quality.
+ Must be in the range (0.0) to (1.0)
+ */
+ TReal32 iMinEncodingQuality;
+
+ /**
+ The color spacing of the transformed image
+ */
+ TUid iSamplingUid;
+private:
+ // Future proof
+ TAny* iPad1;
+ TAny* iPad2;
+ TAny* iPad3;
+ TAny* iPad4;
+ };
+
+/**
+@publishedAll
+@released
+
+Squeeze Extension to the ImageTransform plugin
+
+The class provides the methods to set the squeeze parameters and is intended to be implemented
+by the plugins supporting the squeezing of the images. The client can set the desired max size
+(in bytes) of the squeezed image and it can also enable auto resizing of the image by setting the
+advanced squeeze parameters. The plugin supporting this extension must use the opaque_data v2 format
+in RSS file and also the squeeze flag must be set in the opaque_data. The client must
+retrieve this extension implementation from the plugin using its extension UID.
+
+In the case where the client's desired size cannot be met the operation will squeeze to the
+smallest file possible and the transform operation will leave with KErrGeneral. The output file
+must be examined by the client to determine its suitability. The client must clean up if the
+output is not acceptable.
+*/
+class CSqueezeTransformExtension : public CImageTransformPluginExtension
+ {
+public:
+ IMPORT_C void SetDestSizeInBytes(TUint aMaxDestDataSize ) ;
+ IMPORT_C void SetAdvancedSqueezeModeL(TAdvancedSqueezeParams* aSqueezeAutoResizeParams ) ;
+
+protected:
+ virtual void DoSetDestSizeInBytes(TUint aMaxDestDataSize ) = 0;
+ virtual void DoSetAdvancedSqueezeModeL(TAdvancedSqueezeParams* aSqueezeAutoResizeParams ) = 0;
+
+private:
+ IMPORT_C virtual void ReservedVirtual5();
+
+private:
+ // Future proofing
+ TAny* iPad;
+ };
+
+#endif // __SQUEEZETRANFORMEEXTENSION_H__