diff --git a/src/exif.cpp b/src/exif.cpp index d6d5f0a0..b5478eb8 100644 --- a/src/exif.cpp +++ b/src/exif.cpp @@ -20,14 +20,14 @@ */ /* File: exif.cpp - Version: $Name: $ $Revision: 1.28 $ + Version: $Name: $ $Revision: 1.29 $ Author(s): Andreas Huggel (ahu) History: 26-Jan-04, ahu: created 11-Feb-04, ahu: isolated as a component */ // ***************************************************************************** #include "rcsid.hpp" -EXIV2_RCSID("@(#) $Name: $ $Revision: 1.28 $ $RCSfile: exif.cpp,v $") +EXIV2_RCSID("@(#) $Name: $ $Revision: 1.29 $ $RCSfile: exif.cpp,v $") // ***************************************************************************** // included header files @@ -573,7 +573,7 @@ namespace Exif { add(ifd0_.begin(), ifd0_.end(), byteOrder()); add(exifIfd_.begin(), exifIfd_.end(), byteOrder()); if (makerNote_) { - add(makerNote_->begin(), makerNote_->end(), byteOrder()); + add(makerNote_->begin(), makerNote_->end(), makerNote_->byteOrder()); } add(iopIfd_.begin(), iopIfd_.end(), byteOrder()); add(gpsIfd_.begin(), gpsIfd_.end(), byteOrder()); @@ -641,7 +641,7 @@ std::cerr << "->>>>>> writing from metadata <<<<<<-\n"; if (makerNote_) { // Build MakerNote from metadata makerNote = makerNote_->clone(); - addToMakerNote(makerNote, begin(), end(), byteOrder()); + addToMakerNote(makerNote, begin(), end(), makerNote_->byteOrder()); // Create a placeholder MakerNote entry of the correct size and // add it to the Exif IFD (because we don't know the offset yet) Entry e; @@ -817,20 +817,23 @@ std::cerr << "->>>>>> writing from metadata <<<<<<-\n"; if (!this->compatible()) return false; bool compatible = true; - compatible |= updateRange(ifd0_.begin(), ifd0_.end()); - compatible |= updateRange(exifIfd_.begin(), exifIfd_.end()); + compatible |= updateRange(ifd0_.begin(), ifd0_.end(), byteOrder()); + compatible |= updateRange(exifIfd_.begin(), exifIfd_.end(), byteOrder()); if (makerNote_) { - compatible |= updateRange(makerNote_->begin(), makerNote_->end()); + compatible |= updateRange(makerNote_->begin(), + makerNote_->end(), + makerNote_->byteOrder()); } - compatible |= updateRange(iopIfd_.begin(), iopIfd_.end()); - compatible |= updateRange(gpsIfd_.begin(), gpsIfd_.end()); - compatible |= updateRange(ifd1_.begin(), ifd1_.end()); + compatible |= updateRange(iopIfd_.begin(), iopIfd_.end(), byteOrder()); + compatible |= updateRange(gpsIfd_.begin(), gpsIfd_.end(), byteOrder()); + compatible |= updateRange(ifd1_.begin(), ifd1_.end(), byteOrder()); return compatible; } // ExifData::updateEntries bool ExifData::updateRange(const Entries::iterator& begin, - const Entries::iterator& end) + const Entries::iterator& end, + ByteOrder byteOrder) { bool compatible = true; for (Entries::iterator entry = begin; entry != end; ++entry) { @@ -850,7 +853,7 @@ std::cerr << "->>>>>> writing from metadata <<<<<<-\n"; } else { char* buf = new char[md->size()]; - md->copy(buf, byteOrder()); + md->copy(buf, byteOrder); entry->setValue(md->typeId(), md->count(), buf, md->size()); delete[] buf; } diff --git a/src/exif.hpp b/src/exif.hpp index a2389867..2ba8d8ee 100644 --- a/src/exif.hpp +++ b/src/exif.hpp @@ -21,7 +21,7 @@ /*! @file exif.hpp @brief Encoding and decoding of %Exif data - @version $Name: $ $Revision: 1.28 $ + @version $Name: $ $Revision: 1.29 $ @author Andreas Huggel (ahu) ahuggel@gmx.net @date 09-Jan-04, ahu: created @@ -138,7 +138,8 @@ namespace Exif { //! Return the tag uint16 tag() const { return tag_; } //! Return the type id of the value - TypeId typeId() const { return value_ == 0 ? invalid : value_->typeId(); } + TypeId typeId() const + { return value_ == 0 ? invalidTypeId : value_->typeId(); } //! Return the name of the type const char* typeName() const { return TypeInfo::typeName(typeId()); } //! Return the size in bytes of one component of this type @@ -627,7 +628,8 @@ namespace Exif { (if any). */ bool updateRange(const Entries::iterator& begin, - const Entries::iterator& end); + const Entries::iterator& end, + ByteOrder byteOrder); /*! @brief Write Exif data to a data buffer the hard way, return number of bytes written.