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
No related merge requests found
......@@ -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