<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="GUsb" version="1.0"/>
  <include name="Gio" version="2.0"/>
  <package name="fprint"/>
  <c:include name="fprint.h"/>
  <namespace name="FPrint"
             version="2.0"
             shared-library="libfprint-2.so.2"
             c:identifier-prefixes="Fp"
             c:symbol-prefixes="fp_">
    <class name="Context"
           c:symbol-prefix="context"
           c:type="FpContext"
           parent="GObject.Object"
           glib:type-name="FpContext"
           glib:get-type="fp_context_get_type"
           glib:type-struct="ContextClass">
      <source-position filename="../libfprint/fp-context.h" line="44"/>
      <constructor name="new" c:identifier="fp_context_new">
        <doc xml:space="preserve"
             filename="../libfprint/fp-context.c"
             line="310">Create a new #FpContext.</doc>
        <source-position filename="../libfprint/fp-context.h" line="46"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libfprint/fp-context.c"
               line="315">a newly created #FpContext</doc>
          <type name="Context" c:type="FpContext*"/>
        </return-value>
      </constructor>
      <virtual-method name="device_added">
        <source-position filename="../libfprint/fp-context.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="FpContext*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="FpDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="device_removed">
        <source-position filename="../libfprint/fp-context.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="FpContext*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="FpDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="enumerate" c:identifier="fp_context_enumerate">
        <doc xml:space="preserve"
             filename="../libfprint/fp-context.c"
             line="323">Enumerate all devices. You should call this function exactly once
at startup. Please note that it iterates the mainloop until all
devices are enumerated.</doc>
        <source-position filename="../libfprint/fp-context.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-context.c"
                 line="325">a #FpContext</doc>
            <type name="Context" c:type="FpContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_devices" c:identifier="fp_context_get_devices">
        <doc xml:space="preserve"
             filename="../libfprint/fp-context.c"
             line="383">Get all devices. fp_context_enumerate() will be called as needed.</doc>
        <source-position filename="../libfprint/fp-context.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-context.c"
               line="389">a new #GPtrArray of #GUsbDevice's.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-context.c"
                 line="385">a #FpContext</doc>
            <type name="Context" c:type="FpContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="device-added" when="last">
        <doc xml:space="preserve"
             filename="../libfprint/fp-context.c"
             line="226">This signal is emitted when a fingerprint reader is added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-context.c"
                 line="229">A #FpDevice</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="device-removed" when="last">
        <doc xml:space="preserve"
             filename="../libfprint/fp-context.c"
             line="244">This signal is emitted when a fingerprint reader is removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-context.c"
                 line="247">A #FpDevice</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ContextClass"
            c:type="FpContextClass"
            glib:is-gtype-struct-for="Context">
      <doc xml:space="preserve"
           filename="../libfprint/fp-context.h"
           line="29">Class structure for #FpContext instances.</doc>
      <source-position filename="../libfprint/fp-context.h" line="44"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="device_added">
        <callback name="device_added">
          <source-position filename="../libfprint/fp-context.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="context" transfer-ownership="none">
              <type name="Context" c:type="FpContext*"/>
            </parameter>
            <parameter name="device" transfer-ownership="none">
              <type name="Device" c:type="FpDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="device_removed">
        <callback name="device_removed">
          <source-position filename="../libfprint/fp-context.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="context" transfer-ownership="none">
              <type name="Context" c:type="FpContext*"/>
            </parameter>
            <parameter name="device" transfer-ownership="none">
              <type name="Device" c:type="FpDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Device"
           c:symbol-prefix="device"
           c:type="FpDevice"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="FpDevice"
           glib:get-type="fp_device_get_type"
           glib:type-struct="DeviceClass">
      <source-position filename="../libfprint/fp-device.h" line="32"/>
      <implements name="Gio.AsyncInitable"/>
      <method name="capture" c:identifier="fp_device_capture">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1020">Start an asynchronous operation to capture an image. The callback will
be called once the operation has finished. Retrieve the result with
fp_device_capture_finish().</doc>
        <source-position filename="../libfprint/fp-device.h" line="215"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1022">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="wait_for_finger" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1023">Whether to wait for a finger or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1024">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1025">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1026">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="capture_finish"
              c:identifier="fp_device_capture_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1069">Finish an asynchronous operation to capture an image. You should check
for an error of type %FP_DEVICE_RETRY to prompt the user again if there
was an interaction issue.

See fp_device_capture().</doc>
        <source-position filename="../libfprint/fp-device.h" line="251"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1081">#FpImage or %NULL on error</doc>
          <type name="Image" c:type="FpImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1071">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1072">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="capture_sync"
              c:identifier="fp_device_capture_sync"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1423">Start an synchronous operation to capture an image.</doc>
        <source-position filename="../libfprint/fp-device.h" line="290"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1432">A new #FpImage or %NULL on error</doc>
          <type name="Image" c:type="FpImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1425">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="wait_for_finger" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1426">Whether to wait for a finger or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1427">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="fp_device_close">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="629">Start an asynchronous operation to close the device. The callback will
