1 /* mnote-olympus-tag.h 2 * 3 * Copyright (c) 2002 Lutz Mueller <lutz (at) users.sourceforge.net> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the 17 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301 USA. 19 */ 20 21 #ifndef __MNOTE_OLYMPUS_TAG_H__ 22 #define __MNOTE_OLYMPUS_TAG_H__ 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif /* __cplusplus */ 27 28 enum _MnoteOlympusTag { 29 30 /* Nikon v.2 */ 31 MNOTE_NIKON_TAG_FIRMWARE = 0x0001, 32 MNOTE_NIKON_TAG_ISO = 0x0002, 33 MNOTE_NIKON_TAG_COLORMODE1 = 0x0003, 34 MNOTE_NIKON_TAG_QUALITY = 0x0004, 35 MNOTE_NIKON_TAG_WHITEBALANCE = 0x0005, 36 MNOTE_NIKON_TAG_SHARPENING = 0x0006, 37 MNOTE_NIKON_TAG_FOCUSMODE = 0x0007, 38 MNOTE_NIKON_TAG_FLASHSETTING = 0x0008, 39 MNOTE_NIKON_TAG_FLASHMODE = 0x0009, 40 MNOTE_NIKON_TAG_WHITEBALANCEFINE = 0x000b, 41 MNOTE_NIKON_TAG_WHITEBALANCERB = 0x000c, 42 MNOTE_NIKON_TAG_UNKNOWN_0X000D = 0x000d, 43 MNOTE_NIKON_TAG_EXPOSUREDIFF = 0x000e, 44 MNOTE_NIKON_TAG_ISOSELECTION = 0x000f, 45 MNOTE_NIKON_TAG_PREVIEWIMAGE_IFD_POINTER= 0x0011, 46 MNOTE_NIKON_TAG_FLASHEXPCOMPENSATION = 0x0012, 47 MNOTE_NIKON_TAG_ISO2 = 0x0013, 48 MNOTE_NIKON_TAG_IMAGEBOUNDARY = 0x0016, 49 MNOTE_NIKON_TAG_UNKNOWN_0X0017 = 0x0017, 50 MNOTE_NIKON_TAG_FLASHEXPOSUREBRACKETVAL = 0x0018, 51 MNOTE_NIKON_TAG_EXPOSUREBRACKETVAL = 0x0019, 52 MNOTE_NIKON_TAG_IMAGEADJUSTMENT = 0x0080, 53 MNOTE_NIKON_TAG_TONECOMPENSATION = 0x0081, 54 MNOTE_NIKON_TAG_ADAPTER = 0x0082, 55 MNOTE_NIKON_TAG_LENSTYPE = 0x0083, 56 MNOTE_NIKON_TAG_LENS = 0x0084, 57 MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE = 0x0085, 58 MNOTE_NIKON_TAG_DIGITALZOOM = 0x0086, 59 MNOTE_NIKON_TAG_FLASHUSED = 0x0087, 60 MNOTE_NIKON_TAG_AFFOCUSPOSITION = 0x0088, 61 MNOTE_NIKON_TAG_BRACKETING = 0x0089, 62 MNOTE_NIKON_TAG_UNKNOWN_0X008A = 0x008a, 63 MNOTE_NIKON_TAG_LENS_FSTOPS = 0x008b, 64 MNOTE_NIKON_TAG_CURVE = 0x008c, 65 MNOTE_NIKON_TAG_COLORMODE = 0x008d, 66 MNOTE_NIKON_TAG_LIGHTTYPE = 0x0090, 67 MNOTE_NIKON_TAG_UNKNOWN_0X0091 = 0x0091, 68 MNOTE_NIKON_TAG_HUE = 0x0092, 69 MNOTE_NIKON_TAG_SATURATION = 0x0094, 70 MNOTE_NIKON_TAG_NOISEREDUCTION = 0x0095, 71 MNOTE_NIKON_TAG_UNKNOWN_0X0097 = 0x0097, 72 MNOTE_NIKON_TAG_UNKNOWN_0X0098 = 0x0098, 73 MNOTE_NIKON_TAG_SENSORPIXELSIZE = 0x009a, 74 MNOTE_NIKON_TAG_UNKNOWN_0X009B = 0x009b, 75 MNOTE_NIKON_TAG_SERIALNUMBER = 0x00a0, 76 MNOTE_NIKON_TAG_IMAGE_DATASIZE = 0x00a2, 77 MNOTE_NIKON_TAG_UNKNOWN_0X00A3 = 0x00a3, 78 MNOTE_NIKON_TAG_TOTALPICTURES = 0x00a7, 79 MNOTE_NIKON_TAG_UNKNOWN_0X00A8 = 0x00a8, 80 MNOTE_NIKON_TAG_OPTIMIZATION = 0x00a9, 81 MNOTE_NIKON_TAG_SATURATION2 = 0x00aa, 82 MNOTE_NIKON_TAG_VARIPROGRAM = 0x00ab, 83 MNOTE_NIKON_TAG_CAPTUREEDITORDATA = 0x0e01, 84 MNOTE_NIKON_TAG_CAPTUREEDITORVER = 0x0e09, 85 MNOTE_NIKON_TAG_UNKNOWN_0X0E0E = 0x0e0e, 86 MNOTE_NIKON_TAG_UNKNOWN_0X0E10 = 0x0e10, 87 88 /* Nikon v1: real values + our proprietary base to distinguish from v2 */ 89 MNOTE_NIKON1_TAG_BASE = 0x8000, 90 MNOTE_NIKON1_TAG_UNKNOWN_0X0002 = 0x0002 + MNOTE_NIKON1_TAG_BASE, 91 MNOTE_NIKON1_TAG_QUALITY = 0x0003 + MNOTE_NIKON1_TAG_BASE, 92 MNOTE_NIKON1_TAG_COLORMODE = 0x0004 + MNOTE_NIKON1_TAG_BASE, 93 MNOTE_NIKON1_TAG_IMAGEADJUSTMENT = 0x0005 + MNOTE_NIKON1_TAG_BASE, 94 MNOTE_NIKON1_TAG_CCDSENSITIVITY = 0x0006 + MNOTE_NIKON1_TAG_BASE, 95 MNOTE_NIKON1_TAG_WHITEBALANCE = 0x0007 + MNOTE_NIKON1_TAG_BASE, 96 MNOTE_NIKON1_TAG_FOCUS = 0x0008 + MNOTE_NIKON1_TAG_BASE, 97 MNOTE_NIKON1_TAG_UNKNOWN_0X0009 = 0x0009 + MNOTE_NIKON1_TAG_BASE, 98 MNOTE_NIKON1_TAG_DIGITALZOOM = 0x000a + MNOTE_NIKON1_TAG_BASE, 99 MNOTE_NIKON1_TAG_CONVERTER = 0x000b + MNOTE_NIKON1_TAG_BASE, 100 101 /* Olympus and some Sanyo */ 102 MNOTE_OLYMPUS_TAG_THUMBNAILIMAGE = 0x0100, 103 MNOTE_OLYMPUS_TAG_MODE = 0x0200, 104 MNOTE_OLYMPUS_TAG_QUALITY = 0x0201, 105 MNOTE_OLYMPUS_TAG_MACRO = 0x0202, 106 MNOTE_OLYMPUS_TAG_BWMODE = 0x0203, 107 MNOTE_OLYMPUS_TAG_DIGIZOOM = 0x0204, 108 MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL = 0x0205, 109 MNOTE_OLYMPUS_TAG_LENSDISTORTION = 0x0206, 110 MNOTE_OLYMPUS_TAG_VERSION = 0x0207, 111 MNOTE_OLYMPUS_TAG_INFO = 0x0208, 112 MNOTE_OLYMPUS_TAG_ID = 0x0209, 113 MNOTE_OLYMPUS_TAG_PRECAPTUREFRAMES = 0x0300, 114 MNOTE_OLYMPUS_TAG_WHITEBOARD = 0x0301, 115 MNOTE_OLYMPUS_TAG_ONETOUCHWB = 0x0302, 116 MNOTE_OLYMPUS_TAG_WHITEBALANCEBRACKET = 0x0303, 117 MNOTE_OLYMPUS_TAG_WHITEBALANCEBIAS = 0x0304, 118 MNOTE_OLYMPUS_TAG_DATADUMP = 0x0f00, 119 MNOTE_OLYMPUS_TAG_UNKNOWN_4 = 0x0f04, 120 MNOTE_OLYMPUS_TAG_SHUTTERSPEED = 0x1000, 121 MNOTE_OLYMPUS_TAG_ISOVALUE = 0x1001, 122 MNOTE_OLYMPUS_TAG_APERTUREVALUE = 0x1002, 123 MNOTE_OLYMPUS_TAG_BRIGHTNESSVALUE = 0x1003, 124 MNOTE_OLYMPUS_TAG_FLASHMODE = 0x1004, 125 MNOTE_OLYMPUS_TAG_FLASHDEVICE = 0x1005, 126 MNOTE_OLYMPUS_TAG_EXPOSURECOMP = 0x1006, 127 MNOTE_OLYMPUS_TAG_SENSORTEMPERATURE = 0x1007, 128 MNOTE_OLYMPUS_TAG_LENSTEMPERATURE = 0x1008, 129 MNOTE_OLYMPUS_TAG_LIGHTCONDITION = 0x1009, 130 MNOTE_OLYMPUS_TAG_FOCUSRANGE = 0x100a, 131 MNOTE_OLYMPUS_TAG_MANFOCUS = 0x100b, 132 MNOTE_OLYMPUS_TAG_FOCUSDIST = 0x100c, 133 MNOTE_OLYMPUS_TAG_ZOOMSTEPCOUNT = 0x100d, 134 MNOTE_OLYMPUS_TAG_FOCUSSTEPCOUNT = 0x100e, 135 MNOTE_OLYMPUS_TAG_SHARPNESS = 0x100f, 136 MNOTE_OLYMPUS_TAG_FLASHCHARGELEVEL = 0x1010, 137 MNOTE_OLYMPUS_TAG_COLORMATRIX = 0x1011, 138 MNOTE_OLYMPUS_TAG_BLACKLEVEL = 0x1012, 139 MNOTE_OLYMPUS_TAG_WBALANCE = 0x1015, 140 MNOTE_OLYMPUS_TAG_REDBALANCE = 0x1017, 141 MNOTE_OLYMPUS_TAG_BLUEBALANCE = 0x1018, 142 MNOTE_OLYMPUS_TAG_COLORMATRIXNUMBER = 0x1019, 143 MNOTE_OLYMPUS_TAG_SERIALNUMBER2 = 0x101a, 144 MNOTE_OLYMPUS_TAG_FLASHEXPOSURECOMP = 0x1023, 145 MNOTE_OLYMPUS_TAG_INTERNALFLASHTABLE = 0x1024, 146 MNOTE_OLYMPUS_TAG_EXTERNALFLASHGVALUE = 0x1025, 147 MNOTE_OLYMPUS_TAG_EXTERNALFLASHBOUNCE = 0x1026, 148 MNOTE_OLYMPUS_TAG_EXTERNALFLASHZOOM = 0x1027, 149 MNOTE_OLYMPUS_TAG_EXTERNALFLASHMODE = 0x1028, 150 MNOTE_OLYMPUS_TAG_CONTRAST = 0x1029, 151 MNOTE_OLYMPUS_TAG_SHARPNESSFACTOR = 0x102a, 152 MNOTE_OLYMPUS_TAG_COLORCONTROL = 0x102b, 153 MNOTE_OLYMPUS_TAG_IMAGEWIDTH = 0x102e, 154 MNOTE_OLYMPUS_TAG_IMAGEHEIGHT = 0x102f, 155 MNOTE_OLYMPUS_TAG_SCENEDETECT = 0x1030, 156 MNOTE_OLYMPUS_TAG_COMPRESSIONRATIO = 0x1034, 157 MNOTE_OLYMPUS_TAG_PREVIEWIMAGEVALID = 0x1035, 158 MNOTE_OLYMPUS_TAG_AFRESULT = 0x1038, 159 MNOTE_OLYMPUS_TAG_CCDSCANMODE = 0x1039, 160 MNOTE_OLYMPUS_TAG_NOISEREDUCTION = 0x103a, 161 MNOTE_OLYMPUS_TAG_INFINITYLENSSTEP = 0x103b, 162 MNOTE_OLYMPUS_TAG_NEARLENSSTEP = 0x103c, 163 MNOTE_OLYMPUS_TAG_LIGHTVALUECENTER = 0x103d, 164 MNOTE_OLYMPUS_TAG_LIGHTVALUEPERIPHERY = 0x103e, 165 166 /* Epson */ 167 MNOTE_EPSON_TAG_IMAGE_WIDTH = 0x020b, 168 MNOTE_EPSON_TAG_IMAGE_HEIGHT = 0x020c, 169 MNOTE_EPSON_TAG_SOFTWARE = 0x020d, 170 171 /* Sanyo */ 172 MNOTE_SANYO_TAG_SEQUENTIALSHOT = 0x020e, 173 MNOTE_SANYO_TAG_WIDERANGE = 0x020f, 174 MNOTE_SANYO_TAG_COLORADJUSTMENTMODE = 0x0210, 175 MNOTE_SANYO_TAG_FOCUSMODE = 0x0212, 176 MNOTE_SANYO_TAG_QUICKSHOT = 0x0213, 177 MNOTE_SANYO_TAG_SELFTIMER = 0x0214, 178 MNOTE_SANYO_TAG_VOICEMEMO = 0x0216, 179 MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE = 0x0217, 180 MNOTE_SANYO_TAG_FLICKERREDUCE = 0x0218, 181 MNOTE_SANYO_TAG_OPTICALZOOM = 0x0219, 182 MNOTE_SANYO_TAG_CCDSENSITIVITY = 0x021a, 183 MNOTE_SANYO_TAG_DIGITALZOOM = 0x021b, 184 MNOTE_SANYO_TAG_LIGHTSOURCESPECIAL = 0x021d, 185 MNOTE_SANYO_TAG_RESAVED = 0x021e, 186 MNOTE_SANYO_TAG_SCENESELECT = 0x021f, 187 MNOTE_SANYO_TAG_MANUALFOCUSDISTANCE = 0x0223, 188 MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL = 0x0224, 189 }; 190 typedef enum _MnoteOlympusTag MnoteOlympusTag; 191 192 /* Don't use these definitions. They are here for compatibility only. */ 193 #define MNOTE_OLYMPUS_TAG_UNKNOWN_1 MNOTE_OLYMPUS_TAG_BWMODE 194 #define MNOTE_OLYMPUS_TAG_UNKNOWN_2 MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL 195 #define MNOTE_OLYMPUS_TAG_UNKNOWN_3 MNOTE_OLYMPUS_TAG_LENSDISTORTION 196 #define MNOTE_OLYMPUS_TAG_UNKNOWN_5 MNOTE_OLYMPUS_TAG_DATADUMP 197 #define MNOTE_NIKON_TAG_PREVIEWIMAGE MNOTE_NIKON_TAG_PREVIEWIMAGE_IFD_POINTER 198 199 /*! Return a textual name of the given tag within the Olympus-style MakerNote. 200 * The name is a short, unique, non-localized text string containing only 201 * US-ASCII alphanumeric characters. 202 * 203 * \param[in] tag Olympus-style MakerNote tag 204 * \return textual name of the tag, or NULL if the tag is unknown 205 */ 206 const char *mnote_olympus_tag_get_name (MnoteOlympusTag tag); 207 208 /*! Return a textual title of the given tag within the Olympus-style MakerNote. 209 * The title is a short, localized description of the tag. 210 * 211 * \param[in] tag Olympus-style MakerNote tag 212 * \return textual title of the tag, or NULL if the tag is unknown 213 */ 214 const char *mnote_olympus_tag_get_title (MnoteOlympusTag tag); 215 216 /*! Return a verbose textual description of the given tag within the 217 * Olympus-style MakerNote. 218 * The description is a verbose, localized description of the tag. 219 * 220 * \param[in] tag EXIF tag 221 * \return textual description of the tag, or NULL if the tag is unknown 222 */ 223 const char *mnote_olympus_tag_get_description (MnoteOlympusTag tag); 224 225 #ifdef __cplusplus 226 } 227 #endif /* __cplusplus */ 228 229 #endif /* __MNOTE_OLYMPUS_TAG_H__ */ 230