--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imaging/imagingfws/src/ImageResolverAPI.h Wed Aug 25 12:29:52 2010 +0300
@@ -0,0 +1,117 @@
+// Copyright (c) 2001-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 Conversion Library
+// framework and its custom resolver
+//
+//
+
+#ifndef __IMAGERESOLVERAPI_H__
+#define __IMAGERESOLVERAPI_H__
+
+// ******************
+// Not for public use
+// ******************
+
+#include <e32std.h>
+#include <imageconversion.h>
+
+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.
+
+const TInt KIclExtensionOptionsMask = 0x0000ff00; // only 9th -> 16th bits are valid
+
+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
+ EListImageTypes, // Resolver should return list of image base types or the sub-types of a particular base type
+ EListFileTypes, // Resolver should return list of file extensions and MIME types
+ EMatchFileSuffix, // Resolver should match using file extension
+ EMatchReqUids // Resolver should match using properties and UIDs
+ };
+
+class CCustomMatchData; // declared here
+/*
+ *
+ * Used to pass parameters from the Image Conversion 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
+ */
+NONSHARABLE_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 SetBaseType(const TUid& aBaseType);
+ void SetSubType(const TUid& aSubType);
+ void SetImplementationType(const TUid& aImplementationType);
+ void SetFileSuffixL(const TDesC& aFileSuffix);
+ TResolverMatchType MatchType() 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);
+ void SetMatchReqUidsL(const RUidDataArray& aMatchReqUidsArray);
+ void GetMatchReqUidsL(RUidDataArray& aMatchReqUidsArray);
+ void GetOptionsUidsL(RUidDataArray& aOptionsUidsArray);
+ void SetExtensionOptions(TUint aExtensionBits);
+ void SetOptions(CImageDecoder::TOptions aOptions);
+ TUint ExtensionOptions();
+ TUint Options();
+
+// private methods
+private:
+ CCustomMatchData();
+
+// private data
+private:
+ TResolverMatchType iMatchType;
+ TUid iBaseType;
+ TUid iSubType;
+ TUid iImplementationType;
+ HBufC8* iMatchString;
+ HBufC* iFileSuffix;
+ RUidDataArray iMatchReqUidsArray;
+ TUint iExtensionOptions;
+ RUidDataArray iOptionsUidsArray;
+ TUint iOptions;
+ };
+
+#endif // __IMAGERESOLVERAPI_H__