be called once the operation has finished. Retrieve the result with
fp_device_close_finish().</doc>
        <source-position filename="../libfprint/fp-device.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="631">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="632">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="633">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="634">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="close_finish"
              c:identifier="fp_device_close_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="674">Finish an asynchronous operation to close the device.
See fp_device_close().</doc>
        <source-position filename="../libfprint/fp-device.h" line="235"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="683">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="676">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="677">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close_sync" c:identifier="fp_device_close_sync" throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1280">Close the device synchronously.</doc>
        <source-position filename="../libfprint/fp-device.h" line="265"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1288">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1282">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1283">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_print" c:identifier="fp_device_delete_print">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1091">Start an asynchronous operation to delete a print from the device.
The callback will be called once the operation has finished. Retrieve
the result with fp_device_delete_print_finish().

This only makes sense on devices that store prints on-chip, but is safe
to always call.</doc>
        <source-position filename="../libfprint/fp-device.h" line="221"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1093">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="enrolled_print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1094">a #FpPrint to delete</doc>
            <type name="Print" c:type="FpPrint*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1095">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1096">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1097">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_print_finish"
              c:identifier="fp_device_delete_print_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1152">Finish an asynchronous operation to delete an enrolled print.

See fp_device_delete_print().</doc>
        <source-position filename="../libfprint/fp-device.h" line="254"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1162">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1154">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1155">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_print_sync"
              c:identifier="fp_device_delete_print_sync"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1454">Delete a given print from the device.</doc>
        <source-position filename="../libfprint/fp-device.h" line="294"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1463">%FALSE on error, %TRUE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1456">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="enrolled_print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1457">a #FpPrint to verify</doc>
            <type name="Print" c:type="FpPrint*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1458">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="enroll" c:identifier="fp_device_enroll">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="694">Start an asynchronous operation to enroll a print. The callback will
be called once the operation has finished. Retrieve the result with
fp_device_enroll_finish().

The @template_print parameter is a #FpPrint with available metadata filled
in. The driver may make use of this metadata, when e.g. storing the print on
device memory. It is undefined whether this print is filled in by the driver
and returned, or whether the driver will return a newly created print after
enrollment successed.</doc>
        <source-position filename="../libfprint/fp-device.h" line="188"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="696">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="template_print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="697">a #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="698">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="progress_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="699">progress reporting callback</doc>
            <type name="EnrollProgress" c:type="FpEnrollProgress"/>
          </parameter>
          <parameter name="progress_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="700">user data for @progress_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="progress_destroy"
                     transfer-ownership="none"
                     scope="async"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="701">Destroy notify for @progress_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="702">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="703">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="enroll_finish"
              c:identifier="fp_device_enroll_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="781">Finish an asynchronous operation to enroll a print. You should check
for an error of type %FP_DEVICE_RETRY to prompt the user again if there
was an interaction issue.
See fp_device_enroll().</doc>
        <source-position filename="../libfprint/fp-device.h" line="238"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="792">The enrolled #FpPrint, or %NULL on error</doc>
          <type name="Print" c:type="FpPrint*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="783">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="784">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="enroll_sync"
              c:identifier="fp_device_enroll_sync"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1306">Enroll a new print. See fp_device_enroll(). It is undefined whether
@template_print is updated or a newly created #FpPrint is returned.</doc>
        <source-position filename="../libfprint/fp-device.h" line="268"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1319">A #FpPrint on success, %NULL otherwise</doc>
          <type name="Print" c:type="FpPrint*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1308">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="template_print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1309">A #FpPrint to fill in or use
  as a template.</doc>
            <type name="Print" c:type="FpPrint*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1311">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="progress_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1312">progress reporting callback</doc>
            <type name="EnrollProgress" c:type="FpEnrollProgress"/>
          </parameter>
          <parameter name="progress_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1313">user data for @progress_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_device_id" c:identifier="fp_device_get_device_id">
        <source-position filename="../libfprint/fp-device.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="410">The ID of the device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="408">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_driver" c:identifier="fp_device_get_driver">
        <source-position filename="../libfprint/fp-device.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="396">The ID of the driver</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="394">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="fp_device_get_name">
        <source-position filename="../libfprint/fp-device.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="426">The human readable name of the device</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="424">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nr_enroll_stages"
              c:identifier="fp_device_get_nr_enroll_stages">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="472">Retrieves the number of enroll stages for this device.</doc>
        <source-position filename="../libfprint/fp-device.h" line="171"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="478">The number of enroll stages</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="474">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scan_type" c:identifier="fp_device_get_scan_type">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="454">Retrieves the scan type of the device.</doc>
        <source-position filename="../libfprint/fp-device.h" line="170"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="460">The #FpScanType</doc>
          <type name="ScanType" c:type="FpScanType"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="456">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_storage" c:identifier="fp_device_has_storage">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="526">Whether the device has on-chip storage. If it has, you can list the
