Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > e31b59fe09ff595814e8029d984f51c5 > files > 353

lib64exiv2_2-devel-0.16-3mdv2008.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Exiv2: Exiv2::IfdMakerNote Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.4 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<div class="nav">
<a class="el" href="namespaceExiv2.html">Exiv2</a>::<a class="el" href="classExiv2_1_1IfdMakerNote.html">IfdMakerNote</a></div>
<h1>Exiv2::IfdMakerNote Class Reference</h1><!-- doxytag: class="Exiv2::IfdMakerNote" --><!-- doxytag: inherits="Exiv2::MakerNote" -->Interface for MakerNotes in IFD format. See <a class="el" href="classExiv2_1_1MakerNote.html" title="Exif makernote interface.">MakerNote</a>.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;makernote.hpp&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for Exiv2::IfdMakerNote:</div>
<div class="dynsection">
<p><center><img src="classExiv2_1_1IfdMakerNote__inherit__graph.png" border="0" usemap="#Exiv2_1_1IfdMakerNote__inherit__map" alt="Inheritance graph"></center>
<map name="Exiv2_1_1IfdMakerNote__inherit__map">
<area shape="rect" href="classExiv2_1_1CanonMakerNote.html" title="MakerNote for Canon cameras." alt="" coords="516,6,748,30"><area shape="rect" href="classExiv2_1_1FujiMakerNote.html" title="MakerNote for Fujifilm cameras." alt="" coords="521,54,743,78"><area shape="rect" href="classExiv2_1_1MinoltaMakerNote.html" title="MakerNote for Minolta cameras." alt="" coords="507,102,757,126"><area shape="rect" href="classExiv2_1_1Nikon1MakerNote.html" title="A MakerNote format used by Nikon cameras, such as the E990 and D1." alt="" coords="512,150,752,174"><area shape="rect" href="classExiv2_1_1Nikon2MakerNote.html" title="A second MakerNote format used by Nikon cameras, including the E700, E800, E900,..." alt="" coords="512,198,752,222"><area shape="rect" href="classExiv2_1_1Nikon3MakerNote.html" title="A third MakerNote format used by Nikon cameras, e.g., E5400, SQ, D2H, D70." alt="" coords="512,246,752,270"><area shape="rect" href="classExiv2_1_1OlympusMakerNote.html" title="MakerNote for Olympus cameras." alt="" coords="507,294,757,318"><area shape="rect" href="classExiv2_1_1PanasonicMakerNote.html" title="MakerNote for Panasonic cameras." alt="" coords="496,342,768,366"><area shape="rect" href="classExiv2_1_1PentaxMakerNote.html" title="MakerNote for Pentaxfilm cameras." alt="" coords="512,390,752,414"><area shape="rect" href="classExiv2_1_1SigmaMakerNote.html" title="MakerNote for Sigma (Foveon) cameras." alt="" coords="516,438,748,462"><area shape="rect" href="classExiv2_1_1SonyMakerNote.html" title="MakerNote for Sony cameras." alt="" coords="521,486,743,510"><area shape="rect" href="classExiv2_1_1MakerNote.html" title="Exif makernote interface." alt="" coords="5,246,187,270"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<div class="dynheader">
Collaboration diagram for Exiv2::IfdMakerNote:</div>
<div class="dynsection">
<p><center><img src="classExiv2_1_1IfdMakerNote__coll__graph.png" border="0" usemap="#Exiv2_1_1IfdMakerNote__coll__map" alt="Collaboration graph"></center>
<map name="Exiv2_1_1IfdMakerNote__coll__map">
<area shape="rect" href="classExiv2_1_1MakerNote.html" title="Exif makernote interface." alt="" coords="5,94,187,118"><area shape="rect" href="classExiv2_1_1Ifd.html" title="Models an IFD (Image File Directory)." alt="" coords="211,94,331,118"><area shape="rect" title="STL class." alt="" coords="180,6,361,30"><area shape="rect" href="classExiv2_1_1DataBuf.html" title="Utility class containing a character array. All it does is to take care of memory..." alt="" coords="355,94,515,118"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classExiv2_1_1IfdMakerNote-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="47cc6eec745a7a381e2dd8d1000c956c"></a><!-- doxytag: member="Exiv2::IfdMakerNote::AutoPtr" ref="47cc6eec745a7a381e2dd8d1000c956c" args="" -->
typedef std::auto_ptr<br>
&lt; <a class="el" href="classExiv2_1_1IfdMakerNote.html">IfdMakerNote</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#47cc6eec745a7a381e2dd8d1000c956c">AutoPtr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut for an IfdMakerNote auto pointer. <br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Creators</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ccdbe2749f0f89ad6de98f5c3348bdfd"></a><!-- doxytag: member="Exiv2::IfdMakerNote::IfdMakerNote" ref="ccdbe2749f0f89ad6de98f5c3348bdfd" args="(IfdId ifdId, bool alloc=true, bool hasNext=true)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#ccdbe2749f0f89ad6de98f5c3348bdfd">IfdMakerNote</a> (<a class="el" href="namespaceExiv2.html#1615152767a506a955c9d13443b56b62">IfdId</a> ifdId, bool alloc=true, bool hasNext=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. Requires an Ifd id and allows to choose whether or not memory management is needed for the Entries and whether the IFD has a next pointer. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="006df45f5ac8fdcdb8df2b17b611d774"></a><!-- doxytag: member="Exiv2::IfdMakerNote::IfdMakerNote" ref="006df45f5ac8fdcdb8df2b17b611d774" args="(const IfdMakerNote &amp;rhs)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#006df45f5ac8fdcdb8df2b17b611d774">IfdMakerNote</a> (const <a class="el" href="classExiv2_1_1IfdMakerNote.html">IfdMakerNote</a> &amp;rhs)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0d867b704283b4168343c4074f0d8029"></a><!-- doxytag: member="Exiv2::IfdMakerNote::~IfdMakerNote" ref="0d867b704283b4168343c4074f0d8029" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#0d867b704283b4168343c4074f0d8029">~IfdMakerNote</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual destructor. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Manipulators</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#02885513935765dfd6e8fc515eaa7c65">read</a> (const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *buf, long len, long start, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, long shift)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read the makernote, including the makernote header, from the Exif data buffer.  <a href="#02885513935765dfd6e8fc515eaa7c65"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#1dc867ed8091d29f3bbfedc90fca8e6b">readHeader</a> (const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *buf, long len, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read the makernote header from the makernote databuffer. This method must set the offset to the start of the IFD (start_), if needed (assuming that the required information is in the header). Return 0 if successful.  <a href="#1dc867ed8091d29f3bbfedc90fca8e6b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e00998482166c17661e97f1d7189b566"></a><!-- doxytag: member="Exiv2::IfdMakerNote::copy" ref="e00998482166c17661e97f1d7189b566" args="(byte *buf, ByteOrder byteOrder, long offset)" -->
virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#e00998482166c17661e97f1d7189b566">copy</a> (<a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *buf, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, long offset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy (write) the makerNote to the character buffer buf at position offset (from the start of the TIFF header), encoded in byte order byteOrder. Update internal offsets if necessary. Return the number of bytes written. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="963d9d72bea024a936be5bf8f90f45b0"></a><!-- doxytag: member="Exiv2::IfdMakerNote::add" ref="963d9d72bea024a936be5bf8f90f45b0" args="(const Entry &amp;entry)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#963d9d72bea024a936be5bf8f90f45b0">add</a> (const <a class="el" href="classExiv2_1_1Entry.html">Entry</a> &amp;entry)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add the entry to the makernote. No duplicate-check is performed, i.e., it is possible to add multiple entries with the same tag. The memory allocation mode of the entry to be added must be the same as that of the makernote and the IFD id of the entry must be set to 'makerIfd'. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2bfed6275d5780013a75861f32440aba"></a><!-- doxytag: member="Exiv2::IfdMakerNote::begin" ref="2bfed6275d5780013a75861f32440aba" args="()" -->
virtual Entries::iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#2bfed6275d5780013a75861f32440aba">begin</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The first makernote entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9ac6778e132bb5db0b03b99783fc6bac"></a><!-- doxytag: member="Exiv2::IfdMakerNote::end" ref="9ac6778e132bb5db0b03b99783fc6bac" args="()" -->
virtual Entries::iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#9ac6778e132bb5db0b03b99783fc6bac">end</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End of the makernote entries. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#76bf8e7055b37e94db5ee000db0cec9a">updateBase</a> (<a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *pNewBase)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update the base pointer of the MakerNote and all its entries to <em>pNewBase</em>.  <a href="#76bf8e7055b37e94db5ee000db0cec9a"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessors</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0da450d2b02781fcf7be61e37b5aa9eb"></a><!-- doxytag: member="Exiv2::IfdMakerNote::begin" ref="0da450d2b02781fcf7be61e37b5aa9eb" args="() const " -->
virtual Entries::const_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#0da450d2b02781fcf7be61e37b5aa9eb">begin</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The first makernote entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4270cd0eb33a1a7ad89767189e3f368a"></a><!-- doxytag: member="Exiv2::IfdMakerNote::end" ref="4270cd0eb33a1a7ad89767189e3f368a" args="() const " -->
virtual Entries::const_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#4270cd0eb33a1a7ad89767189e3f368a">end</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End of the makernote entries. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3d686738fa049725c5f04bba2afb173f"></a><!-- doxytag: member="Exiv2::IfdMakerNote::findIdx" ref="3d686738fa049725c5f04bba2afb173f" args="(int idx) const " -->
virtual Entries::const_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#3d686738fa049725c5f04bba2afb173f">findIdx</a> (int idx) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find an entry by idx, return a const iterator to the record. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="df488a63c99ebf3ebda3024120a9de1c"></a><!-- doxytag: member="Exiv2::IfdMakerNote::size" ref="df488a63c99ebf3ebda3024120a9de1c" args="() const " -->
virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#df488a63c99ebf3ebda3024120a9de1c">size</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of the makernote in bytes. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#39b1cae1bd9b357341a6d9dd9289c259">create</a> (bool alloc=true) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an auto-pointer to an newly created, empty instance of the same type as this. The makernote entries are <b>not</b> copied. The caller owns the new object and the auto-pointer ensures that it will be deleted.  <a href="#39b1cae1bd9b357341a6d9dd9289c259"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#0d3bdfc3aa1b4d197547ec9a14e1520b">clone</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an auto-pointer to a clone of this object. The caller owns the new object and the auto-pointer ensures that it will be deleted.  <a href="#0d3bdfc3aa1b4d197547ec9a14e1520b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#493d295da812b64c47f5b0c4c8bf1e6d">checkHeader</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check the makernote header. This will typically check if a required prefix string is present in the header. Return 0 if successful.  <a href="#493d295da812b64c47f5b0c4c8bf1e6d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#eabbae3bc2839b128dcc8f9890b912e8">copyHeader</a> (<a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *buf) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write the makernote header to a character buffer, return the number of characters written.  <a href="#eabbae3bc2839b128dcc8f9890b912e8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#2f508abdde58f51e4cd287708114d62d">headerSize</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of the makernote header in bytes.  <a href="#2f508abdde58f51e4cd287708114d62d"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="19471d77c553306e27e8938aaf369772"></a><!-- doxytag: member="Exiv2::IfdMakerNote::absShift_" ref="19471d77c553306e27e8938aaf369772" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#19471d77c553306e27e8938aaf369772">absShift_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True: IFD offsets are relative to the start of the TIFF header (i.e., the start of the Exif data section) + shift_ False: IFD offsets are relative to the start of the makernote + shift_. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3464549240d4cd5002958e714ae1be38"></a><!-- doxytag: member="Exiv2::IfdMakerNote::shift_" ref="3464549240d4cd5002958e714ae1be38" args="" -->
long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#3464549240d4cd5002958e714ae1be38">shift_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adjustment for IFD offsets, see absShift_. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="733e5ea80f929a547ee9462c9c339287"></a><!-- doxytag: member="Exiv2::IfdMakerNote::start_" ref="733e5ea80f929a547ee9462c9c339287" args="" -->
long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#733e5ea80f929a547ee9462c9c339287">start_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start of the makernote IFD relative to the start of the makernote. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="07864ec30d25dd51fa4f6fa53df6eb30"></a><!-- doxytag: member="Exiv2::IfdMakerNote::header_" ref="07864ec30d25dd51fa4f6fa53df6eb30" args="" -->
<a class="el" href="classExiv2_1_1DataBuf.html">DataBuf</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#07864ec30d25dd51fa4f6fa53df6eb30">header_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data buffer for the makernote header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3cdd6db8d4d1b6d44954986b2227e49a"></a><!-- doxytag: member="Exiv2::IfdMakerNote::ifd_" ref="3cdd6db8d4d1b6d44954986b2227e49a" args="" -->
<a class="el" href="classExiv2_1_1Ifd.html">Ifd</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1IfdMakerNote.html#3cdd6db8d4d1b6d44954986b2227e49a">ifd_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The makernote IFD. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Interface for MakerNotes in IFD format. See <a class="el" href="classExiv2_1_1MakerNote.html" title="Exif makernote interface.">MakerNote</a>. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="02885513935765dfd6e8fc515eaa7c65"></a><!-- doxytag: member="Exiv2::IfdMakerNote::read" ref="02885513935765dfd6e8fc515eaa7c65" args="(const byte *buf, long len, long start, ByteOrder byteOrder, long shift)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int Exiv2::IfdMakerNote::read           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&nbsp;</td>
          <td class="paramname"> <em>byteOrder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>shift</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Read the makernote, including the makernote header, from the Exif data buffer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Pointer to the Exif data buffer that contains the <a class="el" href="classExiv2_1_1MakerNote.html" title="Exif makernote interface.">MakerNote</a> to decode. The buffer should contain all Exif data starting from the TIFF header. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Number of bytes in the Exif data buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td><a class="el" href="classExiv2_1_1MakerNote.html" title="Exif makernote interface.">MakerNote</a> starts at buf + start. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byteOrder</em>&nbsp;</td><td>Applicable byte order (little or big endian). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>shift</em>&nbsp;</td><td>IFD offsets are relative to buf + shift.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful. </dd></dl>

