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 #start_since SINCE_3_1_SDK 00060 00061 public: // Enumerations 00065 enum TExifReadOption 00066 { 00067 ENoOptions = 0x0000, // Original, safe full parsing 00068 ENoJpeg = 0x0001, // No main JPEG included, no parsing for main image 00069 EFastJpegParsing = 0x0002 // Fast JPEG marker parsing 00070 }; 00071 #end_since SINCE_3_1_SDK 00072 00073 public: // Constructors and destructor 00074 00078 IMPORT_C static CExifRead* NewL( const TDesC8& aExifData ); 00079 00080 #start_since SINCE_3_1_SDK 00081 00084 IMPORT_C static CExifRead* NewL( const TDesC8& aExifData, TUint aExifReadOption ); 00085 #end_since SINCE_3_1_SDK 00086 00090 virtual ~CExifRead(); 00091 00092 public: // New functions 00093 00102 virtual const CExifTag* GetTagL( 00103 TExifIfdType aIfdType, 00104 TUint16 aTagId ) const = 0; 00105 00113 virtual TUint16* GetTagIdsL( 00114 TExifIfdType aIfdType, 00115 TInt& aNoTags ) const = 0; 00116 00123 virtual TExifIfdType* GetIfdTypesL( TInt& aNoIfd ) const = 0; 00124 00131 virtual HBufC8* GetThumbnailL() const = 0; 00132 00140 virtual TBool IfdExists( TExifIfdType aIfdType ) const = 0; 00141 00150 virtual TBool TagExists( 00151 TUint16 aTagId, 00152 TExifIfdType aIfdType ) const = 0; 00153 00160 virtual HBufC8* GetImageDescriptionL() const = 0; 00161 00167 virtual HBufC8* GetMakeL() const = 0; 00168 00174 virtual HBufC8* GetModelL() const = 0; 00175 00182 virtual HBufC8* GetTransferFunctionL() const = 0; 00183 00190 virtual HBufC8* GetDateTimeL() const = 0; 00191 00198 virtual HBufC8* GetSoftwareL() const = 0; 00199 00206 virtual HBufC8* GetCopyrightL() const = 0; 00207 00214 virtual TInt GetOrientation( TUint16& aOrientation ) const = 0; 00215 00223 virtual TInt GetXResolution( 00224 TUint32& aXResolution1, 00225 TUint32& aXResolution2 ) const = 0; 00226 00234 virtual TInt GetYResolution( 00235 TUint32& aYResolution1, 00236 TUint32& aYResolution2 ) const = 0; 00237 00244 virtual TInt GetResolutionUnit( TUint16& aResolutionUnit ) const = 0; 00245 00252 virtual TInt GetYCbCrPositioning( 00253 TUint16& aYCbCrPositioning ) const = 0; 00254 00261 virtual TInt GetExifIfdPointer( TUint32& aExifIfdPointer ) const = 0; 00262 00269 virtual TInt GetGpsInfoIfdPointer( 00270 TUint32& aGpsInfoIfdPointer ) const = 0; 00271 00278 virtual HBufC8* GetIsoSpeedRatingsL() const = 0; 00279 00286 virtual HBufC8* GetDateTimeOriginalL() const = 0; 00287 00294 virtual HBufC8* GetDateTimeDigitizedL() const = 0; 00295 00302 virtual HBufC8* GetMakerNoteL() const = 0; 00303 00310 virtual HBufC8* GetUserCommentL() const = 0; 00311 00318 virtual HBufC8* GetRelatedSoundFileL() const = 0; 00319 00326 virtual TInt GetExposureTime( 00327 TUint32& aExposureTime1, 00328 TUint32& aExposureTime2 ) const = 0; 00329 00337 virtual TInt GetComponentsConfiguration( 00338 TUint8& aFirstComponent, TUint8& aSecondComponent, 00339 TUint8& aThirdComponent, TUint8& aFourthComponent) const = 0; 00340 00347 virtual TInt GetFlash( TUint16& aFlash ) const = 0; 00348 00355 virtual TInt GetColorSpace( TUint16& aColorSpace ) const = 0; 00356 00363 virtual TInt GetPixelXDimension( TUint32& aPixelXDimension ) const = 0; 00364 00371 virtual TInt GetPixelYDimension( TUint32& aPixelYDimension ) const = 0; 00372 00379 virtual TInt GetExposureMode( TUint16& aExposureMode ) const = 0; 00380 00387 virtual TInt GetWhiteBalance( TUint16& aWhiteBalance ) const = 0; 00388 00395 virtual TInt GetSceneCaptureType( 00396 TUint16& aSceneCaptureType ) const = 0; 00397 00404 virtual TInt GetExposureProgram( TUint16& aExposureProgram ) const = 0; 00405 00413 virtual TInt GetApertureValue( 00414 TUint32& aApertureValue1, 00415 TUint32& aApertureValue2 ) const = 0; 00416 00424 virtual TInt GetExposureBiasValue( 00425 TInt32& aExposureBiasValue1, 00426 TInt32& aExposureBiasValue2 ) const = 0; 00427 00434 virtual TInt GetMeteringMode( TUint16& aMeteringMode ) const = 0; 00435 00442 virtual TInt GetLightSource( TUint16& aLightSource ) const = 0; 00443 00450 virtual TInt GetFileSource( TInt8& aFileSource ) const = 0; 00451 00459 virtual TInt GetDigitalZoomRatio( 00460 TUint32& aDigitalZoomRatio1, 00461 TUint32& aDigitalZoomRatio2 ) const = 0; 00462 00469 virtual TInt GetContrast( TUint16& aContrast ) const = 0; 00470 00477 virtual TInt GetSaturation( TUint16& aSaturation ) const = 0; 00478 00485 virtual TInt GetSharpness( TUint16& aSharpness ) const = 0; 00486 00493 virtual TInt GetExifVersion( TUint32& aExifVersion ) const = 0; 00494 00501 virtual TInt GetFlashPixVersion( TUint32& aFlashPixVersion ) const = 0; 00502 00510 virtual TInt GetInteroperabilityIfdPointer( 00511 TUint32& aInteroperabilityIfdPointer ) const = 0; 00512 00520 virtual TInt GetThumbnailXResolution( 00521 TUint32& aXResolution1, 00522 TUint32& aXResolution2 ) const = 0; 00523 00531 virtual TInt GetThumbnailYResolution( 00532 TUint32& aYResolution1, 00533 TUint32& aYResolution2 ) const = 0; 00534 00541 virtual TInt GetThumbnailResolutionUnit( 00542 TUint16& aResolutionUnit ) const = 0; 00543 00550 virtual TInt GetThumbnailCompression( TUint16& aCompression ) const = 0; 00551 00559 virtual TInt GetJpegInterchangeFormat( 00560 TUint32& aJpegInterchangeFormat ) const = 0; 00561 00569 virtual TInt GetJpegInterchangeFormatLength( 00570 TUint32& aJpegInterchangeFormatLength ) const = 0; 00571 00577 virtual HBufC8* GetExifAppSegmentL() const = 0; 00578 00586 virtual TInt GetShutterSpeedValue( TInt32& aShutterSpeedValue1, 00587 TInt32& aShutterSpeedValue2 ) const = 0; 00588 00596 virtual TInt GetBrightnessValue( TInt32& aBrightnessValue1, 00597 TInt32& aBrightnessValue2 ) const = 0; 00598 00605 virtual TInt GetCustomRendered( TUint16& aCustomRendered ) const = 0; 00606 00613 virtual TInt GetGainControl( TUint16& aGainControl ) const = 0; 00614 00621 virtual TInt GetGpsVersion( TUint32& aGpsVersion ) const = 0; 00622 }; 00623 00624 // EXIFREAD_H 00625 #endif 00626 00627 // End of File