OLD | NEW |
(Empty) | |
| 1 /* mnote-olympus-tag.c: |
| 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 #include <config.h> |
| 22 #include "mnote-olympus-tag.h" |
| 23 |
| 24 #include <libexif/i18n.h> |
| 25 #include <libexif/exif-utils.h> |
| 26 |
| 27 #include <stdlib.h> |
| 28 |
| 29 static const struct { |
| 30 MnoteOlympusTag tag; |
| 31 const char *name; |
| 32 const char *title; |
| 33 const char *description; |
| 34 } table[] = { |
| 35 #ifndef NO_VERBOSE_TAG_STRINGS |
| 36 /* Nikon v2 */ |
| 37 {MNOTE_NIKON_TAG_FIRMWARE, "Firmware", N_("Firmware Version"), ""}, |
| 38 {MNOTE_NIKON_TAG_ISO, "ISO", N_("ISO Setting"), ""}, |
| 39 {MNOTE_NIKON_TAG_COLORMODE1, "ColorMode1", N_("Color Mode (?)"), ""}, |
| 40 {MNOTE_NIKON_TAG_QUALITY, "Quality", N_("Quality"), ""}, |
| 41 {MNOTE_NIKON_TAG_WHITEBALANCE, "WhiteBalance", N_("White Balance"), ""}, |
| 42 {MNOTE_NIKON_TAG_SHARPENING, "Sharpening", N_("Image Sharpening"), "
"}, |
| 43 {MNOTE_NIKON_TAG_FOCUSMODE, "FocusMode", N_("Focus Mode"), ""}, |
| 44 {MNOTE_NIKON_TAG_FLASHSETTING, "FlashSetting", N_("Flash Setting"), ""
}, |
| 45 {MNOTE_NIKON_TAG_FLASHMODE, "FlashMode", N_("Flash Mode"), ""}, |
| 46 {MNOTE_NIKON_TAG_WHITEBALANCEFINE,"WhiteBalanceFine",N_("White Balance F
ine Adjustment"), ""}, |
| 47 {MNOTE_NIKON_TAG_WHITEBALANCERB, "WhiteBalanceRB", N_("White Balance RB
"), ""}, |
| 48 {MNOTE_NIKON_TAG_UNKNOWN_0X000D, NULL, NULL, NULL}, |
| 49 {MNOTE_NIKON_TAG_ISOSELECTION, "ISOSelection", N_("ISO Selection"), "
"}, |
| 50 {MNOTE_NIKON_TAG_PREVIEWIMAGE_IFD_POINTER, "PreviewImage", N_("Preview I
mage IFD"), N_("Offset of the preview image directory (IFD) inside the file.")}, |
| 51 {MNOTE_NIKON_TAG_EXPOSUREDIFF, "ExposureDiff", N_("Exposurediff ?"),
""}, |
| 52 {MNOTE_NIKON_TAG_FLASHEXPCOMPENSATION, "FlashExpCompensation", N_("Flash
Exposure Compensation"), ""}, |
| 53 {MNOTE_NIKON_TAG_ISO2, "ISO", N_("ISO Setting"), ""}, |
| 54 {MNOTE_NIKON_TAG_IMAGEBOUNDARY, "ImageBoundary", N_("Image Boundary"),
""}, |
| 55 {MNOTE_NIKON_TAG_UNKNOWN_0X0017, NULL, NULL, NULL}, |
| 56 {MNOTE_NIKON_TAG_FLASHEXPOSUREBRACKETVAL, "FlashExposureBracketVal", N_
("Flash Exposure Bracket Value"), ""}, |
| 57 {MNOTE_NIKON_TAG_EXPOSUREBRACKETVAL, "ExposureBracketVal", N_("Exposure
Bracket Value"), ""}, |
| 58 {MNOTE_NIKON_TAG_IMAGEADJUSTMENT, "ImageAdjustment", N_("Image Adjustmen
t"), ""}, |
| 59 {MNOTE_NIKON_TAG_TONECOMPENSATION, "ToneCompensation", N_("Tone Compensa
tion"), ""}, |
| 60 {MNOTE_NIKON_TAG_ADAPTER, "Adapter", N_("Adapter"), ""}, |
| 61 {MNOTE_NIKON_TAG_LENSTYPE, "LensType", N_("Lens Type"), ""}, |
| 62 {MNOTE_NIKON_TAG_LENS, "Lens", N_("Lens"), ""}, |
| 63 {MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE, "ManualFocusDistance", N_("Manual
Focus Distance"), ""}, |
| 64 {MNOTE_NIKON_TAG_DIGITALZOOM, "DigitalZoom", N_("Digital Zoom"), ""}
, |
| 65 {MNOTE_NIKON_TAG_FLASHUSED, "FlashUsed", N_("Flash Used"), ""}, |
| 66 {MNOTE_NIKON_TAG_AFFOCUSPOSITION, "AFFocusPosition", N_("AF Focus Positi
on"), ""}, |
| 67 {MNOTE_NIKON_TAG_BRACKETING, "Bracketing", N_("Bracketing"), ""}, |
| 68 {MNOTE_NIKON_TAG_UNKNOWN_0X008A, NULL, NULL, NULL}, |
| 69 {MNOTE_NIKON_TAG_LENS_FSTOPS, "LensFStops", N_("Lens F Stops"), ""}, |
| 70 {MNOTE_NIKON_TAG_CURVE, "Curve,", N_("Contrast Curve"), ""}, |
| 71 {MNOTE_NIKON_TAG_COLORMODE, "ColorMode,", N_("Color Mode"), ""}, |
| 72 {MNOTE_NIKON_TAG_LIGHTTYPE, "LightType,", N_("Light Type"), ""}, |
| 73 {MNOTE_NIKON_TAG_UNKNOWN_0X0091, NULL, NULL, NULL}, |
| 74 {MNOTE_NIKON_TAG_HUE, "Hue", N_("Hue Adjustment"), ""}, |
| 75 {MNOTE_NIKON_TAG_SATURATION, "Saturation", N_("Saturation"), ""}, |
| 76 {MNOTE_NIKON_TAG_NOISEREDUCTION, "NoiseReduction,", N_("Noise Reduction
"), ""}, |
| 77 {MNOTE_NIKON_TAG_UNKNOWN_0X0097, NULL, NULL, NULL}, |
| 78 {MNOTE_NIKON_TAG_UNKNOWN_0X0098, NULL, NULL, NULL}, |
| 79 {MNOTE_NIKON_TAG_SENSORPIXELSIZE, "SensorPixelSize", N_("Sensor Pixel Si
ze"), ""}, |
| 80 {MNOTE_NIKON_TAG_UNKNOWN_0X009B, NULL, NULL, NULL}, |
| 81 {MNOTE_NIKON_TAG_SERIALNUMBER, "SerialNumber", N_("Serial Number"), "
"}, |
| 82 {MNOTE_NIKON_TAG_IMAGE_DATASIZE, "ImageDataSize", N_("Image Data Size")
, N_("Size of compressed image data in bytes.")}, |
| 83 {MNOTE_NIKON_TAG_UNKNOWN_0X00A3, NULL, NULL, NULL}, |
| 84 {MNOTE_NIKON_TAG_TOTALPICTURES, "TotalPictures,", N_("Total Number of
Pictures Taken"), ""}, |
| 85 {MNOTE_NIKON_TAG_UNKNOWN_0X00A8, NULL, NULL, NULL}, |
| 86 {MNOTE_NIKON_TAG_OPTIMIZATION, "Optimization,", N_("Optimize Image"),
""}, |
| 87 {MNOTE_NIKON_TAG_SATURATION, "Saturation", N_("Saturation"), ""}, |
| 88 {MNOTE_NIKON_TAG_VARIPROGRAM, "VariProgram", N_("Vari Program"), ""}
, |
| 89 {MNOTE_NIKON_TAG_CAPTUREEDITORDATA, "CaptureEditorData", N_("Capture Edi
tor Data"), ""}, |
| 90 {MNOTE_NIKON_TAG_CAPTUREEDITORVER, "CaptureEditorVer", N_("Capture Edito
r Version"), ""}, |
| 91 {MNOTE_NIKON_TAG_UNKNOWN_0X0E0E, NULL, NULL, NULL}, |
| 92 {MNOTE_NIKON_TAG_UNKNOWN_0X0E10, NULL, NULL, NULL}, |
| 93 {MNOTE_NIKON1_TAG_UNKNOWN_0X0002, NULL, NULL, NULL}, |
| 94 {MNOTE_NIKON1_TAG_QUALITY, "Quality", N_("Quality"), ""}, |
| 95 {MNOTE_NIKON1_TAG_COLORMODE, "ColorMode,", N_("Color Mode"), ""}, |
| 96 {MNOTE_NIKON1_TAG_IMAGEADJUSTMENT, "ImageAdjustment", N_("Image Adjustme
nt"), ""}, |
| 97 {MNOTE_NIKON1_TAG_CCDSENSITIVITY, "CCDSensitivity", N_("CCD Sensitivity"
), ""}, |
| 98 {MNOTE_NIKON1_TAG_WHITEBALANCE, "WhiteBalance", N_("White Balance"), "
"}, |
| 99 {MNOTE_NIKON1_TAG_FOCUS, "Focus", N_("Focus"), ""}, |
| 100 {MNOTE_NIKON1_TAG_UNKNOWN_0X0009, NULL, NULL, NULL}, |
| 101 {MNOTE_NIKON1_TAG_DIGITALZOOM, "DigitalZoom", N_("Digital Zoom"), ""}
, |
| 102 {MNOTE_NIKON1_TAG_CONVERTER, "Converter", N_("Converter"), ""}, |
| 103 |
| 104 /* Olympus & some Sanyo */ |
| 105 {MNOTE_OLYMPUS_TAG_THUMBNAILIMAGE, "ThumbnailImage", N_("Thumbnail Image
"), ""}, |
| 106 {MNOTE_OLYMPUS_TAG_MODE, "Mode", N_("Speed/Sequence/Panorama Direction")
, ""}, |
| 107 {MNOTE_OLYMPUS_TAG_QUALITY, "Quality", N_("Quality"), ""}, |
| 108 {MNOTE_OLYMPUS_TAG_MACRO, "Macro", N_("Macro"), ""}, |
| 109 {MNOTE_OLYMPUS_TAG_BWMODE, "BWMode", N_("Black & White Mode"), ""}, |
| 110 {MNOTE_OLYMPUS_TAG_DIGIZOOM, "DigiZoom", N_("Digital Zoom"), ""}, |
| 111 {MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL, "FocalPlaneDiagonal", N_("Focal P
lane Diagonal"), ""}, |
| 112 {MNOTE_OLYMPUS_TAG_LENSDISTORTION, "LensDistortionParams", N_("Lens Dist
ortion Parameters"), ""}, |
| 113 {MNOTE_OLYMPUS_TAG_VERSION, "FirmwareVersion", N_("Firmware Version"), "
"}, |
| 114 {MNOTE_OLYMPUS_TAG_INFO, "Info", N_("Info"), ""}, |
| 115 {MNOTE_OLYMPUS_TAG_ID, "CameraID", N_("Camera ID"), ""}, |
| 116 {MNOTE_OLYMPUS_TAG_PRECAPTUREFRAMES, "PreCaptureFrames", N_("Precapture
Frames"), ""}, |
| 117 {MNOTE_OLYMPUS_TAG_WHITEBOARD, "WhiteBoard", N_("White Board"), ""}, |
| 118 {MNOTE_OLYMPUS_TAG_ONETOUCHWB, "OneTouchWB", N_("One Touch White Balance
"), ""}, |
| 119 {MNOTE_OLYMPUS_TAG_WHITEBALANCEBRACKET, "WhiteBalanceBracket", N_("White
Balance Bracket"), ""}, |
| 120 {MNOTE_OLYMPUS_TAG_WHITEBALANCEBIAS, "WhiteBalanceBias", N_("White Balan
ce Bias"), ""}, |
| 121 {MNOTE_OLYMPUS_TAG_DATADUMP, "DataDump", N_("Data Dump"), NULL}, |
| 122 {MNOTE_OLYMPUS_TAG_UNKNOWN_4, NULL, NULL, NULL}, |
| 123 {MNOTE_OLYMPUS_TAG_SHUTTERSPEED, "ShutterSpeed", N_("Shutter Speed"), ""
}, |
| 124 {MNOTE_OLYMPUS_TAG_ISOVALUE, "ISOValue", N_("ISO Value"), ""}, |
| 125 {MNOTE_OLYMPUS_TAG_APERTUREVALUE, "ApertureValue", N_("Aperture Value"),
""}, |
| 126 {MNOTE_OLYMPUS_TAG_BRIGHTNESSVALUE, "BrightnessValue", N_("Brightness Va
lue"), ""}, |
| 127 {MNOTE_OLYMPUS_TAG_FLASHMODE, "FlashMode", N_("Flash Mode"), ""}, |
| 128 {MNOTE_OLYMPUS_TAG_FLASHDEVICE, "FlashDevice", N_("Flash Device"), ""}, |
| 129 {MNOTE_OLYMPUS_TAG_EXPOSURECOMP, "ExposureCompensation", N_("Exposure Co
mpensation"), ""}, |
| 130 {MNOTE_OLYMPUS_TAG_SENSORTEMPERATURE, "SensorTemperature", N_("Sensor Te
mperature"), ""}, |
| 131 {MNOTE_OLYMPUS_TAG_LENSTEMPERATURE, "LensTemperature", N_("Lens Temperat
ure"), ""}, |
| 132 {MNOTE_OLYMPUS_TAG_LIGHTCONDITION, "LightCondition", N_("Light Condition
"), ""}, |
| 133 {MNOTE_OLYMPUS_TAG_FOCUSRANGE, "FocusRange", N_("Focus Range"), ""}, |
| 134 {MNOTE_OLYMPUS_TAG_MANFOCUS, "FocusMode", N_("Focus Mode"), "Automatic o
r manual focusing mode"}, |
| 135 {MNOTE_OLYMPUS_TAG_FOCUSDIST, "ManualFocusDistance", N_("Manual Focus Di
stance"), ""}, |
| 136 {MNOTE_OLYMPUS_TAG_ZOOMSTEPCOUNT, "ZoomStepCount", N_("Zoom Step Count")
, ""}, |
| 137 {MNOTE_OLYMPUS_TAG_FOCUSSTEPCOUNT, "FocusStepCount", N_("Focus Step Coun
t"), ""}, |
| 138 {MNOTE_OLYMPUS_TAG_SHARPNESS, "Sharpness", N_("Sharpness Setting"), ""}, |
| 139 {MNOTE_OLYMPUS_TAG_FLASHCHARGELEVEL, "FlashChargeLevel", N_("Flash Charg
e Level"), ""}, |
| 140 {MNOTE_OLYMPUS_TAG_COLORMATRIX, "ColorMatrix", N_("Color Matrix"), ""}, |
| 141 {MNOTE_OLYMPUS_TAG_BLACKLEVEL, "BlackLevel", N_("Black Level"), ""}, |
| 142 {MNOTE_OLYMPUS_TAG_WBALANCE, "WhiteBalance", N_("White Balance Setting")
, ""}, |
| 143 {MNOTE_OLYMPUS_TAG_REDBALANCE, "RedBalance", N_("Red Balance"), ""}, |
| 144 {MNOTE_OLYMPUS_TAG_BLUEBALANCE, "BlueBalance", N_("Blue Balance"), ""}, |
| 145 {MNOTE_OLYMPUS_TAG_COLORMATRIXNUMBER, "ColorMatrixNumber", N_("Color Mat
rix Number"), ""}, |
| 146 {MNOTE_OLYMPUS_TAG_SERIALNUMBER2, "SerialNumber", N_("Serial Number"), "
"}, |
| 147 {MNOTE_OLYMPUS_TAG_FLASHEXPOSURECOMP, "FlashExposureComp", N_("Flash Exp
osure Comp"), ""}, |
| 148 {MNOTE_OLYMPUS_TAG_INTERNALFLASHTABLE, "InternalFlashTable", N_("Interna
l Flash Table"), ""}, |
| 149 {MNOTE_OLYMPUS_TAG_EXTERNALFLASHGVALUE, "ExternalFlashGValue", N_("Exter
nal Flash G Value"), ""}, |
| 150 {MNOTE_OLYMPUS_TAG_EXTERNALFLASHBOUNCE, "ExternalFlashBounce", N_("Exter
nal Flash Bounce"), ""}, |
| 151 {MNOTE_OLYMPUS_TAG_EXTERNALFLASHZOOM, "ExternalFlashZoom", N_("External
Flash Zoom"), ""}, |
| 152 {MNOTE_OLYMPUS_TAG_EXTERNALFLASHMODE, "ExternalFlashMode", N_("External
Flash Mode"), ""}, |
| 153 {MNOTE_OLYMPUS_TAG_CONTRAST, "Contrast", N_("Contrast Setting"), ""}, |
| 154 {MNOTE_OLYMPUS_TAG_SHARPNESSFACTOR, "SharpnessFactor", N_("Sharpness Fac
tor"), ""}, |
| 155 {MNOTE_OLYMPUS_TAG_COLORCONTROL, "ColorControl", N_("Color Control"), ""
}, |
| 156 {MNOTE_OLYMPUS_TAG_IMAGEWIDTH, "OlympusImageWidth", N_("Olympus Image Wi
dth"), ""}, |
| 157 {MNOTE_OLYMPUS_TAG_IMAGEHEIGHT, "OlympusImageHeight", N_("Olympus Image
Height"), ""}, |
| 158 {MNOTE_OLYMPUS_TAG_SCENEDETECT, "SceneDetect", N_("Scene Detect"), ""}, |
| 159 {MNOTE_OLYMPUS_TAG_COMPRESSIONRATIO, "CompressionRatio", N_("Compression
Ratio"), ""}, |
| 160 {MNOTE_OLYMPUS_TAG_PREVIEWIMAGEVALID, "PreviewImageValid", N_("Preview I
mage Valid"), ""}, |
| 161 {MNOTE_OLYMPUS_TAG_AFRESULT, "AFResult", N_("AF Result"), ""}, |
| 162 {MNOTE_OLYMPUS_TAG_CCDSCANMODE, "CCDScanMode", N_("CCD Scan Mode"), ""}, |
| 163 {MNOTE_OLYMPUS_TAG_NOISEREDUCTION, "NoiseReduction", N_("Noise Reduction
"), ""}, |
| 164 {MNOTE_OLYMPUS_TAG_INFINITYLENSSTEP, "InfinityLensStep", N_("Infinity Le
ns Step"), ""}, |
| 165 {MNOTE_OLYMPUS_TAG_NEARLENSSTEP, "NearLensStep", N_("Near Lens Step"), "
"}, |
| 166 {MNOTE_OLYMPUS_TAG_LIGHTVALUECENTER, "LightValueCenter", N_("Light Value
Center"), ""}, |
| 167 {MNOTE_OLYMPUS_TAG_LIGHTVALUEPERIPHERY, "LightValuePeriphery", N_("Light
Value Periphery"), ""}, |
| 168 |
| 169 /* Sanyo */ |
| 170 {MNOTE_SANYO_TAG_SEQUENTIALSHOT, "SequentialShot", N_("Sequential Shot")
, ""}, |
| 171 {MNOTE_SANYO_TAG_WIDERANGE, "WideRange", N_("Wide Range"), ""}, |
| 172 {MNOTE_SANYO_TAG_COLORADJUSTMENTMODE, "ColorAdjustmentMode", N_("Color A
djustment Mode"), ""}, |
| 173 {MNOTE_SANYO_TAG_FOCUSMODE, "FocusMode", N_("Focus Mode"), ""}, |
| 174 {MNOTE_SANYO_TAG_QUICKSHOT, "QuickShot", N_("Quick Shot"), ""}, |
| 175 {MNOTE_SANYO_TAG_SELFTIMER, "SelfTimer", N_("Self-timer"), ""}, |
| 176 {MNOTE_SANYO_TAG_VOICEMEMO, "VoiceMemo", N_("Voice Memo"), ""}, |
| 177 {MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE, "RecordShutterRelease", N_("Recor
d Shutter Release"), ""}, |
| 178 {MNOTE_SANYO_TAG_FLICKERREDUCE, "FlickerReduce", N_("Flicker Reduce"), "
"}, |
| 179 {MNOTE_SANYO_TAG_OPTICALZOOM, "OpticalZoom", N_("Optical Zoom"), ""}, |
| 180 {MNOTE_SANYO_TAG_DIGITALZOOM, "DigitalZoom", N_("Digital Zoom"), ""}, |
| 181 {MNOTE_SANYO_TAG_LIGHTSOURCESPECIAL, "LightSourceSpecial", N_("Light Sou
rce Special"), ""}, |
| 182 {MNOTE_SANYO_TAG_RESAVED, "Resaved", N_("Resaved"), ""}, |
| 183 {MNOTE_SANYO_TAG_CCDSENSITIVITY, "CCDSensitivity", N_("CCD Sensitivity")
, ""}, |
| 184 {MNOTE_SANYO_TAG_SCENESELECT, "SceneSelect", N_("Scene Select"), ""}, |
| 185 {MNOTE_SANYO_TAG_MANUALFOCUSDISTANCE, "ManualFocusDistance", N_("Manual
Focus Distance"), ""}, |
| 186 {MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL, "SequenceShotInterval", N_("Seque
nce Shot Interval"), ""}, |
| 187 |
| 188 /* Epson */ |
| 189 {MNOTE_EPSON_TAG_IMAGE_WIDTH, "EpsonImageWidth", N_("Epson Image Width")
, ""}, |
| 190 {MNOTE_EPSON_TAG_IMAGE_HEIGHT, "EpsonImageHeight", N_("Epson Image Heigh
t"), ""}, |
| 191 {MNOTE_EPSON_TAG_SOFTWARE, "EpsonSoftware", N_("Epson Software Version")
, ""}, |
| 192 #endif |
| 193 {0, NULL, NULL, NULL} |
| 194 }; |
| 195 |
| 196 const char * |
| 197 mnote_olympus_tag_get_name (MnoteOlympusTag t) |
| 198 { |
| 199 unsigned int i; |
| 200 |
| 201 for (i = 0; i < sizeof (table) / sizeof (table[0]); i++) |
| 202 if (table[i].tag == t) return (table[i].name); |
| 203 return NULL; |
| 204 } |
| 205 |
| 206 const char * |
| 207 mnote_olympus_tag_get_title (MnoteOlympusTag t) |
| 208 { |
| 209 unsigned int i; |
| 210 |
| 211 #if defined(BIND_TEXTDOMAIN) |
| 212 bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); |
| 213 #endif |
| 214 for (i = 0; i < sizeof (table) / sizeof (table[0]); i++) |
| 215 if (table[i].tag == t) return (_(table[i].title)); |
| 216 return NULL; |
| 217 } |
| 218 |
| 219 const char * |
| 220 mnote_olympus_tag_get_description (MnoteOlympusTag t) |
| 221 { |
| 222 unsigned int i; |
| 223 |
| 224 for (i = 0; i < sizeof (table) / sizeof (table[0]); i++) |
| 225 if (table[i].tag == t) { |
| 226 if (!table[i].description || !*table[i].description) |
| 227 return ""; |
| 228 #if defined(BIND_TEXTDOMAIN) |
| 229 bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); |
| 230 #endif |
| 231 return _(table[i].description); |
| 232 } |
| 233 return NULL; |
| 234 } |
OLD | NEW |