Esempio n. 1
0
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;
}