prints stored on the with fp_device_list_prints() and you should
always delete prints from the device again using
fp_device_delete_print().</doc>
        <source-position filename="../libfprint/fp-device.h" line="175"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="528">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="identify" c:identifier="fp_device_identify">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="911">Start an asynchronous operation to identify prints. The callback will
be called once the operation has finished. Retrieve the result with
fp_device_identify_finish().</doc>
        <source-position filename="../libfprint/fp-device.h" line="206"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="913">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="prints" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="914">#GPtrArray of #FpPrint</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="Print"/>
            </array>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="915">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="match_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="916">match reporting callback</doc>
            <type name="MatchCb" c:type="FpMatchCb"/>
          </parameter>
          <parameter name="match_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="917">user data for @match_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="match_destroy"
                     transfer-ownership="none"
                     scope="async"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="918">Destroy notify for @match_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="919">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="920">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="identify_finish"
              c:identifier="fp_device_identify_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="974">Finish an asynchronous operation to identify a print. You should check
for an error of type %FP_DEVICE_RETRY to prompt the user again if there
was an interaction issue.

Use @match to find the print that matched. With @print you can fetch the
newly created print and retrieve the image data if available.

See fp_device_identify().</doc>
        <source-position filename="../libfprint/fp-device.h" line="246"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="991">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="976">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="977">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="match"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="978">Location for the matched #FpPrint, or %NULL</doc>
            <type name="Print" c:type="FpPrint**"/>
          </parameter>
          <parameter name="print"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="979">Location for the new #FpPrint, or %NULL</doc>
            <type name="Print" c:type="FpPrint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="identify_sync"
              c:identifier="fp_device_identify_sync"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1382">Identify a print synchronously.</doc>
        <source-position filename="../libfprint/fp-device.h" line="282"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1395">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1384">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="prints" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1385">#GPtrArray of #FpPrint</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="Print"/>
            </array>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1386">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="match_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1387">match reporting callback</doc>
            <type name="MatchCb" c:type="FpMatchCb"/>
          </parameter>
          <parameter name="match_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1388">user data for @match_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="match"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1389">Location for the matched #FpPrint, or %NULL</doc>
            <type name="Print" c:type="FpPrint**"/>
          </parameter>
          <parameter name="print"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1390">Location for the new #FpPrint, or %NULL</doc>
            <type name="Print" c:type="FpPrint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_open" c:identifier="fp_device_is_open">
        <source-position filename="../libfprint/fp-device.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="442">Whether the device is open or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="440">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_prints" c:identifier="fp_device_list_prints">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1172">Start an asynchronous operation to list all prints stored on the device.
This only makes sense on devices that store prints on-chip.

Retrieve the result with fp_device_list_prints_finish().</doc>
        <source-position filename="../libfprint/fp-device.h" line="227"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1174">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1175">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1176">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1177">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_prints_finish"
              c:identifier="fp_device_list_prints_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1226">Finish an asynchronous operation to list all device stored prints.

See fp_device_list_prints().</doc>
        <source-position filename="../libfprint/fp-device.h" line="257"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1236">Array of prints or %NULL on error</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Print"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1228">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1229">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_prints_sync"
              c:identifier="fp_device_list_prints_sync"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1485">List device stored prints synchronously.</doc>
        <source-position filename="../libfprint/fp-device.h" line="298"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1493">Array of prints, or %NULL on error</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Print"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1487">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1488">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="open" c:identifier="fp_device_open">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="545">Start an asynchronous operation to open the device. The callback will
be called once the operation has finished. Retrieve the result with
fp_device_open_finish().</doc>
        <source-position filename="../libfprint/fp-device.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="547">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="548">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="549">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="550">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_finish"
              c:identifier="fp_device_open_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="610">Finish an asynchronous operation to open the device.
See fp_device_open().</doc>
        <source-position filename="../libfprint/fp-device.h" line="232"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="619">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="612">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="613">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_sync" c:identifier="fp_device_open_sync" throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1254">Open the device synchronously.</doc>
        <source-position filename="../libfprint/fp-device.h" line="262"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1262">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1256">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1257">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="supports_capture"
              c:identifier="fp_device_supports_capture">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="508">Check whether the device supports capturing images.</doc>
        <source-position filename="../libfprint/fp-device.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="514">Whether the device supports image capture</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="510">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="supports_identify"
              c:identifier="fp_device_supports_identify">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="490">Check whether the device supports identification.</doc>
        <source-position filename="../libfprint/fp-device.h" line="173"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="496">Whether the device supports identification</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="492">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="verify" c:identifier="fp_device_verify">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="802">Start an asynchronous operation to verify a print. The callback will
