コード例 #1
0
ファイル: vfs301.c プロジェクト: kunalg/libfprint
static int dev_open(struct fp_img_dev *dev, unsigned long driver_data)
{
	vfs301_dev_t *vdev = NULL;
	int r;

	/* Claim usb interface */
	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		/* Interface not claimed, return error */
		fp_err("could not claim interface 0");
		return r;
	}

	/* Set enroll stage number */
	dev->dev->nr_enroll_stages = 1;

	/* Initialize private structure */
	vdev = g_malloc0(sizeof(vfs301_dev_t));
	dev->priv = vdev;

	vdev->scanline_buf = malloc(0);
	vdev->scanline_count = 0;

	/* Notify open complete */
	fpi_imgdev_open_complete(dev, 0);

	return 0;
}
コード例 #2
0
ファイル: aes1660.c プロジェクト: zyh329/libfprint
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	/* TODO check that device has endpoints we're using */
	int r;
	struct aesX660_dev *aesdev;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		fp_err("could not claim interface 0");
		return r;
	}

	dev->priv = aesdev = g_malloc0(sizeof(struct aesX660_dev));
	aesdev->buffer = g_malloc0(AES1660_FRAME_SIZE + AESX660_HEADER_SIZE);
	aesdev->init_seqs[0] = aes1660_init_1;
	aesdev->init_seqs_len[0] = array_n_elements(aes1660_init_1);
	aesdev->init_seqs[1] = aes1660_init_2;
	aesdev->init_seqs_len[1] = array_n_elements(aes1660_init_2);
	aesdev->start_imaging_cmd = (unsigned char *)aes1660_start_imaging_cmd;
	aesdev->start_imaging_cmd_len = sizeof(aes1660_start_imaging_cmd);
	aesdev->frame_width = FRAME_WIDTH;
	aesdev->extra_img_flags = FP_IMG_PARTIAL; 

	fpi_imgdev_open_complete(dev, 0);
	return 0;
}
コード例 #3
0
ファイル: aes4000.c プロジェクト: Gnate/libfprint
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	int r;
	struct aes3k_dev *aesdev;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0)
		fp_err("could not claim interface 0");

	aesdev = dev->priv = g_malloc0(sizeof(struct aes3k_dev));

	if (!aesdev)
		return -ENOMEM;

	if (r == 0)
		aesdev->data_buflen = DATA_BUFLEN;
		aesdev->frame_width = FRAME_WIDTH;
		aesdev->frame_size = FRAME_SIZE;
		aesdev->frame_number = FRAME_NUMBER;
		aesdev->enlarge_factor = ENLARGE_FACTOR;
		aesdev->init_reqs = init_reqs;
		aesdev->init_reqs_len = G_N_ELEMENTS(init_reqs);
		fpi_imgdev_open_complete(dev, 0);

	return r;
}
コード例 #4
0
ファイル: vcom5s.c プロジェクト: anarsoul/libfprint
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	int r;
	dev->priv = g_malloc0(sizeof(struct v5s_dev));

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0)
		fp_err("could not claim interface 0: %s", libusb_error_name(r));

	if (r == 0)
		fpi_imgdev_open_complete(dev, 0);

	return r;
}
コード例 #5
0
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	int r;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		fp_err("could not claim interface 0");
		return r;
	}

	//dev->dev->nr_enroll_stages=3;

	dev->priv = g_malloc0(sizeof(struct etss801u_dev));
	fpi_imgdev_open_complete(dev, 0);
	return 0;
}
コード例 #6
0
ファイル: upektc.c プロジェクト: anarsoul/libfprint
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	/* TODO check that device has endpoints we're using */
	int r;
	struct upektc_dev *upekdev;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		fp_err("could not claim interface 0: %s", libusb_error_name(r));
		return r;
	}

	dev->priv = upekdev = g_malloc0(sizeof(struct upektc_dev));
	switch (driver_data) {
	case UPEKTC_2015:
		upekdev->ep_in = UPEKTC_EP_IN;
		upekdev->ep_out = UPEKTC_EP_OUT;
		upekdev->setup_commands = upektc_setup_commands;
		upekdev->setup_commands_len = array_n_elements(upektc_setup_commands);
		upekdev->sum_threshold = UPEKTC_SUM_THRESHOLD;
		break;
	case UPEKTC_3001:
		upekdev->ep_in = UPEKET_EP_IN;
		upekdev->ep_out = UPEKET_EP_OUT;
		upekdev->setup_commands = upeket_setup_commands;
		upekdev->setup_commands_len = array_n_elements(upeket_setup_commands);
		upekdev->sum_threshold = UPEKET_SUM_THRESHOLD;
		break;
	default:
		fp_err("Device variant %d is not known\n", driver_data);
		g_free(upekdev);
		dev->priv = NULL;
		return -ENODEV;
		break;
	}
	fpi_imgdev_open_complete(dev, 0);
	return 0;
}
コード例 #7
0
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	/* TODO check that device has endpoints we're using */
	int r;
	struct aesX660_dev *aesdev;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		fp_err("could not claim interface 0");
		return r;
	}

	dev->priv = aesdev = g_malloc0(sizeof(struct aesX660_dev));
	if (!aesdev)
		return -ENOMEM;

	aesdev->buffer = g_malloc0(AES2660_FRAME_SIZE + AESX660_HEADER_SIZE);
	if (!aesdev->buffer) {
		g_free(aesdev);
		dev->priv = NULL;
		return -ENOMEM;
	}

	/* No scaling for AES2660 */
	aesdev->h_scale_factor = 1;
	aesdev->init_seqs[0] = aes2660_init_1;
	aesdev->init_seqs_len[0] = array_n_elements(aes2660_init_1);
	aesdev->init_seqs[1] = aes2660_init_2;
	aesdev->init_seqs_len[1] = array_n_elements(aes2660_init_2);
	aesdev->start_imaging_cmd = (unsigned char *)aes2660_start_imaging_cmd;
	aesdev->start_imaging_cmd_len = sizeof(aes2660_start_imaging_cmd);
	aesdev->frame_width = FRAME_WIDTH;

	fpi_imgdev_open_complete(dev, 0);
	return 0;
}
コード例 #8
0
ファイル: vfs0050.c プロジェクト: Jack-Q/libfprint
static void state_init_complete(struct fpi_ssm *ssm)
{
    struct fp_img_dev *dev = ssm->priv;
    fpi_imgdev_open_complete(dev, 0);
    fpi_ssm_free(ssm);
}