Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-updates > by-pkgid > 9b2eec216777f0c505d4f747f9ee0e8f > files > 79

lensfun-0.3.2-8.1.mga7.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>lensfun: lfDatabase Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
MathJax.Hub.Config({
    messageStyle: "none"
});
</script><script type="text/javascript" async="async" src="http://lensfun.sourceforge.net/mathjax/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">lensfun
   &#160;<span id="projectnumber">0.3.2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structlfDatabase-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">lfDatabase Struct Reference<div class="ingroups"><a class="el" href="group__Database.html">Database functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>A lens database object.  
 <a href="structlfDatabase.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="lensfun_8h_source.html">lensfun.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a128f2756e03a28e48f733dd0747e2dd8"><td class="memItemLeft" align="right" valign="top"><a id="a128f2756e03a28e48f733dd0747e2dd8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a128f2756e03a28e48f733dd0747e2dd8">Destroy</a> ()</td></tr>
<tr class="memdesc:a128f2756e03a28e48f733dd0747e2dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the database object and free all loaded data. <br /></td></tr>
<tr class="separator:a128f2756e03a28e48f733dd0747e2dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f9a30d64714a25c7feacc5f6bf0135d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a1f9a30d64714a25c7feacc5f6bf0135d">LoadDirectory</a> (const char *dirname)</td></tr>
<tr class="memdesc:a1f9a30d64714a25c7feacc5f6bf0135d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load all XML files from a directory.  <a href="#a1f9a30d64714a25c7feacc5f6bf0135d">More...</a><br /></td></tr>
<tr class="separator:a1f9a30d64714a25c7feacc5f6bf0135d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac688c19eb77c64aa6f2be002f8e31e72"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#ac688c19eb77c64aa6f2be002f8e31e72">Load</a> ()</td></tr>
<tr class="memdesc:ac688c19eb77c64aa6f2be002f8e31e72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find and load the lens database.  <a href="#ac688c19eb77c64aa6f2be002f8e31e72">More...</a><br /></td></tr>
<tr class="separator:ac688c19eb77c64aa6f2be002f8e31e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e052ffddd1e8d927ff53a2769fa59c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a6e052ffddd1e8d927ff53a2769fa59c0">Load</a> (const char *filename)</td></tr>
<tr class="memdesc:a6e052ffddd1e8d927ff53a2769fa59c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load just a specific XML file.  <a href="#a6e052ffddd1e8d927ff53a2769fa59c0">More...</a><br /></td></tr>
<tr class="separator:a6e052ffddd1e8d927ff53a2769fa59c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf8508f1abd9009ea403cbe3fad44f81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#abf8508f1abd9009ea403cbe3fad44f81">Load</a> (const char *errcontext, const char *data, size_t data_size)</td></tr>
<tr class="memdesc:abf8508f1abd9009ea403cbe3fad44f81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a set of camera/lenses from a memory array.  <a href="#abf8508f1abd9009ea403cbe3fad44f81">More...</a><br /></td></tr>
<tr class="separator:abf8508f1abd9009ea403cbe3fad44f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a093a89cb1e03e471308cbd727595be60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a093a89cb1e03e471308cbd727595be60">Save</a> (const char *filename) const</td></tr>
<tr class="memdesc:a093a89cb1e03e471308cbd727595be60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the whole database to a file.  <a href="#a093a89cb1e03e471308cbd727595be60">More...</a><br /></td></tr>
<tr class="separator:a093a89cb1e03e471308cbd727595be60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa92d53eb360b3c1a0b80735bd98bffd8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#aa92d53eb360b3c1a0b80735bd98bffd8">Save</a> (const char *filename, const <a class="el" href="structlfMount.html">lfMount</a> *const *mounts, const <a class="el" href="structlfCamera.html">lfCamera</a> *const *cameras, const <a class="el" href="structlfLens.html">lfLens</a> *const *lenses) const</td></tr>
<tr class="memdesc:aa92d53eb360b3c1a0b80735bd98bffd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save a set of camera and lens descriptions to a file.  <a href="#aa92d53eb360b3c1a0b80735bd98bffd8">More...</a><br /></td></tr>
<tr class="separator:aa92d53eb360b3c1a0b80735bd98bffd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18ba7b786052defa0c958812f639ce9b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfCamera.html">lfCamera</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a18ba7b786052defa0c958812f639ce9b">FindCameras</a> (const char *maker, const char *model) const</td></tr>
<tr class="memdesc:a18ba7b786052defa0c958812f639ce9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a set of cameras that fit given criteria.  <a href="#a18ba7b786052defa0c958812f639ce9b">More...</a><br /></td></tr>
<tr class="separator:a18ba7b786052defa0c958812f639ce9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafba4d1ea4b18614892cd755d7e212c2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfCamera.html">lfCamera</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#aafba4d1ea4b18614892cd755d7e212c2">FindCamerasExt</a> (const char *maker, const char *model, int sflags=0) const</td></tr>
<tr class="memdesc:aafba4d1ea4b18614892cd755d7e212c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches all translations of camera maker and model.  <a href="#aafba4d1ea4b18614892cd755d7e212c2">More...</a><br /></td></tr>
<tr class="separator:aafba4d1ea4b18614892cd755d7e212c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4059d4dacf7630be9363920645c7d09"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfCamera.html">lfCamera</a> *const  *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#af4059d4dacf7630be9363920645c7d09">GetCameras</a> () const</td></tr>
<tr class="memdesc:af4059d4dacf7630be9363920645c7d09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a full list of cameras.  <a href="#af4059d4dacf7630be9363920645c7d09">More...</a><br /></td></tr>
<tr class="separator:af4059d4dacf7630be9363920645c7d09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cfbcf0233c39ec4cbdf89386f0ecb40"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfLens.html">lfLens</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a3cfbcf0233c39ec4cbdf89386f0ecb40">FindLenses</a> (const <a class="el" href="structlfCamera.html">lfCamera</a> *camera, const char *maker, const char *model, int sflags=0) const</td></tr>
<tr class="memdesc:a3cfbcf0233c39ec4cbdf89386f0ecb40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a human-friendly lens description (ex: "smc PENTAX-F 35-105mm F4-5.6" or "SIGMA AF 28-300 F3.5-5.6 DL IF") and return a list of <a class="el" href="structlfLens.html" title="Lens data. Unknown fields are set to NULL or 0.">lfLens</a>'es which are matching this description.  <a href="#a3cfbcf0233c39ec4cbdf89386f0ecb40">More...</a><br /></td></tr>
<tr class="separator:a3cfbcf0233c39ec4cbdf89386f0ecb40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a619c8533f7a4df2370998af66b963900"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfLens.html">lfLens</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a619c8533f7a4df2370998af66b963900">FindLenses</a> (const <a class="el" href="structlfLens.html">lfLens</a> *lens, int sflags=0) const</td></tr>
<tr class="memdesc:a619c8533f7a4df2370998af66b963900"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a set of lenses that fit certain criteria.  <a href="#a619c8533f7a4df2370998af66b963900">More...</a><br /></td></tr>
<tr class="separator:a619c8533f7a4df2370998af66b963900"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cc76ba8ebac73c079548c3a073dda0f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfLens.html">lfLens</a> *const  *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a2cc76ba8ebac73c079548c3a073dda0f">GetLenses</a> () const</td></tr>
<tr class="memdesc:a2cc76ba8ebac73c079548c3a073dda0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a full list of lenses.  <a href="#a2cc76ba8ebac73c079548c3a073dda0f">More...</a><br /></td></tr>
<tr class="separator:a2cc76ba8ebac73c079548c3a073dda0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a122cc1e2eaa2b752d379efd260abf0e1"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfMount.html">lfMount</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a122cc1e2eaa2b752d379efd260abf0e1">FindMount</a> (const char *mount) const</td></tr>
<tr class="memdesc:a122cc1e2eaa2b752d379efd260abf0e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the <a class="el" href="structlfMount.html" title="This structure contains everything specific to a camera mount.">lfMount</a> structure given the (basic) mount name.  <a href="#a122cc1e2eaa2b752d379efd260abf0e1">More...</a><br /></td></tr>
<tr class="separator:a122cc1e2eaa2b752d379efd260abf0e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fc48182e3ce987118f17e0e4180da1e"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a9fc48182e3ce987118f17e0e4180da1e">MountName</a> (const char *mount) const</td></tr>
<tr class="memdesc:a9fc48182e3ce987118f17e0e4180da1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of a mount in current locale.  <a href="#a9fc48182e3ce987118f17e0e4180da1e">More...</a><br /></td></tr>
<tr class="separator:a9fc48182e3ce987118f17e0e4180da1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cf25d2400f4d58a2cd6b6f42a9d25fe"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlfMount.html">lfMount</a> *const  *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a4cf25d2400f4d58a2cd6b6f42a9d25fe">GetMounts</a> () const</td></tr>
<tr class="memdesc:a4cf25d2400f4d58a2cd6b6f42a9d25fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a full list of mounts.  <a href="#a4cf25d2400f4d58a2cd6b6f42a9d25fe">More...</a><br /></td></tr>
<tr class="separator:a4cf25d2400f4d58a2cd6b6f42a9d25fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1799c039827704dc67734a1b9ab9e039"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a1799c039827704dc67734a1b9ab9e039">AddMount</a> (<a class="el" href="structlfMount.html">lfMount</a> *mount)</td></tr>
<tr class="memdesc:a1799c039827704dc67734a1b9ab9e039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a mount to the database.  <a href="#a1799c039827704dc67734a1b9ab9e039">More...</a><br /></td></tr>
<tr class="separator:a1799c039827704dc67734a1b9ab9e039"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f88bc4bcfd808317ed5cc22095bc07e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a9f88bc4bcfd808317ed5cc22095bc07e">AddCamera</a> (<a class="el" href="structlfCamera.html">lfCamera</a> *camera)</td></tr>
<tr class="memdesc:a9f88bc4bcfd808317ed5cc22095bc07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a camera to the database.  <a href="#a9f88bc4bcfd808317ed5cc22095bc07e">More...</a><br /></td></tr>
<tr class="separator:a9f88bc4bcfd808317ed5cc22095bc07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1ea2c5fa78ccdeb75f60bfac465fbbc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#ac1ea2c5fa78ccdeb75f60bfac465fbbc">AddLens</a> (<a class="el" href="structlfLens.html">lfLens</a> *lens)</td></tr>
<tr class="memdesc:ac1ea2c5fa78ccdeb75f60bfac465fbbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a lens to the database.  <a href="#ac1ea2c5fa78ccdeb75f60bfac465fbbc">More...</a><br /></td></tr>
<tr class="separator:ac1ea2c5fa78ccdeb75f60bfac465fbbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a30eb075665f5d47bd502fd4a5bb158eb"><td class="memItemLeft" align="right" valign="top"><a id="a30eb075665f5d47bd502fd4a5bb158eb"></a>
static <a class="el" href="structlfDatabase.html">lfDatabase</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a30eb075665f5d47bd502fd4a5bb158eb">Create</a> ()</td></tr>
<tr class="memdesc:a30eb075665f5d47bd502fd4a5bb158eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new empty database object. <br /></td></tr>
<tr class="separator:a30eb075665f5d47bd502fd4a5bb158eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e02dcb558b448157273555e0fd1e398"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a7e02dcb558b448157273555e0fd1e398">Save</a> (const <a class="el" href="structlfMount.html">lfMount</a> *const *mounts, const <a class="el" href="structlfCamera.html">lfCamera</a> *const *cameras, const <a class="el" href="structlfLens.html">lfLens</a> *const *lenses)</td></tr>
<tr class="memdesc:a7e02dcb558b448157273555e0fd1e398"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save a set of camera and lens descriptions into a memory array.  <a href="#a7e02dcb558b448157273555e0fd1e398">More...</a><br /></td></tr>
<tr class="separator:a7e02dcb558b448157273555e0fd1e398"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a447ef93e9d8d443b0f42d0ed7b837184"><td class="memItemLeft" align="right" valign="top"><a id="a447ef93e9d8d443b0f42d0ed7b837184"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a447ef93e9d8d443b0f42d0ed7b837184">HomeDataDir</a></td></tr>
<tr class="memdesc:a447ef93e9d8d443b0f42d0ed7b837184"><td class="mdescLeft">&#160;</td><td class="mdescRight">Home lens database directory (something like "~/.local/share/lensfun") <br /></td></tr>
<tr class="separator:a447ef93e9d8d443b0f42d0ed7b837184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fe0cdd8821fe0d35ee214c0cab3eb35"><td class="memItemLeft" align="right" valign="top"><a id="a7fe0cdd8821fe0d35ee214c0cab3eb35"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlfDatabase.html#a7fe0cdd8821fe0d35ee214c0cab3eb35">UserUpdatesDir</a></td></tr>
<tr class="memdesc:a7fe0cdd8821fe0d35ee214c0cab3eb35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Home lens database directory for automatic updates (something like "~/.local/share/lensfun/updates") <br /></td></tr>
<tr class="separator:a7fe0cdd8821fe0d35ee214c0cab3eb35"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A lens database object. </p>
<p>This object contains a list of mounts, cameras and lenses through which you can search. The objects are loaded from XML files located in (default configuration):</p>
<pre class="fragment">/usr/share/lensfun/
/usr/local/share/lensfun/
~/.local/share/lensfun/
</pre><p>Objects loaded later override objects loaded earlier. Thus, if user modifies a object you must save it to its home directory (see <a class="el" href="structlfDatabase.html#a447ef93e9d8d443b0f42d0ed7b837184" title="Home lens database directory (something like &quot;~/.local/share/lensfun&quot;)">lfDatabase::HomeDataDir</a>), where it will override any definitions from the system-wide database.</p>
<p>You cannot create and destroy objects of this type directly; instead use the <a class="el" href="group__Database.html#gafe325d433f28864ccde87dba92e1ccdb" title="Create a new empty database object.">lf_db_new()</a> / <a class="el" href="group__Database.html#gaf62bd4cfa25f2145e4102a70a0baf7b7" title="Destroy the database object.">lf_db_destroy()</a> functions or the <a class="el" href="structlfDatabase.html#a30eb075665f5d47bd502fd4a5bb158eb" title="Create a new empty database object.">lfDatabase::Create()</a> / <a class="el" href="structlfDatabase.html#a128f2756e03a28e48f733dd0747e2dd8" title="Destroy the database object and free all loaded data.">lfDatabase::Destroy()</a> methods. </p>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="example_8c-example.html#_a3">example.c</a>, <a class="el" href="lenstool_8cpp-example.html#_a22">lenstool.cpp</a>, and <a class="el" href="tfun_8cpp-example.html#_a8">tfun.cpp</a>.</dd>
</dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a9f88bc4bcfd808317ed5cc22095bc07e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f88bc4bcfd808317ed5cc22095bc07e">&#9670;&nbsp;</a></span>AddCamera()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lfDatabase::AddCamera </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlfCamera.html">lfCamera</a> *&#160;</td>
          <td class="paramname"><em>camera</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a camera to the database. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">camera</td><td>the camera to add </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac1ea2c5fa78ccdeb75f60bfac465fbbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1ea2c5fa78ccdeb75f60bfac465fbbc">&#9670;&nbsp;</a></span>AddLens()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lfDatabase::AddLens </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlfLens.html">lfLens</a> *&#160;</td>
          <td class="paramname"><em>lens</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a lens to the database. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lens</td><td>the lens to add </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a1799c039827704dc67734a1b9ab9e039"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1799c039827704dc67734a1b9ab9e039">&#9670;&nbsp;</a></span>AddMount()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lfDatabase::AddMount </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlfMount.html">lfMount</a> *&#160;</td>
          <td class="paramname"><em>mount</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a mount to the database. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mount</td><td>the mount to add </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a18ba7b786052defa0c958812f639ce9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18ba7b786052defa0c958812f639ce9b">&#9670;&nbsp;</a></span>FindCameras()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfCamera.html">lfCamera</a>** lfDatabase::FindCameras </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>maker</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>model</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find a set of cameras that fit given criteria. </p>