be called once the operation has finished. Retrieve the result with
fp_device_verify_finish().</doc>
        <source-position filename="../libfprint/fp-device.h" line="197"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="804">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="enrolled_print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="805">a #FpPrint to verify</doc>
            <type name="Print" c:type="FpPrint*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="806">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="match_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="807">match reporting callback</doc>
            <type name="MatchCb" c:type="FpMatchCb"/>
          </parameter>
          <parameter name="match_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="808">user data for @match_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="match_destroy"
                     transfer-ownership="none"
                     scope="async"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="809">Destroy notify for @match_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="810">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="811">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify_finish"
              c:identifier="fp_device_verify_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="865">Finish an asynchronous operation to verify an enrolled print. You should check
for an error of type %FP_DEVICE_RETRY to prompt the user again if there
was an interaction issue.

With @print you can fetch the newly created print and retrieve the image data if available.

See fp_device_verify().</doc>
        <source-position filename="../libfprint/fp-device.h" line="241"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="881">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="867">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="868">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="match"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="869">Whether the user presented the correct finger</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="print"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="870">Location to store the scanned print, or %NULL to ignore</doc>
            <type name="Print" c:type="FpPrint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify_sync"
              c:identifier="fp_device_verify_sync"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="1342">Verify a given print synchronously.</doc>
        <source-position filename="../libfprint/fp-device.h" line="274"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="1355">%FALSE on error, %TRUE otherwise</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1344">a #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </instance-parameter>
          <parameter name="enrolled_print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1345">a #FpPrint to verify</doc>
            <type name="Print" c:type="FpPrint*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1346">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="match_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1347">match reporting callback</doc>
            <type name="MatchCb" c:type="FpMatchCb"/>
          </parameter>
          <parameter name="match_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1348">user data for @match_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="match"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1349">Whether the user presented the correct finger</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="print"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-device.c"
                 line="1350">Location to store the scanned print, or %NULL to ignore</doc>
            <type name="Print" c:type="FpPrint**"/>
          </parameter>
        </parameters>
      </method>
      <property name="device-id" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="driver" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="fpi-driver-data"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="fpi-environ"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="fpi-usb-device"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GUsb.Device"/>
      </property>
      <property name="name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="nr-enroll-stages" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="open" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scan-type" transfer-ownership="none">
        <type name="ScanType"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="DeviceClass"
            c:type="FpDeviceClass"
            disguised="1"
            glib:is-gtype-struct-for="Device">
      <source-position filename="../libfprint/fp-device.h" line="32"/>
    </record>
    <enumeration name="DeviceError"
                 glib:type-name="FpDeviceError"
                 glib:get-type="fp_device_error_get_type"
                 c:type="FpDeviceError"
                 glib:error-domain="fp - device - error - quark">
      <doc xml:space="preserve"
           filename="../libfprint/fp-device.h"
           line="80">Error codes for device operations. More specific errors from other domains
such as #G_IO_ERROR or #G_USB_DEVICE_ERROR may also be reported.</doc>
      <member name="general"
              value="0"
              c:identifier="FP_DEVICE_ERROR_GENERAL"
              glib:nick="general">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="82">A general error occurred.</doc>
      </member>
      <member name="not_supported"
              value="1"
              c:identifier="FP_DEVICE_ERROR_NOT_SUPPORTED"
              glib:nick="not-supported">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="83">The device does not support the requested
 operation.</doc>
      </member>
      <member name="not_open"
              value="2"
              c:identifier="FP_DEVICE_ERROR_NOT_OPEN"
              glib:nick="not-open">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="85">The device needs to be opened to start this
  operation.</doc>
      </member>
      <member name="already_open"
              value="3"
              c:identifier="FP_DEVICE_ERROR_ALREADY_OPEN"
              glib:nick="already-open">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="87">The device has already been opened.</doc>
      </member>
      <member name="busy"
              value="4"
              c:identifier="FP_DEVICE_ERROR_BUSY"
              glib:nick="busy">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="88">The device is busy with another request.</doc>
      </member>
      <member name="proto"
              value="5"
              c:identifier="FP_DEVICE_ERROR_PROTO"
              glib:nick="proto">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="89">Protocol error</doc>
      </member>
      <member name="data_invalid"
              value="6"
              c:identifier="FP_DEVICE_ERROR_DATA_INVALID"
              glib:nick="data-invalid">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="90">The passed data is invalid</doc>
      </member>
      <member name="data_not_found"
              value="7"
              c:identifier="FP_DEVICE_ERROR_DATA_NOT_FOUND"
              glib:nick="data-not-found">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="91">Requested print was not found on device</doc>
      </member>
      <member name="data_full"
              value="8"
              c:identifier="FP_DEVICE_ERROR_DATA_FULL"
              glib:nick="data-full">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="92">No space on device available for operation</doc>
      </member>
      <function name="quark" c:identifier="fp_device_error_quark">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="67">Quark representing a device error.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <enumeration name="DeviceRetry"
                 glib:type-name="FpDeviceRetry"
                 glib:get-type="fp_device_retry_get_type"
                 c:type="FpDeviceRetry">
      <doc xml:space="preserve"
           filename="../libfprint/fp-device.h"
           line="58">Error codes representing scan failures resulting in the user needing to
