williamr@2: /* williamr@2: * Copyright (c) 2003, 2004 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Exif file format parser ( reader ) class williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef EXIFREAD_H williamr@2: #define EXIFREAD_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: williamr@2: // CONSTANTS williamr@2: williamr@2: // MACROS williamr@2: williamr@2: // DATA TYPES williamr@2: enum TExifIfdType williamr@2: { williamr@2: EIfd0 = 0, williamr@2: EIfdExif, williamr@2: EIfd1, williamr@2: EIfdGps, williamr@2: EIfdIntOp williamr@2: }; williamr@2: williamr@2: williamr@2: // FUNCTION PROTOTYPES williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class CExifTag; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * CExifRead williamr@2: * Interface class for parsing Exif v2.2 file format. An instance of this class williamr@2: * can be instantiated providing valid Exif data. williamr@2: * williamr@2: * @lib ExifLib williamr@2: * @since 2.6 williamr@2: */ williamr@2: NONSHARABLE_CLASS( CExifRead ): public CBase williamr@2: { williamr@2: williamr@2: public: // Enumerations williamr@2: enum TExifReadOption williamr@2: { williamr@2: ENoOptions = 0x0000, // Original, safe full parsing williamr@2: ENoJpeg = 0x0001, // No main JPEG included, no parsing for main image williamr@2: EFastJpegParsing = 0x0002, // Fast JPEG marker parsing williamr@2: ENoTagChecking = 0x0004 // Ignore unknown EXIF tags and mandatory tag checking williamr@2: }; williamr@2: williamr@2: public: // Constructors and destructor williamr@2: williamr@2: /** williamr@2: * Two-phased constructor. williamr@2: */ williamr@2: IMPORT_C static CExifRead* NewL( const TDesC8& aExifData ); williamr@2: williamr@2: IMPORT_C static CExifRead* NewL( const TDesC8& aExifData, TUint aExifReadOption ); williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: virtual ~CExifRead(); williamr@2: williamr@2: public: // New functions williamr@2: williamr@2: /** williamr@2: * Returns the Tag instance, which has the specified ID from the williamr@2: * requested IFD. williamr@2: * @since 2.6 williamr@2: * @param aIfdType The hosting IFD type williamr@2: * @param aTagId The queried tag ID. williamr@2: * @return Unmodifiable tag instance returned. williamr@2: */ williamr@2: virtual const CExifTag* GetTagL( williamr@2: TExifIfdType aIfdType, williamr@2: TUint16 aTagId ) const = 0; williamr@2: williamr@2: /** williamr@2: * Returns the IDs of all the tags that are stored in the Exif data. williamr@2: * @since 2.6 williamr@2: * @param aIfdType The hosting IFD type. williamr@2: * @param aNoTags Number of tag IDs returned. williamr@2: * @return Pointer to the tag IDs. williamr@2: */ williamr@2: virtual TUint16* GetTagIdsL( williamr@2: TExifIfdType aIfdType, williamr@2: TInt& aNoTags ) const = 0; williamr@2: williamr@2: /** williamr@2: * Returns the types of the IFDs stored in the Exif data. williamr@2: * @since 2.6 williamr@2: * @param aNoIfd Number of IFD types returned. williamr@2: * @return Pointer to the IFD types. williamr@2: */ williamr@2: virtual TExifIfdType* GetIfdTypesL( TInt& aNoIfd ) const = 0; williamr@2: williamr@2: /** williamr@2: * Returns pointer to a copy of the thumbnail image data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing a copy of the williamr@2: * Exif thumbnail image. williamr@2: */ williamr@2: virtual HBufC8* GetThumbnailL() const = 0; williamr@2: williamr@2: /** williamr@2: * Returns a boolean stating if the queried IFD structure exists in the williamr@2: * Exif data. williamr@2: * @since 2.6 williamr@2: * @param aIfdType The queried IFD type. williamr@2: * @return Boolean stating if the specified IFD exists or not. williamr@2: */ williamr@2: virtual TBool IfdExists( TExifIfdType aIfdType ) const = 0; williamr@2: williamr@2: /** williamr@2: * Returns a boolean stating if the queried tag exists in the specified williamr@2: * IFD structure. williamr@2: * @since 2.6 williamr@2: * @param aTagId Queried tag ID. williamr@2: * @param aIfdType The hosting IFD type. williamr@2: * @return Boolean stating if the specified tag exists or not. williamr@2: */ williamr@2: virtual TBool TagExists( williamr@2: TUint16 aTagId, williamr@2: TExifIfdType aIfdType ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Image Description tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Image williamr@2: * Description data. williamr@2: */ williamr@2: virtual HBufC8* GetImageDescriptionL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Make tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Make data. williamr@2: */ williamr@2: virtual HBufC8* GetMakeL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Model tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Model data. williamr@2: */ williamr@2: virtual HBufC8* GetModelL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Transfer Function tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Transfer williamr@2: * Function data. williamr@2: */ williamr@2: virtual HBufC8* GetTransferFunctionL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Date Time tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Date Time williamr@2: * data. williamr@2: */ williamr@2: virtual HBufC8* GetDateTimeL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Software tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Software williamr@2: * data. williamr@2: */ williamr@2: virtual HBufC8* GetSoftwareL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Copyright tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Copyright williamr@2: * data. williamr@2: */ williamr@2: virtual HBufC8* GetCopyrightL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Orientation tag data. williamr@2: * @since 2.6 williamr@2: * @param aOrientation Returned Orientation data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetOrientation( TUint16& aOrientation ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the X Resolution tag data. williamr@2: * @since 2.6 williamr@2: * @param aXResolution1 Returned X Resolution numerator. williamr@2: * @param aXResolution2 Returned X Resolution denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetXResolution( williamr@2: TUint32& aXResolution1, williamr@2: TUint32& aXResolution2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Y Resolution tag data. williamr@2: * @since 2.6 williamr@2: * @param aYResolution1 Returned Y Resolution numerator. williamr@2: * @param aYResolution2 Returned Y Resolution denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetYResolution( williamr@2: TUint32& aYResolution1, williamr@2: TUint32& aYResolution2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Resolution Unit tag data. williamr@2: * @since 2.6 williamr@2: * @param aResolutionUnit Returned Resolution Unit data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetResolutionUnit( TUint16& aResolutionUnit ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the YCbCr Positioning tag data. williamr@2: * @since 2.6 williamr@2: * @param aYCbCrPositioning Returned YCbCr Positioning data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetYCbCrPositioning( williamr@2: TUint16& aYCbCrPositioning ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Exif Ifd Pointer tag data. williamr@2: * @since 2.6 williamr@2: * @param aExifIfdPointer Returned Exif Ifd Pointer data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetExifIfdPointer( TUint32& aExifIfdPointer ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Gps Info Ifd Pointer tag data. williamr@2: * @since 2.6 williamr@2: * @param aGpsInfoIfdPointer Returned Gps Info Ifd Pointer data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetGpsInfoIfdPointer( williamr@2: TUint32& aGpsInfoIfdPointer ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Iso Speed Ratings tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Iso Speed williamr@2: * Ratings data. williamr@2: */ williamr@2: virtual HBufC8* GetIsoSpeedRatingsL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Date Time Original tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Date Time williamr@2: * Original data. williamr@2: */ williamr@2: virtual HBufC8* GetDateTimeOriginalL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Date Time Digitized tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Date Time williamr@2: * Digitized data. williamr@2: */ williamr@2: virtual HBufC8* GetDateTimeDigitizedL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Maker Note tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Maker Note williamr@2: * data. williamr@2: */ williamr@2: virtual HBufC8* GetMakerNoteL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the User Comment tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the User williamr@2: * Comment data. williamr@2: */ williamr@2: virtual HBufC8* GetUserCommentL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Related Sound File tag data. williamr@2: * @since 2.6 williamr@2: * @return Pointer to the descriptor containing copy of the Related williamr@2: * Sound File data. williamr@2: */ williamr@2: virtual HBufC8* GetRelatedSoundFileL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Exposure Time tag data. williamr@2: * @since 2.6 williamr@2: * @param ExposureTime Returned Exposure Time data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetExposureTime( williamr@2: TUint32& aExposureTime1, williamr@2: TUint32& aExposureTime2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Components Configuration tag data. williamr@2: * @since 2.6 williamr@2: * @param aComponentsConfiguration Returned Components Configuration williamr@2: * data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetComponentsConfiguration( williamr@2: TUint8& aFirstComponent, TUint8& aSecondComponent, williamr@2: TUint8& aThirdComponent, TUint8& aFourthComponent) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Flash tag data. williamr@2: * @since 2.6 williamr@2: * @param aFlash Returned Flash data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetFlash( TUint16& aFlash ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the ColorSpace tag data. williamr@2: * @since 2.6 williamr@2: * @param aColorSpace Returned ColorSpace data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetColorSpace( TUint16& aColorSpace ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Pixel X Dimension tag data. williamr@2: * @since 2.6 williamr@2: * @param aPixelXDimension Returned Pixel X Dimension data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetPixelXDimension( TUint32& aPixelXDimension ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Pixel Y Dimension tag data. williamr@2: * @since 2.6 williamr@2: * @param aPixelYDimension Returned Pixel Y Dimension data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetPixelYDimension( TUint32& aPixelYDimension ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Exposure Mode tag data. williamr@2: * @since 2.6 williamr@2: * @param aExposureMode Returned Exposure Mode data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetExposureMode( TUint16& aExposureMode ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the White Balance tag data. williamr@2: * @since 2.6 williamr@2: * @param aWhiteBalance Returned White Balance data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetWhiteBalance( TUint16& aWhiteBalance ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Scene Capture Type tag data. williamr@2: * @since 2.6 williamr@2: * @param aSceneCaptureType Returned Scene Capture Type data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetSceneCaptureType( williamr@2: TUint16& aSceneCaptureType ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Exposure Program tag data. williamr@2: * @since 2.6 williamr@2: * @param aExposureProgram Returned Exposure Program data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetExposureProgram( TUint16& aExposureProgram ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Aperture Value tag data. williamr@2: * @since 2.6 williamr@2: * @param aApertureValue1 Returned Aperture Value numerator. williamr@2: * @param aApertureValue2 Returned Aperture Value denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetApertureValue( williamr@2: TUint32& aApertureValue1, williamr@2: TUint32& aApertureValue2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Exposure Bias Value tag data. williamr@2: * @since 2.6 williamr@2: * @param aExposureBiasValue1 Returned Exposure Bias Value numerator. williamr@2: * @param aExposureBiasValue1 Returned Exposure Bias Value denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetExposureBiasValue( williamr@2: TInt32& aExposureBiasValue1, williamr@2: TInt32& aExposureBiasValue2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Metering Mode tag data. williamr@2: * @since 2.6 williamr@2: * @param aMeteringMode Returned Metering Mode data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetMeteringMode( TUint16& aMeteringMode ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Light Source tag data. williamr@2: * @since 2.6 williamr@2: * @param aLightSource Returned Light Source data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetLightSource( TUint16& aLightSource ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the File Source tag data. williamr@2: * @since 2.6 williamr@2: * @param aFileSource Returned File Source data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetFileSource( TInt8& aFileSource ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Digital Zoom Ratio tag data. williamr@2: * @since 2.6 williamr@2: * @param aDigitalZoomRatio1 Returned Digital Zoom Ratio numerator. williamr@2: * @param aDigitalZoomRatio2 Returned Digital Zoom Ratio denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetDigitalZoomRatio( williamr@2: TUint32& aDigitalZoomRatio1, williamr@2: TUint32& aDigitalZoomRatio2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Contrast tag data. williamr@2: * @since 2.6 williamr@2: * @param aContrast Returned Contrast data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetContrast( TUint16& aContrast ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Saturation tag data. williamr@2: * @since 2.6 williamr@2: * @param aSaturation Returned Saturation data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetSaturation( TUint16& aSaturation ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Sharpness tag data. williamr@2: * @since 2.6 williamr@2: * @param aSharpness Returned Sharpness data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetSharpness( TUint16& aSharpness ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Exif Version tag data. williamr@2: * @since 2.6 williamr@2: * @param aExifVersion Returned Exif Version data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetExifVersion( TUint32& aExifVersion ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Flash Pix Version tag data. williamr@2: * @since 2.6 williamr@2: * @param aFlashPixVersion Returned Flash Pix Version data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetFlashPixVersion( TUint32& aFlashPixVersion ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Interoperability Ifd Pointer tag data. williamr@2: * @since 2.6 williamr@2: * @param aInteroperabilityIfdPointer Returned Interoperability Ifd williamr@2: * Pointer data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetInteroperabilityIfdPointer( williamr@2: TUint32& aInteroperabilityIfdPointer ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the thumbnail X Resolution tag data. williamr@2: * @since 2.6 williamr@2: * @param aXResolution1 Returned thumbnail X Resolution numerator. williamr@2: * @param aXResolution1 Returned thumbnail X Resolution denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetThumbnailXResolution( williamr@2: TUint32& aXResolution1, williamr@2: TUint32& aXResolution2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the thumbnail Y Resolution tag data. williamr@2: * @since 2.6 williamr@2: * @param aYResolution1 Returned thumbnail Y Resolution numerator. williamr@2: * @param aYResolution1 Returned thumbnail Y Resolution denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetThumbnailYResolution( williamr@2: TUint32& aYResolution1, williamr@2: TUint32& aYResolution2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the thumbnail Resolution Unit tag data. williamr@2: * @since 2.6 williamr@2: * @param aResolutionUnit Returned thumbnail Resolution Unit data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetThumbnailResolutionUnit( williamr@2: TUint16& aResolutionUnit ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the thumbnail Compression tag data. williamr@2: * @since 2.6 williamr@2: * @param aCompression Returned thumbnail Compression data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetThumbnailCompression( TUint16& aCompression ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the thumbnail Jpeg Interchange Format tag data. williamr@2: * @since 2.6 williamr@2: * @param aJpegInterchangeFormat Returned thumbnail Jpeg Interchange williamr@2: * Format data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetJpegInterchangeFormat( williamr@2: TUint32& aJpegInterchangeFormat ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the thumbnail Jpeg Interchange Format Length tag data. williamr@2: * @since 2.6 williamr@2: * @param aJpegInterchangeFormatLength Returned thumbnail Jpeg williamr@2: * Interchange Format Length data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetJpegInterchangeFormatLength( williamr@2: TUint32& aJpegInterchangeFormatLength ) const = 0; williamr@2: williamr@2: /** williamr@2: * Returns a copy of whole Exif APP1 segment in a descriptor. williamr@2: * @since 2.6 williamr@2: * @return Descriptor containing the Exif APP1 segment data. williamr@2: */ williamr@2: virtual HBufC8* GetExifAppSegmentL() const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Shutter Speed Value tag data. williamr@2: * @since 2.6 williamr@2: * @param aShutterSpeedValue1 Shutter Speed Value numerator. williamr@2: * @param aShutterSpeedValue2 Shutter Speed Value denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetShutterSpeedValue( TInt32& aShutterSpeedValue1, williamr@2: TInt32& aShutterSpeedValue2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Brightness Value tag data. williamr@2: * @since 2.6 williamr@2: * @param aBrightnessValue1 Brightness Value numerator. williamr@2: * @param aBrightnessValue2 Brightness Value denominator. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetBrightnessValue( TInt32& aBrightnessValue1, williamr@2: TInt32& aBrightnessValue2 ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Custom Rendered tag data. williamr@2: * @since 2.6 williamr@2: * @param aCustomRendered Returned Custom Rendered data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetCustomRendered( TUint16& aCustomRendered ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Gain Control tag data. williamr@2: * @since 2.6 williamr@2: * @param aGainControl Returned Gain Control data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetGainControl( TUint16& aGainControl ) const = 0; williamr@2: williamr@2: /** williamr@2: * Gets the Gps Version tag data. williamr@2: * @since 2.6 williamr@2: * @param aGpsVersion Returned Gps Version data. williamr@2: * @return Error code. williamr@2: */ williamr@2: virtual TInt GetGpsVersion( TUint32& aGpsVersion ) const = 0; williamr@2: }; williamr@2: williamr@2: #endif // EXIFREAD_H williamr@2: williamr@2: // End of File