<p>Implements <a class="el" href="classExiv2_1_1MakerNote.html#0d2d3e7ea8a3b343107216c2deb93a04">Exiv2::MakerNote</a>.</p>

<p>Reimplemented in <a class="el" href="classExiv2_1_1CanonMakerNote.html#33d094fb039d596faf09a1861625186b">Exiv2::CanonMakerNote</a>, and <a class="el" href="classExiv2_1_1MinoltaMakerNote.html#71076346a861534d9e0bd910dd3a8aa2">Exiv2::MinoltaMakerNote</a>.</p>

</div>
</div><p>
<a class="anchor" name="1dc867ed8091d29f3bbfedc90fca8e6b"></a><!-- doxytag: member="Exiv2::IfdMakerNote::readHeader" ref="1dc867ed8091d29f3bbfedc90fca8e6b" args="(const byte *buf, long len, ByteOrder byteOrder)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int Exiv2::IfdMakerNote::readHeader           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&nbsp;</td>
          <td class="paramname"> <em>byteOrder</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Read the makernote header from the makernote databuffer. This method must set the offset to the start of the IFD (start_), if needed (assuming that the required information is in the header). Return 0 if successful. 
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>The default implementation does nothing, assuming there is no header </dd></dl>

<p>Reimplemented in <a class="el" href="classExiv2_1_1FujiMakerNote.html#52afafb10903187a333cf4334d0bf8d2">Exiv2::FujiMakerNote</a>, <a class="el" href="classExiv2_1_1Nikon2MakerNote.html#e4bbe9f264447a56f17a84df44e56519">Exiv2::Nikon2MakerNote</a>, <a class="el" href="classExiv2_1_1Nikon3MakerNote.html#7920d77040fdc61f45a74949e613b05e">Exiv2::Nikon3MakerNote</a>, <a class="el" href="classExiv2_1_1OlympusMakerNote.html#90b4ff3b46e8d2df285c5ff77cfe81a6">Exiv2::OlympusMakerNote</a>, <a class="el" href="classExiv2_1_1PanasonicMakerNote.html#d0a825548f3ae22ac02abfacc1434fb2">Exiv2::PanasonicMakerNote</a>, <a class="el" href="classExiv2_1_1PentaxMakerNote.html#a1292272fc3ae73123098f34c86d7804">Exiv2::PentaxMakerNote</a>, <a class="el" href="classExiv2_1_1SigmaMakerNote.html#b11ad04b53e63f35dcac348e6568f9e1">Exiv2::SigmaMakerNote</a>, and <a class="el" href="classExiv2_1_1SonyMakerNote.html#da0d7fb312a644311b67142e7ee16b2f">Exiv2::SonyMakerNote</a>.</p>

