imagingandcamerafws/imagingfws/ImageDisplay/src/Resolver/ImageDisplayResolverAPI.h
branchRCL_3
changeset 50 948c7f65f6d4
parent 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/ImageDisplay/src/Resolver/ImageDisplayResolverAPI.h	Wed Sep 01 12:38:50 2010 +0100
@@ -0,0 +1,112 @@
+// 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 "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 defines the interface classes between the Image Display Library
+// framework and its custom resolver
+// Not for public use
+// 
+//
+
+
+#ifndef __IMAGEDISPLAYRESOLVERAPI_H__
+#define __IMAGEDISPLAYRESOLVERAPI_H__
+
+#include <e32std.h>
+
+/** @file
+	@internalComponent */
+
+
+const TInt KImageHeaderSize = 32; // This is a compromise. The longest match string we have
+								  // yet found was 20 bytes (WMF Clp format) and we've left
+								  // some spare in case of longer future formats. But we want
+								  // to ensure that we don't exceed the possible minimum size
+								  // of a complete image. We don't have to worry about WBMP
+								  // and SMS OTA, two of the most compact formats, because
+								  // they don't have image headers so won't go through the
+								  // match string process.
+
+enum TResolverMatchType
+	{
+	EMatchString,		// Resolver should match using plugin match strings
+	EMatchUids,			// Resolver should match on image type and sub-type Uids
+	EMatchMIMEType,		// Resolver should match on MIME type
+	EMatchFileSuffix	// Resolver should match using file extension
+	};
+
+// these flags provide a way of indicating to the resolver
+// what capabilites the plugin must support
+enum TPluginFlagsNeeded
+	{
+	ECanMatchByFileSuffix      		= 0x00000001,
+	ESetSourceRectSupportNeeded		= 0x00000002
+	};
+/*
+ *
+ * Used to pass parameters from the Image Display Library to the resolver
+ *
+ * Controls the identification, (resolution), of which implementation will be
+ * used to satisfy an interface implementation instantiation. It is filled in
+ * and then packaged up in a descriptor to be passed across to the custom
+ * resolver in <code>TEComResolverParams</code>.
+ *
+ * @since 8.0
+ * @lib "ImageDisplay.lib"
+ */
+class CCustomMatchData : public CBase
+	{
+// public methods
+public:
+	~CCustomMatchData();
+	static CCustomMatchData* NewL();
+	static CCustomMatchData* NewL(const TDesC8& aPackage);
+	static CCustomMatchData* NewLC();
+	static CCustomMatchData* NewLC(const TDesC8& aPackage);
+	void ConstructL(const TDesC8& aPackage);
+	void ExternalizeL(RWriteStream& aStream) const;
+	void InternalizeL(RReadStream& aStream);
+	void SetMatchStringL(const TDesC8& aMIMEType);
+	void SetTypes(const TResolverMatchType& aMatchType, const TUid& aBaseType, const TUid& aSubType);
+	void SetMatchType(const TResolverMatchType& aMatchType);
+	void SetPluginFlagsNeeded(const TPluginFlagsNeeded& aPluginFlags);
+	void SetBaseType(const TUid& aBaseType);
+	void SetSubType(const TUid& aSubType);
+	void SetImplementationType(const TUid& aImplementationType);
+	void SetFileSuffixL(const TDesC& aFileSuffix);
+	TResolverMatchType MatchType() const;
+	TPluginFlagsNeeded PluginFlagsNeeded() const;
+	TUid BaseType() const;
+	TUid SubType() const;
+	TUid ImplementationType() const;
+	const TPtrC8 MatchString() const;
+	const TPtrC FileSuffix() const;
+	void GetTypes(TResolverMatchType& aMatchType, TUid& aBaseType, TUid& aSubType) const;
+	HBufC8* NewPackLC() const;
+	void UnPackL(const TDesC8& aPackage);
+
+// private methods
+private:
+	CCustomMatchData();
+
+// private data
+private:
+	TResolverMatchType iMatchType;
+	TPluginFlagsNeeded iPluginFlagsNeeded;
+	TUid iBaseType;
+	TUid iSubType;
+	TUid iImplementationType;
+	HBufC8* iMatchString;
+	HBufC* iFileSuffix;
+	}; 
+
+#endif // __IMAGEDISPLAYRESOLVERAPI_H__