retry.</doc>
      <member name="general"
              value="0"
              c:identifier="FP_DEVICE_RETRY_GENERAL"
              glib:nick="general">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="60">The scan did not succeed due to poor scan quality
  or other general user scanning problem.</doc>
      </member>
      <member name="too_short"
              value="1"
              c:identifier="FP_DEVICE_RETRY_TOO_SHORT"
              glib:nick="too-short">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="62">The scan did not succeed because the finger
  swipe was too short.</doc>
      </member>
      <member name="center_finger"
              value="2"
              c:identifier="FP_DEVICE_RETRY_CENTER_FINGER"
              glib:nick="center-finger">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="64">The scan did not succeed because the finger
  was not centered on the scanner.</doc>
      </member>
      <member name="remove_finger"
              value="3"
              c:identifier="FP_DEVICE_RETRY_REMOVE_FINGER"
              glib:nick="remove-finger">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="66">The scan did not succeed due to quality or
  pressure problems; the user should remove their finger from the scanner
  before retrying.</doc>
      </member>
      <function name="quark" c:identifier="fp_device_retry_quark">
        <source-position filename="../libfprint/fp-device.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.c"
               line="60">Quark representing a retryable error.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <enumeration name="DeviceType"
                 glib:type-name="FpDeviceType"
                 glib:get-type="fp_device_type_get_type"
                 c:type="FpDeviceType">
      <member name="virtual"
              value="0"
              c:identifier="FP_DEVICE_TYPE_VIRTUAL"
              glib:nick="virtual">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="40">The device is a virtual device</doc>
      </member>
      <member name="usb"
              value="1"
              c:identifier="FP_DEVICE_TYPE_USB"
              glib:nick="usb">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="41">The device is a USB device</doc>
      </member>
    </enumeration>
    <callback name="EnrollProgress" c:type="FpEnrollProgress">
      <doc xml:space="preserve"
           filename="../libfprint/fp-device.h"
           line="112">The passed error is guaranteed to be of type %FP_DEVICE_RETRY if set.</doc>
      <source-position filename="../libfprint/fp-device.h" line="122"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="114">a #FpDevice</doc>
          <type name="Device" c:type="FpDevice*"/>
        </parameter>
        <parameter name="completed_stages" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="115">Number of completed stages</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="print"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="116">The last scanned print</doc>
          <type name="Print" c:type="FpPrint*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="117">User provided data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="error"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="118">#GError or %NULL</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="FINGER_IS_VALID"
                    c:identifier="FP_FINGER_IS_VALID"
                    introspectable="0">
      <source-position filename="../libfprint/fp-print.h" line="31"/>
      <parameters>
        <parameter name="finger">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="Finger"
                 glib:type-name="FpFinger"
                 glib:get-type="fp_finger_get_type"
                 c:type="FpFinger">
      <member name="unknown"
              value="0"
              c:identifier="FP_FINGER_UNKNOWN"
              glib:nick="unknown">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="38">The finger is unknown</doc>
      </member>
      <member name="left_thumb"
              value="1"
              c:identifier="FP_FINGER_LEFT_THUMB"
              glib:nick="left-thumb">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="39">Left thumb</doc>
      </member>
      <member name="left_index"
              value="2"
              c:identifier="FP_FINGER_LEFT_INDEX"
              glib:nick="left-index">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="40">Left index finger</doc>
      </member>
      <member name="left_middle"
              value="3"
              c:identifier="FP_FINGER_LEFT_MIDDLE"
              glib:nick="left-middle">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="41">Left middle finger</doc>
      </member>
      <member name="left_ring"
              value="4"
              c:identifier="FP_FINGER_LEFT_RING"
              glib:nick="left-ring">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="42">Left ring finger</doc>
      </member>
      <member name="left_little"
              value="5"
              c:identifier="FP_FINGER_LEFT_LITTLE"
              glib:nick="left-little">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="43">Left little finger</doc>
      </member>
      <member name="right_thumb"
              value="6"
              c:identifier="FP_FINGER_RIGHT_THUMB"
              glib:nick="right-thumb">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="44">Right thumb</doc>
      </member>
      <member name="right_index"
              value="7"
              c:identifier="FP_FINGER_RIGHT_INDEX"
              glib:nick="right-index">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="45">Right index finger</doc>
      </member>
      <member name="right_middle"
              value="8"
              c:identifier="FP_FINGER_RIGHT_MIDDLE"
              glib:nick="right-middle">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="46">Right middle finger</doc>
      </member>
      <member name="right_ring"
              value="9"
              c:identifier="FP_FINGER_RIGHT_RING"
              glib:nick="right-ring">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="47">Right ring finger</doc>
      </member>
      <member name="right_little"
              value="10"
              c:identifier="FP_FINGER_RIGHT_LITTLE"
              glib:nick="right-little">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="48">Right little finger</doc>
      </member>
      <member name="first"
              value="1"
              c:identifier="FP_FINGER_FIRST"
              glib:nick="first">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="49">The first finger in the fp-print order</doc>
      </member>
      <member name="last"
              value="10"
              c:identifier="FP_FINGER_LAST"
              glib:nick="last">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.h"
             line="50">The last finger in the fp-print order</doc>
      </member>
    </enumeration>
    <class name="Image"
           c:symbol-prefix="image"
           c:type="FpImage"
           parent="GObject.Object"
           glib:type-name="FpImage"
           glib:get-type="fp_image_get_type"
           glib:type-struct="ImageClass">
      <source-position filename="../libfprint/fp-image.h" line="31"/>
      <constructor name="new" c:identifier="fp_image_new">
        <source-position filename="../libfprint/fp-image.h" line="33"/>
        <return-value transfer-ownership="full">
          <type name="Image" c:type="FpImage*"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="detect_minutiae" c:identifier="fp_image_detect_minutiae">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="431">Detects the minutiae found in an image.</doc>
        <source-position filename="../libfprint/fp-image.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="433">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="434">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="435">the function to call on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="436">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="detect_minutiae_finish"
              c:identifier="fp_image_detect_minutiae_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="463">Finish minutiae detection in an image</doc>
        <source-position filename="../libfprint/fp-image.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-image.c"
               line="471">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="465">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="466">A #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_binarized" c:identifier="fp_image_get_binarized">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="395">Gets the binarized data for an image. This data must not be modified or
