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