exifread.h

Go to the documentation of this file.
00001 /*
00002 * ==============================================================================
00003 *  Name        : ExifRead.h
00004 *  Part of     : Exif Library
00005 *  Interface   : Public API
00006 *  Description : Exif file format parser ( reader ) class
00007 *  Version     : 
00008 *
00009 *  Copyright (c) 2003, 2004 Nokia Corporation.
00010 *  This material, including documentation and any related 
00011 *  computer programs, is protected by copyright controlled by 
00012 *  Nokia Corporation. All rights are reserved. Copying, 
00013 *  including reproducing, storing, adapting or translating, any 
00014 *  or all of this material requires the prior written consent of 
00015 *  Nokia Corporation. This material also contains confidential 
00016 *  information which may not be disclosed to others without the 
00017 *  prior written consent of Nokia Corporation.
00018 * ==============================================================================
00019 */
00020 
00021 #ifndef EXIFREAD_H
00022 #define EXIFREAD_H
00023 
00024 //  INCLUDES
00025 #include <e32base.h>
00026 
00027 // CONSTANTS
00028 
00029 // MACROS
00030 
00031 // DATA TYPES
00032 enum TExifIfdType
00033     {
00034         EIfd0 = 0,
00035         EIfdExif,
00036         EIfd1,
00037         EIfdGps,
00038         EIfdIntOp
00039     };
00040 
00041 
00042 // FUNCTION PROTOTYPES
00043 
00044 // FORWARD DECLARATIONS
00045 class CExifTag;
00046 
00047 // CLASS DECLARATION
00048 
00057 NONSHARABLE_CLASS( CExifRead ): public CBase
00058     {
00059 
00060     public:  // Enumerations
00061         enum TExifReadOption
00062         {
00063             ENoOptions          = 0x0000, // Original, safe full parsing
00064             ENoJpeg             = 0x0001, // No main JPEG included, no parsing for main image
00065             EFastJpegParsing    = 0x0002, // Fast JPEG marker parsing
00066             ENoTagChecking      = 0x0004  // Ignore unknown EXIF tags and mandatory tag checking
00067         };
00068 
00069     public:  // Constructors and destructor
00070         
00074         IMPORT_C static CExifRead* NewL( const TDesC8& aExifData );
00075 
00076         IMPORT_C static CExifRead* NewL( const TDesC8& aExifData, TUint aExifReadOption );
00077         
00081         virtual ~CExifRead();
00082 
00083     public: // New functions
00084 
00093         virtual const CExifTag* GetTagL( 
00094             TExifIfdType aIfdType, 
00095             TUint16 aTagId ) const = 0;
00096 
00104         virtual TUint16* GetTagIdsL( 
00105             TExifIfdType aIfdType, 
00106             TInt& aNoTags ) const = 0;
00107 
00114         virtual TExifIfdType* GetIfdTypesL( TInt& aNoIfd ) const = 0;
00115 
00122         virtual HBufC8* GetThumbnailL() const = 0;
00123 
00131         virtual TBool IfdExists( TExifIfdType aIfdType ) const = 0;
00132 
00141         virtual TBool TagExists( 
00142             TUint16 aTagId, 
00143             TExifIfdType aIfdType ) const = 0;
00144 
00151         virtual HBufC8* GetImageDescriptionL() const = 0;
00152 
00158         virtual HBufC8* GetMakeL() const = 0;
00159         
00165         virtual HBufC8* GetModelL() const = 0;
00166         
00173         virtual HBufC8* GetTransferFunctionL() const = 0; 
00174         
00181         virtual HBufC8* GetDateTimeL() const = 0; 
00182         
00189         virtual HBufC8* GetSoftwareL() const = 0; 
00190         
00197         virtual HBufC8* GetCopyrightL() const = 0; 
00198 
00205         virtual TInt GetOrientation( TUint16& aOrientation ) const = 0;
00206         
00214         virtual TInt GetXResolution( 
00215             TUint32& aXResolution1, 
00216             TUint32& aXResolution2 ) const = 0;
00217         
00225         virtual TInt GetYResolution( 
00226             TUint32& aYResolution1, 
00227             TUint32& aYResolution2 ) const = 0;
00228         
00235         virtual TInt GetResolutionUnit( TUint16& aResolutionUnit ) const = 0; 
00236         
00243         virtual TInt GetYCbCrPositioning( 
00244             TUint16& aYCbCrPositioning ) const = 0; 
00245         
00252         virtual TInt GetExifIfdPointer( TUint32& aExifIfdPointer ) const = 0; 
00253         
00260         virtual TInt GetGpsInfoIfdPointer( 
00261             TUint32& aGpsInfoIfdPointer ) const = 0; 
00262 
00269         virtual HBufC8* GetIsoSpeedRatingsL() const = 0; 
00270         
00277         virtual HBufC8* GetDateTimeOriginalL() const = 0;
00278         
00285         virtual HBufC8* GetDateTimeDigitizedL() const = 0; 
00286 
00293         virtual HBufC8* GetMakerNoteL() const = 0; 
00294         
00301         virtual HBufC8* GetUserCommentL() const = 0; 
00302         
00309         virtual HBufC8* GetRelatedSoundFileL() const = 0; 
00310 
00317         virtual TInt GetExposureTime( 
00318             TUint32& aExposureTime1, 
00319             TUint32& aExposureTime2 ) const = 0; 
00320         
00328         virtual TInt GetComponentsConfiguration( 
00329             TUint8& aFirstComponent, TUint8& aSecondComponent,
00330             TUint8& aThirdComponent, TUint8& aFourthComponent) const = 0; 
00331         
00338         virtual TInt GetFlash( TUint16& aFlash ) const = 0; 
00339         
00346         virtual TInt GetColorSpace( TUint16& aColorSpace ) const = 0; 
00347         
00354         virtual TInt GetPixelXDimension( TUint32& aPixelXDimension ) const = 0; 
00355         
00362         virtual TInt GetPixelYDimension( TUint32& aPixelYDimension ) const = 0; 
00363         
00370         virtual TInt GetExposureMode( TUint16& aExposureMode ) const = 0; 
00371         
00378         virtual TInt GetWhiteBalance( TUint16& aWhiteBalance ) const = 0; 
00379         
00386         virtual TInt GetSceneCaptureType( 
00387             TUint16& aSceneCaptureType ) const = 0; 
00388         
00395         virtual TInt GetExposureProgram( TUint16& aExposureProgram ) const = 0;
00396         
00404         virtual TInt GetApertureValue( 
00405             TUint32& aApertureValue1, 
00406             TUint32& aApertureValue2 ) const = 0; 
00407         
00415         virtual TInt GetExposureBiasValue( 
00416             TInt32& aExposureBiasValue1, 
00417             TInt32& aExposureBiasValue2 ) const = 0; 
00418         
00425         virtual TInt GetMeteringMode( TUint16& aMeteringMode ) const = 0; 
00426         
00433         virtual TInt GetLightSource( TUint16& aLightSource ) const = 0; 
00434         
00441         virtual TInt GetFileSource( TInt8& aFileSource ) const = 0; 
00442         
00450         virtual TInt GetDigitalZoomRatio( 
00451             TUint32& aDigitalZoomRatio1, 
00452             TUint32& aDigitalZoomRatio2 ) const = 0; 
00453         
00460         virtual TInt GetContrast( TUint16& aContrast ) const = 0; 
00461         
00468         virtual TInt GetSaturation( TUint16& aSaturation ) const = 0; 
00469         
00476         virtual TInt GetSharpness( TUint16& aSharpness ) const = 0; 
00477         
00484         virtual TInt GetExifVersion( TUint32& aExifVersion ) const = 0; 
00485         
00492         virtual TInt GetFlashPixVersion( TUint32& aFlashPixVersion ) const = 0; 
00493         
00501         virtual TInt GetInteroperabilityIfdPointer( 
00502             TUint32& aInteroperabilityIfdPointer ) const = 0; 
00503 
00511         virtual TInt GetThumbnailXResolution( 
00512             TUint32& aXResolution1, 
00513             TUint32& aXResolution2 ) const = 0;
00514         
00522         virtual TInt GetThumbnailYResolution( 
00523             TUint32& aYResolution1, 
00524             TUint32& aYResolution2 ) const = 0;
00525         
00532         virtual TInt GetThumbnailResolutionUnit( 
00533             TUint16& aResolutionUnit ) const = 0;
00534         
00541         virtual TInt GetThumbnailCompression( TUint16& aCompression ) const = 0; 
00542         
00550         virtual TInt GetJpegInterchangeFormat( 
00551             TUint32& aJpegInterchangeFormat ) const = 0; 
00552         
00560         virtual TInt GetJpegInterchangeFormatLength( 
00561             TUint32& aJpegInterchangeFormatLength ) const = 0;
00562 
00568         virtual HBufC8* GetExifAppSegmentL() const = 0;
00569 
00577         virtual TInt GetShutterSpeedValue( TInt32& aShutterSpeedValue1, 
00578             TInt32& aShutterSpeedValue2 ) const = 0;
00579 
00587         virtual TInt GetBrightnessValue( TInt32& aBrightnessValue1, 
00588             TInt32& aBrightnessValue2 ) const = 0;
00589 
00596         virtual TInt GetCustomRendered( TUint16& aCustomRendered ) const = 0;
00597 
00604         virtual TInt GetGainControl( TUint16& aGainControl ) const = 0;
00605 
00612         virtual TInt GetGpsVersion( TUint32& aGpsVersion ) const = 0; 
00613     };
00614 
00615 // EXIFREAD_H   
00616 #endif
00617             
00618 // End of File

Copyright © Nokia Corporation 2001-2008
Back to top