Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 36c3913465aa447b7a02f02786061291 > files > 21

libfprint-devel-0.3.0-1.fc14.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>libfprint: Print discovery</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>Print discovery</h1>  </div>
</div>
<div class="contents">

<p>The <a class="el" href="group__print__data.html">stored print</a> documentation detailed a simple API for storing per-device prints for a single user, namely <a class="el" href="group__print__data.html#ga98b1ba5a31560e8e9831cbe914268cc0" title="Saves a stored print to disk, assigned to a specific finger.">fp_print_data_save()</a>.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fp_dscv_print **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dscv__print.html#ga9e637d14e657f4cee01d69487eba4f68">fp_discover_prints</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scans the users home directory and returns a list of prints that were previously saved using <a class="el" href="group__print__data.html#ga98b1ba5a31560e8e9831cbe914268cc0" title="Saves a stored print to disk, assigned to a specific finger.">fp_print_data_save()</a>.  <a href="#ga9e637d14e657f4cee01d69487eba4f68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dscv__print.html#ga48f429113859b69f71a1c06483ed9266">fp_dscv_prints_free</a> (struct fp_dscv_print **prints)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees a list of discovered prints.  <a href="#ga48f429113859b69f71a1c06483ed9266"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dscv__print.html#ga5a254f3503f660f38468a32c3c9a8e45">fp_dscv_print_get_driver_id</a> (struct fp_dscv_print *print)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the <a class="el" href="group__drv.html#driver_id">driver ID</a> for a discovered print.  <a href="#ga5a254f3503f660f38468a32c3c9a8e45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dscv__print.html#gae5598e7e31c829bd5b9800bf7b748cb7">fp_dscv_print_get_devtype</a> (struct fp_dscv_print *print)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the <a class="el" href="group__dev.html#devtype">devtype</a> for a discovered print.  <a href="#gae5598e7e31c829bd5b9800bf7b748cb7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="group__print__data.html#ga5c6d4e10ca53fd0b61eaa4716f3985d5">fp_finger</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dscv__print.html#gabf0b6e730a8bd0cbcbe55d836d7afa5d">fp_dscv_print_get_finger</a> (struct fp_dscv_print *print)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the finger code for a discovered print.  <a href="#gabf0b6e730a8bd0cbcbe55d836d7afa5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dscv__print.html#ga0e502ba429790e93dbbe8a61419469ec">fp_dscv_print_delete</a> (struct fp_dscv_print *print)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a discovered print from disk.  <a href="#ga0e502ba429790e93dbbe8a61419469ec"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The <a class="el" href="group__print__data.html">stored print</a> documentation detailed a simple API for storing per-device prints for a single user, namely <a class="el" href="group__print__data.html#ga98b1ba5a31560e8e9831cbe914268cc0" title="Saves a stored print to disk, assigned to a specific finger.">fp_print_data_save()</a>. </p>
<p>It also detailed a load function, <a class="el" href="group__print__data.html#ga55244830b6ad7e4a04d184d95bc7e865" title="Loads a previously stored print from disk.">fp_print_data_load()</a>, but usage of this function is limited to scenarios where you know which device you would like to use, and you know which finger you are looking to verify.</p>
<p>In other cases, it would be more useful to be able to enumerate all previously saved prints, potentially even before device discovery. These functions are designed to offer this functionality to you.</p>
<p>Discovered prints are stored in a <code>dscv_print</code> structure, and you can use functions documented below to access some information about these prints. You can determine if a discovered print appears to be compatible with a device using functions such as <a class="el" href="group__dscv__dev.html#gafb427e5a0fa78f3aee41b63f0da093ac" title="Determines if a specific discovered print appears to be compatible with a discovered device...">fp_dscv_dev_supports_dscv_print()</a> and <a class="el" href="group__dev.html#gafc4dbf5ef42f4506d4c1d717ed2a4cd5" title="Determines if a discovered print appears to be compatible with a certain device.">fp_dev_supports_dscv_print()</a>.</p>
<p>When you are ready to use the print, you can load it into memory in the form of a stored print by using the <a class="el" href="group__print__data.html#gab7d990f770aa6139ac84a688ae202382" title="Attempts to load a stored print based on a discovered print record.">fp_print_data_from_dscv_print()</a> function.</p>
<p>You may have noticed the use of the word "appears" in the above paragraphs. libfprint performs print discovery simply by examining the file and directory structure of libfprint's private data store. It does not examine the actual prints themselves. Just because a print has been discovered and appears to be compatible with a certain device does not necessarily mean that it is usable; when you come to load or use it, under unusual circumstances it may turn out that the print is corrupt or not for the device that it appeared to be. Also, it is possible that the print may have been deleted by the time you come to load it. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga9e637d14e657f4cee01d69487eba4f68"></a><!-- doxytag: member="data.c::fp_discover_prints" ref="ga9e637d14e657f4cee01d69487eba4f68" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct fp_dscv_print** fp_discover_prints </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scans the users home directory and returns a list of prints that were previously saved using <a class="el" href="group__print__data.html#ga98b1ba5a31560e8e9831cbe914268cc0" title="Saves a stored print to disk, assigned to a specific finger.">fp_print_data_save()</a>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>a NULL-terminated list of discovered prints, must be freed with <a class="el" href="group__dscv__print.html#ga48f429113859b69f71a1c06483ed9266" title="Frees a list of discovered prints.">fp_dscv_prints_free()</a> after use. </dd></dl>