</div>
</div><p>
<a class="anchor" name="76bf8e7055b37e94db5ee000db0cec9a"></a><!-- doxytag: member="Exiv2::IfdMakerNote::updateBase" ref="76bf8e7055b37e94db5ee000db0cec9a" args="(byte *pNewBase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Exiv2::IfdMakerNote::updateBase           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>pNewBase</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Update the base pointer of the MakerNote and all its entries to <em>pNewBase</em>. 
<p>
Allows to re-locate the underlying data buffer to a new location <em>pNewBase</em>. This method only has an effect in non-alloc mode. 
<p>Implements <a class="el" href="classExiv2_1_1MakerNote.html#5ecf72233520d7e91cadfaa9431fbc01">Exiv2::MakerNote</a>.</p>

<p>Reimplemented in <a class="el" href="classExiv2_1_1CanonMakerNote.html#e7b48749e0bdf03e61766591f0fcb51f">Exiv2::CanonMakerNote</a>, and <a class="el" href="classExiv2_1_1MinoltaMakerNote.html#2688f5e0f2434f6cc390ecfc4ff5480d">Exiv2::MinoltaMakerNote</a>.</p>

</div>
</div><p>
<a class="anchor" name="39b1cae1bd9b357341a6d9dd9289c259"></a><!-- doxytag: member="Exiv2::IfdMakerNote::create" ref="39b1cae1bd9b357341a6d9dd9289c259" args="(bool alloc=true) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">AutoPtr</a> Exiv2::IfdMakerNote::create           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>alloc</em> = <code>true</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return an auto-pointer to an newly created, empty instance of the same type as this. The makernote entries are <b>not</b> copied. The caller owns the new object and the auto-pointer ensures that it will be deleted. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>alloc</em>&nbsp;</td><td>Memory management model for the newly created object. Indicates if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to <a class="el" href="classExiv2_1_1IfdMakerNote.html#02885513935765dfd6e8fc515eaa7c65" title="Read the makernote, including the makernote header, from the Exif data buffer.">read()</a> will be kept. See <a class="el" href="classExiv2_1_1Ifd.html" title="Models an IFD (Image File Directory).">Ifd</a> for more background on this concept. </td></tr>
  </table>
