00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef EXIFREAD_H
00022 #define EXIFREAD_H
00023
00024
00025 #include <e32base.h>
00026
00027
00028
00029
00030
00031
00032 enum TExifIfdType
00033 {
00034 EIfd0 = 0,
00035 EIfdExif,
00036 EIfd1,
00037 EIfdGps,
00038 EIfdIntOp
00039 };
00040
00041
00042
00043
00044
00045 class CExifTag;
00046
00047
00048
00057 NONSHARABLE_CLASS( CExifRead ): public CBase
00058 {
00059
00060 public:
00061 enum TExifReadOption
00062 {
00063 ENoOptions = 0x0000,
00064 ENoJpeg = 0x0001,
00065 EFastJpegParsing = 0x0002,
00066 ENoTagChecking = 0x0004
00067 };
00068
00069 public:
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:
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
00616 #endif
00617
00618