freed. You need to first detect the minutiae using
fp_image_detect_minutiae().</doc>
        <source-position filename="../libfprint/fp-image.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-image.c"
               line="404">The binarized image data</doc>
          <array length="0" zero-terminated="0" c:type="const guchar*">
            <type name="guint8" c:type="guchar"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="397">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
          <parameter name="len"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="398">Return location for length or %NULL</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="fp_image_get_data">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="376">Gets the greyscale data for an image. This data must not be modified or
freed.</doc>
        <source-position filename="../libfprint/fp-image.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-image.c"
               line="384">The image data</doc>
          <array length="0" zero-terminated="0" c:type="const guchar*">
            <type name="guint8" c:type="guchar"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="378">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
          <parameter name="len"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="379">Return location for length or %NULL</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_height" c:identifier="fp_image_get_height">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="333">Gets the pixel height of an image.</doc>
        <source-position filename="../libfprint/fp-image.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-image.c"
               line="339">the height of the image</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="335">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_minutiae" c:identifier="fp_image_get_minutiae">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="415">Gets the minutiae for an image. This data must not be modified or
freed. You need to first detect the minutiae using
fp_image_detect_minutiae().</doc>
        <source-position filename="../libfprint/fp-image.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-image.c"
               line="423">The detected minutiae</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Minutia"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="417">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ppmm" c:identifier="fp_image_get_ppmm">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="361">Gets the resolution of the image. Note that this is assumed to
be fixed to 500 points per inch (~19.685 p/mm) for most drivers.</doc>
        <source-position filename="../libfprint/fp-image.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-image.c"
               line="368">the resolution of the image in points per millimeter</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="363">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="fp_image_get_width">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="347">Gets the pixel width of an image.</doc>
        <source-position filename="../libfprint/fp-image.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-image.c"
               line="353">the width of the image</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="349">A #FpImage</doc>
            <type name="Image" c:type="FpImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="height"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="width"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="ImageClass"
            c:type="FpImageClass"
            glib:is-gtype-struct-for="Image">
      <source-position filename="../libfprint/fp-image.h" line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ImageDevice"
           c:symbol-prefix="image_device"
           c:type="FpImageDevice"
           parent="Device"
           abstract="1"
           glib:type-name="FpImageDevice"
           glib:get-type="fp_image_device_get_type"
           glib:type-struct="ImageDeviceClass">
      <source-position filename="../libfprint/fp-image-device.h" line="27"/>
      <implements name="Gio.AsyncInitable"/>
      <property name="fpi-image-device-state"
                introspectable="0"
                transfer-ownership="none">
        <type/>
      </property>
      <field name="parent_instance">
        <type name="Device" c:type="FpDevice"/>
      </field>
      <glib:signal name="fpi-image-device-state-changed"
                   when="first"
                   introspectable="0"
                   stability="Private">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image-device.c"
             line="320">This signal is only for internal purposes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="new_state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image-device.c"
                 line="323">The new state of the device</doc>
            <type/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ImageDeviceClass"
            c:type="FpImageDeviceClass"
            disguised="1"
            glib:is-gtype-struct-for="ImageDevice">
      <source-position filename="../libfprint/fp-image-device.h" line="27"/>
    </record>
    <callback name="MatchCb" c:type="FpMatchCb">
      <doc xml:space="preserve"
           filename="../libfprint/fp-device.h"
           line="128">Report the result of a match (identify or verify) operation.