<p>The maker and model must be given (if possible) exactly as they are spelled in database, except that the library will compare case-insensitively and will compress spaces. This means that the database must contain camera maker/lens <em>exactly</em> how it is given in EXIF data, but you may add human-friendly translations of them using the multi-language string feature (including a translation to "en" to avoid displaying EXIF tags in user interface - they are often upper-case which looks ugly). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">maker</td><td>Camera maker (either from EXIF tags or from some other source). The string is expected to be pure ASCII, since EXIF data does not allow 8-bit data to be used. </td></tr>
    <tr><td class="paramname">model</td><td>Camera model (either from EXIF tags or from some other source). The string is expected to be pure ASCII, since EXIF data does not allow 8-bit data to be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A NULL-terminated list of cameras matching the search criteria or NULL if none. Release return value with <a class="el" href="group__Auxiliary.html#ga675c7ad6ae2c3b98e46a60f3deda317b">lf_free()</a> (only the list of pointers, not the camera objects!). </dd></dl>

</div>
</div>
<a id="aafba4d1ea4b18614892cd755d7e212c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafba4d1ea4b18614892cd755d7e212c2">&#9670;&nbsp;</a></span>FindCamerasExt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfCamera.html">lfCamera</a>** lfDatabase::FindCamerasExt </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>maker</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>model</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sflags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Searches all translations of camera maker and model. </p>
<p>Thus, you may search for a user-entered camera even in a language different from English. This function is somewhat similar to <a class="el" href="structlfDatabase.html#a18ba7b786052defa0c958812f639ce9b" title="Find a set of cameras that fit given criteria.">FindCameras()</a>, but uses a different search algorithm.</p>
<p>This is a lot slower than <a class="el" href="structlfDatabase.html#a18ba7b786052defa0c958812f639ce9b" title="Find a set of cameras that fit given criteria.">FindCameras()</a>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">maker</td><td>Camera maker. This can be any UTF-8 string. </td></tr>
    <tr><td class="paramname">model</td><td>Camera model. This can be any UTF-8 string. </td></tr>
    <tr><td class="paramname">sflags</td><td>Additional flags influencing the search algorithm. This is a combination of LF_SEARCH_XXX flags. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A NULL-terminated list of cameras matching the search criteria or NULL if none. Release return value with <a class="el" href="group__Auxiliary.html#ga675c7ad6ae2c3b98e46a60f3deda317b">lf_free()</a> (only the list of pointers, not the camera objects!). </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="lenstool_8cpp-example.html#a26">lenstool.cpp</a>.</dd>
