|
||
class MExifMetadataReader;
generic accessor to read the tags from exif metadata.
Note: The aIfd argument in MExifMetadataReader methods should be set as follows:
When reading an IFD 0 tag that is not a GPS tag, use KExifIfdZero.
When reading a tag related to thumbnail, use KExifIfdOne.
When reading a GPS tag, use KExifGpsIfd.
The TExifReaderUtility
class offers a friendlier interface to access these tags.
Defined in MExifMetadataReader
:
GetIntegerArrayParam(TUint,TUint,CArrayFix< TInt > &)const
Get the data associated with an array of signed or unsigned 32-bit integers EXIF...GetIntegerParam(TUint,TUint,TInt &)const
Get the data associated with a signed or unsigned 32-bit integer EXIF/DCF tag/IF...GetParam16(TUint,TUint,HBufC16 *&)const
Get the data associated with a 16-bit EXIF/DCF tag/IFD.GetParam8(TUint,TUint,HBufC8 *&)const
Get the data associated with an 8-bit (e.g. ASCII, Undefined or Byte) EXIF/DCF t...GetRationalArrayParam(TUint,TUint,CArrayFix< TRational > &)const
Get the data associated with an array of signed or unsigned rationals EXIF/DCF t...GetRationalParam(TUint,TUint,TInt &,TInt &)const
Get the data associated with a signed or unsigned rational EXIF/DCF tag/IFD. If ...GetShortArrayParam(TUint,TUint,CArrayFix< TUint16 > &)const
Get the data associated with an array of unsigned short (16-bit) integers EXIF/D...GetShortParam(TUint,TUint,TUint16 &)const
Get the data associated with an unsigned short (16-bit) integer EXIF/DCF tag/IFD...virtual TInt GetIntegerParam(TUint aTag, TUint aIfd, TInt &aParam) const=0;
Get the data associated with a signed or unsigned 32-bit integer EXIF/DCF tag/IFD. If used to get unsigned data, it is up to the caller to do the appropriate typecast of aParam.
|
|
virtual TInt GetShortParam(TUint aTag, TUint aIfd, TUint16 &aParam) const=0;
Get the data associated with an unsigned short (16-bit) integer EXIF/DCF tag/IFD.
|
|
virtual TInt GetRationalParam(TUint aTag, TUint aIfd, TInt &aNumer, TInt &aDenom) const=0;
Get the data associated with a signed or unsigned rational EXIF/DCF tag/IFD. If used to get an unsigned rational, it is up to the caller to typecast aNumer & aDenom as appropriate.
|
|
virtual TInt GetParam8(TUint aTag, TUint aIfd, HBufC8 *&aParam) const=0;
Get the data associated with an 8-bit (e.g. ASCII, Undefined or Byte) EXIF/DCF tag/IFD.
Ownership of the buffer pointed to by aParam transfers to the client, which is therefore responsible for deleting the buffer when required.
Note: The client should always initialise aParam to NULL, and the plugin should only assign to this parameter when ready to transfer ownership.
Note: If using this method to retrieve ASCII data, the returned data will not be NULL terminated.
Note: If using this method to retrieve Undefined data, the raw data will be returned, exactly as it appears in the tag value. Thus if the tag is one that includes a character code prefix, then this prefix will be included in the returned data. See table 6 of the Exif 2.2 specification for a list of character code prefixes.
|
|
virtual TInt GetParam16(TUint aTag, TUint aIfd, HBufC16 *&aParam) const=0;
Get the data associated with a 16-bit EXIF/DCF tag/IFD.
Ownership of the buffer pointed to by aParam transfers to the client, which is therefore responsible for deleting the buffer when required.
Note: The client should always initialise aParam to NULL, and the plugin should only assign to this parameter when ready to transfer ownership.
Note: This method is not recommended. To get 16-bit data from a tag of undefined type, it is recommended that MExifMetadataReader::GetParam8(TUint,TUint,HBufC8 *&)const
be used instead. The HBufC8* returned by MExifMetadataReader::GetParam8(TUint,TUint,HBufC8 *&)const
can then be converted into an HBufC16* as needed.
If this method is used, please be aware of the following:
It may only be used with the tags 0x9286 (UserComment), 0x001B (GpsProcessingMethod) & 0x001C (GpsAreaInformation).
The supported tags might not contain 16-bit data. Only use this method if you are certain that the tag contain 16-bit data. If used on a tag containing 8-bit data, the 8-bit data will be returned in the HBufC16* which will have to be manually converted to an HBufC8*.
The first 8 bytes of the returned HBufC16* may contain a Character Code prefix. See table 6 of the Exif 2.2 specification for a list of Character Code prefixes.
The length of the returned HBufC16* will include the length of the character code prefix if present.
|
|
virtual TInt GetIntegerArrayParam(TUint aTag, TUint aIfd, CArrayFix< TInt > &aParam) const=0;
Get the data associated with an array of signed or unsigned 32-bit integers EXIF/DCF tag/IFD. If being used to get unsigned integers, it is up to the caller to typecast them as appropriate.
Note: aParam will be resized to fit the number of data elements read.
|
|
virtual TInt GetShortArrayParam(TUint aTag, TUint aIfd, CArrayFix< TUint16 > &aParam) const=0;
Get the data associated with an array of unsigned short (16-bit) integers EXIF/DCF tag/IFD.
Note: aParam will be resized to fit the number of data elements read.
|
|
virtual TInt GetRationalArrayParam(TUint aTag, TUint aIfd, CArrayFix< TRational > &aParam) const=0;
Get the data associated with an array of signed or unsigned rationals EXIF/DCF tag/IFD. If used to get unsigned rational data, it is up to the client to typecast the components as appropriate.
Note: aParam will be resized to fit the number of data elements read.
|
|