If @match is non-%NULL, then it is set to the matching #FpPrint as passed
to the match operation. In this case @error will always be %NULL.

If @error is not %NULL then its domain is guaranteed to be
%FP_DEVICE_RETRY. All other error conditions will not be reported using
this callback. If such an error occurs before a match/no-match decision
can be made, then this callback will not be called. Should an error
happen afterwards, then you will get a match report through this callback
and an error when the operation finishes.

If @match and @error are %NULL, then a finger was presented but it did not
match any known print.

@print represents the newly scanned print. The driver may or may not
provide this information. Image based devices will provide it and it
allows access to the raw data.

This callback exists because it makes sense for drivers to wait e.g. on
finger removal before completing the match operation. However, the
success/failure can often be reported at an earlier time, and there is
no need to make the user wait.</doc>
      <source-position filename="../libfprint/fp-device.h" line="160"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="130">a #FpDevice</doc>
          <type name="Device" c:type="FpDevice*"/>
        </parameter>
        <parameter name="match"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="131">The matching print if any matched @print</doc>
          <type name="Print" c:type="FpPrint*"/>
        </parameter>
        <parameter name="print"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="132">The newly scanned print</doc>
          <type name="Print" c:type="FpPrint*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="133">User provided data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="error"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-device.h"
               line="134">#GError or %NULL</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="Minutia" c:type="FpMinutia" disguised="1">
      <source-position filename="../libfprint/fp-image.h" line="29"/>
      <method name="get_coords" c:identifier="fp_minutia_get_coords">
        <doc xml:space="preserve"
             filename="../libfprint/fp-image.c"
             line="481">Returns the coordinates of the found minutia. This is only useful for
debugging purposes and the API is not considered stable for production.</doc>
        <source-position filename="../libfprint/fp-image.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="min" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="483">A #FpMinutia</doc>
            <type name="Minutia" c:type="FpMinutia*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="484">x position in image</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-image.c"
                 line="485">y position in image</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="Print"
           c:symbol-prefix="print"
           c:type="FpPrint"
           parent="GObject.InitiallyUnowned"
           glib:type-name="FpPrint"
           glib:get-type="fp_print_get_type"
           glib:type-struct="PrintClass">
      <source-position filename="../libfprint/fp-print.h" line="29"/>
      <constructor name="new" c:identifier="fp_print_new">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="310">Create a new #FpPrint. This is only useful to prepare an enrollment
of a new print using fp_device_enroll(). For this you should first
create a new print, fill in the relevant metadata, and then start
enrollment.</doc>
        <source-position filename="../libfprint/fp-print.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="319">A newyl created #FpPrint</doc>
          <type name="Print" c:type="FpPrint*"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="312">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_data" c:identifier="fp_print_new_from_data">
        <source-position filename="../libfprint/fp-print.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="Print" c:type="FpPrint*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="guint8" c:type="guchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="deserialize"
                c:identifier="fp_print_deserialize"
                throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="737">Deserialize a print definition from permanent storage.</doc>
        <source-position filename="../libfprint/fp-print.h" line="105"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="745">A newly created #FpPrint on success</doc>
          <type name="Print" c:type="FpPrint*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="739">The binary data</doc>
            <array length="1" zero-terminated="0" c:type="const guchar*">
              <type name="guint8" c:type="guchar"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="740">Length of the data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </function>
      <function name="to_data" c:identifier="fp_print_to_data">
        <source-position filename="../libfprint/fp-print.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="guint8" c:type="guchar**"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </function>
      <method name="compatible" c:identifier="fp_print_compatible">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="534">Tests whether the prints is compatible with the given device.</doc>
        <source-position filename="../libfprint/fp-print.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="541">%TRUE if the print is compatible with the device</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="536">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="537">A #FpDevice</doc>
            <type name="Device" c:type="FpDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="fp_print_equal">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="558">Tests whether the prints can be considered equal. This only compares the
actual information about the print, not the metadata.</doc>
        <source-position filename="../libfprint/fp-print.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="566">%TRUE if the prints are equal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="560">First #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="561">Second #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_description" c:identifier="fp_print_get_description">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="429">Returns the user defined description for the print.</doc>
        <source-position filename="../libfprint/fp-print.h" line="82"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="435">The description</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="431">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_device_id" c:identifier="fp_print_get_device_id">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="348">Returns the device ID that the print was created for.</doc>
        <source-position filename="../libfprint/fp-print.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="354">The device ID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="350">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_device_stored"
              c:identifier="fp_print_get_device_stored">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="364">Whether the print is actually stored on the device and this is