</dl>

</div>
</div>
<a id="a3cfbcf0233c39ec4cbdf89386f0ecb40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cfbcf0233c39ec4cbdf89386f0ecb40">&#9670;&nbsp;</a></span>FindLenses() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfLens.html">lfLens</a>** lfDatabase::FindLenses </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structlfCamera.html">lfCamera</a> *&#160;</td>
          <td class="paramname"><em>camera</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>maker</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>model</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sflags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse a human-friendly lens description (ex: "smc PENTAX-F 35-105mm F4-5.6" or "SIGMA AF 28-300 F3.5-5.6 DL IF") and return a list of <a class="el" href="structlfLens.html" title="Lens data. Unknown fields are set to NULL or 0.">lfLens</a>'es which are matching this description. </p>
<p>Multiple lenses may be returned if multiple lenses match (perhaps due to non-unique lens description provided, e.g. "Pentax SMC").</p>
<p>The matching algorithm works as follows: first the user description is tried to be interpreted according to several well-known lens naming schemes, so additional data like focal and aperture ranges are extracted if they are present. After that word matching is done; a lens matches the description ONLY IF it contains all the words found in the description (including buzzwords e.g. IF IZ AL LD DI USM SDM etc). Order of the words does not matter. An additional check is done on the focal/aperture ranges, they must exactly match if they are specified. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">camera</td><td>The camera (can be NULL if camera is unknown, or just certain fields in structure can be NULL). The algorithm will look for a lens with crop factor not larger than of given camera, since the mathematical models of the lens can be incorrect for sensor sizes larger than the one used for calibration. Also camera mount is taken into account, the lenses with incompatible mounts will be filtered out. </td></tr>
    <tr><td class="paramname">maker</td><td>Lens maker or NULL if not known. </td></tr>
    <tr><td class="paramname">model</td><td>A human description of the lens model(-s). </td></tr>
    <tr><td class="paramname">sflags</td><td>Additional flags influencing the search algorithm. This is a combination of LF_SEARCH_XXX flags. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A list of lenses parsed from user description or NULL. Release memory with <a class="el" href="group__Auxiliary.html#ga675c7ad6ae2c3b98e46a60f3deda317b">lf_free()</a>. The list is ordered in the most-likely to least-likely order, e.g. the first returned value is the most likely match. </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="lenstool_8cpp-example.html#a29">lenstool.cpp</a>, and <a class="el" href="tfun_8cpp-example.html#a31">tfun.cpp</a>.</dd>
