Sophie

Sophie

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

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: tfun.cpp</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="headertitle">
<div class="title">tfun.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<p>This example shows how to do basic database lookups.</p>
<div class="fragment"><div class="line"><span class="comment">/*</span></div><div class="line"><span class="comment">    Test for database search functions.</span></div><div class="line"><span class="comment">*/</span></div><div class="line"></div><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="lensfun_8h.html">lensfun.h</a>&quot;</span></div><div class="line"><span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;getopt.h&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;locale.h&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> DisplayVersion ()</div><div class="line">{</div><div class="line">    g_print (<span class="stringliteral">&quot;Lensfun version %d.%d.%d: test database search routines\n&quot;</span>,</div><div class="line">        <a name="a0"></a><a class="code" href="group__Auxiliary.html#ga87f344eef72d0022dc6127a2dbb8e315">LF_VERSION_MAJOR</a>, <a name="a1"></a><a class="code" href="group__Auxiliary.html#gae5ffedbf31cb567fea19f22f3b832736">LF_VERSION_MINOR</a>, <a name="a2"></a><a class="code" href="group__Auxiliary.html#ga68545712fa14d528824de0a504a65fb0">LF_VERSION_MICRO</a>);</div><div class="line">    g_print (<span class="stringliteral">&quot;Copyright (C) 2007 Andrew Zabolotny\n\n&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;For distribution rules and conditions of use see the file\n&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;COPYING which is part of the distribution.\n&quot;</span>);</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> DisplayUsage ()</div><div class="line">{</div><div class="line">    DisplayVersion ();</div><div class="line">    g_print (<span class="stringliteral">&quot;\nIf no options are given, some standard tests will be run.\n&quot;</span>);    </div><div class="line">    g_print (<span class="stringliteral">&quot;Command-line options:\n\n&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;  -L#   --lens=#     Use calibration data for this lens\n&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;  -m#   --max=#      Limit the amount results\n&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;  -f    --fuzzy      More fuzzy search algorithm\n&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;  -V    --version    Display program version and exit\n&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;  -h    --help       Display this help text\n&quot;</span>);</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> PrintMount (<span class="keyword">const</span> <a name="_a3"></a><a class="code" href="structlfMount.html">lfMount</a> *mount)</div><div class="line">{</div><div class="line">    g_print (<span class="stringliteral">&quot;Mount: %s\n&quot;</span>, <a name="a4"></a><a class="code" href="group__Auxiliary.html#ga8cfd1f7b20aa190b3ac4556301fdf299">lf_mlstr_get</a> (mount-&gt;<a name="a5"></a><a class="code" href="structlfMount.html#aa955804e43d50a7c669f11a1e75b8c35">Name</a>));</div><div class="line">    <span class="keywordflow">if</span> (mount-&gt;<a name="a6"></a><a class="code" href="structlfMount.html#ac75b5ff5639ea88097083e72613ebefb">Compat</a>)</div><div class="line">        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; mount-&gt;<a class="code" href="structlfMount.html#ac75b5ff5639ea88097083e72613ebefb">Compat</a> [j]; j++)</div><div class="line">            g_print (<span class="stringliteral">&quot;\tCompat: %s\n&quot;</span>, mount-&gt;<a class="code" href="structlfMount.html#ac75b5ff5639ea88097083e72613ebefb">Compat</a> [j]);</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> PrintCamera (<span class="keyword">const</span> <a name="_a7"></a><a class="code" href="structlfCamera.html">lfCamera</a> *camera, <span class="keyword">const</span> <a name="_a8"></a><a class="code" href="structlfDatabase.html">lfDatabase</a> *ldb)</div><div class="line">{</div><div class="line">    g_print (<span class="stringliteral">&quot;Camera: %s / %s %s%s%s\n&quot;</span>,</div><div class="line">             <a class="code" href="group__Auxiliary.html#ga8cfd1f7b20aa190b3ac4556301fdf299">lf_mlstr_get</a> (camera-&gt;<a name="a9"></a><a class="code" href="structlfCamera.html#a455e1b0dfb1a4dbeb8d5e8e4ee00ff61">Maker</a>),</div><div class="line">             <a class="code" href="group__Auxiliary.html#ga8cfd1f7b20aa190b3ac4556301fdf299">lf_mlstr_get</a> (camera-&gt;<a name="a10"></a><a class="code" href="structlfCamera.html#a24aab9e53248a0cbab26971c31ea49d8">Model</a>),</div><div class="line">             camera-&gt;<a name="a11"></a><a class="code" href="structlfCamera.html#a2f07b6cdaabe6b67cfe3ca7878fd14f5">Variant</a> ? <span class="stringliteral">&quot;(&quot;</span> : <span class="stringliteral">&quot;&quot;</span>,</div><div class="line">             camera-&gt;<a class="code" href="structlfCamera.html#a2f07b6cdaabe6b67cfe3ca7878fd14f5">Variant</a> ? <a class="code" href="group__Auxiliary.html#ga8cfd1f7b20aa190b3ac4556301fdf299">lf_mlstr_get</a> (camera-&gt;<a class="code" href="structlfCamera.html#a2f07b6cdaabe6b67cfe3ca7878fd14f5">Variant</a>) : <span class="stringliteral">&quot;&quot;</span>,</div><div class="line">             camera-&gt;<a class="code" href="structlfCamera.html#a2f07b6cdaabe6b67cfe3ca7878fd14f5">Variant</a> ? <span class="stringliteral">&quot;)&quot;</span> : <span class="stringliteral">&quot;&quot;</span>);</div><div class="line">    g_print (<span class="stringliteral">&quot;\tMount: %s\n&quot;</span>, <a name="a12"></a><a class="code" href="group__Database.html#gab42f6e09d5a9d16d59329e6230a1240a">lf_db_mount_name</a> (ldb, camera-&gt;<a name="a13"></a><a class="code" href="structlfCamera.html#ab6936c3b98d3eeaaf600d6b60a146989">Mount</a>));</div><div class="line">    g_print (<span class="stringliteral">&quot;\tCrop factor: %g\n&quot;</span>, camera-&gt;<a name="a14"></a><a class="code" href="structlfCamera.html#af48074e34b4444b32bfe50f626aa3c21">CropFactor</a>);</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> PrintLens (<span class="keyword">const</span> <a name="_a15"></a><a class="code" href="structlfLens.html">lfLens</a> *lens, <span class="keyword">const</span> <a class="code" href="structlfDatabase.html">lfDatabase</a> *ldb)</div><div class="line">{</div><div class="line">    g_print (<span class="stringliteral">&quot;Lens: %s / %s\n&quot;</span>,</div><div class="line">             <a class="code" href="group__Auxiliary.html#ga8cfd1f7b20aa190b3ac4556301fdf299">lf_mlstr_get</a> (lens-&gt;<a name="a16"></a><a class="code" href="structlfLens.html#a269a228f2c09b1cec56aea8403dfaa83">Maker</a>),</div><div class="line">             <a class="code" href="group__Auxiliary.html#ga8cfd1f7b20aa190b3ac4556301fdf299">lf_mlstr_get</a> (lens-&gt;<a name="a17"></a><a class="code" href="structlfLens.html#a071ad3a45712b2cdbf9eedf8996aa298">Model</a>));</div><div class="line">    g_print (<span class="stringliteral">&quot;\tCrop factor: %g\n&quot;</span>, lens-&gt;<a name="a18"></a><a class="code" href="structlfLens.html#a2f9b563c3cd56c635761b7d4109ca7b3">CropFactor</a>);</div><div class="line">    g_print (<span class="stringliteral">&quot;\tAspect ratio: %g\n&quot;</span>, lens-&gt;<a name="a19"></a><a class="code" href="structlfLens.html#aa286ba449ce2128dedbbf52004ddc7a7">AspectRatio</a>);</div><div class="line">    g_print (<span class="stringliteral">&quot;\tFocal: %g-%g\n&quot;</span>, lens-&gt;<a name="a20"></a><a class="code" href="structlfLens.html#a6928a9fed201b940e8a8f0205a6663c1">MinFocal</a>, lens-&gt;<a name="a21"></a><a class="code" href="structlfLens.html#a804c70dc2b2016530ddbb8eda15b891c">MaxFocal</a>);</div><div class="line">    g_print (<span class="stringliteral">&quot;\tAperture: %g-%g\n&quot;</span>, lens-&gt;<a name="a22"></a><a class="code" href="structlfLens.html#a8cac58535976392db8542b8a3c76f6c0">MinAperture</a>, lens-&gt;<a name="a23"></a><a class="code" href="structlfLens.html#ab1668df848b653e4abcf81ad73fdb204">MaxAperture</a>);</div><div class="line">    g_print (<span class="stringliteral">&quot;\tCenter: %g,%g\n&quot;</span>, lens-&gt;<a name="a24"></a><a class="code" href="structlfLens.html#ab4c9227e83a649614a642b986e77c2e9">CenterX</a>, lens-&gt;<a name="a25"></a><a class="code" href="structlfLens.html#a304f08728f07b3a09fab20710eead37d">CenterY</a>);</div><div class="line">    <span class="keywordflow">if</span> (lens-&gt;<a name="a26"></a><a class="code" href="structlfLens.html#a0204591948b9b9a4b19d697780c36e83">Mounts</a>)</div><div class="line">        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; lens-&gt;<a class="code" href="structlfLens.html#a0204591948b9b9a4b19d697780c36e83">Mounts</a> [j]; j++)</div><div class="line">            g_print (<span class="stringliteral">&quot;\tMount: %s\n&quot;</span>, <a class="code" href="group__Database.html#gab42f6e09d5a9d16d59329e6230a1240a">lf_db_mount_name</a> (ldb, lens-&gt;<a class="code" href="structlfLens.html#a0204591948b9b9a4b19d697780c36e83">Mounts</a> [j]));</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> PrintCameras (<span class="keyword">const</span> <a class="code" href="structlfCamera.html">lfCamera</a> **cameras, <span class="keyword">const</span> <a class="code" href="structlfDatabase.html">lfDatabase</a> *ldb, <span class="keywordtype">int</span> maxEntries=-1)</div><div class="line">{</div><div class="line">    <span class="keywordflow">if</span> (cameras)</div><div class="line">        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; cameras [i]; i++)</div><div class="line">        {</div><div class="line">            g_print (<span class="stringliteral">&quot;--- camera %d: ---\n&quot;</span>, i + 1);</div><div class="line">            PrintCamera (cameras [i], ldb);</div><div class="line">            <span class="keywordflow">if</span> ((maxEntries &gt; 0) &amp;&amp; (i&gt;=maxEntries-1))</div><div class="line">                <span class="keywordflow">break</span>;</div><div class="line">        }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">        g_print (<span class="stringliteral">&quot;\t- failed\n&quot;</span>);</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> PrintLenses (<span class="keyword">const</span> <a class="code" href="structlfLens.html">lfLens</a> **lenses, <span class="keyword">const</span> <a class="code" href="structlfDatabase.html">lfDatabase</a> *ldb, <span class="keywordtype">int</span> maxEntries=-1)</div><div class="line">{</div><div class="line">    <span class="keywordflow">if</span> (lenses)</div><div class="line">        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; lenses [i]; i++)</div><div class="line">        {</div><div class="line">            g_print (<span class="stringliteral">&quot;--- lens %d, score %d: ---\n&quot;</span>, i + 1, lenses [i]-&gt;Score);</div><div class="line">            PrintLens (lenses [i], ldb);</div><div class="line">            <span class="keywordflow">if</span> ((maxEntries &gt; 0) &amp;&amp; (i&gt;=maxEntries-1))</div><div class="line">                <span class="keywordflow">break</span>;</div><div class="line">        }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">        g_print (<span class="stringliteral">&quot;\t- failed\n&quot;</span>);</div><div class="line">}</div><div class="line"></div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div><div class="line">{</div><div class="line"></div><div class="line">    <span class="keyword">static</span> <span class="keyword">struct </span>option long_options[] =</div><div class="line">    {</div><div class="line">        {<span class="stringliteral">&quot;lens&quot;</span>, required_argument, NULL, <span class="charliteral">&#39;L&#39;</span>},</div><div class="line">        {<span class="stringliteral">&quot;max&quot;</span>, required_argument, NULL, <span class="charliteral">&#39;m&#39;</span>},</div><div class="line">        {<span class="stringliteral">&quot;fuzzy&quot;</span>, no_argument, NULL, <span class="charliteral">&#39;f&#39;</span>},</div><div class="line">        {<span class="stringliteral">&quot;help&quot;</span>, no_argument, NULL, <span class="charliteral">&#39;h&#39;</span>},</div><div class="line">        {<span class="stringliteral">&quot;version&quot;</span>, no_argument, NULL, <span class="charliteral">&#39;V&#39;</span>},</div><div class="line">        {0, 0, 0, 0}</div><div class="line">    };</div><div class="line"></div><div class="line">    <span class="keyword">static</span> <span class="keyword">struct</span></div><div class="line">    {</div><div class="line">        <span class="keywordtype">int</span>         maxResults;</div><div class="line">        <span class="keywordtype">bool</span>        fuzzySearch;</div><div class="line">        <span class="keyword">const</span> <span class="keywordtype">char</span>  *Lens;</div><div class="line">    } opts =</div><div class="line">    {</div><div class="line">        -1,</div><div class="line">        0,</div><div class="line">        NULL,</div><div class="line">    };</div><div class="line">    </div><div class="line">    setlocale (LC_ALL, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"></div><div class="line">    <span class="keywordtype">int</span> c;</div><div class="line">    <span class="keywordflow">while</span> ((c = getopt_long (argc, argv, <span class="stringliteral">&quot;L:m:fhV&quot;</span>, long_options, NULL)) != EOF)</div><div class="line">    {</div><div class="line">        <span class="keywordflow">switch</span> (c)</div><div class="line">        {</div><div class="line">            <span class="keywordflow">case</span><span class="charliteral">&#39;L&#39;</span>:</div><div class="line">                opts.Lens = optarg;</div><div class="line">                <span class="keywordflow">break</span>;    </div><div class="line">            <span class="keywordflow">case</span> <span class="charliteral">&#39;m&#39;</span>:</div><div class="line">                opts.maxResults = atoi(optarg);</div><div class="line">                <span class="keywordflow">break</span>;</div><div class="line">            <span class="keywordflow">case</span> <span class="charliteral">&#39;f&#39;</span>:</div><div class="line">                opts.fuzzySearch = <a name="a27"></a><a class="code" href="group__Database.html#gga06fc87d81c62e9abb8790b6e5713c55ba12bb6d6f817a589b33a03a106d101f39">LF_SEARCH_LOOSE</a>;</div><div class="line">                <span class="keywordflow">break</span>;</div><div class="line">            <span class="keywordflow">case</span> <span class="charliteral">&#39;h&#39;</span>:</div><div class="line">                DisplayUsage();</div><div class="line">                <span class="keywordflow">return</span> 0;</div><div class="line">            <span class="keywordflow">case</span> <span class="charliteral">&#39;V&#39;</span>:</div><div class="line">                DisplayVersion ();</div><div class="line">                <span class="keywordflow">return</span> 0;</div><div class="line">            <span class="keywordflow">default</span>:</div><div class="line">                <span class="keywordflow">return</span> -1;</div><div class="line">        }</div><div class="line">    }</div><div class="line"></div><div class="line"></div><div class="line">    <a class="code" href="structlfDatabase.html">lfDatabase</a> *ldb = <a name="a28"></a><a class="code" href="group__Database.html#gafe325d433f28864ccde87dba92e1ccdb">lf_db_new</a> ();</div><div class="line">    ldb-&gt;<a name="a29"></a><a class="code" href="structlfDatabase.html#ac688c19eb77c64aa6f2be002f8e31e72">Load</a> ();</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span> (opts.Lens == NULL)</div><div class="line">    {</div><div class="line">        g_print (<span class="stringliteral">&quot;No lens name is given\n&quot;</span>);</div><div class="line">        DisplayUsage();</div><div class="line">        ldb-&gt;<a name="a30"></a><a class="code" href="structlfDatabase.html#a128f2756e03a28e48f733dd0747e2dd8">Destroy</a> ();</div><div class="line">        <span class="keywordflow">return</span> -1;</div><div class="line">    }</div><div class="line">    g_print (<span class="stringliteral">&quot;&gt;&gt;&gt; Looking for lens &#39;%s&#39; %d\n&quot;</span>, opts.Lens, opts.fuzzySearch);</div><div class="line">    <span class="keyword">const</span> <a class="code" href="structlfLens.html">lfLens</a> **lenses = ldb-&gt;<a name="a31"></a><a class="code" href="structlfDatabase.html#a3cfbcf0233c39ec4cbdf89386f0ecb40">FindLenses</a> (NULL, NULL, opts.Lens, opts.fuzzySearch);</div><div class="line">    PrintLenses (lenses, ldb, opts.maxResults);</div><div class="line">    <a name="a32"></a><a class="code" href="group__Auxiliary.html#ga675c7ad6ae2c3b98e46a60f3deda317b">lf_free</a> (lenses);</div><div class="line"></div><div class="line">    ldb-&gt;<a class="code" href="structlfDatabase.html#a128f2756e03a28e48f733dd0747e2dd8">Destroy</a> ();</div><div class="line">    <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --> </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>