epoc32/include/exifread.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
     1.1 --- a/epoc32/include/exifread.h	Tue Nov 24 13:55:44 2009 +0000
     1.2 +++ b/epoc32/include/exifread.h	Tue Mar 16 16:12:26 2010 +0000
     1.3 @@ -1,1 +1,615 @@
     1.4 -exifread.h
     1.5 +/*
     1.6 +* Copyright (c) 2003, 2004 Nokia Corporation and/or its subsidiary(-ies).
     1.7 +* All rights reserved.
     1.8 +* This component and the accompanying materials are made available
     1.9 +* 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
    1.10 +* which accompanies this distribution, and is available
    1.11 +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.12 +*
    1.13 +* Initial Contributors:
    1.14 +* Nokia Corporation - initial contribution.
    1.15 +*
    1.16 +* Contributors:
    1.17 +*
    1.18 +* Description:  Exif file format parser ( reader ) class
    1.19 +*
    1.20 +*/
    1.21 +
    1.22 +
    1.23 +#ifndef EXIFREAD_H
    1.24 +#define EXIFREAD_H
    1.25 +
    1.26 +//  INCLUDES
    1.27 +#include <e32base.h>
    1.28 +
    1.29 +// CONSTANTS
    1.30 +
    1.31 +// MACROS
    1.32 +
    1.33 +// DATA TYPES
    1.34 +enum TExifIfdType
    1.35 +    {
    1.36 +	EIfd0 = 0,
    1.37 +	EIfdExif,
    1.38 +	EIfd1,
    1.39 +	EIfdGps,
    1.40 +	EIfdIntOp
    1.41 +    };
    1.42 +
    1.43 +
    1.44 +// FUNCTION PROTOTYPES
    1.45 +
    1.46 +// FORWARD DECLARATIONS
    1.47 +class CExifTag;
    1.48 +
    1.49 +// CLASS DECLARATION
    1.50 +
    1.51 +/**
    1.52 +* CExifRead
    1.53 +* Interface class for parsing Exif v2.2 file format. An instance of this class 
    1.54 +* can be instantiated providing valid Exif data. 
    1.55 +*
    1.56 +* @lib ExifLib
    1.57 +* @since 2.6 
    1.58 +*/
    1.59 +NONSHARABLE_CLASS( CExifRead ): public CBase
    1.60 +    {
    1.61 +
    1.62 +    public:  // Enumerations
    1.63 +        enum TExifReadOption
    1.64 +        {
    1.65 +	    ENoOptions          = 0x0000, // Original, safe full parsing
    1.66 +	    ENoJpeg             = 0x0001, // No main JPEG included, no parsing for main image
    1.67 +	    EFastJpegParsing    = 0x0002, // Fast JPEG marker parsing
    1.68 +	    ENoTagChecking      = 0x0004  // Ignore unknown EXIF tags and mandatory tag checking
    1.69 +        };
    1.70 +
    1.71 +    public:  // Constructors and destructor
    1.72 +        
    1.73 +        /**
    1.74 +        * Two-phased constructor.
    1.75 +        */
    1.76 +    	IMPORT_C static CExifRead* NewL( const TDesC8& aExifData );
    1.77 +
    1.78 +    	IMPORT_C static CExifRead* NewL( const TDesC8& aExifData, TUint aExifReadOption );
    1.79 +        
    1.80 +        /**
    1.81 +        * Destructor.
    1.82 +        */
    1.83 +    	virtual ~CExifRead();
    1.84 +
    1.85 +    public: // New functions
    1.86 +
    1.87 +        /**
    1.88 +        * Returns the Tag instance, which has the specified ID from the 
    1.89 +        * requested IFD.
    1.90 +        * @since 2.6
    1.91 +        * @param aIfdType The hosting IFD type
    1.92 +        * @param aTagId The queried tag ID.
    1.93 +        * @return Unmodifiable tag instance returned.
    1.94 +        */
    1.95 +    	virtual const CExifTag* GetTagL( 
    1.96 +            TExifIfdType aIfdType, 
    1.97 +            TUint16 aTagId ) const = 0;
    1.98 +
    1.99 +        /**
   1.100 +        * Returns the IDs of all the tags that are stored in the Exif data.
   1.101 +        * @since 2.6
   1.102 +        * @param aIfdType The hosting IFD type.
   1.103 +        * @param aNoTags Number of tag IDs returned.
   1.104 +        * @return Pointer to the tag IDs.
   1.105 +        */
   1.106 +    	virtual TUint16* GetTagIdsL( 
   1.107 +            TExifIfdType aIfdType, 
   1.108 +            TInt& aNoTags ) const = 0;
   1.109 +
   1.110 +        /**
   1.111 +        * Returns the types of the IFDs stored in the Exif data.
   1.112 +        * @since 2.6
   1.113 +        * @param aNoIfd Number of IFD types returned.
   1.114 +        * @return Pointer to the IFD types.
   1.115 +        */
   1.116 +    	virtual TExifIfdType* GetIfdTypesL( TInt& aNoIfd ) const = 0;
   1.117 +
   1.118 +        /**
   1.119 +        * Returns pointer to a copy of the thumbnail image data.
   1.120 +        * @since 2.6
   1.121 +        * @return Pointer to the descriptor containing a copy of the 
   1.122 +        * Exif thumbnail image.
   1.123 +        */
   1.124 +    	virtual HBufC8* GetThumbnailL() const = 0;
   1.125 +
   1.126 +        /**
   1.127 +        * Returns a boolean stating if the queried IFD structure exists in the 
   1.128 +        * Exif data.
   1.129 +        * @since 2.6
   1.130 +        * @param aIfdType The queried IFD type.
   1.131 +        * @return Boolean stating if the specified IFD exists or not.
   1.132 +        */
   1.133 +    	virtual TBool IfdExists( TExifIfdType aIfdType ) const = 0;
   1.134 +
   1.135 +        /**
   1.136 +        * Returns a boolean stating if the queried tag exists in the specified 
   1.137 +        * IFD structure.
   1.138 +        * @since 2.6
   1.139 +        * @param aTagId Queried tag ID.
   1.140 +        * @param aIfdType The hosting IFD type.
   1.141 +        * @return Boolean stating if the specified tag exists or not.
   1.142 +        */
   1.143 +    	virtual TBool TagExists( 
   1.144 +            TUint16 aTagId, 
   1.145 +            TExifIfdType aIfdType ) const = 0;
   1.146 +
   1.147 +        /**
   1.148 +        * Gets the Image Description tag data.
   1.149 +        * @since 2.6
   1.150 +        * @return Pointer to the descriptor containing copy of the Image 
   1.151 +        * Description data.
   1.152 +        */
   1.153 +    	virtual HBufC8* GetImageDescriptionL() const = 0;
   1.154 +
   1.155 +        /**
   1.156 +        * Gets the Make tag data.
   1.157 +        * @since 2.6
   1.158 +        * @return Pointer to the descriptor containing copy of the Make data.
   1.159 +        */
   1.160 +    	virtual HBufC8* GetMakeL() const = 0;
   1.161 +    	
   1.162 +        /**
   1.163 +        * Gets the Model tag data.
   1.164 +        * @since 2.6
   1.165 +        * @return Pointer to the descriptor containing copy of the Model data.
   1.166 +        */
   1.167 +        virtual HBufC8* GetModelL() const = 0;
   1.168 +    	
   1.169 +        /**
   1.170 +        * Gets the Transfer Function tag data.
   1.171 +        * @since 2.6
   1.172 +        * @return Pointer to the descriptor containing copy of the Transfer 
   1.173 +        * Function data.
   1.174 +        */
   1.175 +        virtual HBufC8* GetTransferFunctionL() const = 0; 
   1.176 +    	
   1.177 +        /**
   1.178 +        * Gets the Date Time tag data.
   1.179 +        * @since 2.6
   1.180 +        * @return Pointer to the descriptor containing copy of the Date Time 
   1.181 +        * data.
   1.182 +        */
   1.183 +        virtual HBufC8* GetDateTimeL() const = 0; 
   1.184 +    	
   1.185 +        /**
   1.186 +        * Gets the Software tag data.
   1.187 +        * @since 2.6
   1.188 +        * @return Pointer to the descriptor containing copy of the Software 
   1.189 +        * data.
   1.190 +        */
   1.191 +        virtual HBufC8* GetSoftwareL() const = 0; 
   1.192 +    	
   1.193 +        /**
   1.194 +        * Gets the Copyright tag data.
   1.195 +        * @since 2.6
   1.196 +        * @return Pointer to the descriptor containing copy of the Copyright 
   1.197 +        * data.
   1.198 +        */
   1.199 +        virtual HBufC8* GetCopyrightL() const = 0; 
   1.200 +
   1.201 +        /**
   1.202 +        * Gets the Orientation tag data.
   1.203 +        * @since 2.6
   1.204 +        * @param aOrientation Returned Orientation data.
   1.205 +        * @return Error code.
   1.206 +        */
   1.207 +    	virtual TInt GetOrientation( TUint16& aOrientation ) const = 0;
   1.208 +    	
   1.209 +        /**
   1.210 +        * Gets the X Resolution tag data.
   1.211 +        * @since 2.6
   1.212 +        * @param aXResolution1 Returned X Resolution numerator.
   1.213 +        * @param aXResolution2 Returned X Resolution denominator.
   1.214 +        * @return Error code. 
   1.215 +        */
   1.216 +        virtual TInt GetXResolution( 
   1.217 +            TUint32& aXResolution1, 
   1.218 +            TUint32& aXResolution2 ) const = 0;
   1.219 +    	
   1.220 +        /**
   1.221 +        * Gets the Y Resolution tag data.
   1.222 +        * @since 2.6
   1.223 +        * @param aYResolution1 Returned Y Resolution numerator.
   1.224 +        * @param aYResolution2 Returned Y Resolution denominator.
   1.225 +        * @return Error code.
   1.226 +        */
   1.227 +        virtual TInt GetYResolution( 
   1.228 +            TUint32& aYResolution1, 
   1.229 +            TUint32& aYResolution2 ) const = 0;
   1.230 +    	
   1.231 +        /**
   1.232 +        * Gets the Resolution Unit tag data.
   1.233 +        * @since 2.6
   1.234 +        * @param aResolutionUnit Returned Resolution Unit data.
   1.235 +        * @return Error code. 
   1.236 +        */
   1.237 +        virtual TInt GetResolutionUnit( TUint16& aResolutionUnit ) const = 0; 
   1.238 +    	
   1.239 +        /**
   1.240 +        * Gets the YCbCr Positioning tag data.
   1.241 +        * @since 2.6
   1.242 +        * @param aYCbCrPositioning Returned YCbCr Positioning data.
   1.243 +        * @return Error code.
   1.244 +        */
   1.245 +        virtual TInt GetYCbCrPositioning( 
   1.246 +            TUint16& aYCbCrPositioning ) const = 0; 
   1.247 +    	
   1.248 +        /**
   1.249 +        * Gets the Exif Ifd Pointer tag data.
   1.250 +        * @since 2.6
   1.251 +        * @param aExifIfdPointer Returned Exif Ifd Pointer data.
   1.252 +        * @return Error code.
   1.253 +        */
   1.254 +        virtual TInt GetExifIfdPointer( TUint32& aExifIfdPointer ) const = 0; 
   1.255 +    	
   1.256 +        /**
   1.257 +        * Gets the Gps Info Ifd Pointer tag data.
   1.258 +        * @since 2.6
   1.259 +        * @param aGpsInfoIfdPointer Returned Gps Info Ifd Pointer data.
   1.260 +        * @return Error code.
   1.261 +        */
   1.262 +        virtual TInt GetGpsInfoIfdPointer( 
   1.263 +            TUint32& aGpsInfoIfdPointer ) const = 0; 
   1.264 +
   1.265 +        /**
   1.266 +        * Gets the Iso Speed Ratings tag data.
   1.267 +        * @since 2.6
   1.268 +        * @return Pointer to the descriptor containing copy of the Iso Speed 
   1.269 +        * Ratings data.
   1.270 +        */
   1.271 +    	virtual HBufC8* GetIsoSpeedRatingsL() const = 0; 
   1.272 +    	
   1.273 +        /**
   1.274 +        * Gets the Date Time Original tag data.
   1.275 +        * @since 2.6
   1.276 +        * @return Pointer to the descriptor containing copy of the Date Time 
   1.277 +        * Original data.
   1.278 +        */
   1.279 +        virtual HBufC8* GetDateTimeOriginalL() const = 0;
   1.280 +    	
   1.281 +        /**
   1.282 +        * Gets the Date Time Digitized tag data.
   1.283 +        * @since 2.6
   1.284 +        * @return Pointer to the descriptor containing copy of the Date Time 
   1.285 +        * Digitized data.
   1.286 +        */
   1.287 +        virtual HBufC8* GetDateTimeDigitizedL() const = 0; 
   1.288 +
   1.289 +    	/**
   1.290 +        * Gets the Maker Note tag data.
   1.291 +        * @since 2.6
   1.292 +        * @return Pointer to the descriptor containing copy of the Maker Note 
   1.293 +        * data.
   1.294 +        */
   1.295 +        virtual HBufC8* GetMakerNoteL() const = 0; 
   1.296 +    	
   1.297 +        /**
   1.298 +        * Gets the User Comment tag data.
   1.299 +        * @since 2.6
   1.300 +        * @return Pointer to the descriptor containing copy of the User 
   1.301 +        * Comment data.
   1.302 +        */
   1.303 +        virtual HBufC8* GetUserCommentL() const = 0; 
   1.304 +    	
   1.305 +        /**
   1.306 +        * Gets the Related Sound File tag data.
   1.307 +        * @since 2.6
   1.308 +        * @return Pointer to the descriptor containing copy of the Related 
   1.309 +        * Sound File data.
   1.310 +        */
   1.311 +        virtual HBufC8* GetRelatedSoundFileL() const = 0; 
   1.312 +
   1.313 +        /**
   1.314 +        * Gets the Exposure Time tag data.
   1.315 +        * @since 2.6
   1.316 +        * @param ExposureTime Returned Exposure Time data.
   1.317 +        * @return Error code.
   1.318 +        */
   1.319 +    	virtual TInt GetExposureTime( 
   1.320 +            TUint32& aExposureTime1, 
   1.321 +            TUint32& aExposureTime2 ) const = 0; 
   1.322 +    	
   1.323 +        /**
   1.324 +        * Gets the Components Configuration tag data.
   1.325 +        * @since 2.6
   1.326 +        * @param aComponentsConfiguration Returned Components Configuration 
   1.327 +        * data.
   1.328 +        * @return Error code.
   1.329 +        */
   1.330 +        virtual TInt GetComponentsConfiguration( 
   1.331 +            TUint8& aFirstComponent, TUint8& aSecondComponent,
   1.332 +            TUint8& aThirdComponent, TUint8& aFourthComponent) const = 0; 
   1.333 +    	
   1.334 +        /**
   1.335 +        * Gets the Flash tag data.
   1.336 +        * @since 2.6
   1.337 +        * @param aFlash Returned Flash data.
   1.338 +        * @return Error code.
   1.339 +        */
   1.340 +        virtual TInt GetFlash( TUint16& aFlash ) const = 0; 
   1.341 +    	
   1.342 +        /**
   1.343 +        * Gets the ColorSpace tag data.
   1.344 +        * @since 2.6
   1.345 +        * @param aColorSpace Returned ColorSpace data.
   1.346 +        * @return Error code.
   1.347 +        */
   1.348 +        virtual TInt GetColorSpace( TUint16& aColorSpace ) const = 0; 
   1.349 +    	
   1.350 +        /**
   1.351 +        * Gets the Pixel X Dimension tag data.
   1.352 +        * @since 2.6
   1.353 +        * @param aPixelXDimension Returned Pixel X Dimension data.
   1.354 +        * @return Error code.
   1.355 +        */
   1.356 +        virtual TInt GetPixelXDimension( TUint32& aPixelXDimension ) const = 0; 
   1.357 +    	
   1.358 +        /**
   1.359 +        * Gets the Pixel Y Dimension tag data.
   1.360 +        * @since 2.6
   1.361 +        * @param aPixelYDimension Returned Pixel Y Dimension data.
   1.362 +        * @return Error code.
   1.363 +        */
   1.364 +        virtual TInt GetPixelYDimension( TUint32& aPixelYDimension ) const = 0; 
   1.365 +    	
   1.366 +        /**
   1.367 +        * Gets the Exposure Mode tag data.
   1.368 +        * @since 2.6
   1.369 +        * @param aExposureMode Returned Exposure Mode data.
   1.370 +        * @return Error code.
   1.371 +        */
   1.372 +        virtual TInt GetExposureMode( TUint16& aExposureMode ) const = 0; 
   1.373 +    	
   1.374 +        /**
   1.375 +        * Gets the White Balance tag data.
   1.376 +        * @since 2.6
   1.377 +        * @param aWhiteBalance Returned White Balance data.
   1.378 +        * @return Error code.
   1.379 +        */
   1.380 +        virtual TInt GetWhiteBalance( TUint16& aWhiteBalance ) const = 0; 
   1.381 +    	
   1.382 +        /**
   1.383 +        * Gets the Scene Capture Type tag data.
   1.384 +        * @since 2.6
   1.385 +        * @param aSceneCaptureType Returned Scene Capture Type data.
   1.386 +        * @return Error code.
   1.387 +        */
   1.388 +        virtual TInt GetSceneCaptureType( 
   1.389 +            TUint16& aSceneCaptureType ) const = 0; 
   1.390 +    	
   1.391 +        /**
   1.392 +        * Gets the Exposure Program tag data.
   1.393 +        * @since 2.6
   1.394 +        * @param aExposureProgram Returned Exposure Program data.
   1.395 +        * @return Error code.
   1.396 +        */
   1.397 +        virtual TInt GetExposureProgram( TUint16& aExposureProgram ) const = 0;
   1.398 +    	
   1.399 +        /**
   1.400 +        * Gets the Aperture Value tag data.
   1.401 +        * @since 2.6
   1.402 +        * @param aApertureValue1 Returned Aperture Value numerator.
   1.403 +        * @param aApertureValue2 Returned Aperture Value denominator.
   1.404 +        * @return Error code.
   1.405 +        */
   1.406 +        virtual TInt GetApertureValue( 
   1.407 +            TUint32& aApertureValue1, 
   1.408 +            TUint32& aApertureValue2 ) const = 0; 
   1.409 +    	
   1.410 +        /**
   1.411 +        * Gets the Exposure Bias Value tag data.
   1.412 +        * @since 2.6
   1.413 +        * @param aExposureBiasValue1 Returned Exposure Bias Value numerator.
   1.414 +        * @param aExposureBiasValue1 Returned Exposure Bias Value denominator.
   1.415 +        * @return Error code.
   1.416 +        */
   1.417 +        virtual TInt GetExposureBiasValue( 
   1.418 +            TInt32& aExposureBiasValue1, 
   1.419 +            TInt32& aExposureBiasValue2 ) const = 0; 
   1.420 +    	
   1.421 +        /**
   1.422 +        * Gets the Metering Mode tag data.
   1.423 +        * @since 2.6
   1.424 +        * @param aMeteringMode Returned Metering Mode data.
   1.425 +        * @return Error code.
   1.426 +        */
   1.427 +        virtual TInt GetMeteringMode( TUint16& aMeteringMode ) const = 0; 
   1.428 +    	
   1.429 +        /**
   1.430 +        * Gets the Light Source tag data.
   1.431 +        * @since 2.6
   1.432 +        * @param aLightSource Returned Light Source data.
   1.433 +        * @return Error code.
   1.434 +        */
   1.435 +        virtual TInt GetLightSource( TUint16& aLightSource ) const = 0; 
   1.436 +    	
   1.437 +        /**
   1.438 +        * Gets the File Source tag data.
   1.439 +        * @since 2.6
   1.440 +        * @param aFileSource Returned File Source data.
   1.441 +        * @return Error code.
   1.442 +        */
   1.443 +        virtual TInt GetFileSource( TInt8& aFileSource ) const = 0; 
   1.444 +    	
   1.445 +        /**
   1.446 +        * Gets the Digital Zoom Ratio tag data.
   1.447 +        * @since 2.6
   1.448 +        * @param aDigitalZoomRatio1 Returned Digital Zoom Ratio numerator.
   1.449 +        * @param aDigitalZoomRatio2 Returned Digital Zoom Ratio denominator.
   1.450 +        * @return Error code.
   1.451 +        */
   1.452 +        virtual TInt GetDigitalZoomRatio( 
   1.453 +            TUint32& aDigitalZoomRatio1, 
   1.454 +            TUint32& aDigitalZoomRatio2 ) const = 0; 
   1.455 +    	
   1.456 +        /**
   1.457 +        * Gets the Contrast tag data.
   1.458 +        * @since 2.6
   1.459 +        * @param aContrast Returned Contrast data.
   1.460 +        * @return Error code.
   1.461 +        */
   1.462 +        virtual TInt GetContrast( TUint16& aContrast ) const = 0; 
   1.463 +    	
   1.464 +        /**
   1.465 +        * Gets the Saturation tag data.
   1.466 +        * @since 2.6
   1.467 +        * @param aSaturation Returned Saturation data.
   1.468 +        * @return Error code.
   1.469 +        */
   1.470 +        virtual TInt GetSaturation( TUint16& aSaturation ) const = 0; 
   1.471 +    	
   1.472 +        /**
   1.473 +        * Gets the Sharpness tag data.
   1.474 +        * @since 2.6
   1.475 +        * @param aSharpness Returned Sharpness data.
   1.476 +        * @return Error code.
   1.477 +        */
   1.478 +        virtual TInt GetSharpness( TUint16& aSharpness ) const = 0; 
   1.479 +    	
   1.480 +        /**
   1.481 +        * Gets the Exif Version tag data.
   1.482 +        * @since 2.6
   1.483 +        * @param aExifVersion Returned Exif Version data.
   1.484 +        * @return Error code.
   1.485 +        */
   1.486 +        virtual TInt GetExifVersion( TUint32& aExifVersion ) const = 0; 
   1.487 +    	
   1.488 +        /**
   1.489 +        * Gets the Flash Pix Version tag data.
   1.490 +        * @since 2.6
   1.491 +        * @param aFlashPixVersion Returned Flash Pix Version data.
   1.492 +        * @return Error code.
   1.493 +        */
   1.494 +        virtual TInt GetFlashPixVersion( TUint32& aFlashPixVersion ) const = 0; 
   1.495 +    	
   1.496 +        /**
   1.497 +        * Gets the Interoperability Ifd Pointer tag data.
   1.498 +        * @since 2.6
   1.499 +        * @param aInteroperabilityIfdPointer Returned Interoperability Ifd 
   1.500 +        * Pointer data.
   1.501 +        * @return Error code.
   1.502 +        */
   1.503 +        virtual TInt GetInteroperabilityIfdPointer( 
   1.504 +            TUint32& aInteroperabilityIfdPointer ) const = 0; 
   1.505 +
   1.506 +        /**
   1.507 +        * Gets the thumbnail X Resolution tag data.
   1.508 +        * @since 2.6
   1.509 +        * @param aXResolution1 Returned thumbnail X Resolution numerator.
   1.510 +        * @param aXResolution1 Returned thumbnail X Resolution denominator.
   1.511 +        * @return Error code.
   1.512 +        */
   1.513 +    	virtual TInt GetThumbnailXResolution( 
   1.514 +            TUint32& aXResolution1, 
   1.515 +            TUint32& aXResolution2 ) const = 0;
   1.516 +    	
   1.517 +        /**
   1.518 +        * Gets the thumbnail Y Resolution tag data.
   1.519 +        * @since 2.6
   1.520 +        * @param aYResolution1 Returned thumbnail Y Resolution numerator.
   1.521 +        * @param aYResolution1 Returned thumbnail Y Resolution denominator.
   1.522 +        * @return Error code.
   1.523 +        */        
   1.524 +        virtual TInt GetThumbnailYResolution( 
   1.525 +            TUint32& aYResolution1, 
   1.526 +            TUint32& aYResolution2 ) const = 0;
   1.527 +    	
   1.528 +        /**
   1.529 +        * Gets the thumbnail Resolution Unit tag data.
   1.530 +        * @since 2.6
   1.531 +        * @param aResolutionUnit Returned thumbnail Resolution Unit data.
   1.532 +        * @return Error code.
   1.533 +        */            
   1.534 +        virtual TInt GetThumbnailResolutionUnit( 
   1.535 +            TUint16& aResolutionUnit ) const = 0;
   1.536 +    	
   1.537 +        /**
   1.538 +        * Gets the thumbnail Compression tag data.
   1.539 +        * @since 2.6
   1.540 +        * @param aCompression Returned thumbnail Compression data.
   1.541 +        * @return Error code.
   1.542 +        */            
   1.543 +        virtual TInt GetThumbnailCompression( TUint16& aCompression ) const = 0; 
   1.544 +    	
   1.545 +        /**
   1.546 +        * Gets the thumbnail Jpeg Interchange Format tag data.
   1.547 +        * @since 2.6
   1.548 +        * @param aJpegInterchangeFormat Returned thumbnail Jpeg Interchange 
   1.549 +        * Format data.
   1.550 +        * @return Error code.
   1.551 +        */            
   1.552 +        virtual TInt GetJpegInterchangeFormat( 
   1.553 +            TUint32& aJpegInterchangeFormat ) const = 0; 
   1.554 +    	
   1.555 +        /**
   1.556 +        * Gets the thumbnail Jpeg Interchange Format Length tag data.
   1.557 +        * @since 2.6
   1.558 +        * @param aJpegInterchangeFormatLength Returned thumbnail Jpeg 
   1.559 +        * Interchange Format Length data.
   1.560 +        * @return Error code.
   1.561 +        */    
   1.562 +        virtual TInt GetJpegInterchangeFormatLength( 
   1.563 +            TUint32& aJpegInterchangeFormatLength ) const = 0;
   1.564 +
   1.565 +        /**
   1.566 +        * Returns a copy of whole Exif APP1 segment in a descriptor.
   1.567 +        * @since 2.6
   1.568 +        * @return Descriptor containing the Exif APP1 segment data.
   1.569 +        */    
   1.570 +        virtual HBufC8* GetExifAppSegmentL() const = 0;
   1.571 +
   1.572 +        /**
   1.573 +        * Gets the Shutter Speed Value tag data.
   1.574 +        * @since 2.6
   1.575 +        * @param aShutterSpeedValue1 Shutter Speed Value numerator.
   1.576 +        * @param aShutterSpeedValue2 Shutter Speed Value denominator.
   1.577 +        * @return Error code.
   1.578 +        */
   1.579 +        virtual TInt GetShutterSpeedValue( TInt32& aShutterSpeedValue1, 
   1.580 +            TInt32& aShutterSpeedValue2 ) const = 0;
   1.581 +
   1.582 +        /**
   1.583 +        * Gets the Brightness Value tag data.
   1.584 +        * @since 2.6
   1.585 +        * @param aBrightnessValue1 Brightness Value numerator.
   1.586 +        * @param aBrightnessValue2 Brightness Value denominator.
   1.587 +        * @return Error code.
   1.588 +        */
   1.589 +        virtual TInt GetBrightnessValue( TInt32& aBrightnessValue1, 
   1.590 +            TInt32& aBrightnessValue2 ) const = 0;
   1.591 +
   1.592 +        /**
   1.593 +        * Gets the Custom Rendered tag data.
   1.594 +        * @since 2.6
   1.595 +        * @param aCustomRendered Returned Custom Rendered data.
   1.596 +        * @return Error code.
   1.597 +        */
   1.598 +        virtual TInt GetCustomRendered( TUint16& aCustomRendered ) const = 0;
   1.599 +
   1.600 +        /**
   1.601 +        * Gets the Gain Control tag data.
   1.602 +        * @since 2.6
   1.603 +        * @param aGainControl Returned Gain Control data.
   1.604 +        * @return Error code.
   1.605 +        */
   1.606 +        virtual TInt GetGainControl( TUint16& aGainControl ) const = 0;
   1.607 +
   1.608 +        /**
   1.609 +        * Gets the Gps Version tag data.
   1.610 +        * @since 2.6
   1.611 +        * @param aGpsVersion Returned Gps Version data.
   1.612 +        * @return Error code.
   1.613 +        */
   1.614 +        virtual TInt GetGpsVersion( TUint32& aGpsVersion ) const = 0; 
   1.615 +    };
   1.616 +
   1.617 +#endif      // EXIFREAD_H   
   1.618 +            
   1.619 +// End of File