</dl>

</div>
</div>
<a id="a619c8533f7a4df2370998af66b963900"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a619c8533f7a4df2370998af66b963900">&#9670;&nbsp;</a></span>FindLenses() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfLens.html">lfLens</a>** lfDatabase::FindLenses </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structlfLens.html">lfLens</a> *&#160;</td>
          <td class="paramname"><em>lens</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sflags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find a set of lenses that fit certain criteria. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lens</td><td>The approximative lense. Uncertain fields may be NULL. The "CropFactor" field defines the minimal value for crop factor; no lenses with crop factor larger than that will be returned. The Mounts field will be scanned for allowed mounts, if NULL any mounts are considered compatible. </td></tr>
    <tr><td class="paramname">sflags</td><td>Additional flags influencing the search algorithm. This is a combination of LF_SEARCH_XXX flags. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A NULL-terminated list of lenses matching the search criteria or NULL if none. Release memory with <a class="el" href="group__Auxiliary.html#ga675c7ad6ae2c3b98e46a60f3deda317b">lf_free()</a>. The list is ordered in the most-likely to least-likely order, e.g. the first returned value is the most likely match. </dd></dl>

</div>
</div>
<a id="a122cc1e2eaa2b752d379efd260abf0e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a122cc1e2eaa2b752d379efd260abf0e1">&#9670;&nbsp;</a></span>FindMount()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfMount.html">lfMount</a>* lfDatabase::FindMount </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mount</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the <a class="el" href="structlfMount.html" title="This structure contains everything specific to a camera mount.">lfMount</a> structure given the (basic) mount name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mount</td><td>The basic mount name. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to <a class="el" href="structlfMount.html" title="This structure contains everything specific to a camera mount.">lfMount</a> structure or NULL. </dd></dl>

