1 /* 2 * AuthenTec AES3500/AES4000 common routines 3 * 4 * The AES3500 and AES4000 sensors are press-typed, and could capture 5 * fingerprint images in 128x128 and 96x96 pixels respectively. They 6 * share a same communication interface: a number of frames are 7 * transferred and captured, from which a final image could be 8 * assembled. Each frame has fixed height of 16 pixels. 9 * 10 * As the imaging area is a bit small, only a part of finger could be 11 * captured, the detected minutiae are not so many that the NBIS 12 * matching works not so good. The verification rate is very low at the 13 * moment. 14 * 15 * This work is derived from Daniel Drake's AES4000 driver. 16 * 17 * Copyright (C) 2013 Juvenn Woo <machese@gmail.com> 18 * Copyright (C) 2007-2008 Daniel Drake <dsd@gentoo.org> 19 * 20 * This library is free software; you can redistribute it and/or modify 21 * it under the terms of the GNU Lesser General Public License as 22 * published by the Free Software Foundation; either version 2.1 of the 23 * License, or (at your option) any later version. 24 * 25 * This library is distributed in the hope that it will be useful, but 26 * WITHOUT ANY WARRANTY; without even the implied warranty of 27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 28 * Lesser General Public License for more details. 29 * 30 * You should have received a copy of the GNU Lesser General Public 31 * License along with this library; if not, write to the Free Software 32 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 33 * 02110-1301 USA 34 * 35 */ 36 37 #ifndef __AES3K_H 38 #define __AES3K_H 39 40 #define AES3K_FRAME_HEIGHT 16 41 42 struct aes3k_dev { 43 struct libusb_transfer *img_trf; 44 size_t frame_width; /* image size = frame_width x frame_width */ 45 size_t frame_size; /* 4 bits/pixel: frame_width x AES3K_FRAME_HEIGHT / 2 */ 46 size_t frame_number; /* number of frames */ 47 size_t enlarge_factor; 48 49 size_t data_buflen; /* buffer length of usb bulk transfer */ 50 struct aes_regwrite *init_reqs; /* initial values sent to device */ 51 size_t init_reqs_len; 52 }; 53 54 55 int aes3k_dev_activate(struct fp_img_dev *dev, enum fp_imgdev_state state); 56 void aes3k_dev_deactivate(struct fp_img_dev *dev); 57 58 #endif 59