</dl>

<p>Reimplemented from <a class="el" href="classExiv2_1_1MakerNote.html#8e1945135438b60e9c48fdfb4b7e5bb3">Exiv2::MakerNote</a>.</p>

<p>Reimplemented in <a class="el" href="classExiv2_1_1CanonMakerNote.html#e1f7c722298888adc28418e43ccf98cb">Exiv2::CanonMakerNote</a>, <a class="el" href="classExiv2_1_1FujiMakerNote.html#b984dcedf89e3338fa006c7e07e5905d">Exiv2::FujiMakerNote</a>, <a class="el" href="classExiv2_1_1MinoltaMakerNote.html#83e8bf43e8fa20a800111bceb396ac5c">Exiv2::MinoltaMakerNote</a>, <a class="el" href="classExiv2_1_1Nikon1MakerNote.html#b9bf78db5cf4c1edcd5fd23824c95dcd">Exiv2::Nikon1MakerNote</a>, <a class="el" href="classExiv2_1_1Nikon2MakerNote.html#bc14ae8aa4229184cd159e406aa45671">Exiv2::Nikon2MakerNote</a>, <a class="el" href="classExiv2_1_1Nikon3MakerNote.html#dc9a0fbc7ae5f30d853d7c96ce45449f">Exiv2::Nikon3MakerNote</a>, <a class="el" href="classExiv2_1_1OlympusMakerNote.html#c08f29336802ede8634069e0b272df39">Exiv2::OlympusMakerNote</a>, <a class="el" href="classExiv2_1_1PanasonicMakerNote.html#50cd01a223ed7ad69c0aa55651210578">Exiv2::PanasonicMakerNote</a>, <a class="el" href="classExiv2_1_1PentaxMakerNote.html#668cbe3dd8b84a9e2d5ff0fa20d83266">Exiv2::PentaxMakerNote</a>, <a class="el" href="classExiv2_1_1SigmaMakerNote.html#0fc99148fc1340a6106106b89ad62711">Exiv2::SigmaMakerNote</a>, and <a class="el" href="classExiv2_1_1SonyMakerNote.html#ea29d14d72d0665b5e3edcfe04998cf7">Exiv2::SonyMakerNote</a>.</p>