</div>
</div>
<a id="af4059d4dacf7630be9363920645c7d09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4059d4dacf7630be9363920645c7d09">&#9670;&nbsp;</a></span>GetCameras()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfCamera.html">lfCamera</a>* const* lfDatabase::GetCameras </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve a full list of cameras. </p>
<dl class="section return"><dt>Returns</dt><dd>An NULL-terminated list containing all cameras loaded until now. The list is valid only until the lens database is modified. The returned pointer does not have to be freed. </dd></dl>

</div>
</div>
<a id="a2cc76ba8ebac73c079548c3a073dda0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cc76ba8ebac73c079548c3a073dda0f">&#9670;&nbsp;</a></span>GetLenses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfLens.html">lfLens</a>* const* lfDatabase::GetLenses </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve a full list of lenses. </p>
<dl class="section return"><dt>Returns</dt><dd>An NULL-terminated list containing all lenses loaded until now. The list is valid only until the lens database is modified. The returned pointer does not have to be freed. </dd></dl>

</div>
</div>
<a id="a4cf25d2400f4d58a2cd6b6f42a9d25fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cf25d2400f4d58a2cd6b6f42a9d25fe">&#9670;&nbsp;</a></span>GetMounts()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structlfMount.html">lfMount</a>* const* lfDatabase::GetMounts </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve a full list of mounts. </p>
<dl class="section return"><dt>Returns</dt><dd>An array containing all mounts loaded until now. The list is valid only until the mount database is modified. The returned pointer does not have to be freed. </dd></dl>

