00001 /* 00002 * ============================================================================== 00003 * Name : ExifTag.h 00004 * Part of : Exif Library 00005 * Interface : Public API 00006 * Description : Exif tag wrapper 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 00022 #ifndef EXIFTAG_H 00023 #define EXIFTAG_H 00024 00025 // INCLUDES 00026 #include <e32base.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 00047 NONSHARABLE_CLASS( CExifTag ): public CBase 00048 { 00049 public: // Enumerations 00050 00054 enum TExifTagDataType 00055 { 00056 ETagByte = 1, 00057 ETagAscii = 2, 00058 ETagShort = 3, 00059 ETagLong = 4, 00060 ETagRational = 5, 00061 ETagUndefined = 7, 00062 ETagSlong = 9, 00063 ETagSrational = 10 00064 }; 00065 00066 public: 00067 00071 virtual ~CExifTag(); 00072 00073 public: // New functions 00074 00082 virtual CExifTag* DuplicateL() const = 0; 00083 00090 virtual TExifTagInfo TagInfo() const = 0; 00091 00098 virtual TPtrC8 Data() const = 0; 00099 00100 }; 00101 00102 00103 class TExifTagInfo 00104 { 00105 public: // Constructors and destructor 00106 00107 IMPORT_C TExifTagInfo( 00108 TUint16 aTagId, 00109 CExifTag::TExifTagDataType aDataType, 00110 TUint32 aDataCount ); 00111 00112 public: // Data 00113 00114 // Tag ID 00115 TUint16 iId; 00116 00117 // Tag data type 00118 CExifTag::TExifTagDataType iDataType; 00119 00120 // Number of tag data elements (having tag data type). 00121 TUint32 iDataCount; 00122 }; 00123 00124 // EXIFTAG_H 00125 #endif 00126 00127 // End of File