mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2025-11-15 07:38:12 +00:00
lib: Major rewrite of the libfprint core and API
This is a rewrite of the core based on GObject and Gio. This commit breaks the build in a lot of ways, but basic functionality will start working again with the next commits.
This commit is contained in:
118
libfprint/fpi-image-device.h
Normal file
118
libfprint/fpi-image-device.h
Normal file
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
* FpImageDevice - An image based fingerprint reader device
|
||||
* Copyright (C) 2019 Benjamin Berg <bberg@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "fpi-device.h"
|
||||
#include "fp-image-device.h"
|
||||
|
||||
/**
|
||||
* FpImageDeviceState:
|
||||
* @FP_IMAGE_DEVICE_STATE_INACTIVE: inactive
|
||||
* @FP_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON: waiting for the finger to be pressed or swiped
|
||||
* @FP_IMAGE_DEVICE_STATE_CAPTURE: capturing an image
|
||||
* @FP_IMAGE_DEVICE_STATE_AWAIT_FINGER_OFF: waiting for the finger to be removed
|
||||
*
|
||||
* The state of an imaging device while doing a capture. The state is
|
||||
* passed through to the driver using the ::activate() or ::change_state() vfuncs.
|
||||
*
|
||||
* The driver needs to call fpi_image_device_report_finger_status() to move
|
||||
* between the different states. Note that the capture state might be entered
|
||||
* unconditionally if the device supports raw capturing.
|
||||
*/
|
||||
typedef enum {
|
||||
FP_IMAGE_DEVICE_STATE_INACTIVE,
|
||||
FP_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON,
|
||||
FP_IMAGE_DEVICE_STATE_CAPTURE,
|
||||
FP_IMAGE_DEVICE_STATE_AWAIT_FINGER_OFF,
|
||||
} FpImageDeviceState;
|
||||
|
||||
/**
|
||||
* FpImageDeviceClass:
|
||||
* @bz3_threshold: Threshold to consider bozorth3 score a match, default: 40
|
||||
* @img_width: Width of the image, only provide if constant
|
||||
* @img_height: Height of the image, only provide if constant
|
||||
* @img_open: Open the device and do basic initialization
|
||||
* (use this instead of the #FpDeviceClass open vfunc)
|
||||
* @img_close: Close the device
|
||||
* (use this instead of the #FpDeviceClass close vfunc)
|
||||
* @activate: Start image capture and finger detection
|
||||
* @deactivate: Stop image capture and finger detection
|
||||
* @change_state: Notification about the current device state (i.e. waiting for
|
||||
* finger or image capture). Implementing this is optional, it can e.g. be
|
||||
* used to flash an LED when waiting for a finger.
|
||||
*
|
||||
* These are the main entry points for image based drivers. For all but the
|
||||
* change_state vfunc, implementations *must* eventually call the corresponding
|
||||
* function to finish the operation. It is also acceptable to call the generic
|
||||
*
|
||||
*
|
||||
* These are the main entry points for drivers to implement. Drivers may not
|
||||
* implement all of these entry points if they do not support the operation
|
||||
* (or a default implementation is sufficient).
|
||||
*
|
||||
* Drivers *must* eventually call the corresponding function to finish the
|
||||
* operation. It is also acceptable to call the generic
|
||||
* fpi_device_action_error() function but doing so is not recommended in most
|
||||
* usecases.
|
||||
*
|
||||
* Drivers *must* also handle cancellation properly for any long running
|
||||
* operation (i.e. any operation that requires capturing). It is entirely fine
|
||||
* to ignore cancellation requests for short operations (e.g. open/close).
|
||||
*
|
||||
* This API is solely intended for drivers. It is purely internal and neither
|
||||
* API nor ABI stable.
|
||||
*/
|
||||
struct _FpImageDeviceClass
|
||||
{
|
||||
FpDeviceClass parent_class;
|
||||
|
||||
gint bz3_threshold;
|
||||
gint img_width;
|
||||
gint img_height;
|
||||
|
||||
void (*img_open) (FpImageDevice *dev);
|
||||
void (*img_close) (FpImageDevice *dev);
|
||||
void (*activate) (FpImageDevice *dev);
|
||||
void (*change_state) (FpImageDevice *dev,
|
||||
FpImageDeviceState state);
|
||||
void (*deactivate) (FpImageDevice *dev);
|
||||
};
|
||||
|
||||
void fpi_image_device_set_bz3_threshold (FpImageDevice *self,
|
||||
gint bz3_threshold);
|
||||
|
||||
void fpi_image_device_session_error (FpImageDevice *self,
|
||||
GError *error);
|
||||
|
||||
void fpi_image_device_open_complete (FpImageDevice *self,
|
||||
GError *error);
|
||||
void fpi_image_device_close_complete (FpImageDevice *self,
|
||||
GError *error);
|
||||
void fpi_image_device_activate_complete (FpImageDevice *self,
|
||||
GError *error);
|
||||
void fpi_image_device_deactivate_complete (FpImageDevice *self,
|
||||
GError *error);
|
||||
|
||||
void fpi_image_device_report_finger_status (FpImageDevice *self,
|
||||
gboolean present);
|
||||
void fpi_image_device_image_captured (FpImageDevice *self,
|
||||
FpImage *image);
|
||||
void fpi_image_device_retry_scan (FpImageDevice *self,
|
||||
FpDeviceRetry retry);
|
||||
Reference in New Issue
Block a user