just a handle to use that references the device stored data.</doc>
        <source-position filename="../libfprint/fp-print.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="371">Whether the print is stored on the device</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="366">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_driver" c:identifier="fp_print_get_driver">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="332">Returns the driver that the print was created for.</doc>
        <source-position filename="../libfprint/fp-print.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="338">The driver</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="334">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enroll_date" c:identifier="fp_print_get_enroll_date">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="445">Returns the user defined enroll date for the print.</doc>
        <source-position filename="../libfprint/fp-print.h" line="83"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="451">The #GDate</doc>
          <type name="GLib.Date" c:type="const GDate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="447">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_finger" c:identifier="fp_print_get_finger">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="397">Returns the finger that the print was created for.</doc>
        <source-position filename="../libfprint/fp-print.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="403">The #FpFinger</doc>
          <type name="Finger" c:type="FpFinger"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="399">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_image" c:identifier="fp_print_get_image">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="381">Returns the image that the print was created from, or %NULL</doc>
        <source-position filename="../libfprint/fp-print.h" line="78"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="387">The #FpImage</doc>
          <type name="Image" c:type="FpImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="383">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_username" c:identifier="fp_print_get_username">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="413">Returns the user defined username for the print.</doc>
        <source-position filename="../libfprint/fp-print.h" line="81"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="419">The username</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="415">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="serialize" c:identifier="fp_print_serialize" throws="1">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="617">Serialize a print definition for permanent storage. Note that this is
lossy in the sense that e.g. the image data is discarded.</doc>
        <source-position filename="../libfprint/fp-print.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libfprint/fp-print.c"
               line="627">%TRUE on success</doc>
          <type name="none" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="619">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
          <parameter name="data"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="620">Return location for data pointer</doc>
            <array length="1" zero-terminated="0" c:type="guchar**">
              <type name="guint8" c:type="guchar*"/>
            </array>
          </parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="621">Length of @data</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description" c:identifier="fp_print_set_description">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="496">Set the description for the print.</doc>
        <source-position filename="../libfprint/fp-print.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="498">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="499">The new description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enroll_date" c:identifier="fp_print_set_enroll_date">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="514">Set the enroll date for the print.</doc>
        <source-position filename="../libfprint/fp-print.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="516">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
          <parameter name="enroll_date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="517">The new enroll date</doc>
            <type name="GLib.Date" c:type="const GDate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_finger" c:identifier="fp_print_set_finger">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="461">Set the finger that the print is for.</doc>
        <source-position filename="../libfprint/fp-print.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="463">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
          <parameter name="finger" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="464">The #FpFinger</doc>
            <type name="Finger" c:type="FpFinger"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_username" c:identifier="fp_print_set_username">
        <doc xml:space="preserve"
             filename="../libfprint/fp-print.c"
             line="478">Set the username for the print.</doc>
        <source-position filename="../libfprint/fp-print.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="480">A #FpPrint</doc>
            <type name="Print" c:type="FpPrint*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libfprint/fp-print.c"
                 line="481">The new username</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="description" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="device-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="device-stored"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="driver"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="enroll-date" writable="1" transfer-ownership="none">
        <type name="GLib.Date"/>
      </property>
      <property name="finger" writable="1" transfer-ownership="none">
        <type name="Finger"/>
      </property>
      <property name="fpi-data" writable="1" transfer-ownership="none">
        <type name="GLib.Variant"/>
      </property>
      <property name="fpi-type"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="image" transfer-ownership="none">
        <type name="Image"/>
      </property>
      <property name="username" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="PrintClass"
            c:type="FpPrintClass"
            glib:is-gtype-struct-for="Print">
      <source-position filename="../libfprint/fp-print.h" line="29"/>
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
    </record>
    <enumeration name="ScanType"
                 glib:type-name="FpScanType"
                 glib:get-type="fp_scan_type_get_type"
                 c:type="FpScanType">
      <member name="swipe"
              value="0"
              c:identifier="FP_SCAN_TYPE_SWIPE"
              glib:nick="swipe">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="50">Sensor requires swiping the finger.</doc>
      </member>
      <member name="press"
              value="1"
              c:identifier="FP_SCAN_TYPE_PRESS"
              glib:nick="press">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.h"
             line="51">Sensor requires placing/pressing down the finger.</doc>
      </member>
    </enumeration>
    <function name="device_error_quark"
              c:identifier="fp_device_error_quark"
              moved-to="DeviceError.quark">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="67">Quark representing a device error.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="device_retry_quark"
              c:identifier="fp_device_retry_quark"
              moved-to="DeviceRetry.quark">
      <source-position filename="../libfprint/fp-device.h" line="109"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libfprint/fp-device.c"
             line="60">Quark representing a retryable error.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
