lib: Make the fp_print_data structure private

And add a couple of helpers for the upekts driver to use.
This commit is contained in:
Bastien Nocera 2018-11-29 14:05:25 +01:00
parent 2b21430abe
commit 61483a4c47
5 changed files with 31 additions and 15 deletions

View file

@ -281,7 +281,6 @@ fpi_assemble_lines
<SECTION> <SECTION>
<INCLUDE>fpi-data.h</INCLUDE> <INCLUDE>fpi-data.h</INCLUDE>
<FILE>fpi-data</FILE> <FILE>fpi-data</FILE>
fp_print_data_type
fp_print_data_item fp_print_data_item
fpi_print_data_new fpi_print_data_new

View file

@ -1042,7 +1042,7 @@ static void e_handle_resp02(struct fp_dev *dev, unsigned char *data,
item = fpi_print_data_item_new(data_len - sizeof(scan_comp)); item = fpi_print_data_item_new(data_len - sizeof(scan_comp));
memcpy(item->data, data + sizeof(scan_comp), memcpy(item->data, data + sizeof(scan_comp),
data_len - sizeof(scan_comp)); data_len - sizeof(scan_comp));
fdata->prints = g_slist_prepend(fdata->prints, item); fpi_print_data_add_item(fdata, item);
result = FP_ENROLL_COMPLETE; result = FP_ENROLL_COMPLETE;
} }
@ -1204,7 +1204,7 @@ static void verify_start_sm_run_state(fpi_ssm *ssm, struct fp_dev *dev, void *us
break; break;
case VERIFY_INIT: ; case VERIFY_INIT: ;
struct fp_print_data *print = fpi_dev_get_verify_data(dev); struct fp_print_data *print = fpi_dev_get_verify_data(dev);
struct fp_print_data_item *item = print->prints->data; struct fp_print_data_item *item = fpi_print_data_get_item(print);
size_t data_len = sizeof(verify_hdr) + item->length; size_t data_len = sizeof(verify_hdr) + item->length;
unsigned char *data = g_malloc(data_len); unsigned char *data = g_malloc(data_len);
struct libusb_transfer *transfer; struct libusb_transfer *transfer;

View file

@ -39,6 +39,19 @@
extern libusb_context *fpi_usb_ctx; extern libusb_context *fpi_usb_ctx;
extern GSList *opened_devices; extern GSList *opened_devices;
/* fp_print_data structure definition */
enum fp_print_data_type {
PRINT_DATA_RAW = 0, /* memset-imposed default */
PRINT_DATA_NBIS_MINUTIAE
};
struct fp_print_data {
uint16_t driver_id;
uint32_t devtype;
enum fp_print_data_type type;
GSList *prints;
};
/* fp_dev structure definition */ /* fp_dev structure definition */
enum fp_dev_state { enum fp_dev_state {
DEV_STATE_INITIAL = 0, DEV_STATE_INITIAL = 0,

View file

@ -149,6 +149,19 @@ struct fp_print_data *fpi_print_data_new(struct fp_dev *dev)
fpi_driver_get_data_type(dev->drv)); fpi_driver_get_data_type(dev->drv));
} }
struct fp_print_data_item *
fpi_print_data_get_item(struct fp_print_data *data)
{
return data->prints->data;
}
void
fpi_print_data_add_item(struct fp_print_data *data,
struct fp_print_data_item *item)
{
data->prints = g_slist_prepend(data->prints, item);
}
/** /**
* fp_print_data_get_data: * fp_print_data_get_data:
* @data: the stored print * @data: the stored print

View file

@ -20,24 +20,15 @@
#ifndef __FPI_DATA_H__ #ifndef __FPI_DATA_H__
#define __FPI_DATA_H__ #define __FPI_DATA_H__
enum fp_print_data_type { struct fp_print_data;
PRINT_DATA_RAW = 0, /* memset-imposed default */
PRINT_DATA_NBIS_MINUTIAE
};
struct fp_print_data_item { struct fp_print_data_item {
size_t length; size_t length;
unsigned char data[0]; unsigned char data[0];
}; };
struct fp_print_data {
uint16_t driver_id;
uint32_t devtype;
enum fp_print_data_type type;
GSList *prints;
};
struct fp_print_data *fpi_print_data_new(struct fp_dev *dev); struct fp_print_data *fpi_print_data_new(struct fp_dev *dev);
struct fp_print_data_item *fpi_print_data_item_new(size_t length); struct fp_print_data_item *fpi_print_data_item_new(size_t length);
struct fp_print_data_item *fpi_print_data_get_item(struct fp_print_data *data);
void fpi_print_data_add_item(struct fp_print_data *data, struct fp_print_data_item *item);
#endif #endif