1/* mnote-olympus-tag.h
2 *
3 * Copyright (c) 2002 Lutz Mueller <lutz@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
25extern "C" {
26#endif /* __cplusplus */
27
28enum _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};
190typedef 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 */
206const 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 */
214const 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 */
223const char *mnote_olympus_tag_get_description (MnoteOlympusTag tag);
224
225#ifdef __cplusplus
226}
227#endif /* __cplusplus */
228
229#endif /* __MNOTE_OLYMPUS_TAG_H__ */
230