diff -r 735348f59235 -r 948c7f65f6d4 imagingandcamerafws/imagingfws/ImageDisplay/src/Resolver/ImageDisplayResolverAPI.h --- /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 + +/** @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 TEComResolverParams. + * + * @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__