+2009-01-15 Dan Fandrich <dan@coneharvesters.com>
+
+ * Interpret more Sanyo MakerNote tags
+
2009-01-12 Dan Fandrich <dan@coneharvesters.com>
* Added support for Epson MakerNotes, which have the identical
}
if ((e->size >= 8) && !memcmp (e->data, "UNICODE\0", 8)) {
strncpy (val, _("Unsupported UNICODE string"), maxlen);
- /* FIXME: use iconv to convert into the locale encoding */
+ /* FIXME: use iconv to convert into the locale encoding.
+ * EXIF 2.2 implies (but does not say) that this encoding is
+ * UCS-2.
+ */
break;
}
if ((e->size >= 8) && !memcmp (e->data, "JIS\0\0\0\0\0", 8)) {
{4, N_("Contrast-")},
{0, NULL}}},
{ MNOTE_NIKON1_TAG_CCDSENSITIVITY, EXIF_FORMAT_SHORT,
- { {0, N_("ISO80")},
- {2, N_("ISO160")},
- {4, N_("ISO320")},
- {5, N_("ISO100")},
+ { {0, N_("ISO 80")},
+ {2, N_("ISO 160")},
+ {4, N_("ISO 320")},
+ {5, N_("ISO 100")},
{0, NULL}}},
{ MNOTE_NIKON1_TAG_WHITEBALANCE, EXIF_FORMAT_SHORT,
{ {0, N_("Auto")},
{ {0, N_("Interlaced")},
{1, N_("Progressive")},
{0, NULL}}},
+
{ MNOTE_SANYO_TAG_SEQUENTIALSHOT, EXIF_FORMAT_SHORT,
{ {0, N_("None")},
{1, N_("Standard")},
{2, N_("Best")},
{3, N_("Adjust Exposure")},
{0, NULL}}},
+ { MNOTE_SANYO_TAG_FOCUSMODE, EXIF_FORMAT_SHORT,
+ { {1, N_("Spot Focus")},
+ {2, N_("Normal Focus")},
+ {0, NULL}}},
{ MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE, EXIF_FORMAT_SHORT,
{ {0, N_("Record while down")},
{1, N_("Press start, press stop")},
{ {0, N_("No")},
{1, N_("Yes")},
{0, NULL}}},
+ { MNOTE_SANYO_TAG_CCDSENSITIVITY, EXIF_FORMAT_SHORT,
+ { {0, N_("Auto")},
+ {1, N_("ISO 50")},
+ {3, N_("ISO 100")},
+ {4, N_("ISO 200")},
+ {5, N_("ISO 400")},
+ {0, NULL}}},
{ MNOTE_SANYO_TAG_SCENESELECT, EXIF_FORMAT_SHORT,
{ {0, N_("Off")},
{1, N_("Sport")},
case MNOTE_NIKON_TAG_IMAGEADJUSTMENT:
case MNOTE_NIKON_TAG_ADAPTER:
case MNOTE_NIKON_TAG_SATURATION2:
- case MNOTE_EPSON_TAG_OEM_MODEL:
+ case MNOTE_EPSON_TAG_SOFTWARE:
CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen);
memcpy(v, entry->data, MIN (maxlen, entry->size));
break;
case MNOTE_OLYMPUS_TAG_PREVIEWIMAGEVALID:
case MNOTE_OLYMPUS_TAG_CCDSCANMODE:
case MNOTE_SANYO_TAG_SEQUENTIALSHOT:
+ case MNOTE_SANYO_TAG_FOCUSMODE:
case MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE:
case MNOTE_SANYO_TAG_RESAVED:
+ case MNOTE_SANYO_TAG_CCDSENSITIVITY:
case MNOTE_SANYO_TAG_SCENESELECT:
case MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL:
CC (entry->components, 1, v, maxlen);
case MNOTE_OLYMPUS_TAG_UNKNOWN_4:
CF (entry->format, EXIF_FORMAT_LONG, v, maxlen);
CC (entry->components, 30, v, maxlen);
- /* TODO: display me */
+ for (i=0; i < (int)entry->components; ++i) {
+ vs = exif_get_long (entry->data+4*i, entry->order);
+ sprintf (buf, "%lu ", vs);
+ strncat (v, buf, maxlen - strlen (v));
+ }
break;
case MNOTE_OLYMPUS_TAG_FOCUSDIST:
CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen);
{MNOTE_OLYMPUS_TAG_ONETOUCHWB, "OneTouchWB", N_("One Touch White Balance"), ""},
{MNOTE_OLYMPUS_TAG_WHITEBALANCEBRACKET, "WhiteBalanceBracket", N_("White Balance Bracket"), ""},
{MNOTE_OLYMPUS_TAG_WHITEBALANCEBIAS, "WhiteBalanceBias", N_("White Balance Bias"), ""},
- {MNOTE_OLYMPUS_TAG_UNKNOWN_5, NULL, NULL, NULL},
+ {MNOTE_OLYMPUS_TAG_DATADUMP, "DataDump", N_("Data Dump"), NULL},
{MNOTE_OLYMPUS_TAG_UNKNOWN_4, NULL, NULL, NULL},
{MNOTE_OLYMPUS_TAG_SHUTTERSPEED, "ShutterSpeed", N_("Shutter Speed"), ""},
{MNOTE_OLYMPUS_TAG_ISOVALUE, "ISOValue", N_("ISO Value"), ""},
{MNOTE_SANYO_TAG_SEQUENTIALSHOT, "SequentialShot", N_("Sequential Shot"), ""},
{MNOTE_SANYO_TAG_WIDERANGE, "WideRange", N_("Wide Range"), ""},
{MNOTE_SANYO_TAG_COLORADJUSTMENTMODE, "ColorAdjustmentMode", N_("Color Adjustment Mode"), ""},
+ {MNOTE_SANYO_TAG_FOCUSMODE, "FocusMode", N_("Focus Mode"), ""},
{MNOTE_SANYO_TAG_QUICKSHOT, "QuickShot", N_("Quick Shot"), ""},
{MNOTE_SANYO_TAG_SELFTIMER, "SelfTimer", N_("Self Timer"), ""},
{MNOTE_SANYO_TAG_VOICEMEMO, "VoiceMemo", N_("Voice Memo"), ""},
{MNOTE_SANYO_TAG_DIGITALZOOM, "DigitalZoom", N_("Digital Zoom"), ""},
{MNOTE_SANYO_TAG_LIGHTSOURCESPECIAL, "LightSourceSpecial", N_("Light Source Special"), ""},
{MNOTE_SANYO_TAG_RESAVED, "Resaved", N_("Resaved"), ""},
+ {MNOTE_SANYO_TAG_CCDSENSITIVITY, "CCDSensitivity", N_("CCD Sensitivity"), ""},
{MNOTE_SANYO_TAG_SCENESELECT, "SceneSelect", N_("Scene Select"), ""},
{MNOTE_SANYO_TAG_MANUALFOCUSDISTANCE, "ManualFocusDistance", N_("Manual Focus Distance"), ""},
{MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL, "SequenceShotInterval", N_("Sequence Shot Interval"), ""},
/* Epson */
{MNOTE_EPSON_TAG_IMAGE_WIDTH, "EpsonImageWidth", N_("Epson Image Width"), ""},
{MNOTE_EPSON_TAG_IMAGE_HEIGHT, "EpsonImageHeight", N_("Epson Image Height"), ""},
- {MNOTE_EPSON_TAG_OEM_MODEL, "EpsonOEMModel", N_("OEM Model Name"), ""},
+ {MNOTE_EPSON_TAG_SOFTWARE, "EpsonSoftware", N_("Epson Software Version"), ""},
#endif
{0, NULL, NULL, NULL}
};
MNOTE_OLYMPUS_TAG_ONETOUCHWB = 0x0302,
MNOTE_OLYMPUS_TAG_WHITEBALANCEBRACKET = 0x0303,
MNOTE_OLYMPUS_TAG_WHITEBALANCEBIAS = 0x0304,
- MNOTE_OLYMPUS_TAG_UNKNOWN_5 = 0x0f00,
+ MNOTE_OLYMPUS_TAG_DATADUMP = 0x0f00,
MNOTE_OLYMPUS_TAG_UNKNOWN_4 = 0x0f04,
MNOTE_OLYMPUS_TAG_SHUTTERSPEED = 0x1000,
MNOTE_OLYMPUS_TAG_ISOVALUE = 0x1001,
MNOTE_SANYO_TAG_SEQUENTIALSHOT = 0x020e,
MNOTE_SANYO_TAG_WIDERANGE = 0x020f,
MNOTE_SANYO_TAG_COLORADJUSTMENTMODE = 0x0210,
+ MNOTE_SANYO_TAG_FOCUSMODE = 0x0212,
MNOTE_SANYO_TAG_QUICKSHOT = 0x0213,
MNOTE_SANYO_TAG_SELFTIMER = 0x0214,
MNOTE_SANYO_TAG_VOICEMEMO = 0x0216,
MNOTE_SANYO_TAG_FLICKERREDUCE = 0x0218,
MNOTE_SANYO_TAG_OPTICALZOOM = 0x0219,
MNOTE_SANYO_TAG_DIGITALZOOM = 0x021b,
+ MNOTE_SANYO_TAG_CCDSENSITIVITY = 0x021a,
MNOTE_SANYO_TAG_LIGHTSOURCESPECIAL = 0x021d,
MNOTE_SANYO_TAG_RESAVED = 0x021e,
MNOTE_SANYO_TAG_SCENESELECT = 0x021f,
/* Epson */
MNOTE_EPSON_TAG_IMAGE_WIDTH = 0x020b,
MNOTE_EPSON_TAG_IMAGE_HEIGHT = 0x020c,
- MNOTE_EPSON_TAG_OEM_MODEL = 0x020d,
+ MNOTE_EPSON_TAG_SOFTWARE = 0x020d,
};
typedef enum _MnoteOlympusTag MnoteOlympusTag;
#define MNOTE_OLYMPUS_TAG_UNKNOWN_1 MNOTE_OLYMPUS_TAG_BWMODE
#define MNOTE_OLYMPUS_TAG_UNKNOWN_2 MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL
#define MNOTE_OLYMPUS_TAG_UNKNOWN_3 MNOTE_OLYMPUS_TAG_LENSDISTORTION
+#define MNOTE_OLYMPUS_TAG_UNKNOWN_5 MNOTE_OLYMPUS_TAG_DATADUMP
/*! Return a textual name of the given tag within the Olympus-style MakerNote.
* The name is a short, unique, non-localized text string containing only