epoc32/include/icl/imagetransformplugin.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
--- a/epoc32/include/icl/imagetransformplugin.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/icl/imagetransformplugin.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,123 @@
-imagetransformplugin.h
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This is the plugin API for the Image Transform framework
+// 
+//
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#ifndef __IMAGETRANSFORMPLUGIN_H__
+#define __IMAGETRANSFORMPLUGIN_H__
+
+#include <e32base.h>
+#include <imagetransform.h>
+
+// fwd ref
+class CImageTransformFramework;
+class CImageTransformPluginExtension;
+
+/**
+This is the plugin API for the Image Transform framework
+Intended for use by plugin writers only.
+
+@publishedAll
+@released
+*/
+class CImageTransformPlugin : public CBase
+	{
+	friend class CImageTransformFramework;
+
+public:
+	IMPORT_C ~CImageTransformPlugin();
+
+protected:
+	/**
+	Initialise the plugin and check the image transform settings.
+
+	This is called by the ImageTransform framework when the client app calls
+	CImageTransform::SetupL(). 
+	
+	The plugin should check the validity of the source image and all other settings
+	set by the client API. If any of these is unsupported then it should leave with 
+	KErrNotSupported.
+
+	A plugin implementing CImageTransformPluginExtension to allow extension of the 
+	client API should initialise it here.
+
+	This is a virtual function that each individual plugin must implement.
+
+	@leave  KErrUnsupported
+	The plugin decoder doesn not support the request transformation
+	*/
+	virtual void OpenL() = 0;
+
+	/**
+	Initiate the image transform operation
+
+	This is a virtual function that each individual plugin must implement.
+
+	@param  aStatus
+			The client's request status. 
+			On completion contains an error code.
+			KErrNone if image was transformed successfully,
+	*/
+	virtual void Transform(TRequestStatus& aStatus) = 0;
+
+	/**
+	Cancel the image transform operation
+	May be called by the framework even when there is no outstanding request.
+
+	This is a virtual function that each individual plugin must implement.
+	*/
+	virtual void CancelTransform() = 0;
+
+	IMPORT_C CImageTransformPlugin();
+
+	// getters
+	IMPORT_C TBool SourceIsFilename() const;
+	IMPORT_C TBool SourceIsData() const;
+	IMPORT_C const TDesC& SourceFilename() const;
+	IMPORT_C const TDesC8& SourceData() const;
+	IMPORT_C const TDesC8& SourceMimeType() const;
+	IMPORT_C const TUid SourceImageType() const;
+	IMPORT_C const TUid SourceImageSubType() const;
+	IMPORT_C TBool SourceRect(TRect& aRect) const;
+	IMPORT_C TBool DestIsFilename() const;
+	IMPORT_C TBool DestIsData() const;
+	IMPORT_C const TDesC& DestFilename() const;
+	IMPORT_C HBufC8*& DestData() const;
+	IMPORT_C const TSize& DestinationSizeInPixels() const;
+	IMPORT_C TUint Options() const;
+	IMPORT_C TBool MaintainAspectRatio() const;
+	IMPORT_C TBool PreserveImageData() const;
+	IMPORT_C virtual CImageTransformPluginExtension* Extension() const;
+
+private:
+	IMPORT_C static CImageTransformPlugin* NewL(
+		TUid aImplementationUid, CImageTransformFramework& aFramework);
+
+	// Future proofing
+	IMPORT_C virtual void ReservedVirtual1();
+	IMPORT_C virtual void ReservedVirtual2();
+	IMPORT_C virtual void ReservedVirtual3();
+	IMPORT_C virtual void ReservedVirtual4();
+
+private:
+	CImageTransformFramework* iFramework;
+	};
+
+#endif // __IMAGETRANSFORMPLUGIN_H__