Blame src/minoltamn_int.hpp

Packit 01d647
// ***************************************************************** -*- C++ -*-
Packit 01d647
/*
Packit 01d647
 * Copyright (C) 2004-2018 Exiv2 authors
Packit 01d647
 * This program is part of the Exiv2 distribution.
Packit 01d647
 *
Packit 01d647
 * This program is free software; you can redistribute it and/or
Packit 01d647
 * modify it under the terms of the GNU General Public License
Packit 01d647
 * as published by the Free Software Foundation; either version 2
Packit 01d647
 * of the License, or (at your option) any later version.
Packit 01d647
 *
Packit 01d647
 * This program is distributed in the hope that it will be useful,
Packit 01d647
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 01d647
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 01d647
 * GNU General Public License for more details.
Packit 01d647
 *
Packit 01d647
 * You should have received a copy of the GNU General Public License
Packit 01d647
 * along with this program; if not, write to the Free Software
Packit 01d647
 * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
Packit 01d647
 */
Packit 01d647
/*!
Packit 01d647
  @file    minoltamn_int.hpp
Packit 01d647
  @brief   Minolta MakerNote implemented using the following references:
Packit 01d647
           Minolta Makernote Format Specification by Dalibor Jelinek,
Packit 01d647
           Minolta Makernote list by Phil Harvey
Packit 01d647
           Minolta Makernote list from PHP JPEG Metadata Toolkit
Packit 01d647
           Email communication with caulier dot gilles at gmail dot com
Packit 01d647
           Some Minolta camera settings have been decoded by Xavier Raynaud from digiKam project and added by Gilles Caulier.
Packit 01d647
  @author  Andreas Huggel (ahu)
Packit 01d647
           ahuggel@gmx.net
Packit 01d647
  @author  Gilles Caulier (cgilles)
Packit 01d647
           caulier dot gilles at gmail dot com
Packit 01d647
  @date    06-May-06, gc: submitted
Packit 01d647
 */
Packit 01d647
#ifndef MINOLTAMN_INT_HPP_
Packit 01d647
#define MINOLTAMN_INT_HPP_
Packit 01d647
Packit 01d647
// *****************************************************************************
Packit 01d647
// included header files
Packit 01d647
#include "tags.hpp"
Packit 01d647
#include "types.hpp"
Packit 01d647
Packit 01d647
// + standard includes
Packit 01d647
#include <iosfwd>
Packit 01d647
Packit 01d647
// *****************************************************************************
Packit 01d647
// namespace extensions
Packit 01d647
namespace Exiv2 {
Packit 01d647
    namespace Internal {
Packit 01d647
Packit 01d647
// *****************************************************************************
Packit 01d647
// class definitions
Packit 01d647
Packit 01d647
    //! MakerNote for Minolta cameras
Packit 01d647
    class MinoltaMakerNote {
Packit 01d647
    public:
Packit 01d647
        //! Return read-only list of built-in Minolta tags
Packit 01d647
        static const TagInfo* tagList();
Packit 01d647
        //! Return read-only list of built-in Minolta Standard Camera Settings tags
Packit 01d647
        static const TagInfo* tagListCsStd();
Packit 01d647
        //! Return read-only list of built-in Minolta 7D Camera Settings tags
Packit 01d647
        static const TagInfo* tagListCs7D();
Packit 01d647
        //! Return read-only list of built-in Minolta 5D Camera Settings tags
Packit 01d647
        static const TagInfo* tagListCs5D();
Packit 01d647
        //! Return read-only list of built-in Sony A100 Camera Settings tags
Packit 01d647
        static const TagInfo* tagListCsA100();
Packit 01d647
Packit 01d647
        //! @name Print functions for Minolta %MakerNote tags
Packit 01d647
        //@{
Packit 01d647
        //! Print Exposure Speed setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaExposureSpeedStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Exposure Time setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaExposureTimeStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print F Number setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaFNumberStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Exposure Compensation setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaExposureCompensationStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Focal Length setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaFocalLengthStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Minolta Date from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaDateStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Minolta Time from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaTimeStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Flash Exposure Compensation setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaFlashExposureCompStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print White Balance setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaWhiteBalanceStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Brightness setting from standard Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaBrightnessStd(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
Packit 01d647
        //! Print Exposure Manual Bias setting from 5D Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaExposureManualBias5D(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //! Print Exposure Compensation setting from 5D Minolta Camera Settings makernote
Packit 01d647
        static std::ostream& printMinoltaExposureCompensation5D(std::ostream& os, const Value& value, const ExifData*);
Packit 01d647
        //@}
Packit 01d647
Packit 01d647
    private:
Packit 01d647
        //! Tag information
Packit 01d647
        static const TagInfo tagInfo_[];
Packit 01d647
        static const TagInfo tagInfoCsA100_[];
Packit 01d647
        static const TagInfo tagInfoCs5D_[];
Packit 01d647
        static const TagInfo tagInfoCs7D_[];
Packit 01d647
        static const TagInfo tagInfoCsStd_[];
Packit 01d647
Packit 01d647
    }; // class MinoltaMakerNote
Packit 01d647
Packit 01d647
    // -- Minolta and Sony MakerNote Common Values ---------------------------------------
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Lens id values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyLensID(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Color Mode values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyColorMode(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony bool function values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyBoolValue(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony bool inverse function values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyBoolInverseValue(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony AF Area Mode values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyAFAreaMode(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Local AF Area Point values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyLocalAFAreaPoint(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony dynamic range optimizer mode values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyDynamicRangeOptimizerMode(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony priority setup shutter release values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyPrioritySetupShutterRelease(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Quality values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyQualityCs(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Rotation values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyRotation(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Scene Mode values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonySceneMode(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Image Quality values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyImageQuality(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony Teleconverter Model values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyTeleconverterModel(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony White Balance Std values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyWhiteBalanceStd(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony ZoneMatching values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyZoneMatching(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    //! Print Minolta/Sony FlashExposureComp values to readable labels.
Packit 01d647
    std::ostream& printMinoltaSonyFlashExposureComp(std::ostream&, const Value&, const ExifData*);
Packit 01d647
Packit 01d647
    // TODO: Added shared methods here.
Packit 01d647
Packit 01d647
}}                                      // namespace Internal, Exiv2
Packit 01d647
Packit 01d647
#endif                                  // #ifndef MINOLTAMN_INT_HPP_