Skip to content
Snippets Groups Projects
Commit f9e0a747 authored by TheScarastic's avatar TheScarastic Committed by DidntRead
Browse files

update fp wrapper

parent 228cfb7c
Branches
No related tags found
Loading
......@@ -99,6 +99,34 @@ static int cancel(struct fingerprint_device *dev)
return device->vendor.device->cancel(device->vendor.device);
}
#define MAX_FINGERPRINTS 100
typedef int (*enumerate_2_0)(struct fingerprint_device *dev, fingerprint_finger_id_t *results,
uint32_t *max_size);
static int enumerate_pre_2_1(struct fingerprint_device *dev)
{
device_t *device = (device_t *) dev;
fingerprint_finger_id_t results[MAX_FINGERPRINTS];
uint32_t n = MAX_FINGERPRINTS;
enumerate_2_0 enumerate = (enumerate_2_0) device->vendor.device->enumerate;
int rv = enumerate(device->vendor.device, results, &n);
if (rv == 0) {
uint32_t i;
fingerprint_msg_t msg;
msg.type = FINGERPRINT_TEMPLATE_ENUMERATING;
for (i = 0; i < n; i++) {
msg.data.enumerated.finger = results[i];
msg.data.enumerated.remaining_templates = n - i - 1;
device->base.notify(&msg);
}
}
return rv;
}
static int enumerate(struct fingerprint_device *dev)
{
device_t *device = (device_t *) dev;
......@@ -168,7 +196,11 @@ static int device_open(const hw_module_t *module, const char *name, hw_device_t
device->base.post_enroll = post_enroll;
device->base.get_authenticator_id = get_authenticator_id;
device->base.cancel = cancel;
if (vendor.module->common.module_api_version >= FINGERPRINT_MODULE_API_VERSION_2_1) {
device->base.enumerate = enumerate;
} else {
device->base.enumerate = enumerate_pre_2_1;
}
device->base.remove = remove;
device->base.set_active_group = set_active_group;
device->base.authenticate = authenticate;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment