Home | History | Annotate | Download | only in olympus
      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