31
41
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classExiv2_1_1MakerNoteFactory-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
33
43
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
34
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1c896b274b2bdf1d4d40cc9dbaec231f"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::cleanup" ref="1c896b274b2bdf1d4d40cc9dbaec231f" args="()" -->
35
static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#1c896b274b2bdf1d4d40cc9dbaec231f">cleanup</a> ()</td></tr>
44
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8208f387a29a7895bfd90ba9a62b3821"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::cleanup" ref="8208f387a29a7895bfd90ba9a62b3821" args="()" -->
45
static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#8208f387a29a7895bfd90ba9a62b3821">cleanup</a> ()</td></tr>
37
47
<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br></td></tr>
38
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#7bbd37a91827199e03bbfaa0c564da95">registerMakerNote</a> (const std::string &make, const std::string &model, <a class="el" href="namespaceExiv2.html#c75cc09b2587146f5b0689dca9ec5b88">CreateFct</a> createMakerNote)</td></tr>
48
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#9a9db5e13dd0caa6cfaa814632dbb634">registerMakerNote</a> (const std::string &make, const std::string &model, <a class="el" href="namespaceExiv2.html#80b615696a7d243ee60fec2fd2bf24c6">CreateFct</a> createMakerNote)</td></tr>
40
<tr><td class="mdescLeft"> </td><td class="mdescRight">Register a MakerNote create function for a camera make and model. <a href="#7bbd37a91827199e03bbfaa0c564da95"></a><br></td></tr>
41
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5b860d2624b27a69942e0c57c7e15495"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::registerMakerNote" ref="5b860d2624b27a69942e0c57c7e15495" args="(IfdId ifdId, MakerNote::AutoPtr makerNote)" -->
42
static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#5b860d2624b27a69942e0c57c7e15495">registerMakerNote</a> (<a class="el" href="namespaceExiv2.html#1615152767a506a955c9d13443b56b62">IfdId</a> ifdId, <a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> makerNote)</td></tr>
50
<tr><td class="mdescLeft"> </td><td class="mdescRight">Register a MakerNote create function for a camera make and model. <a href="#9a9db5e13dd0caa6cfaa814632dbb634"></a><br></td></tr>
51
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7144ee863fc65e5dcbb586676830becb"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::registerMakerNote" ref="7144ee863fc65e5dcbb586676830becb" args="(IfdId ifdId, MakerNote::AutoPtr makerNote)" -->
52
static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#7144ee863fc65e5dcbb586676830becb">registerMakerNote</a> (<a class="el" href="namespaceExiv2.html#1615152767a506a955c9d13443b56b62">IfdId</a> ifdId, <a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> makerNote)</td></tr>
44
54
<tr><td class="mdescLeft"> </td><td class="mdescRight">Register a MakerNote prototype in the IFD id registry. <br></td></tr>
45
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#c4ee184d581ecdbd241815b0b401ac34">create</a> (const std::string &make, const std::string &model, bool alloc, const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *buf, long len, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, long offset)</td></tr>
55
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#b6fd07ddd1285d35e6ecefca798d7e15">create</a> (const std::string &make, const std::string &model, bool alloc, const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *buf, long len, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, long offset)</td></tr>
47
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create the appropriate MakerNote based on camera make and model and possibly the contents of the makernote itself, return an auto-pointer to the newly created <a class="el" href="classExiv2_1_1MakerNote.html">MakerNote</a> instance. Return 0 if no MakerNote is defined for the camera model. <a href="#c4ee184d581ecdbd241815b0b401ac34"></a><br></td></tr>
48
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="144fe2cc1d05b96340d1973e5a45d25d"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::create" ref="144fe2cc1d05b96340d1973e5a45d25d" args="(IfdId ifdId, bool alloc=true)" -->
49
static <a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#144fe2cc1d05b96340d1973e5a45d25d">create</a> (<a class="el" href="namespaceExiv2.html#1615152767a506a955c9d13443b56b62">IfdId</a> ifdId, bool alloc=true)</td></tr>
57
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create the appropriate MakerNote based on camera make and model and possibly the contents of the makernote itself, return an auto-pointer to the newly created <a class="el" href="classExiv2_1_1MakerNote.html">MakerNote</a> instance. Return 0 if no MakerNote is defined for the camera model. <a href="#b6fd07ddd1285d35e6ecefca798d7e15"></a><br></td></tr>
58
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ba93a8a296209b449c76185c3bf4a438"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::create" ref="ba93a8a296209b449c76185c3bf4a438" args="(IfdId ifdId, bool alloc=true)" -->
59
static <a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#ba93a8a296209b449c76185c3bf4a438">create</a> (<a class="el" href="namespaceExiv2.html#1615152767a506a955c9d13443b56b62">IfdId</a> ifdId, bool alloc=true)</td></tr>
51
61
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a MakerNote for an IFD id. <br></td></tr>
52
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#9a924f4df202193ce3de1072c6bd88e0">match</a> (const std::string &regEntry, const std::string &key)</td></tr>
62
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory.html#e7e141c71fdb80a25a99200cc7d52ad6">match</a> (const std::string &regEntry, const std::string &key)</td></tr>
54
<tr><td class="mdescLeft"> </td><td class="mdescRight">Match a registry entry with a key (used for make and model). <a href="#9a924f4df202193ce3de1072c6bd88e0"></a><br></td></tr>
64
<tr><td class="mdescLeft"> </td><td class="mdescRight">Match a registry entry with a key (used for make and model). <a href="#e7e141c71fdb80a25a99200cc7d52ad6"></a><br></td></tr>
55
65
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
56
66
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1MakerNoteFactory_1_1Init.html">Init</a></td></tr>
63
73
Maintains an associative list (tree) of camera makes/models and corresponding MakerNote create functions. Creates an instance of the MakerNote for one camera make/model. The factory is implemented as a static class.
65
75
<hr><h2>Member Function Documentation</h2>
66
<a class="anchor" name="c4ee184d581ecdbd241815b0b401ac34"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::create" ref="c4ee184d581ecdbd241815b0b401ac34" args="(const std::string &make, const std::string &model, bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)" --><p>
67
<table class="mdTable" cellpadding="2" cellspacing="0">
70
<table cellpadding="0" cellspacing="0" border="0">
72
<td class="md" nowrap valign="top"><a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> Exiv2::MakerNoteFactory::create </td>
73
<td class="md" valign="top">( </td>
74
<td class="md" nowrap valign="top">const std::string & </td>
75
<td class="mdname" nowrap> <em>make</em>, </td>
78
<td class="md" nowrap align="right"></td>
80
<td class="md" nowrap>const std::string & </td>
81
<td class="mdname" nowrap> <em>model</em>, </td>
84
<td class="md" nowrap align="right"></td>
86
<td class="md" nowrap>bool </td>
87
<td class="mdname" nowrap> <em>alloc</em>, </td>
90
<td class="md" nowrap align="right"></td>
92
<td class="md" nowrap>const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> * </td>
93
<td class="mdname" nowrap> <em>buf</em>, </td>
96
<td class="md" nowrap align="right"></td>
98
<td class="md" nowrap>long </td>
99
<td class="mdname" nowrap> <em>len</em>, </td>
102
<td class="md" nowrap align="right"></td>
104
<td class="md" nowrap><a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> </td>
105
<td class="mdname" nowrap> <em>byteOrder</em>, </td>
108
<td class="md" nowrap align="right"></td>
110
<td class="md" nowrap>long </td>
111
<td class="mdname" nowrap> <em>offset</em></td>
115
<td class="md">) </td>
116
<td class="md" colspan="2"><code> [static]</code></td>
122
<table cellspacing="5" cellpadding="0" border="0">
76
<a class="anchor" name="9a9db5e13dd0caa6cfaa814632dbb634"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::registerMakerNote" ref="9a9db5e13dd0caa6cfaa814632dbb634" args="(const std::string &make, const std::string &model, CreateFct createMakerNote)" -->
78
<div class="memproto">
79
<table class="memname">
81
<td class="memname">static void Exiv2::MakerNoteFactory::registerMakerNote </td>
83
<td class="paramtype">const std::string & </td>
84
<td class="paramname"> <em>make</em>, </td>
87
<td class="paramkey"></td>
89
<td class="paramtype">const std::string & </td>
90
<td class="paramname"> <em>model</em>, </td>
93
<td class="paramkey"></td>
95
<td class="paramtype"><a class="el" href="namespaceExiv2.html#80b615696a7d243ee60fec2fd2bf24c6">CreateFct</a> </td>
96
<td class="paramname"> <em>createMakerNote</em></td><td> </td>
101
<td></td><td></td><td width="100%"><code> [static]</code></td>
108
Register a MakerNote create function for a camera make and model.
110
Registers a create function for a MakerNote for a given make and model combination with the factory. Both the make and model strings may contain wildcards ('*', e.g., "Canon*"). If the make already exists in the registry, then a new branch for the model is added. If the model also already exists, then the new create function replaces the old one.<p>
111
<dl compact><dt><b>Parameters:</b></dt><dd>
112
<table border="0" cellspacing="2" cellpadding="0">
113
<tr><td valign="top"></td><td valign="top"><em>make</em> </td><td>Camera manufacturer. (Typically the string from the Exif make tag.) </td></tr>
114
<tr><td valign="top"></td><td valign="top"><em>model</em> </td><td>Camera model. (Typically the string from the Exif model tag.) </td></tr>
115
<tr><td valign="top"></td><td valign="top"><em>createMakerNote</em> </td><td>Pointer to a function to create a new MakerNote of a particular type. </td></tr>
121
<a class="anchor" name="b6fd07ddd1285d35e6ecefca798d7e15"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::create" ref="b6fd07ddd1285d35e6ecefca798d7e15" args="(const std::string &make, const std::string &model, bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)" -->
122
<div class="memitem">
123
<div class="memproto">
124
<table class="memname">
126
<td class="memname">static <a class="el" href="classExiv2_1_1MakerNote.html#75c707e4233b5c8cea97e9ff3a32a4df">MakerNote::AutoPtr</a> Exiv2::MakerNoteFactory::create </td>
128
<td class="paramtype">const std::string & </td>
129
<td class="paramname"> <em>make</em>, </td>
132
<td class="paramkey"></td>
134
<td class="paramtype">const std::string & </td>
135
<td class="paramname"> <em>model</em>, </td>
138
<td class="paramkey"></td>
140
<td class="paramtype">bool </td>
141
<td class="paramname"> <em>alloc</em>, </td>
144
<td class="paramkey"></td>
146
<td class="paramtype">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> * </td>
147
<td class="paramname"> <em>buf</em>, </td>
150
<td class="paramkey"></td>
152
<td class="paramtype">long </td>
153
<td class="paramname"> <em>len</em>, </td>
156
<td class="paramkey"></td>
158
<td class="paramtype"><a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> </td>
159
<td class="paramname"> <em>byteOrder</em>, </td>
162
<td class="paramkey"></td>
164
<td class="paramtype">long </td>
165
<td class="paramname"> <em>offset</em></td><td> </td>
170
<td></td><td></td><td width="100%"><code> [static]</code></td>
130
177
Create the appropriate MakerNote based on camera make and model and possibly the contents of the makernote itself, return an auto-pointer to the newly created <a class="el" href="classExiv2_1_1MakerNote.html">MakerNote</a> instance. Return 0 if no MakerNote is defined for the camera model.
141
188
<tr><td valign="top"></td><td valign="top"><em>offset</em> </td><td>Offset from the start of the TIFF header of the makernote buffer.</td></tr>
144
<dl compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns a MakerNote for the camera model. If the camera is not supported, the pointer is 0. </dd></dl>
148
<a class="anchor" name="9a924f4df202193ce3de1072c6bd88e0"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::match" ref="9a924f4df202193ce3de1072c6bd88e0" args="(const std::string &regEntry, const std::string &key)" --><p>
149
<table class="mdTable" cellpadding="2" cellspacing="0">
152
<table cellpadding="0" cellspacing="0" border="0">
154
<td class="md" nowrap valign="top">int Exiv2::MakerNoteFactory::match </td>
155
<td class="md" valign="top">( </td>
156
<td class="md" nowrap valign="top">const std::string & </td>
157
<td class="mdname" nowrap> <em>regEntry</em>, </td>
160
<td class="md" nowrap align="right"></td>
162
<td class="md" nowrap>const std::string & </td>
163
<td class="mdname" nowrap> <em>key</em></td>
167
<td class="md">) </td>
168
<td class="md" colspan="2"><code> [static]</code></td>
191
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns a MakerNote for the camera model. If the camera is not supported, the pointer is 0. </dd></dl>
195
<a class="anchor" name="e7e141c71fdb80a25a99200cc7d52ad6"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::match" ref="e7e141c71fdb80a25a99200cc7d52ad6" args="(const std::string &regEntry, const std::string &key)" -->
196
<div class="memitem">
197
<div class="memproto">
198
<table class="memname">
200
<td class="memname">static int Exiv2::MakerNoteFactory::match </td>
202
<td class="paramtype">const std::string & </td>
203
<td class="paramname"> <em>regEntry</em>, </td>
206
<td class="paramkey"></td>
208
<td class="paramtype">const std::string & </td>
209
<td class="paramname"> <em>key</em></td><td> </td>
214
<td></td><td></td><td width="100%"><code> [static]</code></td>
174
<table cellspacing="5" cellpadding="0" border="0">
182
221
Match a registry entry with a key (used for make and model).
184
223
The matching algorithm is case insensitive and wildcards ('*') in the registry entry are supported. The best match is an exact match, then a match is rated according to the number of matching characters.<p>
185
<dl compact><dt><b>Returns:</b></dt><dd>A score value indicating how good the key and registry entry match. 0 means no match, values greater than 0 indicate a match, larger values are better matches:<br>
224
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A score value indicating how good the key and registry entry match. 0 means no match, values greater than 0 indicate a match, larger values are better matches:<br>
186
225
0: key and registry entry do not match<br>
187
226
1: a pure wildcard match, i.e., the registry entry is just a wildcard.<br>
188
227
Score values greater than 1 are computed by adding 1 to the number of matching characters, except for an exact match, which scores 2 plus the number of matching characters. </dd></dl>
192
<a class="anchor" name="7bbd37a91827199e03bbfaa0c564da95"></a><!-- doxytag: member="Exiv2::MakerNoteFactory::registerMakerNote" ref="7bbd37a91827199e03bbfaa0c564da95" args="(const std::string &make, const std::string &model, CreateFct createMakerNote)" --><p>
193
<table class="mdTable" cellpadding="2" cellspacing="0">
196
<table cellpadding="0" cellspacing="0" border="0">
198
<td class="md" nowrap valign="top">void Exiv2::MakerNoteFactory::registerMakerNote </td>
199
<td class="md" valign="top">( </td>
200
<td class="md" nowrap valign="top">const std::string & </td>
201
<td class="mdname" nowrap> <em>make</em>, </td>
204
<td class="md" nowrap align="right"></td>
206
<td class="md" nowrap>const std::string & </td>
207
<td class="mdname" nowrap> <em>model</em>, </td>
210
<td class="md" nowrap align="right"></td>
212
<td class="md" nowrap><a class="el" href="namespaceExiv2.html#c75cc09b2587146f5b0689dca9ec5b88">CreateFct</a> </td>
213
<td class="mdname" nowrap> <em>createMakerNote</em></td>
217
<td class="md">) </td>
218
<td class="md" colspan="2"><code> [static]</code></td>
224
<table cellspacing="5" cellpadding="0" border="0">
232
Register a MakerNote create function for a camera make and model.
234
Registers a create function for a MakerNote for a given make and model combination with the factory. Both the make and model strings may contain wildcards ('*', e.g., "Canon*"). If the make already exists in the registry, then a new branch for the model is added. If the model also already exists, then the new create function replaces the old one.<p>
235
<dl compact><dt><b>Parameters:</b></dt><dd>
236
<table border="0" cellspacing="2" cellpadding="0">
237
<tr><td valign="top"></td><td valign="top"><em>make</em> </td><td>Camera manufacturer. (Typically the string from the Exif make tag.) </td></tr>
238
<tr><td valign="top"></td><td valign="top"><em>model</em> </td><td>Camera model. (Typically the string from the Exif model tag.) </td></tr>
239
<tr><td valign="top"></td><td valign="top"><em>createMakerNote</em> </td><td>Pointer to a function to create a new MakerNote of a particular type. </td></tr>
245
<hr>The documentation for this class was generated from the following files:<ul>
246
<li><a class="el" href="makernote_8hpp.html">makernote.hpp</a><li>makernote.cpp</ul>
247
<hr size="1"><address style="align: right;"><small>Generated on Fri Jun 2 23:55:05 2006 for Exiv2 by
231
<hr>The documentation for this class was generated from the following file:<ul>
232
<li><a class="el" href="makernote_8hpp.html">makernote.hpp</a></ul>
233
<hr size="1"><address style="align: right;"><small>Generated on Mon Nov 27 20:16:29 2006 for Exiv2 by
248
234
<a href="http://www.doxygen.org/index.html">
249
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
235
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>