</div>
</div>
<a id="ac688c19eb77c64aa6f2be002f8e31e72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac688c19eb77c64aa6f2be002f8e31e72">&#9670;&nbsp;</a></span>Load() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a> lfDatabase::Load </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find and load the lens database. </p>
<p>See <a class="el" href="dbsearch.html">How database files are found and loaded</a> for more information. </p><dl class="section return"><dt>Returns</dt><dd>LF_NO_ERROR or a error code. </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="lenstool_8cpp-example.html#a23">lenstool.cpp</a>, and <a class="el" href="tfun_8cpp-example.html#a29">tfun.cpp</a>.</dd>
</dl>

</div>
</div>
<a id="a6e052ffddd1e8d927ff53a2769fa59c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e052ffddd1e8d927ff53a2769fa59c0">&#9670;&nbsp;</a></span>Load() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a> lfDatabase::Load </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load just a specific XML file. </p>
<p>If the loaded file contains the specification of a camera/lens that's already in memory, it overrides that data. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The name of a XML file to load. Note that Lensfun does not support the full XML specification as it uses the glib's simple XML parser, so advanced XML features are not available. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>LF_NO_ERROR or a error code. </dd></dl>

</div>
</div>
<a id="abf8508f1abd9009ea403cbe3fad44f81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf8508f1abd9009ea403cbe3fad44f81">&#9670;&nbsp;</a></span>Load() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a> lfDatabase::Load </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>errcontext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a set of camera/lenses from a memory array. </p>
<p>This is the lowest-level loading function. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">errcontext</td><td>The error context to be displayed in error messages (usually this is the name of the file to which data belongs). </td></tr>
    <tr><td class="paramname">data</td><td>The XML data. </td></tr>
    <tr><td class="paramname">data_size</td><td>XML data size in bytes. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>LF_NO_ERROR or a error code. </dd></dl>

