50e2de0730
upekts will need to know when the first enrollment stage is attempted for the first time, so add an __enroll_stage counter which actually indicates the next stage to enroll. -1 is a special value and it means 0 is next *and* it is the initial attemt. Added more debug output to the enroll handler. Added new fp_enroll_status codes for too short or uncentered scans. Changed the print_data allocator to consider the device rather than the driver, this feels more natural. Added missing return value. Make fp_enroll_status codes start at 1. 0 can now be used as a special/temporary value by the drivers. Also check that we aren't exceeding the number of enroll stages. Also add a missing exit() call to the verify example and update for the above.
50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
/*
|
|
* Fingerprint data handling and storage
|
|
* Copyright (C) 2007 Daniel Drake <dsd@gentoo.org>
|
|
*
|
|
* 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
|
|
*/
|
|
|
|
#include <config.h>
|
|
#include <string.h>
|
|
|
|
#include <glib.h>
|
|
|
|
#include "fp_internal.h"
|
|
|
|
struct fp_print_data *fpi_print_data_new(struct fp_dev *dev, size_t length)
|
|
{
|
|
struct fp_print_data *data = g_malloc(sizeof(*data) + length);
|
|
fp_dbg("length=%zd", length);
|
|
data->driver_name = dev->drv->name;
|
|
data->length = length;
|
|
return data;
|
|
}
|
|
|
|
unsigned char *fpi_print_data_get_buffer(struct fp_print_data *data)
|
|
{
|
|
return data->buffer;
|
|
}
|
|
|
|
API_EXPORTED void fp_print_data_free(struct fp_print_data *data)
|
|
{
|
|
g_free(data);
|
|
}
|
|
|
|
int fpi_print_data_compatible(struct fp_dev *dev, struct fp_print_data *data)
|
|
{
|
|
return strcmp(dev->drv->name, data->driver_name) == 0;
|
|
}
|