epoc32/include/exifutility.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// ExifUtilty.h
williamr@2
    15
// 
williamr@2
    16
//
williamr@2
    17
williamr@2
    18
#ifndef __EXIFUTILITY_H__
williamr@2
    19
#define __EXIFUTILITY_H__
williamr@2
    20
williamr@2
    21
class MExifMetadataReader;
williamr@2
    22
class MExifMetadataWriter;
williamr@2
    23
williamr@2
    24
williamr@2
    25
/**
williamr@2
    26
@publishedAll
williamr@2
    27
@released
williamr@2
    28
williamr@2
    29
This class offers a friendly interface to read the metadata in exif encoded image files
williamr@2
    30
williamr@2
    31
Note: Unless otherwise stated in a method's documentation, TInt& arguments represent unsigned quantities and will be updated with unsigned values, even though TInt is a signed type.
williamr@2
    32
In such cases, proper typecasting should be used to ensure that the values are correctly treated as unsigned.
williamr@2
    33
williamr@2
    34
Note: Get method arguments will only be updated if the method is returning KErrNone.
williamr@2
    35
williamr@2
    36
*/
williamr@2
    37
class TExifReaderUtility 
williamr@2
    38
	{
williamr@2
    39
public:
williamr@2
    40
	// Construction and destruction
williamr@2
    41
	IMPORT_C TExifReaderUtility(MExifMetadataReader* aExifMetadataReader);
williamr@2
    42
	
williamr@2
    43
public:
williamr@2
    44
	// Getters
williamr@2
    45
	IMPORT_C TInt GetMake(HBufC8*& aParam) const;
williamr@2
    46
	IMPORT_C TInt GetModel(HBufC8*& aParam) const;
williamr@2
    47
	IMPORT_C TInt GetDateTime(HBufC8*& aParam) const;
williamr@2
    48
	IMPORT_C TInt GetDateTimeOriginal(HBufC8*& aParam) const;
williamr@2
    49
	IMPORT_C TInt GetDateTimeDigitized(HBufC8*& aParam) const;
williamr@2
    50
	IMPORT_C TInt GetInteroperabilityIndex(HBufC8*& aParam) const;
williamr@2
    51
	IMPORT_C TInt GetInteroperabilityVersion(HBufC8*& aParam) const;
williamr@2
    52
williamr@2
    53
	IMPORT_C TInt GetExifVersion(HBufC8*& aParam) const;
williamr@2
    54
	IMPORT_C TInt GetComponentsConfiguration(HBufC8*& aParam) const;
williamr@2
    55
	IMPORT_C TInt GetFlashPixVersion(HBufC8*& aParam) const;
williamr@2
    56
williamr@2
    57
	IMPORT_C TInt GetXResolution(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    58
	IMPORT_C TInt GetYResolution(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    59
	IMPORT_C TInt GetThumbXResolution(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    60
	IMPORT_C TInt GetThumbYResolution(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    61
williamr@2
    62
	IMPORT_C TInt GetResolutionUnit(TUint16& aParam) const;
williamr@2
    63
	IMPORT_C TInt GetYCbCrPositioning(TUint16& aParam) const;
williamr@2
    64
	IMPORT_C TInt GetOrientation(TUint16& aParam) const;
williamr@2
    65
	IMPORT_C TInt GetColorSpace(TUint16& aParam) const;
williamr@2
    66
	IMPORT_C TInt GetPixelXDimension(TInt& aParam) const;
williamr@2
    67
	IMPORT_C TInt GetPixelYDimension(TInt& aParam) const;
williamr@2
    68
williamr@2
    69
	IMPORT_C TInt GetThumbCompression(TUint16& aParam) const;
williamr@2
    70
	IMPORT_C TInt GetThumbResolutionUnit(TUint16& aParam) const;
williamr@2
    71
	IMPORT_C TInt GetThumbOrientation(TUint16& aParam) const;
williamr@2
    72
	
williamr@2
    73
	IMPORT_C TInt GetImageDescription(HBufC8*& aParam) const;
williamr@2
    74
	IMPORT_C TInt GetCopyright(HBufC8*& aParam) const;
williamr@2
    75
	IMPORT_C TInt GetMakerNote(HBufC8*& aParam) const;
williamr@2
    76
	IMPORT_C TInt GetUserComment(HBufC8*& aParam) const;
williamr@2
    77
	IMPORT_C TInt GetFlash(TUint16& aParam) const;
williamr@2
    78
	IMPORT_C TInt GetFocalLength(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    79
	IMPORT_C TInt GetShutterSpeedValue(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    80
	IMPORT_C TInt GetJpegInterchangeFormatLength(TInt& aParam) const;
williamr@2
    81
	IMPORT_C TInt GetJpegInterchangeFormatLength(TUint& aParam) const;
williamr@2
    82
williamr@2
    83
	IMPORT_C TInt GetGpsVersionId(HBufC8*& aParam) const;
williamr@2
    84
	IMPORT_C TInt GetGpsLatitudeRef(HBufC8*& aParam) const;
williamr@2
    85
	IMPORT_C TInt GetGpsLatitude(TInt& aDegNumerator, TInt& aDegDenominator, TInt& aMinNumerator, TInt& aMinDenominator, TInt& aSecNumerator, TInt& aSecDenominator) const;
williamr@2
    86
	IMPORT_C TInt GetGpsLongitudeRef(HBufC8*& aParam) const;
williamr@2
    87
	IMPORT_C TInt GetGpsLongitude(TInt& aDegNumerator, TInt& aDegDenominator, TInt& aMinNumerator, TInt& aMinDenominator, TInt& aSecNumerator, TInt& aSecDenominator) const;
williamr@2
    88
	IMPORT_C TInt GetGpsAltitudeRef(TUint8& aParam) const;
williamr@2
    89
	IMPORT_C TInt GetGpsAltitude(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    90
	IMPORT_C TInt GetGpsTimeStamp(TInt& aHourNumerator, TInt& aHourDenominator, TInt& aMinNumerator, TInt& aMinDenominator, TInt& aSecNumerator, TInt& aSecDenominator) const;
williamr@2
    91
	IMPORT_C TInt GetGpsSatellites(HBufC8*& aParam) const;
williamr@2
    92
	IMPORT_C TInt GetGpsStatus(HBufC8*& aParam) const;
williamr@2
    93
	IMPORT_C TInt GetGpsMeasureMode(HBufC8*& aParam) const;
williamr@2
    94
	IMPORT_C TInt GetGpsDop(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    95
	IMPORT_C TInt GetGpsSpeedRef(HBufC8*& aParam) const;
williamr@2
    96
	IMPORT_C TInt GetGpsSpeed(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    97
	IMPORT_C TInt GetGpsTrackRef(HBufC8*& aParam) const;
williamr@2
    98
	IMPORT_C TInt GetGpsTrack(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
    99
	IMPORT_C TInt GetGpsImgDirectionRef(HBufC8*& aParam) const;
williamr@2
   100
	IMPORT_C TInt GetGpsImgDirection(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
   101
	IMPORT_C TInt GetGpsMapDatum(HBufC8*& aParam) const;
williamr@2
   102
	IMPORT_C TInt GetGpsDestLatitudeRef(HBufC8*& aParam) const;
williamr@2
   103
	IMPORT_C TInt GetGpsDestLatitude(TInt& aDegNumerator, TInt& aDegDenominator, TInt& aMinNumerator, TInt& aMinDenominator, TInt& aSecNumerator, TInt& aSecDenominator) const;
williamr@2
   104
	IMPORT_C TInt GetGpsDestLongitudeRef(HBufC8*& aParam) const;
williamr@2
   105
	IMPORT_C TInt GetGpsDestLongitude(TInt& aDegNumerator, TInt& aDegDenominator, TInt& aMinNumerator, TInt& aMinDenominator, TInt& aSecNumerator, TInt& aSecDenominator) const;
williamr@2
   106
	IMPORT_C TInt GetGpsDestBearingRef(HBufC8*& aParam) const;
williamr@2
   107
	IMPORT_C TInt GetGpsDestBearing(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
   108
	IMPORT_C TInt GetGpsDestDistanceRef(HBufC8*& aParam) const;
williamr@2
   109
	IMPORT_C TInt GetGpsDestDistance(TInt& aNumerator, TInt& aDenominator) const;
williamr@2
   110
	IMPORT_C TInt GetGpsProcessingMethod(HBufC8*& aParam) const;
williamr@2
   111
	IMPORT_C TInt GetGpsAreaInformation(HBufC8*& aParam) const;
williamr@2
   112
	IMPORT_C TInt GetGpsDateStamp(HBufC8*& aParam) const;
williamr@2
   113
	IMPORT_C TInt GetGpsDifferential(TUint16& aParam) const;
williamr@2
   114
private:
williamr@2
   115
	MExifMetadataReader* iExifRead;
williamr@2
   116
	};
williamr@2
   117
williamr@2
   118
williamr@2
   119
/**
williamr@2
   120
@publishedAll
williamr@2
   121
@released
williamr@2
   122
williamr@2
   123
This class offers a friendly interface to write the metadata in exif encoded image files
williamr@2
   124
williamr@2
   125
Note: Unless otherwise stated in a method's documentation, it should be assumed that TInt arguments are representing unsigned quantities, even though TInt is a signed type.
williamr@2
   126
So unless otherwise stated, these parameters should be given unsigned values only.
williamr@2
   127
*/
williamr@2
   128
class TExifWriterUtility
williamr@2
   129
	{	
williamr@2
   130
public:
williamr@2
   131
	// Construction and destruction
williamr@2
   132
	IMPORT_C TExifWriterUtility(MExifMetadataWriter* aExifMetadata);
williamr@2
   133
	
williamr@2
   134
public:
williamr@2
   135
	// Setters
williamr@2
   136
	IMPORT_C TInt SetMake(HBufC8* aMake);
williamr@2
   137
	IMPORT_C TInt SetModel(HBufC8* aModel);
williamr@2
   138
	IMPORT_C TInt SetDateTime(HBufC8* aDateTime);
williamr@2
   139
	IMPORT_C TInt SetDateTimeOriginal(HBufC8* aDateTime);
williamr@2
   140
	IMPORT_C TInt SetDateTimeDigitized(HBufC8* aDateTime);
williamr@2
   141
	IMPORT_C TInt SetInteroperabilityIndex(HBufC8* aIdx);
williamr@2
   142
	IMPORT_C TInt SetInteroperabilityVersion(HBufC8* aIdx);
williamr@2
   143
williamr@2
   144
	IMPORT_C TInt SetExifVersion(HBufC8* aExifVersion);
williamr@2
   145
	IMPORT_C TInt SetComponentsConfiguration(HBufC8* aComponentsConfig);
williamr@2
   146
	IMPORT_C TInt SetFlashPixVersion(HBufC8* aFlashPixVer);
williamr@2
   147
williamr@2
   148
	IMPORT_C TInt SetXResolution(TInt aNumerator, TInt aDenominator);
williamr@2
   149
	IMPORT_C TInt SetYResolution(TInt aNumerator, TInt aDenominator);
williamr@2
   150
	IMPORT_C TInt SetThumbXResolution(TInt aNumerator, TInt aDenominator);
williamr@2
   151
	IMPORT_C TInt SetThumbYResolution(TInt aNumerator, TInt aDenominator);
williamr@2
   152
williamr@2
   153
	IMPORT_C TInt SetResolutionUnit(TInt aResUnit);
williamr@2
   154
	IMPORT_C TInt SetYCbCrPositioning(TInt aPositioning);
williamr@2
   155
	IMPORT_C TInt SetOrientation(TInt aOrientation);
williamr@2
   156
	IMPORT_C TInt SetColorSpace(TInt aColorSpace);
williamr@2
   157
	IMPORT_C TInt SetPixelXDimension(TInt aPixelXDim);
williamr@2
   158
	IMPORT_C TInt SetPixelYDimension(TInt aPixelYDim); 
williamr@2
   159
williamr@2
   160
	IMPORT_C TInt SetThumbCompression(TInt aCompression);
williamr@2
   161
	IMPORT_C TInt SetThumbResolutionUnit(TInt aResUnit);
williamr@2
   162
	IMPORT_C TInt SetThumbOrientation(TInt aOrientation);
williamr@2
   163
	
williamr@2
   164
	IMPORT_C TInt SetImageDescription(HBufC8* aImageDescription);
williamr@2
   165
	IMPORT_C TInt SetCopyright(HBufC8* aCopyright);
williamr@2
   166
	IMPORT_C TInt SetMakerNote(HBufC8* aMakerNote);
williamr@2
   167
	IMPORT_C TInt SetUserComment(HBufC8* aUserComment);
williamr@2
   168
	IMPORT_C TInt SetFlash(TUint16 aFlash);
williamr@2
   169
	IMPORT_C TInt SetFocalLength(TInt aNumerator, TInt aDenominator);
williamr@2
   170
	IMPORT_C TInt SetShutterSpeedValue(TInt aNumerator, TInt aDenominator);
williamr@2
   171
	
williamr@2
   172
	IMPORT_C TInt SetGpsVersionId(HBufC8* aGpsVersionId);
williamr@2
   173
	IMPORT_C TInt SetGpsLatitudeRef(HBufC8* aGpsLatitudeRef);
williamr@2
   174
	IMPORT_C TInt SetGpsLatitude(TInt aDegNumerator, TInt aDegDenominator, TInt aMinNumerator, TInt aMinDenominator, TInt aSecNumerator, TInt aSecDenominator);
williamr@2
   175
	IMPORT_C TInt SetGpsLongitudeRef(HBufC8* aGpsLongitudeRef);
williamr@2
   176
	IMPORT_C TInt SetGpsLongitude(TInt aDegNumerator, TInt aDegDenominator, TInt aMinNumerator, TInt aMinDenominator, TInt aSecNumerator, TInt aSecDenominator);
williamr@2
   177
	IMPORT_C TInt SetGpsAltitudeRef(TUint8 aGpsAltitudeRef);
williamr@2
   178
	IMPORT_C TInt SetGpsAltitude(TInt aNumerator, TInt aDenominator);
williamr@2
   179
	IMPORT_C TInt SetGpsTimeStamp(TInt aHourNumerator, TInt aHourDenominator, TInt aMinNumerator, TInt aMinDenominator, TInt aSecNumerator, TInt aSecDenominator);
williamr@2
   180
	IMPORT_C TInt SetGpsSatellites(HBufC8* aGpsSatellites);
williamr@2
   181
	IMPORT_C TInt SetGpsStatus(HBufC8* aGpsStatus);
williamr@2
   182
	IMPORT_C TInt SetGpsMeasureMode(HBufC8* aGpsMeasureMode);
williamr@2
   183
	IMPORT_C TInt SetGpsDop(TInt aNumerator, TInt aDenominator);
williamr@2
   184
	IMPORT_C TInt SetGpsSpeedRef(HBufC8* aGpsSpeedRef);
williamr@2
   185
	IMPORT_C TInt SetGpsSpeed(TInt aNumerator, TInt aDenominator);
williamr@2
   186
	IMPORT_C TInt SetGpsTrackRef(HBufC8* aGpsTrackRef);
williamr@2
   187
	IMPORT_C TInt SetGpsTrack(TInt aNumerator, TInt aDenominator);
williamr@2
   188
	IMPORT_C TInt SetGpsImgDirectionRef(HBufC8* aGpsImgDirectionRef);
williamr@2
   189
	IMPORT_C TInt SetGpsImgDirection(TInt aNumerator, TInt aDenominator);
williamr@2
   190
	IMPORT_C TInt SetGpsMapDatum(HBufC8* aGpsMapDatum);
williamr@2
   191
	IMPORT_C TInt SetGpsDestLatitudeRef(HBufC8* aGpsDestLatitudeRef);
williamr@2
   192
	IMPORT_C TInt SetGpsDestLatitude(TInt aDegNumerator, TInt aDegDenominator, TInt aMinNumerator, TInt aMinDenominator, TInt aSecNumerator, TInt aSecDenominator);
williamr@2
   193
	IMPORT_C TInt SetGpsDestLongitudeRef(HBufC8* aGpsDestLongitudeRef);
williamr@2
   194
	IMPORT_C TInt SetGpsDestLongitude(TInt aDegNumerator, TInt aDegDenominator, TInt aMinNumerator, TInt aMinDenominator, TInt aSecNumerator, TInt aSecDenominator);
williamr@2
   195
	IMPORT_C TInt SetGpsDestBearingRef(HBufC8* aGpsDestBearingRef);
williamr@2
   196
	IMPORT_C TInt SetGpsDestBearing(TInt aNumerator, TInt aDenominator);
williamr@2
   197
	IMPORT_C TInt SetGpsDestDistanceRef(HBufC8* aGpsDestDistanceRef);
williamr@2
   198
	IMPORT_C TInt SetGpsDestDistance(TInt aNumerator, TInt aDenominator);
williamr@2
   199
	IMPORT_C TInt SetGpsProcessingMethod(HBufC8* aGpsProcessingMethod);
williamr@2
   200
	IMPORT_C TInt SetGpsAreaInformation(HBufC8* aGpsAreaInformation);
williamr@2
   201
	IMPORT_C TInt SetGpsDateStamp(HBufC8* aDateStamp);
williamr@2
   202
	IMPORT_C TInt SetGpsDifferential(TUint16 aGpsDifferential);
williamr@2
   203
williamr@2
   204
private: // Member
williamr@2
   205
	
williamr@2
   206
	MExifMetadataWriter* iExifWrite;
williamr@2
   207
	
williamr@2
   208
	};
williamr@2
   209
williamr@2
   210
williamr@2
   211
#endif	// __EXIFUTILITY_H__