static void dev_open_cb(struct fp_dev *dev, int status, void *user_data) { struct fp_driver *drv; gchar *tmp; gtk_widget_destroy(GTK_WIDGET(user_data)); fpdev = dev; fp_dscv_prints = fp_discover_prints(); if (!fp_dscv_prints) { mwin_devstatus_update("Error loading enrolled prints."); /* FIXME error handling */ return; } mwin_devstatus_update("Device ready for use."); drv = fp_dev_get_driver(fpdev); tmp = g_strdup_printf("<b>Driver:</b> %s", fp_driver_get_name(drv)); gtk_label_set_markup(GTK_LABEL(mwin_drvname_label), tmp); g_free(tmp); if (fp_dev_supports_imaging(fpdev)) gtk_label_set_markup(GTK_LABEL(mwin_imgcapa_label), "Imaging device"); else gtk_label_set_markup(GTK_LABEL(mwin_imgcapa_label), "Non-imaging device"); for_each_tab_call_op(activate_dev); }
int main(void) { // Vars struct fp_dev *device; struct fp_driver *driver; struct fp_print_data *print_data; struct fp_img *img; int err; // Init the LCD lcdinit(0x00, 0x12, 0x20); lcd_reset(); // Init libfprint fp_init(); // Init the keypad matrix_init(4, 17, 27, 22, 10, 9, 11, handle_key_press); // Signal handler - does an fp_exit() on SIGINT init_signals(); // Get the first fingerprint device if ((err = get_fingerprint_device(&device)) < 0 || !device) { // Errorz if (err == -1) { error("No devices found"); } else if (err == -2) { error("Couldn't open the device"); } return 1; } // Get driver driver = fp_dev_get_driver(device); // Init message printf("Programme started! Device is %s\n\n", fp_driver_get_full_name(driver)); // Scan the print fp_enroll_finger_img(device, &print_data, &img); // Deinit libfprint fp_exit(); return 0; }