[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:36:07 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=17d0f75
The following commit has been merged in the master branch:
commit 17d0f75edfc583a0d101ecb5e02c07c786f27c82
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Sun Mar 7 08:44:14 2004 +0000
Added findIdx(), documentation changes
---
src/makernote.cpp | 6 +--
src/makernote.hpp | 130 ++++++++++++++++++++++++++++++++++++------------------
2 files changed, 89 insertions(+), 47 deletions(-)
diff --git a/src/makernote.cpp b/src/makernote.cpp
index a47dc8f..8a70e7a 100644
--- a/src/makernote.cpp
+++ b/src/makernote.cpp
@@ -20,7 +20,7 @@
*/
/*
File: makernote.cpp
- Version: $Name: $ $Revision: 1.3 $
+ Version: $Name: $ $Revision: 1.4 $
Author(s): Andreas Huggel (ahu) <ahuggel at gmx.net>
History: 18-Feb-04, ahu: created
Credits: Canon MakerNote implemented according to the specification
@@ -29,7 +29,7 @@
*/
// *****************************************************************************
#include "rcsid.hpp"
-EXIV2_RCSID("@(#) $Name: $ $Revision: 1.3 $ $RCSfile: makernote.cpp,v $")
+EXIV2_RCSID("@(#) $Name: $ $Revision: 1.4 $ $RCSfile: makernote.cpp,v $")
// *****************************************************************************
// included header files
@@ -44,7 +44,7 @@ EXIV2_RCSID("@(#) $Name: $ $Revision: 1.3 $ $RCSfile: makernote.cpp,v $")
#include <iomanip>
// Define DEBUG_MAKERNOTE to output debug information to std::cerr
-#define DEBUG_MAKERNOTE
+#undef DEBUG_MAKERNOTE
// *****************************************************************************
// class member definitions
diff --git a/src/makernote.hpp b/src/makernote.hpp
index 53f3f9f..36979f1 100644
--- a/src/makernote.hpp
+++ b/src/makernote.hpp
@@ -21,7 +21,7 @@
/*!
@file makernote.hpp
@brief
- @version $Name: $ $Revision: 1.3 $
+ @version $Name: $ $Revision: 1.4 $
@author Andreas Huggel (ahu)
<a href="mailto:ahuggel at gmx.net">ahuggel at gmx.net</a>
@date 18-Feb-04, ahu: created
@@ -77,15 +77,16 @@ namespace Exif {
const char* desc_; //!< Short tag description
}; // struct MnTagInfo
+ //! @name Creators
+ //@{
//! Constructor. Takes an optional MakerNote info tag array.
MakerNote(const MnTagInfo* mnTagInfo =0) : mnTagInfo_(mnTagInfo) {}
//! Virtual destructor.
virtual ~MakerNote() {}
- /*!
- @brief Return a pointer to a copy of itself (deep copy).
- The caller owns this copy and is responsible to delete it!
- */
- virtual MakerNote* clone() const =0;
+ //@}
+
+ //! @name Manipulators
+ //@{
/*!
@brief Read the MakerNote from character buffer buf of length len at
position offset (from the start of the TIFF header) and encoded
@@ -102,19 +103,14 @@ namespace Exif {
Return the number of bytes written.
*/
virtual long copy(char* buf, ByteOrder byteOrder, long offset) =0;
-
- //! @name Accessors
- //@{
- //! Return the size of the makernote in bytes.
- virtual long size() const =0;
- //! The first %MakerNote entry
- virtual Entries::const_iterator begin() const =0;
- //! End of the %MakerNote entries
- virtual Entries::const_iterator end() const =0;
//! The first %MakerNote entry
virtual Entries::iterator begin() =0;
//! End of the %MakerNote entries
virtual Entries::iterator end() =0;
+ //@}
+
+ //! @name Accessors
+ //@{
//! Return the key for the tag.
std::string makeKey(uint16 tag) const;
//! Return the associated tag for a makernote key.
@@ -133,6 +129,19 @@ namespace Exif {
and converts them to unsigned integer.
*/
virtual uint16 tag(const std::string& tagName) const;
+ /*!
+ @brief Return a pointer to a copy of itself (deep copy).
+ The caller owns this copy and is responsible to delete it!
+ */
+ virtual MakerNote* clone() const =0;
+ //! The first %MakerNote entry
+ virtual Entries::const_iterator begin() const =0;
+ //! End of the %MakerNote entries
+ virtual Entries::const_iterator end() const =0;
+ //! Find an entry by idx, return a const iterator to the record
+ virtual Entries::const_iterator findIdx(int idx) const =0;
+ //! Return the size of the makernote in bytes.
+ virtual long size() const =0;
//! Return the name of the makernote section
virtual std::string sectionName(uint16 tag) const =0;
//! Interpret and print the value of a makernote tag
@@ -162,6 +171,35 @@ namespace Exif {
*/
static MakerNoteFactory& instance();
+ //! @name Manipulators
+ //@{
+ /*!
+ @brief Register a %MakerNote prototype for a camera make and model.
+
+ Registers a %MakerNote for a given make and model combination with the
+ factory. Both the make and model strings may contain wildcards ('*',
+ e.g., "Canon*"). The method adds a new makerNote pointer to the
+ registry with the make and model strings provided. It takes ownership
+ of the object pointed to by the maker note pointer provided. If the
+ make already exists, then a new branch for the model is added to the
+ registry. If the model also already exists, then the new makerNote
+ pointer replaces the old one and the maker note pointed to by the old
+ pointer is deleted.
+
+ @param make Camera manufacturer. (Typically the string from the %Exif
+ make tag.)
+ @param model Camera model. (Typically the string from the %Exif
+ model tag.)
+ @param makerNote Pointer to the prototype. Ownership is transfered to the
+ %MakerNote factory.
+ */
+ void registerMakerNote(const std::string& make,
+ const std::string& model,
+ MakerNote* makerNote);
+ //@}
+
+ //! @name Accessors
+ //@{
/*!
@brief Create the appropriate %MakerNote based on camera make and
model, return a pointer to the newly created MakerNote
@@ -191,31 +229,9 @@ namespace Exif {
*/
MakerNote* create(const std::string& make,
const std::string& model) const;
+ //@}
/*!
- @brief Register a %MakerNote prototype for a camera make and model.
-
- Registers a %MakerNote for a given make and model combination with the
- factory. Both the make and model strings may contain wildcards ('*',
- e.g., "Canon*"). The method adds a new makerNote pointer to the
- registry with the make and model strings provided. It takes ownership
- of the object pointed to by the maker note pointer provided. If the
- make already exists, then a new branch for the model is added to the
- registry. If the model also already exists, then the new makerNote
- pointer replaces the old one and the maker note pointed to by the old
- pointer is deleted.
-
- @param make Camera manufacturer. (Typically the string from the %Exif
- make tag.)
- @param model Camera model. (Typically the string from the %Exif
- model tag.)
- @param makerNote Pointer to the prototype. Ownership is transfered to the
- %MakerNote factory.
- */
- void registerMakerNote(const std::string& make,
- const std::string& model,
- MakerNote* makerNote);
- /*!
@brief Match a registry entry with a key (used for make and model).
The matching algorithm is case insensitive and wildcards ('*') in the
@@ -230,17 +246,22 @@ namespace Exif {
const std::string& key);
private:
+ //! @name Creators
+ //@{
//! Prevent construction other than through instance().
MakerNoteFactory();
//! Prevent copy construction: not implemented.
MakerNoteFactory(const MakerNoteFactory& rhs);
+ //@}
- //! Pointer to the one and only instance of this class.
- static MakerNoteFactory* instance_;
//! Type used to store model labels and %MakerNote prototype classes
typedef std::vector<std::pair<std::string, MakerNote*> > ModelRegistry;
//! Type used to store a list of make labels and model registries
typedef std::vector<std::pair<std::string, ModelRegistry*> > Registry;
+
+ // DATA
+ //! Pointer to the one and only instance of this class.
+ static MakerNoteFactory* instance_;
//! List of makernote types and corresponding prototypes.
Registry registry_;
@@ -254,23 +275,36 @@ namespace Exif {
*/
class IfdMakerNote : public MakerNote {
public:
+ //! @name Creators
+ //@{
//! Constructor. Takes an optional MakerNote info tag array.
IfdMakerNote(const MakerNote::MnTagInfo* mnTagInfo =0)
: MakerNote(mnTagInfo), ifd_(makerIfd, 0, false) {}
+ //! Virtual destructor
virtual ~IfdMakerNote() {}
- virtual MakerNote* clone() const =0;
+ //@}
+ //! @name Manipulators
+ //@{
int read(const char* buf, long len, ByteOrder byteOrder, long offset);
long copy(char* buf, ByteOrder byteOrder, long offset);
- long size() const;
- Entries::const_iterator begin() const { return ifd_.begin(); }
- Entries::const_iterator end() const { return ifd_.end(); }
Entries::iterator begin() { return ifd_.begin(); }
Entries::iterator end() { return ifd_.end(); }
+ //@}
+
+ //! @name Accessors
+ //@{
+ Entries::const_iterator begin() const { return ifd_.begin(); }
+ Entries::const_iterator end() const { return ifd_.end(); }
+ Entries::const_iterator findIdx(int idx) const
+ { return ifd_.findIdx(idx); }
+ long size() const;
+ virtual MakerNote* clone() const =0;
virtual std::string sectionName(uint16 tag) const =0;
virtual std::ostream& printTag(std::ostream& os,
uint16 tag,
const Value& value) const =0;
+ //@}
protected:
Ifd ifd_; //!< MakerNote IFD
@@ -280,15 +314,23 @@ namespace Exif {
//! MakerNote for Canon cameras
class CanonMakerNote : public IfdMakerNote {
public:
+ //! @name Creators
+ //@{
//! Default constructor
CanonMakerNote();
+ //! Virtual destructor
virtual ~CanonMakerNote() {}
+ //@}
+
+ //! @name Accessors
+ //@{
MakerNote* clone() const;
//! Return the name of the makernote section ("Canon")
std::string sectionName(uint16 tag) const { return sectionName_; }
std::ostream& printTag(std::ostream& os,
uint16 tag,
const Value& value) const;
+ //@}
//! @name Print functions for Canon %MakerNote tags
//@{
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list