Files
rawTherapee/rtexif/pentaxattribs.cc
2010-04-24 15:38:01 -06:00

586 lines
27 KiB
C++

/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* RawTherapee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _PENTAXATTRIBS_
#define _PENTAXATTRIBS_
#include <rtexif.h>
#include <string>
#include <map>
#include <math.h>
#include <sstream>
#include <iomanip>
namespace rtexif {
class PAQualityInterpreter : public ChoiceInterpreter {
public:
PAQualityInterpreter () {
choices[0] = "Good";
choices[1] = "Better";
choices[2] = "Best";
choices[3] = "TIFF";
choices[4] = "RAW";
choices[5] = "Premium";
}
};
PAQualityInterpreter paQualityInterpreter;
class PAOnOffInterpreter : public ChoiceInterpreter {
public:
PAOnOffInterpreter () {
choices[0] = "Off";
choices[1] = "On";
}
};
PAOnOffInterpreter paOnOffInterpreter;
class PAPictureModeInterpreter : public ChoiceInterpreter {
public:
PAPictureModeInterpreter () {
choices[0] = "Program";
choices[1] = "Shutter Speed Priority";
choices[2] = "Program AE";
choices[3] = "Manual";
choices[5] = "Portrait";
choices[6] = "Landscape";
choices[8] = "Sport";
choices[9] = "Night Scene";
choices[11] = "Soft";
choices[12] = "Surf & Snow";
choices[13] = "Candlelight";
choices[14] = "Autumn";
choices[15] = "Macro";
choices[17] = "Fireworks";
choices[18] = "Text";
choices[19] = "Panorama";
choices[30] = "Self Portrait";
choices[31] = "Illustrations";
choices[33] = "Digital Filter";
choices[35] = "Night Scene Portrait";
choices[37] = "Museum";
choices[38] = "Food";
choices[39] = "Underwater";
choices[40] = "Green Mode";
choices[49] = "Light Pet";
choices[50] = "Dark Pet";
choices[51] = "Medium Pet";
choices[53] = "Underwater";
choices[54] = "Candlelight";
choices[55] = "Natural Skin Tone";
choices[56] = "Synchro Sound Record";
choices[58] = "Frame Composite";
choices[59] = "Report";
choices[60] = "Kids";
choices[61] = "Blur Reduction";
choices[65] = "Half-length Portrait";
}
};
PAPictureModeInterpreter paPictureModeInterpreter;
class PAFlashModeInterpreter : public ChoiceInterpreter {
public:
PAFlashModeInterpreter () {
choices[0x0] = "Auto, Did not fire";
choices[0x1] = "Off";
choices[0x2] = "On, Did not fire";
choices[0x3] = "Auto, Did not fire, Red-eye reduction";
choices[0x100] = "Auto, Fired";
choices[0x102] = "On";
choices[0x103] = "Auto, Fired, Red-eye reduction";
choices[0x104] = "On, Red-eye reduction";
choices[0x105] = "On, Wireless (Master)";
choices[0x106] = "On, Wireless (Control)";
choices[0x108] = "On, Soft";
choices[0x109] = "On, Slow-sync";
choices[0x10a] = "On, Slow-sync, Red-eye reduction";
choices[0x10b] = "On, Trailing-curtain Sync";
}
};
PAFlashModeInterpreter paFlashModeInterpreter;
class PAFocusModeInterpreter : public ChoiceInterpreter {
public:
PAFocusModeInterpreter () {
choices[0] = "Normal";
choices[1] = "Macro";
choices[2] = "Infinity";
choices[3] = "Manual";
choices[4] = "Super Macro";
choices[5] = "Pan Focus";
choices[16] = "AF-S";
choices[17] = "AF-C";
choices[18] = "AF-A";
}
};
PAFocusModeInterpreter paFocusModeInterpreter;
class PAAFPointInterpreter : public ChoiceInterpreter {
public:
PAAFPointInterpreter () {
choices[1] = "Upper-left";
choices[2] = "Top";
choices[3] = "Upper-right";
choices[4] = "Left";
choices[5] = "Mid-left";
choices[6] = "Center";
choices[7] = "Mid-right";
choices[8] = "Right";
choices[9] = "Lower-left";
choices[10] = "Bottom";
choices[11] = "Lower-right";
choices[65532] = "Face Recognition AF";
choices[65533] = "Automatic Tracking AF";
choices[65534] = "Fixed Center";
choices[65535] = "Auto";
}
};
PAAFPointInterpreter paAFPointInterpreter;
class PAAFFocusInterpreter : public ChoiceInterpreter {
public:
PAAFFocusInterpreter () {
choices[0x0] = "Fixed Center or Multiple";
choices[0x1] = "Top-left";
choices[0x2] = "Top-center";
choices[0x3] = "Top-right";
choices[0x4] = "Left";
choices[0x5] = "Center";
choices[0x6] = "Right";
choices[0x7] = "Bottom-left";
choices[0x8] = "Bottom-center";
choices[0x9] = "Bottom-right";
choices[0xffff] = "None";
}
};
PAAFFocusInterpreter paAFFocusInterpreter;
class PAISOInterpreter : public ChoiceInterpreter {
public:
PAISOInterpreter () {
choices[3] = "50";
choices[4] = "64";
choices[5] = "80";
choices[6] = "100";
choices[7] = "125";
choices[8] = "160";
choices[9] = "200";
choices[10] = "250";
choices[11] = "320";
choices[12] = "400";
choices[13] = "500";
choices[14] = "640";
choices[15] = "800";
choices[16] = "1000";
choices[17] = "1250";
choices[18] = "1600";
choices[19] = "2000";
choices[20] = "2500";
choices[21] = "3200";
choices[50] = "50";
choices[100] = "100";
choices[200] = "200";
choices[258] = "50";
choices[259] = "70";
choices[260] = "100";
choices[261] = "140";
choices[262] = "200";
choices[263] = "280";
choices[264] = "400";
choices[265] = "560";
choices[266] = "800";
choices[267] = "1100";
choices[268] = "1600";
choices[269] = "2200";
choices[270] = "3200";
choices[400] = "400";
choices[800] = "800";
choices[1600] = "1600";
choices[3200] = "320";
}
};
PAISOInterpreter paISOInterpreter;
class PAMeteringModeInterpreter : public ChoiceInterpreter {
public:
PAMeteringModeInterpreter () {
choices[0] = "Multi-segment";
choices[1] = "Center-weighted average";
choices[2] = "Spot";
}
};
PAMeteringModeInterpreter paMeteringModeInterpreter;
class PAWhiteBalanceInterpreter : public ChoiceInterpreter {
public:
PAWhiteBalanceInterpreter () {
choices[0] = "Auto";
choices[1] = "Daylight";
choices[2] = "Shade";
choices[3] = "Fluorescent";
choices[4] = "Tungsten";
choices[5] = "Manual";
choices[6] = "DaylightFluorescent";
choices[7] = "DaywhiteFluorescent";
choices[8] = "WhiteFluorescent";
choices[9] = "Flash";
choices[10] = "Cloudy";
choices[17] = "Kelvin";
choices[65534] = "Unknown";
choices[65535] = "User Selected";
}
};
PAWhiteBalanceInterpreter paWhiteBalanceInterpreter;
class PAWhiteBalanceModeInterpreter : public ChoiceInterpreter {
public:
PAWhiteBalanceModeInterpreter () {
choices[1] = "Auto (Daylight)";
choices[2] = "Auto (Shade)";
choices[3] = "Auto (Flash)";
choices[4] = "Auto (Tungsten)";
choices[6] = "Auto (DaylightFluorescent)";
choices[7] = "Auto (DaywhiteFluorescent)";
choices[8] = "Auto (WhiteFluorescent)";
choices[10] = "Auto (Cloudy)";
choices[65534] = "Preset (Fireworks?)";
choices[65535] = "User-Selected";
}
};
PAWhiteBalanceModeInterpreter paWhiteBalanceModeInterpreter;
class PASaturationInterpreter : public ChoiceInterpreter {
public:
PASaturationInterpreter () {
choices[0] = "Low";
choices[1] = "Normal";
choices[2] = "High";
choices[3] = "Med Low";
choices[4] = "Med High";
choices[5] = "Very Low";
choices[6] = "Very High";
}
};
PASaturationInterpreter paSaturationInterpreter;
class PAContrastInterpreter : public ChoiceInterpreter {
public:
PAContrastInterpreter () {
choices[0] = "Low";
choices[1] = "Normal";
choices[2] = "High";
choices[3] = "Med Low";
choices[4] = "Med High";
choices[5] = "Very Low";
choices[6] = "Very High";
}
};
PAContrastInterpreter paContrastInterpreter;
class PASharpnessInterpreter : public ChoiceInterpreter {
public:
PASharpnessInterpreter () {
choices[0] = "Soft";
choices[1] = "Normal";
choices[2] = "Hard";
choices[3] = "Med Soft";
choices[4] = "Med Hard";
choices[5] = "Very Soft";
choices[6] = "Very Hard";
}
};
PASharpnessInterpreter paSharpnessInterpreter;
class PALensTypeInterpreter : public ChoiceInterpreter {
public:
PALensTypeInterpreter () {
choices[256*0+ 0] = "M-42 or No Lens";
choices[256*1+ 0] = "K,M Lens";
choices[256*2+ 0] = "A Series Lens";
choices[256*3+ 0] = "SIGMA";
choices[256*3+ 17] = "smc PENTAX-FA SOFT 85mm F2.8";
choices[256*3+ 18] = "smc PENTAX-F 1.7X AF ADAPTER";
choices[256*3+ 19] = "smc PENTAX-F 24-50mm F4";
choices[256*3+ 20] = "smc PENTAX-F 35-80mm F4-5.6";
choices[256*3+ 21] = "smc PENTAX-F 80-200mm F4.7-5.6";
choices[256*3+ 22] = "smc PENTAX-F FISH-EYE 17-28mm F3.5-4.5";
choices[256*3+ 23] = "smc PENTAX-F 100-300mm F4.5-5.6";
choices[256*3+ 24] = "smc PENTAX-F 35-135mm F3.5-4.5";
choices[256*3+ 25] = "smc PENTAX-F 35-105mm F4-5.6 or SIGMA or Tokina";
choices[256*3+ 26] = "smc PENTAX-F* 250-600mm F5.6 ED[IF]";
choices[256*3+ 27] = "smc PENTAX-F 28-80mm F3.5-4.5";
choices[256*3+ 28] = "smc PENTAX-F 35-70mm F3.5-4.5";
choices[256*3+ 29] = "PENTAX-F 28-80mm F3.5-4.5 or SIGMA AF 18-125mm F3.5-5.6 DC";
choices[256*3+ 30] = "PENTAX-F 70-200mm F4-5.6";
choices[256*3+ 31] = "smc PENTAX-F 70-210mm F4-5.6";
choices[256*3+ 32] = "smc PENTAX-F 50mm F1.4";
choices[256*3+ 33] = "smc PENTAX-F 50mm F1.7";
choices[256*3+ 34] = "smc PENTAX-F 135mm F2.8 [IF]";
choices[256*3+ 35] = "smc PENTAX-F 28mm F2.8";
choices[256*3+ 36] = "SIGMA 20mm F1.8 EX DG ASPHERICAL RF";
choices[256*3+ 38] = "smc PENTAX-F* 300mm F4.5 ED[IF]";
choices[256*3+ 39] = "smc PENTAX-F* 600mm F4 ED[IF]";
choices[256*3+ 40] = "smc PENTAX-F MACRO 100mm F2.8";
choices[256*3+ 41] = "smc PENTAX-F MACRO 50mm F2.8 or Sigma 50mm F2,8 MACRO";
choices[256*3+ 44] = "Tamron 35-90mm F4 AF or various SIGMA models";
choices[256*3+ 46] = "SIGMA APO 70-200mm F2.8 EX";
choices[256*3+ 50] = "smc PENTAX-FA 28-70 F4 AL";
choices[256*3+ 51] = "SIGMA 28mm F1.8 EX DG ASPHERICAL MACRO";
choices[256*3+ 52] = "smc PENTAX-FA 28-200mm F3.8-5.6 AL[IF]";
choices[256*3+ 53] = "smc PENTAX-FA 28-80mm F3.5-5.6 AL";
choices[256*3+ 247] = "smc PENTAX-DA FISH-EYE 10-17mm F3.5-4.5 ED[IF]";
choices[256*3+ 248] = "smc PENTAX-DA 12-24mm F4 ED AL[IF]";
choices[256*3+ 250] = "smc PENTAX-DA 50-200mm F4-5.6 ED";
choices[256*3+ 251] = "smc PENTAX-DA 40mm F2.8 Limited";
choices[256*3+ 252] = "smc PENTAX-DA 18-55mm F3.5-5.6 AL";
choices[256*3+ 253] = "smc PENTAX-DA 14mm F2.8 ED[IF]";
choices[256*3+ 254] = "smc PENTAX-DA 16-45mm F4 ED AL";
choices[256*3+ 255] = "SIGMA";
choices[256*4+ 1] = "smc PENTAX-FA SOFT 28mm F2.8";
choices[256*4+ 2] = "smc PENTAX-FA 80-320mm F4.5-5.6";
choices[256*4+ 3] = "smc PENTAX-FA 43mm F1.9 Limited";
choices[256*4+ 6] = "smc PENTAX-FA 35-80mm F4-5.6";
choices[256*4+ 12] = "smc PENTAX-FA 50mm F1.4";
choices[256*4+ 15] = "smc PENTAX-FA 28-105mm F4-5.6 [IF]";
choices[256*4+ 16] = "TAMRON AF 80-210mm F4-5.6 (178D)";
choices[256*4+ 19] = "TAMRON SP AF 90mm F2.8 (172E)";
choices[256*4+ 20] = "smc PENTAX-FA 28-80mm F3.5-5.6";
choices[256*4+ 21] = "Cosina AF 100-300mm F5.6-6.7";
choices[256*4+ 22] = "TOKINA 28-80mm F3.5-5.6";
choices[256*4+ 23] = "smc PENTAX-FA 20-35mm F4 AL";
choices[256*4+ 24] = "smc PENTAX-FA 77mm F1.8 Limited";
choices[256*4+ 25] = "TAMRON SP AF 14mm F2.8";
choices[256*4+ 26] = "smc PENTAX-FA MACRO 100mm F3.5";
choices[256*4+ 27] = "TAMRON AF28-300mm F/3.5-6.3 LD Aspherical[IF] MACRO (285D)";
choices[256*4+ 28] = "smc PENTAX-FA 35mm F2 AL";
choices[256*4+ 29] = "TAMRON AF 28-200mm F/3.8-5.6 LD Super II MACRO (371D)";
choices[256*4+ 34] = "smc PENTAX-FA 24-90mm F3.5-4.5 AL[IF]";
choices[256*4+ 35] = "smc PENTAX-FA 100-300mm F4.7-5.8";
choices[256*4+ 36] = "TAMRON AF70-300mm F/4-5.6 LD MACRO";
choices[256*4+ 37] = "TAMRON SP AF 24-135mm F3.5-5.6 AD AL (190D)";
choices[256*4+ 38] = "smc PENTAX-FA 28-105mm F3.2-4.5 AL[IF]";
choices[256*4+ 39] = "smc PENTAX-FA 31mm F1.8AL Limited";
choices[256*4+ 41] = "TAMRON AF 28-200mm Super Zoom F3.8-5.6 Aspherical XR [IF] MACRO (A03)";
choices[256*4+ 43] = "smc PENTAX-FA 28-90mm F3.5-5.6";
choices[256*4+ 44] = "smc PENTAX-FA J 75-300mm F4.5-5.8 AL";
choices[256*4+ 45] = "TAMRON 28-300mm F3.5-6.3 Ultra zoom XR";
choices[256*4+ 46] = "smc PENTAX-FA J 28-80mm F3.5-5.6 AL";
choices[256*4+ 47] = "smc PENTAX-FA J 18-35mm F4-5.6 AL";
choices[256*4+ 49] = "TAMRON SP AF 28-75mm F2.8 XR Di (A09)";
choices[256*4+ 51] = "smc PENTAX-D FA 50mm F2.8 MACRO";
choices[256*4+ 52] = "smc PENTAX-D FA 100mm F2.8 MACRO";
choices[256*4+ 75] = "TAMRON SP AF 70-200 F2.8 Di LD [IF] Macro (A001)";
choices[256*4+ 229] = "smc PENTAX-DA 18-55mm F3.5-5.6 AL II";
choices[256*4+ 230] = "TAMRON SP AF 17-50mm F2.8 XR Di II";
choices[256*4+ 231] = "smc PENTAX-DA 18-250mm F3.5-6.3 ED AL [IF]";
choices[256*4+ 237] = "Samsung/Schneider D-XENOGON 10-17mm F3.5-4.5";
choices[256*4+ 239] = "Samsung D-XENON 12-24mm F4 ED AL [IF]";
choices[256*4+ 243] = "smc PENTAX-DA 70mm F2.4 Limited";
choices[256*4+ 244] = "smc PENTAX-DA 21mm F3.2 AL Limited";
choices[256*4+ 245] = "Schneider D-XENON 50-200mm";
choices[256*4+ 246] = "Schneider D-XENON 18-55mm";
choices[256*4+ 247] = "smc PENTAX-DA 10-17mm F3.5-4.5 ED [IF] Fisheye zoom";
choices[256*4+ 248] = "smc PENTAX-DA 12-24mm F4 ED AL [IF]";
choices[256*4+ 249] = "TAMRON XR DiII 18-200mm F3.5-6.3 (A14)";
choices[256*4+ 250] = "smc PENTAX-DA 50-200mm F4-5.6 ED";
choices[256*4+ 251] = "smc PENTAX-DA 40mm F2.8 Limited";
choices[256*4+ 252] = "smc PENTAX-DA 18-55mm F3.5-5.6 AL";
choices[256*4+ 253] = "smc PENTAX-DA 14mm F2.8 ED[IF]";
choices[256*4+ 254] = "smc PENTAX-DA 16-45mm F4 ED AL";
choices[256*5+ 1] = "smc PENTAX-FA* 24mm F2 AL[IF]";
choices[256*5+ 2] = "smc PENTAX-FA 28mm F2.8 AL";
choices[256*5+ 3] = "smc PENTAX-FA 50mm F1.7";
choices[256*5+ 4] = "smc PENTAX-FA 50mm F1.4";
choices[256*5+ 5] = "smc PENTAX-FA* 600mm F4 ED[IF]";
choices[256*5+ 6] = "smc PENTAX-FA* 300mm F4.5 ED[IF]";
choices[256*5+ 7] = "smc PENTAX-FA 135mm F2.8 [IF]";
choices[256*5+ 8] = "smc PENTAX-FA MACRO 50mm F2.8";
choices[256*5+ 9] = "smc PENTAX-FA MACRO 100mm F2.8";
choices[256*5+ 10] = "smc PENTAX-FA* 85mm F1.4 [IF]";
choices[256*5+ 11] = "smc PENTAX-FA* 200mm F2.8 ED[IF]";
choices[256*5+ 12] = "smc PENTAX-FA 28-80mm F3.5-4.7";
choices[256*5+ 13] = "smc PENTAX-FA 70-200mm F4-5.6";
choices[256*5+ 14] = "smc PENTAX-FA* 250-600mm F5.6 ED[IF]";
choices[256*5+ 15] = "smc PENTAX-FA 28-105mm F4-5.6";
choices[256*5+ 16] = "smc PENTAX-FA 100-300mm F4.5-5.6";
choices[256*5+ 98] = "smc PENTAX-FA 100-300mm F4.5-5.6";
choices[256*6+ 1] = "smc PENTAX-FA* 85mm F1.4 [IF]";
choices[256*6+ 2] = "smc PENTAX-FA* 200mm F2.8 ED[IF]";
choices[256*6+ 3] = "smc PENTAX-FA* 300mm F2.8 ED[IF]";
choices[256*6+ 4] = "smc PENTAX-FA* 28-70mm F2.8 AL";
choices[256*6+ 5] = "smc PENTAX-FA* 80-200mm F2.8 ED[IF]";
choices[256*6+ 6] = "smc PENTAX-FA* 28-70mm F2.8 AL";
choices[256*6+ 7] = "smc PENTAX-FA* 80-200mm F2.8 ED[IF]";
choices[256*6+ 8] = "smc PENTAX-FA 28-70mm F4AL";
choices[256*6+ 9] = "smc PENTAX-FA 20mm F2.8";
choices[256*6+ 10] = "smc PENTAX-FA* 400mm F5.6 ED[IF]";
choices[256*6+ 13] = "smc PENTAX-FA* 400mm F5.6 ED[IF]";
choices[256*6+ 14] = "smc PENTAX-FA* MACRO 200mm F4 ED[IF]";
choices[256*7+ 0] = "smc PENTAX-DA 21mm F3.2 AL Limited";
choices[256*7+ 75] = "TAMRON SP AF 70-200mm F2.8 Di LD [IF] Macro (A001)";
choices[256*7+ 217] = "smc PENTAX-DA 50-200mm F4-5.6 ED WR";
choices[256*7+ 218] = "smc PENTAX-DA 18-55mm F3.5-5.6 AL WR";
choices[256*7+ 220] = "TAMRON SP AF 10-24mm F3.5-4.5 Di II LD Aspherical [IF]";
choices[256*7+ 222] = "smc PENTAX-DA 18-55mm F3.5-5.6 AL II";
choices[256*7+ 223] = "Samsung D-XENON 18-55mm F3.5-5.6 II";
choices[256*7+ 224] = "smc PENTAX-DA 15mm F4 ED AL Limited";
choices[256*7+ 225] = "Samsung D-XENON 18-250mm F3.5-6.3";
choices[256*7+ 229] = "smc PENTAX-DA 18-55mm F3.5-5.6 AL II";
choices[256*7+ 230] = "TAMRON AF 17-50mm F2.8 XR Di-II LD (Model A16)";
choices[256*7+ 231] = "smc PENTAX-DA 18-250mm F3.5-6.3 ED AL [IF]";
choices[256*7+ 233] = "smc PENTAX-DA 35mm F2.8 Macro Limited";
choices[256*7+ 234] = "smc PENTAX-DA* 300mm F4 ED [IF] SDM (SDM unused)";
choices[256*7+ 235] = "smc PENTAX-DA* 200mm F2.8 ED [IF] SDM (SDM unused)";
choices[256*7+ 236] = "smc PENTAX-DA 55-300mm F4-5.8 ED";
choices[256*7+ 238] = "TAMRON AF 18-250mm F3.5-6.3 Di II LD Aspherical [IF] MACRO";
choices[256*7+ 241] = "smc PENTAX-DA* 50-135mm F2.8 ED [IF] SDM (SDM unused)";
choices[256*7+ 242] = "smc PENTAX-DA* 16-50mm F2.8 ED AL [IF] SDM (SDM unused)";
choices[256*7+ 243] = "smc PENTAX-DA 70mm F2.4 Limited";
choices[256*7+ 244] = "smc PENTAX-DA 21mm F3.2 AL Limited";
choices[256*8+ 226] = "smc PENTAX-DA* 55mm F1.4 SDM";
choices[256*8+ 227] = "smc PENTAX DA* 60-250mm F4 [IF] SDM";
choices[256*8+ 232] = "smc PENTAX-DA 17-70mm F4 AL [IF] SDM";
choices[256*8+ 234] = "smc PENTAX-DA* 300mm F4 ED [IF] SDM";
choices[256*8+ 235] = "smc PENTAX-DA* 200mm F2.8 ED [IF] SDM";
choices[256*8+ 241] = "smc PENTAX-DA* 50-135mm F2.8 ED [IF] SDM";
choices[256*8+ 242] = "smc PENTAX-DA* 16-50mm F2.8 ED AL [IF] SDM";
choices[256*8+ 255] = "Sigma 70-200mm F2.8 EX DG Macro HSM II or 150-500mm F5-6.3 DG OS";
}
virtual std::string toString (Tag* t) {
return choices[256*t->toInt(0,BYTE) + t->toInt(1,BYTE)];
}
};
PALensTypeInterpreter paLensTypeInterpreter;
class PASRInfoInterpreter : public Interpreter {
public:
PASRInfoInterpreter () { }
virtual std::string toString (Tag* t) {
std::ostringstream str;
int b = t->toInt(0,BYTE);
if (!b)
str << "SRResult = Not stabilized" << std::endl;
else if (b & 1)
str << "SRResult = Stabilized" << std::endl;
b = t->toInt(1,BYTE);
if (!b)
str << "ShakeReduction = Off" << std::endl;
else
str << "ShakeReduction = On" << std::endl;
str << "SRHalfPressTime = " << t->toInt(2,BYTE) << std::endl;
str << "SRFocalLength = " << t->toInt(3,BYTE);
return str.str();
}
};
PASRInfoInterpreter paSRInfoInterpreter;
const TagAttrib pentaxAttribs[] = {
0, 1, 0, 0, 0x0001, "PentaxVersion", &stdInterpreter,
0, 1, 0, 0, 0x0001, "PentaxModelType", &stdInterpreter,
0, 2, 0, 0, 0x0002, "PreviewImageSize", &stdInterpreter,
0, 2, 0, 0, 0x0003, "PreviewImageLength", &stdInterpreter,
0, 2, 0, 0, 0x0004, "PreviewImageStart", &stdInterpreter,
0, 1, 0, 0, 0x0005, "PentaxModelID", &stdInterpreter,
0, 1, 0, 0, 0x0006, "Date", &stdInterpreter,
0, 1, 0, 0, 0x0007, "Time", &stdInterpreter,
0, 1, 0, 0, 0x0008, "Quality", &paQualityInterpreter,
0, 1, 0, 0, 0x0009, "PentaxImageSize", &stdInterpreter,
0, 1, 0, 0, 0x000b, "PictureMode", &paPictureModeInterpreter,
0, 1, 0, 0, 0x000c, "FlashMode", &paFlashModeInterpreter,
0, 1, 0, 0, 0x000d, "FocusMode", &paFocusModeInterpreter,
0, 1, 0, 0, 0x000e, "AFPointSelected", &paAFPointInterpreter,
0, 1, 0, 0, 0x000f, "AFPointsInFocus", &paAFFocusInterpreter,
0, 1, 0, 0, 0x0010, "FocusPosition", &stdInterpreter,
0, 1, 0, 0, 0x0012, "ExposureTime", &stdInterpreter,
0, 1, 0, 0, 0x0013, "FNumber", &stdInterpreter,
0, 1, 0, 0, 0x0014, "ISO", &paISOInterpreter,
0, 1, 0, 0, 0x0015, "LightReading", &stdInterpreter,
0, 1, 0, 0, 0x0016, "ExposureCompensation", &stdInterpreter,
0, 1, 0, 0, 0x0017, "MeteringMode", &paMeteringModeInterpreter,
0, 1, 0, 0, 0x0018, "AutoBracketing", &stdInterpreter,
0, 1, 0, 0, 0x0019, "WhiteBalance", &paWhiteBalanceInterpreter,
0, 1, 0, 0, 0x001a, "WhiteBalanceMode", &paWhiteBalanceModeInterpreter,
0, 1, 0, 0, 0x001b, "BlueBalance", &stdInterpreter,
0, 1, 0, 0, 0x001c, "RedBalance", &stdInterpreter,
0, 1, 0, 0, 0x001d, "FocalLength", &stdInterpreter,
0, 1, 0, 0, 0x001e, "DigitalZoom", &stdInterpreter,
0, 1, 0, 0, 0x001f, "Saturation", &paSaturationInterpreter,
0, 1, 0, 0, 0x0020, "Contrast", &paContrastInterpreter,
0, 1, 0, 0, 0x0021, "Sharpness", &paSharpnessInterpreter,
0, 1, 0, 0, 0x0022, "WorldTimeLocation", &stdInterpreter,
0, 1, 0, 0, 0x0023, "HometownCity", &stdInterpreter,
0, 3, 0, 0, 0x0024, "DestinationCity", &stdInterpreter,
0, 3, 0, 0, 0x0025, "HometownDST", &stdInterpreter,
0, 1, 0, 0, 0x0026, "DestinationDST", &stdInterpreter,
0, 1, 0, 0, 0x0027, "DSPFirmwareVersion", &stdInterpreter,
0, 1, 0, 0, 0x0028, "CPUFirmwareVersion", &stdInterpreter,
0, 1, 0, 0, 0x0029, "FrameNumber", &stdInterpreter,
0, 1, 0, 0, 0x002d, "EffectiveLV", &stdInterpreter,
0, 1, 0, 0, 0x0032, "ImageProcessing", &stdInterpreter,
0, 1, 0, 0, 0x0033, "PictureMode", &stdInterpreter,
0, 1, 0, 0, 0x0034, "DriveMode", &stdInterpreter,
0, 1, 0, 0, 0x0037, "ColorSpace", &stdInterpreter,
0, 1, 0, 0, 0x0038, "ImageAreaOffset", &stdInterpreter,
0, 1, 0, 0, 0x0039, "RawImageSize", &stdInterpreter,
0, 1, 0, 0, 0x003c, "AFPointsInFocus", &stdInterpreter,
0, 1, 0, 0, 0x003e, "PreviewImageBorders", &stdInterpreter,
0, 1, 0, 0, 0x003f, "LensType", &paLensTypeInterpreter,
0, 1, 0, 0, 0x0040, "SensitivityAdjust", &stdInterpreter,
0, 1, 0, 0, 0x0041, "ImageProcessingCount", &stdInterpreter,
0, 1, 0, 0, 0x0047, "CameraTemperature", &stdInterpreter,
0, 1, 0, 0, 0x0048, "AELock", &paOnOffInterpreter,
0, 1, 0, 0, 0x0049, "NoiseReduction", &paOnOffInterpreter,
0, 1, 0, 0, 0x004d, "FlashExposureComp", &stdInterpreter,
0, 1, 0, 0, 0x004f, "ImageTone", &stdInterpreter,
0, 1, 0, 0, 0x0050, "ColorTemperature", &stdInterpreter,
0, 1, 0, 0, 0x005c, "ShakeReductionInfo", &paSRInfoInterpreter,
0, 1, 0, 0, 0x005d, "ShutterCount", &stdInterpreter,
0, 1, 0, 0, 0x0200, "BlackPoint", &stdInterpreter,
0, 1, 0, 0, 0x0201, "WhitePoint", &stdInterpreter,
0, 1, 0, 0, 0x0205, "ShotInfo", &stdInterpreter,
0, 1, 0, 0, 0x0206, "AEInfo", &stdInterpreter,
0, 1, 0, 0, 0x0207, "LensInfo", &stdInterpreter,
0, 1, 0, 0, 0x0208, "FlashInfo", &stdInterpreter,
0, 1, 0, 0, 0x0209, "AEMeteringSegments", &stdInterpreter,
0, 1, 0, 0, 0x020a, "FlashADump", &stdInterpreter,
0, 1, 0, 0, 0x020b, "FlashBDump", &stdInterpreter,
0, 1, 0, 0, 0x020d, "WB_RGGBLevelsDaylight", &stdInterpreter,
0, 1, 0, 0, 0x020e, "WB_RGGBLevelsShade", &stdInterpreter,
0, 1, 0, 0, 0x020f, "WB_RGGBLevelsCloudy", &stdInterpreter,
0, 1, 0, 0, 0x0210, "WB_RGGBLevelsTungsten", &stdInterpreter,
0, 1, 0, 0, 0x0211, "WB_RGGBLevelsFluorescentD", &stdInterpreter,
0, 1, 0, 0, 0x0212, "WB_RGGBLevelsFluorescentN", &stdInterpreter,
0, 1, 0, 0, 0x0213, "WB_RGGBLevelsFluorescentW", &stdInterpreter,
0, 1, 0, 0, 0x0214, "WB_RGGBLevelsFlash", &stdInterpreter,
0, 1, 0, 0, 0x0215, "CameraInfo", &stdInterpreter,
0, 1, 0, 0, 0x0216, "BatteryInfo", &stdInterpreter,
0, 1, 0, 0, 0x021f, "AFInfo", &stdInterpreter,
0, 1, 0, 0, 0x0222, "ColorInfo", &stdInterpreter,
0, 1, 0, 0, 0x03fe, "DataDump", &stdInterpreter,
0, 1, 0, 0, 0x03ff, "UnknownInfo", &stdInterpreter,
0, 1, 0, 0, 0x0402, "ToneCurve", &stdInterpreter,
0, 1, 0, 0, 0x0403, "ToneCurves", &stdInterpreter,
0, 1, 0, 0, 0x0e00, "PrintIM", &stdInterpreter,
-1, 0, 0, 0, 0, "", NULL};
};
#endif