</div>
</div><p>
<a class="anchor" name="0d3bdfc3aa1b4d197547ec9a14e1520b"></a><!-- doxytag: member="Exiv2::IfdMakerNote::clone" ref="0d3bdfc3aa1b4d197547ec9a14e1520b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">AutoPtr</a> Exiv2::IfdMakerNote::clone           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return an auto-pointer to a clone of this object. The caller owns the new object and the auto-pointer ensures that it will be deleted. 
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>In non-alloc mode the clone potentially contains pointers to the same data buffer as the original. Use <a class="el" href="classExiv2_1_1IfdMakerNote.html#76bf8e7055b37e94db5ee000db0cec9a" title="Update the base pointer of the MakerNote and all its entries to pNewBase.">updateBase(byte* pNewBase)</a> to adjust them. </dd></dl>

<p>Reimplemented from <a class="el" href="classExiv2_1_1MakerNote.html#9d6b0fbdb564c2691352bfba01d2b192">Exiv2::MakerNote</a>.</p>

<p>Reimplemented in <a class="el" href="classExiv2_1_1CanonMakerNote.html#a3d8a8cab7ddfc34cc4afb5b2fb8d332">Exiv2::CanonMakerNote</a>, <a class="el" href="classExiv2_1_1FujiMakerNote.html#5536f9df56f048ad4d03857a80ff3735">Exiv2::FujiMakerNote</a>, <a class="el" href="classExiv2_1_1MinoltaMakerNote.html#3f5de5d49fab1bf0f595cb3b4365fc1f">Exiv2::MinoltaMakerNote</a>, <a class="el" href="classExiv2_1_1Nikon1MakerNote.html#ba82db0dec7e5a84db0344ad5230da90">Exiv2::Nikon1MakerNote</a>, <a class="el" href="classExiv2_1_1Nikon2MakerNote.html#87e3e755ded8e4e0dc44e083d3ba77c0">Exiv2::Nikon2MakerNote</a>, <a class="el" href="classExiv2_1_1Nikon3MakerNote.html#55f870e968b7546cabd245c69a5bcb66">Exiv2::Nikon3MakerNote</a>, <a class="el" href="classExiv2_1_1OlympusMakerNote.html#33f27fd0bb1fdf3b01ad400f9349f02b">Exiv2::OlympusMakerNote</a>, <a class="el" href="classExiv2_1_1PanasonicMakerNote.html#2f28360d39e510b2ea55814d6cc5e151">Exiv2::PanasonicMakerNote</a>, <a class="el" href="classExiv2_1_1PentaxMakerNote.html#2791b0aeb82284ae29a8e0121acbb61b">Exiv2::PentaxMakerNote</a>, <a class="el" href="classExiv2_1_1SigmaMakerNote.html#30fae13033b4ea579ba4ab7d701507e6">Exiv2::SigmaMakerNote</a>, and <a class="el" href="classExiv2_1_1SonyMakerNote.html#86341ae81e57c7f8d117c0b70be28cf6">Exiv2::SonyMakerNote</a>.</p>

