Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <ICLExif.h>
This item is not part of the S60 5th Edition SDK

Class MExifMetadataReader

class MExifMetadataReader;

Description

generic accessor to read the tags from exif metadata.

Note: The aIfd argument in MExifMetadataReader methods should be set as follows:

The TExifReaderUtility class offers a friendlier interface to access these tags.

Members

Defined in MExifMetadataReader:

See also:


Member functions


GetIntegerParam(TUint,TUint,TInt &)const

virtual TInt GetIntegerParam(TUint aTag, TUint aIfd, TInt &aParam) const=0;

Description

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.

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

TInt &aParam

on return, the value of the tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.


GetShortParam(TUint,TUint,TUint16 &)const

virtual TInt GetShortParam(TUint aTag, TUint aIfd, TUint16 &aParam) const=0;

Description

Get the data associated with an unsigned short (16-bit) integer EXIF/DCF tag/IFD.

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

TUint16 &aParam

on return, the value of the tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.


GetRationalParam(TUint,TUint,TInt &,TInt &)const

virtual TInt GetRationalParam(TUint aTag, TUint aIfd, TInt &aNumer, TInt &aDenom) const=0;

Description

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.

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

TInt &aNumer

on return, the numerator value of the tag

TInt &aDenom

on return, the denominator value of the tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.


GetParam8(TUint,TUint,HBufC8 *&)const

virtual TInt GetParam8(TUint aTag, TUint aIfd, HBufC8 *&aParam) const=0;

Description

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.

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

HBufC8 *&aParam

on return, the value of the tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.


GetParam16(TUint,TUint,HBufC16 *&)const

virtual TInt GetParam16(TUint aTag, TUint aIfd, HBufC16 *&aParam) const=0;

Description

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:

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

HBufC16 *&aParam

on return, the value of the tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.


GetIntegerArrayParam(TUint,TUint,CArrayFix< TInt > &)const

virtual TInt GetIntegerArrayParam(TUint aTag, TUint aIfd, CArrayFix< TInt > &aParam) const=0;

Description

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.

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

CArrayFix< TInt > &aParam

on return, the array is filled with the list of values in this tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.


GetShortArrayParam(TUint,TUint,CArrayFix< TUint16 > &)const

virtual TInt GetShortArrayParam(TUint aTag, TUint aIfd, CArrayFix< TUint16 > &aParam) const=0;

Description

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.

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

CArrayFix< TUint16 > &aParam

on return, the array is filled with the list of values in this tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.


GetRationalArrayParam(TUint,TUint,CArrayFix< TRational > &)const

virtual TInt GetRationalArrayParam(TUint aTag, TUint aIfd, CArrayFix< TRational > &aParam) const=0;

Description

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.

Parameters

TUint aTag

the tag id where the data is stored

TUint aIfd

the ifd section in which the tag is stored.

CArrayFix< TRational > &aParam

on return, the array is filled with the list of values in this tag

Return value

TInt

error code KErrArgument if the requested data type does not match with the tag. KErrNotSupported if called on an encoding module. KErrNotFound if the tag cannot be found.