</div>
</div>
<a id="a1f9a30d64714a25c7feacc5f6bf0135d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f9a30d64714a25c7feacc5f6bf0135d">&#9670;&nbsp;</a></span>LoadDirectory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool lfDatabase::LoadDirectory </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dirname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load all XML files from a directory. </p>
<p>This is an internal function used by <a class="el" href="structlfDatabase.html#ac688c19eb77c64aa6f2be002f8e31e72" title="Find and load the lens database.">lfDatabase::Load</a> (). It ignores all errors. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dirname</td><td>The directory to be read. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if valid lensfun XML data was succesfully loaded. </dd></dl>

</div>
</div>
<a id="a9fc48182e3ce987118f17e0e4180da1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fc48182e3ce987118f17e0e4180da1e">&#9670;&nbsp;</a></span>MountName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* lfDatabase::MountName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mount</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the name of a mount in current locale. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mount</td><td>The basic mount name. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The name of the mount in current locale (UTF-8 string). </dd></dl>

</div>
</div>
<a id="a093a89cb1e03e471308cbd727595be60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a093a89cb1e03e471308cbd727595be60">&#9670;&nbsp;</a></span>Save() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a> lfDatabase::Save </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save the whole database to a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The file name to write the XML stream into. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>LF_NO_ERROR or a error code. </dd></dl>

</div>
</div>
<a id="aa92d53eb360b3c1a0b80735bd98bffd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa92d53eb360b3c1a0b80735bd98bffd8">&#9670;&nbsp;</a></span>Save() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__Auxiliary.html#gaf84c98d42624e1181549de773ac49ad7">lfError</a> lfDatabase::Save </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlfMount.html">lfMount</a> *const *&#160;</td>
          <td class="paramname"><em>mounts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlfCamera.html">lfCamera</a> *const *&#160;</td>
          <td class="paramname"><em>cameras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlfLens.html">lfLens</a> *const *&#160;</td>
          <td class="paramname"><em>lenses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save a set of camera and lens descriptions to a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The file name to write the XML stream into. </td></tr>
    <tr><td class="paramname">mounts</td><td>A list of mounts to be written to the file. Can be NULL. </td></tr>
    <tr><td class="paramname">cameras</td><td>A list of cameras to be written to the file. Can be NULL. </td></tr>
    <tr><td class="paramname">lenses</td><td>A list of lenses to be written to the file. Can be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>LF_NO_ERROR or a error code. </dd></dl>

</div>
</div>
<a id="a7e02dcb558b448157273555e0fd1e398"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e02dcb558b448157273555e0fd1e398">&#9670;&nbsp;</a></span>Save() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static char* lfDatabase::Save </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structlfMount.html">lfMount</a> *const *&#160;</td>
          <td class="paramname"><em>mounts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlfCamera.html">lfCamera</a> *const *&#160;</td>
          <td class="paramname"><em>cameras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlfLens.html">lfLens</a> *const *&#160;</td>
          <td class="paramname"><em>lenses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Save a set of camera and lens descriptions into a memory array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mounts</td><td>A list of mounts to be written to the file. Can be NULL. </td></tr>
    <tr><td class="paramname">cameras</td><td>A list of cameras to be written to the file. Can be NULL. </td></tr>
    <tr><td class="paramname">lenses</td><td>A list of lenses to be written to the file. Can be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to an allocated string with the output. Free it with <a class="el" href="group__Auxiliary.html#ga675c7ad6ae2c3b98e46a60f3deda317b">lf_free()</a>. </dd></dl>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="lensfun_8h_source.html">lensfun.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Oct 3 2019 15:07:50 for lensfun by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>