</div>
</div>
<a class="anchor" id="ga48f429113859b69f71a1c06483ed9266"></a><!-- doxytag: member="data.c::fp_dscv_prints_free" ref="ga48f429113859b69f71a1c06483ed9266" args="(struct fp_dscv_print **prints)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void fp_dscv_prints_free </td>
          <td>(</td>
          <td class="paramtype">struct fp_dscv_print **&nbsp;</td>
          <td class="paramname"> <em>prints</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees a list of discovered prints. </p>
<p>This function also frees the discovered prints themselves, so make sure you do not use any discovered prints after calling this function. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>prints</em>&nbsp;</td><td>the list of discovered prints. If NULL, function simply returns. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5a254f3503f660f38468a32c3c9a8e45"></a><!-- doxytag: member="data.c::fp_dscv_print_get_driver_id" ref="ga5a254f3503f660f38468a32c3c9a8e45" args="(struct fp_dscv_print *print)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t fp_dscv_print_get_driver_id </td>
          <td>(</td>
          <td class="paramtype">struct fp_dscv_print *&nbsp;</td>
          <td class="paramname"> <em>print</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the <a class="el" href="group__drv.html#driver_id">driver ID</a> for a discovered print. </p>
<p>The driver ID indicates which driver the print originally came from. The print is only usable with a device controlled by that driver. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>print</em>&nbsp;</td><td>the discovered print </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the driver ID of the driver compatible with the print </dd></dl>

</div>
</div>
<a class="anchor" id="gae5598e7e31c829bd5b9800bf7b748cb7"></a><!-- doxytag: member="data.c::fp_dscv_print_get_devtype" ref="gae5598e7e31c829bd5b9800bf7b748cb7" args="(struct fp_dscv_print *print)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t fp_dscv_print_get_devtype </td>
          <td>(</td>
          <td class="paramtype">struct fp_dscv_print *&nbsp;</td>
          <td class="paramname"> <em>print</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the <a class="el" href="group__dev.html#devtype">devtype</a> for a discovered print. </p>
<p>The devtype represents which type of device under the parent driver is compatible with the print. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>print</em>&nbsp;</td><td>the discovered print </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the devtype of the device range compatible with the print </dd></dl>

</div>
</div>
<a class="anchor" id="gabf0b6e730a8bd0cbcbe55d836d7afa5d"></a><!-- doxytag: member="data.c::fp_dscv_print_get_finger" ref="gabf0b6e730a8bd0cbcbe55d836d7afa5d" args="(struct fp_dscv_print *print)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__print__data.html#ga5c6d4e10ca53fd0b61eaa4716f3985d5">fp_finger</a> fp_dscv_print_get_finger </td>
          <td>(</td>
          <td class="paramtype">struct fp_dscv_print *&nbsp;</td>
          <td class="paramname"> <em>print</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the finger code for a discovered print. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>print</em>&nbsp;</td><td>discovered print </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a finger code from <a class="el" href="group__print__data.html#ga5c6d4e10ca53fd0b61eaa4716f3985d5" title="Numeric codes used to refer to fingers (and thumbs) of a human.">fp_finger</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga0e502ba429790e93dbbe8a61419469ec"></a><!-- doxytag: member="data.c::fp_dscv_print_delete" ref="ga0e502ba429790e93dbbe8a61419469ec" args="(struct fp_dscv_print *print)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int fp_dscv_print_delete </td>
          <td>(</td>
          <td class="paramtype">struct fp_dscv_print *&nbsp;</td>
          <td class="paramname"> <em>print</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes a discovered print from disk. </p>
<p>After successful return of this function, functions such as <a class="el" href="group__dscv__print.html#gabf0b6e730a8bd0cbcbe55d836d7afa5d" title="Gets the finger code for a discovered print.">fp_dscv_print_get_finger()</a> will continue to operate as before, however calling <a class="el" href="group__print__data.html#gab7d990f770aa6139ac84a688ae202382" title="Attempts to load a stored print based on a discovered print record.">fp_print_data_from_dscv_print()</a> will fail for obvious reasons. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>print</em>&nbsp;</td><td>the discovered print to remove from disk </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, negative on error </dd></dl>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Sep 8 2010 for libfprint by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>