314 lines
11 KiB
C++
314 lines
11 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 <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "rtexif.h"
|
|
|
|
namespace rtexif
|
|
{
|
|
|
|
class FAOnOffInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAOnOffInterpreter ()
|
|
{
|
|
choices[0] = "Off";
|
|
choices[1] = "On";
|
|
}
|
|
};
|
|
FAOnOffInterpreter faOnOffInterpreter;
|
|
|
|
class FASharpnessInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FASharpnessInterpreter ()
|
|
{
|
|
choices[1] = "Soft";
|
|
choices[2] = "Soft2";
|
|
choices[3] = "Normal";
|
|
choices[4] = "Hard";
|
|
choices[5] = "Hard2";
|
|
choices[0x82] = "Medium Soft";
|
|
choices[0x84] = "Medium Hard";
|
|
choices[0x8000] = "Film Simulation";
|
|
choices[0xffff] = "n/a";
|
|
}
|
|
};
|
|
FASharpnessInterpreter faSharpnessInterpreter;
|
|
|
|
class FAWhiteBalanceInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAWhiteBalanceInterpreter ()
|
|
{
|
|
choices[0] = "Auto";
|
|
choices[0x100] = "Daylight";
|
|
choices[0x200] = "Cloudy";
|
|
choices[0x300] = "Daylight Fluorescent";
|
|
choices[0x301] = "Day White Fluorescent";
|
|
choices[0x302] = "White Fluorescent";
|
|
choices[0x303] = "Warm White Fluorescent";
|
|
choices[0x304] = "Living Room Warm White Fluorescent";
|
|
choices[0x400] = "Incandescent";
|
|
choices[0x500] = "Flash";
|
|
choices[0x600] = "Underwater";
|
|
choices[0xf00] = "Custom";
|
|
choices[0xf01] = "Custom2";
|
|
choices[0xf02] = "Custom3";
|
|
choices[0xf03] = "Custom4";
|
|
choices[0xf04] = "Custom5";
|
|
choices[0xff0] = "Kelvin";
|
|
}
|
|
};
|
|
FAWhiteBalanceInterpreter faWhiteBalanceInterpreter;
|
|
|
|
class FASaturationInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FASaturationInterpreter ()
|
|
{
|
|
choices[0] = "Normal";
|
|
choices[128] = "Medium High";
|
|
choices[256] = "High";
|
|
choices[384] = "Medium Low";
|
|
choices[512] = "Low";
|
|
choices[768] = "None (B&W)";
|
|
choices[769] = "B&W Red Filter";
|
|
choices[770] = "B&W Yellow Filter";
|
|
choices[771] = "B&W Green Filter";
|
|
choices[784] = "B&W Sepia";
|
|
choices[1024] = "Low 2";
|
|
choices[1280] = "Acros";
|
|
choices[1281] = "Acros Red Filter";
|
|
choices[1282] = "Acros Yellow Filter";
|
|
choices[1283] = "Acros Green Filter";
|
|
choices[32768] = "Film Simulation";
|
|
}
|
|
};
|
|
FASaturationInterpreter faSaturationInterpreter;
|
|
|
|
class FAContrastInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAContrastInterpreter ()
|
|
{
|
|
choices[0] = "Normal";
|
|
choices[0x80] = "Medium High";
|
|
choices[0x100] = "High";
|
|
choices[0x180] = "Medium Low";
|
|
choices[0x200] = "Low";
|
|
choices[0x8000] = "Film Simulation";
|
|
}
|
|
};
|
|
FAContrastInterpreter faContrastInterpreter;
|
|
|
|
class FAContrast2Interpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAContrast2Interpreter ()
|
|
{
|
|
choices[0] = "Normal";
|
|
choices[0x100] = "High";
|
|
choices[0x300] = "Low";
|
|
}
|
|
};
|
|
FAContrast2Interpreter faContrast2Interpreter;
|
|
|
|
class FANoiseReductionInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FANoiseReductionInterpreter ()
|
|
{
|
|
choices[0x40] = "Low";
|
|
choices[0x80] = "Normal";
|
|
choices[0x100] = "n/a";
|
|
}
|
|
};
|
|
FANoiseReductionInterpreter faNoiseReductionInterpreter;
|
|
|
|
class FAFlashInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
// FujiFlashMode
|
|
FAFlashInterpreter ()
|
|
{
|
|
choices[0] = "Auto";
|
|
choices[1] = "On";
|
|
choices[2] = "Off";
|
|
choices[3] = "Red-eye reduction";
|
|
choices[4] = "External";
|
|
}
|
|
};
|
|
FAFlashInterpreter faFlashInterpreter;
|
|
|
|
class FAFocusModeInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAFocusModeInterpreter ()
|
|
{
|
|
choices[0] = "Auto";
|
|
choices[1] = "Manual";
|
|
}
|
|
};
|
|
FAFocusModeInterpreter faFocusModeInterpreter;
|
|
|
|
class FAColorModeInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAColorModeInterpreter ()
|
|
{
|
|
choices[0] = "Standard";
|
|
choices[0x10] = "Chrome";
|
|
choices[0x30] = "B & W";
|
|
}
|
|
};
|
|
FAColorModeInterpreter faColorModeInterpreter;
|
|
|
|
class FADynamicRangeInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FADynamicRangeInterpreter ()
|
|
{
|
|
choices[1] = "Standard";
|
|
choices[3] = "Wide";
|
|
}
|
|
};
|
|
FADynamicRangeInterpreter faDynamicRangeInterpreter;
|
|
|
|
class FAFilmModeInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAFilmModeInterpreter ()
|
|
{
|
|
choices[0x0] = "F0/Standard (Provia)";
|
|
choices[0x100] = "F1/Studio Portrait";
|
|
choices[0x110] = "F1a/Studio Portrait Enhanced Saturation";
|
|
choices[0x120] = "F1b/Studio Portrait Smooth Skin Tone (Astia)";
|
|
choices[0x130] = "F1c/Studio Portrait Increased Sharpness";
|
|
choices[0x200] = "F2/Fujichrome (Velvia)";
|
|
choices[0x300] = "F3/Studio Portrait Ex";
|
|
choices[0x400] = "F4/Velvia";
|
|
choices[0x500] = "Pro Neg. Std";
|
|
choices[0x501] = "Pro Neg. Hi";
|
|
choices[0x600] = "Classic Chrome";
|
|
}
|
|
};
|
|
FAFilmModeInterpreter faFilmModeInterpreter;
|
|
|
|
class FADRSettingInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
// DynamicRangeSetting
|
|
FADRSettingInterpreter ()
|
|
{
|
|
choices[0x0] = "Auto (100-400%)";
|
|
choices[0x1] = "Manual";
|
|
choices[0x100] = "Standard (100%)";
|
|
choices[0x200] = "Wide1 (230%)";
|
|
choices[0x201] = "Wide2 (400%)";
|
|
choices[0x8000] = "Film Simulation";
|
|
}
|
|
};
|
|
FADRSettingInterpreter faDRSettingInterpreter;
|
|
|
|
class FAPictureModeInterpreter : public ChoiceInterpreter<>
|
|
{
|
|
public:
|
|
FAPictureModeInterpreter ()
|
|
{
|
|
choices[0x0] = "Auto";
|
|
choices[0x1] = "Portrait";
|
|
choices[0x2] = "Landscape";
|
|
choices[0x3] = "Macro";
|
|
choices[0x4] = "Sports";
|
|
choices[0x5] = "Night Scene";
|
|
choices[0x6] = "Program AE";
|
|
choices[0x7] = "Natural Light";
|
|
choices[0x8] = "Anti-blur";
|
|
choices[0x9] = "Beach & Snow";
|
|
choices[0xa] = "Sunset";
|
|
choices[0xb] = "Museum";
|
|
choices[0xc] = "Party";
|
|
choices[0xd] = "Flower";
|
|
choices[0xe] = "Text";
|
|
choices[0xf] = "Natural Light & Flash";
|
|
choices[0x10] = "Beach";
|
|
choices[0x11] = "Snow";
|
|
choices[0x12] = "Fireworks";
|
|
choices[0x13] = "Underwater";
|
|
choices[0x14] = "Portrait with Skin Correction";
|
|
choices[0x16] = "Panorama";
|
|
choices[0x17] = "Night (tripod)";
|
|
choices[0x18] = "Pro Low-light";
|
|
choices[0x19] = "Pro Focus";
|
|
choices[0x1a] = "Portrait 2";
|
|
choices[0x1b] = "Dog Face Detection";
|
|
choices[0x1c] = "Cat Face Detection";
|
|
choices[0x40] = "Advanced Filter";
|
|
choices[0x100] = "Aperture-priority AE";
|
|
choices[0x200] = "Shutter speed priority AE";
|
|
choices[0x300] = "Manual";
|
|
}
|
|
};
|
|
FAPictureModeInterpreter faPictureModeInterpreter;
|
|
|
|
|
|
|
|
const TagAttrib fujiAttribs[] = {
|
|
{0, AC_WRITE, 0, nullptr, 0x0000, AUTO, "Version", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x0010, AUTO, "InternalSerialNumber", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1000, AUTO, "Quality", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1001, AUTO, "Sharpness", &faSharpnessInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1002, AUTO, "WhiteBalance", &faWhiteBalanceInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1003, AUTO, "Saturation", &faSaturationInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1004, AUTO, "Contrast", &faContrastInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1005, AUTO, "ColorTemperature", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1006, AUTO, "Contrast2", &faContrast2Interpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x100a, AUTO, "WhiteBalanceFineTune", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x100b, AUTO, "NoiseReduction", &faNoiseReductionInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1010, AUTO, "FujiFlashMode", &faFlashInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1011, AUTO, "FlashExposureComp", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1020, AUTO, "Macro", &faOnOffInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1021, AUTO, "FocusMode", &faFocusModeInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1023, AUTO, "FocusPixel", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1030, AUTO, "SlowSync", &faOnOffInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1031, AUTO, "PictureMode", &faPictureModeInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1100, AUTO, "AutoBracketing", &faOnOffInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1101, AUTO, "SequenceNumber", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1210, AUTO, "ColorMode", &faColorModeInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1300, AUTO, "BlurWarning", &faOnOffInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1301, AUTO, "FocusWarning", &faOnOffInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1302, AUTO, "ExposureWarning", &faOnOffInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1400, AUTO, "DynamicRange", &faDynamicRangeInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1401, AUTO, "FilmMode", &faFilmModeInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1402, AUTO, "DynamicRangeSetting", &faDRSettingInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1403, AUTO, "DevelopmentDynamicRange", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1404, AUTO, "MinFocalLength", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1405, AUTO, "MaxFocalLength", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1406, AUTO, "MaxApertureAtMinFocal", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x1407, AUTO, "MaxApertureAtMaxFocal", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x140b, AUTO, "AutoDynamicRange", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x4100, AUTO, "FacesDetected", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x8000, AUTO, "FileSource", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x8002, AUTO, "OrderNumber", &stdInterpreter},
|
|
{0, AC_WRITE, 0, nullptr, 0x8003, AUTO, "FrameNumber", &stdInterpreter},
|
|
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
|
|
};
|
|
}
|
|
|