00001 /* 00002 * ============================================================================== 00003 * Name : ExifModify.h 00004 * Part of : Exif Library 00005 * Interface : Public API 00006 * Description : Exif file format creator/modifier 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 EXIFMODIFY_H 00022 #define EXIFMODIFY_H 00023 00024 // INCLUDES 00025 #include <e32base.h> 00026 #include "ExifRead.h" 00027 00028 // CONSTANTS 00029 00030 // MACROS 00031 00032 // DATA TYPES 00033 00034 // FUNCTION PROTOTYPES 00035 00036 // FORWARD DECLARATIONS 00037 class TExifTagInfo; 00038 00039 // CLASS DECLARATION 00040 00051 NONSHARABLE_CLASS( CExifModify ): public CBase 00052 { 00053 public: // Enumerations 00054 00058 enum TOperationMode 00059 { 00060 EModify = 0, 00061 ECreate 00062 }; 00063 00064 #start_since SINCE_3_1_SDK 00065 public: 00069 enum TExifModifyOption 00070 { 00071 ENoOptions = 0x0000, 00072 ENoJpegParsing = 0x0001 // No jpeg validity checking is done 00073 }; 00074 #end_since SINCE_3_1_SDK 00075 00076 00077 public: // Constructors and destructor 00078 00082 IMPORT_C static CExifModify* NewL( 00083 const TDesC8& aInData, 00084 CExifModify::TOperationMode aOperationMode = EModify ); 00085 00086 #start_since SINCE_3_1_SDK 00087 00090 IMPORT_C static CExifModify* NewL( 00091 const TDesC8& aInData, 00092 CExifModify::TOperationMode aOperationMode, 00093 TUint aExifModifyOption ); 00094 #end_since SINCE_3_1_SDK 00095 00096 00100 IMPORT_C static CExifModify* NewL(); 00101 00105 virtual ~CExifModify(); 00106 00107 public: // New functions 00108 00115 virtual const CExifRead* Reader() const = 0; 00116 00126 virtual void SetTagL( 00127 TExifIfdType aIfdType, 00128 TExifTagInfo aExifTagInfo, 00129 const TDesC8& aTagData ) = 0; 00130 00139 virtual TInt DeleteTag( TExifIfdType aIfdType, TUint16 aTagId ) = 0; 00140 00148 virtual TInt DeleteIfd( TExifIfdType aIfdType ) = 0; 00149 00157 virtual void SetThumbnailL( const TDesC8& aThumbnailData ) = 0; 00158 00165 virtual TInt RemoveThumbnail() = 0; 00166 00175 virtual HBufC8* WriteDataL( const TDesC8& aInData ) = 0; 00176 00183 virtual void SetImageDescriptionL( const TDesC8& aImageDescription ) = 0; 00184 00191 virtual void SetMakeL( const TDesC8& aMake ) = 0; 00192 00199 virtual void SetModelL( const TDesC8& aModel ) = 0; 00200 00207 virtual void SetOrientationL( TUint16 aOrientation ) = 0; 00208 00216 virtual void SetXResolutionL( 00217 TUint32 aXResolution1, 00218 TUint32 aXResolution2 ) = 0; 00219 00227 virtual void SetYResolutionL( 00228 TUint32 aYResolution1, 00229 TUint32 aYResolution2 ) = 0; 00230 00237 virtual void SetResolutionUnitL( TUint16 aResolutionUnit ) = 0; 00238 00245 virtual void SetTransferFunctionL( 00246 const TDesC8& aTransferFunction ) = 0; 00247 00254 virtual void SetDateTimeL( const TDesC8& aDateTime ) = 0; 00255 00262 virtual void SetYCbCrPositioningL( TUint16 aYCbCrPositioning) = 0; 00263 00270 virtual void SetSoftwareL( const TDesC8& aSoftware ) = 0; 00271 00278 virtual void SetCopyrightL( const TDesC8& aCopyright ) = 0; 00279 00287 virtual void SetExposureTimeL( 00288 TUint32 aExposureTime1, 00289 TUint32 aExposureTime2 ) = 0; 00290 00297 virtual void SetComponentsConfigurationL( 00298 TUint8 aFirstComponent, TUint8 aSecondComponent, 00299 TUint8 aThirdComponent, TUint8 aFourthComponent ) = 0; 00300 00307 virtual void SetFlashL( TUint16 aFlash ) = 0; 00308 00315 virtual void SetColorSpaceL( TUint16 aColorSpace ) = 0; 00316 00323 virtual void SetPixelXDimensionL( TUint32 aPixelXDimension ) = 0; 00324 00331 virtual void SetPixelYDimensionL( TUint32 aPixelYDimension ) = 0; 00332 00339 virtual void SetExposureModeL( TUint16 aExposureMode ) = 0; 00340 00347 virtual void SetWhiteBalanceL( TUint16 aWhiteBalance ) = 0; 00348 00355 virtual void SetSceneCaptureTypeL( TUint16 aSceneCaptureType ) = 0; 00356 00357 virtual void SetExposureProgramL( TUint16 aExposureProgram ) = 0; 00364 00371 virtual void SetIsoSpeedRatingsL( const TDesC8& aIsoSpeedRatings ) = 0; 00372 00379 virtual void SetDateTimeOriginalL( 00380 const TDesC8& aDateTimeOriginal ) = 0; 00381 00388 virtual void SetDateTimeDigitizedL( 00389 const TDesC8& aDateTimeDigitized ) = 0; 00390 00398 virtual void SetApertureValueL( 00399 TUint32 aApertureValue1, 00400 TUint32 aApertureValue2 ) = 0; 00401 00409 virtual void SetExposureBiasValueL( 00410 TInt32 aExposureBiasValue1, 00411 TInt32 aExposureBiasValue2 ) = 0; 00412 00419 virtual void SetMeteringModeL( TUint16 aMeteringMode ) = 0; 00420 00427 virtual void SetLightSourceL( TUint16 aLightSource ) = 0; 00428 00435 virtual void SetMakerNoteL( const TDesC8& aMakerNote ) = 0; 00436 00443 virtual void SetUserCommentL( const TDesC8& aUserComment ) = 0; 00444 00451 virtual void SetRelatedSoundFileL( 00452 const TDesC8& aRelatedSoundFile ) = 0; 00453 00460 virtual void SetFileSourceL( TInt8 aFileSource ) = 0; 00461 00469 virtual void SetDigitalZoomRatioL( 00470 TUint32 aDigitalZoomRatio1, 00471 TUint32 aDigitalZoomRatio2 ) = 0; 00472 00479 virtual void SetContrastL( TUint16 aContrast ) = 0; 00480 00487 virtual void SetSaturationL( TUint16 aSaturation ) = 0; 00488 00495 virtual void SetSharpnessL( TUint16 aSharpness ) = 0; 00496 00504 virtual void SetThumbnailXResolutionL( 00505 TUint32 aXResolution1, 00506 TUint32 aXResolution2 ) = 0; 00507 00515 virtual void SetThumbnailYResolutionL( 00516 TUint32 aYResolution1, 00517 TUint32 aYResolution2 ) = 0; 00518 00525 virtual void SetThumbnailResolutionUnitL( TUint16 aResolutionUnit ) = 0; 00526 00534 virtual void SetShutterSpeedValueL( 00535 TInt32 aShutterSpeedValue1, 00536 TInt32 aShutterSpeedValue2 ) = 0; 00537 00545 virtual void SetBrightnessValueL( 00546 TInt32 aBrightnessValue1, 00547 TInt32 aBrightnessValue2 ) = 0; 00548 00555 virtual void SetCustomRenderedL( TUint16 aCustomRendered ) = 0; 00556 00563 virtual void SetGainControlL( TUint16 aGainControl ) = 0; 00564 00565 }; 00566 00567 // EXIFMODIFY_H 00568 #endif 00569 00570 // End of File