1 // ***************************************************************** -*- C++ -*- 2 /* 3 * Copyright (C) 2004-2017 Andreas Huggel <ahuggel@gmx.net> 4 * 5 * This program is part of the Exiv2 distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA. 20 */ 21 /*! 22 @file sigmamn_int.hpp 23 @brief Sigma and Foveon MakerNote implemented according to the specification 24 <a href="http://www.x3f.info/technotes/FileDocs/MakerNoteDoc.html"> 25 SIGMA and FOVEON EXIF MakerNote Documentation</a> by Foveon. 26 @version $Rev: 4719 $ 27 @author Andreas Huggel (ahu) 28 <a href="mailto:ahuggel@gmx.net">ahuggel@gmx.net</a> 29 @date 02-Apr-04, ahu: created 30 */ 31 #ifndef SIGMAMN_INT_HPP_ 32 #define SIGMAMN_INT_HPP_ 33 34 // ***************************************************************************** 35 // included header files 36 #include "tags.hpp" 37 #include "types.hpp" 38 39 // + standard includes 40 #include <string> 41 #include <iosfwd> 42 #include <memory> 43 44 // ***************************************************************************** 45 // namespace extensions 46 namespace Exiv2 { 47 namespace Internal { 48 49 // ***************************************************************************** 50 // class definitions 51 52 //! MakerNote for Sigma (Foveon) cameras 53 class SigmaMakerNote { 54 public: 55 //! Return read-only list of built-in Sigma tags 56 static const TagInfo* tagList(); 57 58 //! @name Print functions for Sigma (Foveon) %MakerNote tags 59 //@{ 60 //! Strip the label from the value and print the remainder 61 static std::ostream& printStripLabel(std::ostream& os, const Value& value, const ExifData*); 62 //! Print exposure mode 63 static std::ostream& print0x0008(std::ostream& os, const Value& value, const ExifData*); 64 //! Print metering mode 65 static std::ostream& print0x0009(std::ostream& os, const Value& value, const ExifData*); 66 //@} 67 68 private: 69 //! Tag information 70 static const TagInfo tagInfo_[]; 71 72 }; // class SigmaMakerNote 73 74 }} // namespace Internal, Exiv2 75 76 #endif // #ifndef SIGMAMN_INT_HPP_ 77