</div>
</div><p>
<a class="anchor" name="493d295da812b64c47f5b0c4c8bf1e6d"></a><!-- doxytag: member="Exiv2::IfdMakerNote::checkHeader" ref="493d295da812b64c47f5b0c4c8bf1e6d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int Exiv2::IfdMakerNote::checkHeader           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check the makernote header. This will typically check if a required prefix string is present in the header. Return 0 if successful. 
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>The default implementation does nothing, assuming there is no header </dd></dl>

<p>Reimplemented in <a class="el" href="classExiv2_1_1FujiMakerNote.html#122fa288126e01593c486ddd96bc8789">Exiv2::FujiMakerNote</a>, <a class="el" href="classExiv2_1_1Nikon2MakerNote.html#497c6b5fa6b456e7073dca50df6fd815">Exiv2::Nikon2MakerNote</a>, <a class="el" href="classExiv2_1_1Nikon3MakerNote.html#94fa6ae306d611d70daab98924feff53">Exiv2::Nikon3MakerNote</a>, <a class="el" href="classExiv2_1_1OlympusMakerNote.html#c61e0ae50097ca01cf158ed8e7fddae3">Exiv2::OlympusMakerNote</a>, <a class="el" href="classExiv2_1_1PanasonicMakerNote.html#549eed17f740ee306ff56ce805ef2061">Exiv2::PanasonicMakerNote</a>, <a class="el" href="classExiv2_1_1PentaxMakerNote.html#ef8f2a9e891679c61e65e462258b9700">Exiv2::PentaxMakerNote</a>, <a class="el" href="classExiv2_1_1SigmaMakerNote.html#148d9e1fb4bb7893bf81033e21b02e6d">Exiv2::SigmaMakerNote</a>, and <a class="el" href="classExiv2_1_1SonyMakerNote.html#4e95d65bf442fcb64dd54f6241d687d2">Exiv2::SonyMakerNote</a>.</p>

</div>
</div><p>
<a class="anchor" name="eabbae3bc2839b128dcc8f9890b912e8"></a><!-- doxytag: member="Exiv2::IfdMakerNote::copyHeader" ref="eabbae3bc2839b128dcc8f9890b912e8" args="(byte *buf) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual long Exiv2::IfdMakerNote::copyHeader           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write the makernote header to a character buffer, return the number of characters written. 
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>The default implementation copies the header_ buffer. </dd></dl>

</div>
</div><p>
<a class="anchor" name="2f508abdde58f51e4cd287708114d62d"></a><!-- doxytag: member="Exiv2::IfdMakerNote::headerSize" ref="2f508abdde58f51e4cd287708114d62d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual long Exiv2::IfdMakerNote::headerSize           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the size of the makernote header in bytes. 
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>The default implementation returns the size of the header_ buffer. </dd></dl>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="makernote_8hpp.html">makernote.hpp</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Feb 5 11:51:05 2008 for Exiv2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address>
</body>
</html>